PageRenderTime 398ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/thinkmaker/tpmaker_tpl/tpmaker_advance/Static_tpl/Public/js/common.js

http://iiccms.googlecode.com/
JavaScript | 529 lines | 382 code | 54 blank | 93 comment | 88 complexity | 474cbe363f6e0b9afe014cd9e16c41d9 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, LGPL-2.1
  1. //+---------------------------------------------------
  2. //| ???????????????
  3. //+---------------------------------------------------
  4. var selectRowIndex = Array();
  5. //+---------------------------------------------------
  6. //| ???????????
  7. //+---------------------------------------------------
  8. function $byid(objectId){
  9. return reobj=(typeof(objectId)=="object") ? objectId : document.getElementById(objectId);
  10. }
  11. //+---------------------------------------------------
  12. //| ?????????
  13. //+---------------------------------------------------
  14. function display(objectId){
  15. if($byid(objectId).style.display=='none'){
  16. $byid(objectId).style.display='block';
  17. }else{
  18. $byid(objectId).style.display='none';
  19. }
  20. }
  21. //+---------------------------------------------------
  22. //| JS?list?????
  23. //+---------------------------------------------------
  24. function sortBy (field,sort){
  25. if(sort=='A' | sort=='asc'){
  26. sort='asc';
  27. }else{
  28. sort='desc';
  29. }
  30. location.href = clearurl(REQUEST_URI,"/?")+"/?p=1&order="+field+"&sort="+sort;
  31. }
  32. //+---------------------------------------------------
  33. //| JS?list?????
  34. //| AjaxSortBy (??,??,??,??,??)
  35. //+---------------------------------------------------
  36. function AjaxSortBy (model,action,field,sort,obj){
  37. if(sort=='A' | sort=='asc'){
  38. sort='asc';
  39. }else{
  40. sort='desc';
  41. }
  42. //alert(APP+"/"+model+"/"+action+"/","p/1/order/"+field+"/sort/"+sort);
  43. ThinkAjax.get(APP+"/"+model+"/"+action+"/","p/1/order/"+field+"/sort/"+sort,obj);
  44. }
  45. //+---------------------------------------------------
  46. //| JS?list?????
  47. //| AjaxSortBy (??,??,??,??,??,??)
  48. //+---------------------------------------------------
  49. function AjaxPageBy (model,action,field,sort,obj,page){
  50. if(sort=='A' | sort=='asc'){
  51. sort='asc';
  52. }else{
  53. sort='desc';
  54. }
  55. ThinkAjax.get(APP+"/"+model+"/"+action+"/","p/"+page+"/order/"+field+"/sort/"+sort,obj);
  56. //ThinkAjax.get(APP+"/"+model+"/"+action+"/p/"+page+"/order/"+field+"/sort/"+sort,,obj);
  57. }
  58. //+---------------------------------------------------
  59. //| ????????????????
  60. //+---------------------------------------------------
  61. function PopModalWindow(url,width,height){
  62. var result=window.showModalDialog(url,"win","dialogWidth:"+width+"px;dialogHeight:"+height+"px;center:yes;status:no;scroll:no;dialogHide:no;resizable:no;help:no;edge:sunken;");
  63. return result;
  64. }
  65. //+---------------------------------------------------
  66. //| ????????????
  67. //+---------------------------------------------------
  68. function view(id){
  69. var keyValue;
  70. if (id)
  71. {
  72. keyValue = id;
  73. }else {
  74. keyValue = getSelectCheckboxValue();
  75. }
  76. if (!keyValue)
  77. {
  78. alert('??????????');
  79. return false;
  80. }
  81. //location.href = URL+"/view/id/"+keyValue;
  82. var ps = Per_host+URL+"/view/id/"+keyValue;
  83. //lhgdialog.opendlg( '??????',ps, 600, 450 );
  84. PopModalWindow(ps, 600, 450 );
  85. }
  86. //+---------------------------------------------------
  87. //| ????
  88. //+---------------------------------------------------
  89. function add(url){
  90. var ps;
  91. if(!url){
  92. ps = Per_host+URL+"/add/";
  93. }else{
  94. ps = Per_host+url;
  95. }
  96. //lhgdialog.opendlg( '????',ps, 600, 450 );
  97. PopModalWindow(ps, 600, 450 );
  98. }
  99. //+---------------------------------------------------
  100. //| ??????
  101. //+---------------------------------------------------
  102. function edit(id){
  103. var keyValue;
  104. if (id)
  105. {
  106. keyValue = id;
  107. }else {
  108. keyValue = getSelectCheckboxValue();
  109. }
  110. if (!keyValue)
  111. {
  112. alert('????????');
  113. return false;
  114. }
  115. //location.href = URL+"/edit/id/"+keyValue;
  116. var ps = Per_host+URL+"/edit/id/"+keyValue;
  117. //lhgdialog.opendlg( '???????',ps, 600, 450 );
  118. PopModalWindow(ps, 600, 450 );
  119. }
  120. //+---------------------------------------------------
  121. //| ?????js??,????????,????delete
  122. //+---------------------------------------------------
  123. function del(id){
  124. var keyValue;
  125. if (id)
  126. {
  127. keyValue = id;
  128. }else {
  129. keyValue = getSelectCheckboxValues();
  130. }
  131. if (!keyValue)
  132. {
  133. alert('???????');
  134. return false;
  135. }
  136. if (window.confirm('??????????'))
  137. {
  138. location.href = Per_host+URL+"/delete/id/"+keyValue;
  139. //ThinkAjax.send(URL+"/delete/","id="+keyValue+'&_AJAX_SUBMIT_=1',doDelete);
  140. }
  141. }
  142. //+---------------------------------------------------
  143. //| ?????????????????
  144. //+---------------------------------------------------
  145. function doDelete(){
  146. var Table = $byid('checkList');
  147. var len = selectRowIndex.length;
  148. for (var i=len-1;i>=0;i-- )
  149. {
  150. //?????
  151. Table.deleteRow(selectRowIndex[i]);
  152. }
  153. selectRowIndex = Array();
  154. }
  155. //+---------------------------------------------------
  156. //| ???????
  157. //+---------------------------------------------------
  158. function delAttach(id,showId){
  159. var keyValue;
  160. if (id)
  161. {
  162. keyValue = id;
  163. }else {
  164. keyValue = getSelectCheckboxValues();
  165. }
  166. if (!keyValue)
  167. {
  168. alert('???????');
  169. return false;
  170. }
  171. if (window.confirm('??????????'))
  172. {
  173. $byid('result').style.display = 'block';
  174. ThinkAjax.send(URL+"/delAttach/","id="+keyValue+'&_AJAX_SUBMIT_=1');
  175. if (showId != undefined)
  176. {
  177. $byid(showId).innerHTML = '';
  178. }
  179. }
  180. }
  181. //+---------------------------------------------------
  182. //??URL?????????????????#????????
  183. //url??????,ps??
  184. //+---------------------------------------------------
  185. function clearurl(url,ps){
  186. var s=url;
  187. var sarray=new Array();
  188. sarray=s.split(ps);
  189. var sa=sarray[0];
  190. // alert(sa);
  191. return sa;
  192. }
  193. //+---------------------------------------------------
  194. //| ????Checkbox??????,????????????
  195. //+---------------------------------------------------
  196. function getSelectCheckboxValue(){
  197. var obj = document.getElementsByName('key');
  198. var result ='';
  199. for (var i=0;i<obj.length;i++)
  200. {
  201. if (obj[i].checked==true)
  202. return obj[i].value;
  203. }
  204. return false;
  205. }
  206. //+---------------------------------------------------
  207. //| ?????checkbox,????????????
  208. //+---------------------------------------------------
  209. function CheckAll(strSection)
  210. {
  211. var i;
  212. var colInputs = document.getElementById(strSection).getElementsByTagName("input");
  213. for (i=1; i < colInputs.length; i++)
  214. {
  215. colInputs[i].checked=colInputs[0].checked;
  216. }
  217. }
  218. //+---------------------------------------------------
  219. //| ????Checkbox??????,????????????
  220. //+---------------------------------------------------
  221. function getSelectCheckboxValues(){
  222. var obj = document.getElementsByName('key');
  223. var result ='';
  224. var j= 0;
  225. for (var i=0;i<obj.length;i++)
  226. {
  227. if (obj[i].checked==true){
  228. selectRowIndex[j] = i+1;
  229. result += obj[i].value+",";
  230. j++;
  231. }
  232. }
  233. return result.substring(0, result.length-1);
  234. }
  235. //---------------------------------------------------------------------
  236. //LIST?????
  237. //---------------------------------------------------------------------
  238. var lastrowoffset = 0; // footer row
  239. var usecss = true; // use css
  240. var rowclass = 'ewTableRow'; // ??????
  241. var rowaltclass = 'ewTableAltRow'; // ??????
  242. var rowmoverclass = 'ewTableHighlightRow'; // ????????
  243. var rowselectedclass = 'ewTableSelectRow'; // ????????
  244. var roweditclass = 'ewTableEditRow'; // ????????
  245. var rowcolor = '#FFFFFF'; // row color
  246. var rowaltcolor = '#F5F5F5'; // row alternate color
  247. var rowmovercolor = '#FFCCFF'; // row mouse over color
  248. var rowselectedcolor = '#CCFFFF'; // row selected color
  249. var roweditcolor = '#FFFF99'; // row edit color
  250. // ?????????
  251. function ew_mouseover(row) {
  252. row.mover = true; // mouse over
  253. if (!row.selected) {
  254. if (usecss)
  255. row.className = rowmoverclass;
  256. else
  257. row.style.backgroundColor = rowmovercolor;
  258. }
  259. }
  260. // ?????????
  261. function ew_mouseout(row) {
  262. row.mover = false; // mouse out
  263. if (!row.selected) {
  264. ew_setcolor(row);
  265. }
  266. }
  267. // ??????
  268. function ew_setcolor(row) {
  269. if (row.selected) {
  270. if (usecss)
  271. row.className = rowselectedclass;
  272. else
  273. row.style.backgroundColor = rowselectedcolor;
  274. }
  275. else if (row.edit) {
  276. if (usecss)
  277. row.className = roweditclass;
  278. else
  279. row.style.backgroundColor = roweditcolor;
  280. }
  281. else if ((row.rowIndex-firstrowoffset)%2) {
  282. if (usecss)
  283. row.className = rowaltclass;
  284. else
  285. row.style.backgroundColor = rowaltcolor;
  286. }
  287. else {
  288. if (usecss)
  289. row.className = rowclass;
  290. else
  291. row.style.backgroundColor = rowcolor;
  292. }
  293. }
  294. // ???????
  295. function ew_click(row) {
  296. if (row.deleteclicked)
  297. row.deleteclicked = false; // reset delete button/checkbox clicked
  298. else {
  299. var bselected = row.selected;
  300. ew_clearselected(); // clear all other selected rows
  301. if (!row.deleterow) row.selected = !bselected; // toggle
  302. ew_setcolor(row);
  303. }
  304. }
  305. // ???????
  306. function ew_clearselected() {
  307. var table = document.getElementById(tablename);
  308. for (var i = firstrowoffset; i < table.rows.length; i++) {
  309. var thisrow = table.rows[i];
  310. if (thisrow.selected && !thisrow.deleterow) {
  311. thisrow.selected = false;
  312. ew_setcolor(thisrow);
  313. }
  314. }
  315. }
  316. //---------------------------------------------------------------------
  317. // ?????? by Liu21st at 2005-11-29
  318. //-------------------------begin---------------------------------------
  319. function searchItem(item){
  320. for(i=0;i<selectSource.length;i++)
  321. if (selectSource[i].text.indexOf(item)!=-1)
  322. {selectSource[i].selected = true;break;}
  323. }
  324. function addItem(){
  325. for(i=0;i<selectSource.length;i++)
  326. if(selectSource[i].selected){
  327. selectTarget.add( new Option(selectSource[i].text,selectSource[i].value));
  328. }
  329. for(i=0;i<selectTarget.length;i++)
  330. for(j=0;j<selectSource.length;j++)
  331. if(selectSource[j].text==selectTarget[i].text)
  332. selectSource[j]=null;
  333. }
  334. function delItem(){
  335. for(i=0;i<selectTarget.length;i++)
  336. if(selectTarget[i].selected){
  337. selectSource.add(new Option(selectTarget[i].text,selectTarget[i].value));
  338. }
  339. for(i=0;i<selectSource.length;i++)
  340. for(j=0;j<selectTarget.length;j++)
  341. if(selectTarget[j].text==selectSource[i].text) selectTarget[j]=null;
  342. }
  343. function delAllItem(){
  344. for(i=0;i<selectTarget.length;i++){
  345. selectSource.add(new Option(selectTarget[i].text,selectTarget[i].value));
  346. }
  347. selectTarget.length=0;
  348. }
  349. function addAllItem(){
  350. for(i=0;i<selectSource.length;i++){
  351. selectTarget.add(new Option(selectSource[i].text,selectSource[i].value));
  352. }
  353. selectSource.length=0;
  354. }
  355. function getReturnValue(){
  356. for(i=0;i<selectTarget.length;i++){
  357. selectTarget[i].selected = true;
  358. }
  359. }
  360. function loadBar(fl)
  361. //fl is show/hide flag
  362. {
  363. var x,y;
  364. if (self.innerHeight)
  365. {// all except Explorer
  366. x = self.innerWidth;
  367. y = self.innerHeight;
  368. }
  369. else
  370. if (document.documentElement && document.documentElement.clientHeight)
  371. {// Explorer 6 Strict Mode
  372. x = document.documentElement.clientWidth;
  373. y = document.documentElement.clientHeight;
  374. }
  375. else
  376. if (document.body)
  377. {// other Explorers
  378. x = document.body.clientWidth;
  379. y = document.body.clientHeight;
  380. }
  381. var el=document.getElementById('loader');
  382. if(null!=el)
  383. {
  384. var top = (y/2) - 50;
  385. var left = (x/2) - 150;
  386. if( left<=0 ) left = 10;
  387. el.style.visibility = (fl==1)?'visible':'hidden';
  388. el.style.display = (fl==1)?'block':'none';
  389. el.style.left = left + "px"
  390. el.style.top = top + "px";
  391. el.style.zIndex = 2;
  392. }
  393. }
  394. /**
  395. * X-browser event handler attachment and detachment
  396. * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
  397. *
  398. * @argument obj - the object to attach event to
  399. * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
  400. * @argument fn - function to call
  401. */
  402. function addEvent(obj, evType, fn){
  403. if (obj.addEventListener){
  404. obj.addEventListener(evType, fn, false);
  405. return true;
  406. } else if (obj.attachEvent){
  407. var r = obj.attachEvent("on"+evType, fn);
  408. return r;
  409. } else {
  410. return false;
  411. }
  412. }
  413. function removeEvent(obj, evType, fn, useCapture){
  414. if (obj.removeEventListener){
  415. obj.removeEventListener(evType, fn, useCapture);
  416. return true;
  417. } else if (obj.detachEvent){
  418. var r = obj.detachEvent("on"+evType, fn);
  419. return r;
  420. } else {
  421. alert("Handler could not be removed");
  422. }
  423. }
  424. /**
  425. *lee99.??js??????
  426. * Gets the full width/height because it's different for most browsers.
  427. */
  428. function getViewportHeight() {
  429. if (window.innerHeight!=window.undefined) return window.innerHeight;
  430. if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
  431. if (document.body) return document.body.clientHeight;
  432. return window.undefined;
  433. }
  434. function getViewportWidth() {
  435. var offset = 17;
  436. var width = null;
  437. if (window.innerWidth!=window.undefined) return window.innerWidth;
  438. if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth;
  439. if (document.body) return document.body.clientWidth;
  440. }
  441. /**
  442. * Gets the real scroll top
  443. */
  444. function getScrollTop() {
  445. if (self.pageYOffset) // all except Explorer
  446. {
  447. return self.pageYOffset;
  448. }
  449. else if (document.documentElement && document.documentElement.scrollTop)
  450. // Explorer 6 Strict
  451. {
  452. return document.documentElement.scrollTop;
  453. }
  454. else if (document.body) // all other Explorers
  455. {
  456. return document.body.scrollTop;
  457. }
  458. }
  459. function getScrollLeft() {
  460. if (self.pageXOffset) // all except Explorer
  461. {
  462. return self.pageXOffset;
  463. }
  464. else if (document.documentElement && document.documentElement.scrollLeft)
  465. // Explorer 6 Strict
  466. {
  467. return document.documentElement.scrollLeft;
  468. }
  469. else if (document.body) // all other Explorers
  470. {
  471. return document.body.scrollLeft;
  472. }
  473. }
  474. function addinfo(tid,catid){
  475. }