Main_bak.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  1. MWF.xApplication.process.TaskCenter.options.multitask = false;
  2. MWF.xApplication.process.TaskCenter.Main = new Class({
  3. Extends: MWF.xApplication.Common.Main,
  4. Implements: [Options, Events],
  5. options: {
  6. "style": "default",
  7. "name": "process.TaskCenter",
  8. "icon": "icon.png",
  9. "width": "900",
  10. "height": "700",
  11. "title": MWF.xApplication.process.TaskCenter.LP.title
  12. },
  13. onQueryLoad: function(){
  14. this.lp = MWF.xApplication.process.TaskCenter.LP;
  15. },
  16. loadApplication: function(callback){
  17. this.tabs = [];
  18. this.tabShadows = [];
  19. this.loadTitle();
  20. this.loadTab();
  21. this.loadContent();
  22. },
  23. loadTitle: function(){
  24. this.loadTitleBar();
  25. this.loadTitleUserNode();
  26. this.loadStartProcessActionNode();
  27. this.loadTitleTextNode();
  28. this.loadSearchNode();
  29. },
  30. //createCreateAction: function(){
  31. // this.createApplicationNode = new Element("div", {
  32. // "styles": this.css.createApplicationNode,
  33. // "title": this.options.tooltip.create
  34. // }).inject(this.toolbarAreaNode);
  35. // this.createApplicationNode.addEvent("click", function(){
  36. // this.createApplication();
  37. // }.bind(this));
  38. //},
  39. loadTitleBar: function(){
  40. this.taskTitleBar = new Element("div", {
  41. "styles": this.css.taskTitleBar
  42. }).inject(this.content);
  43. },
  44. loadTitleUserNode: function(){
  45. this.taskTitleUserNode = new Element("div", {
  46. "styles": this.css.taskTitleUserNode
  47. }).inject(this.taskTitleBar);
  48. this.taskTitleUserIconNode = new Element("div", {
  49. "styles": this.css.taskTitleUserIconNode
  50. }).inject(this.taskTitleUserNode);
  51. this.taskTitleUserTextNode = new Element("div", {
  52. "styles": this.css.taskTitleUserTextNode,
  53. "text": this.desktop.session.user.name
  54. }).inject(this.taskTitleUserNode);
  55. },
  56. loadStartProcessActionNode: function() {
  57. this.startProcessAction = new Element("div", {
  58. "styles": this.css.startProcessAction
  59. }).inject(this.taskTitleBar);
  60. this.startProcessAction.addEvents({
  61. "click": function(e){
  62. this.showStartProcessArea();
  63. }.bind(this)
  64. });
  65. },
  66. showStartProcessArea: function(){
  67. if (!this.startProcessAreaNode){
  68. this.createStartProcessArea();
  69. }
  70. this.startProcessTween.start("left", "-400px", "0px");
  71. },
  72. closeStartProcessArea: function(){
  73. if (this.startProcessAreaNode) this.startProcessTween.start("left", "0px", "-400px");
  74. },
  75. createStartProcessArea: function(){
  76. this.createStartProcessAreaNode();
  77. this.createStartProcessCloseNode();
  78. this.createStartProcessScrollNode();
  79. this.listApplications();
  80. this.setResizeStartProcessAreaHeight();
  81. this.addEvent("resize", this.setResizeStartProcessAreaHeight.bind(this));
  82. this.startProcessTween = new Fx.Tween(this.startProcessAreaNode, {
  83. "duration": "200",
  84. "transition": Fx.Transitions.Quad.easeOut
  85. });
  86. },
  87. createStartProcessAreaNode: function(){
  88. this.startProcessAreaNode = new Element("div", {"styles": this.css.startProcessAreaNode}).inject(this.content);
  89. },
  90. createStartProcessCloseNode: function(){
  91. this.startProcessTopNode = new Element("div", {"styles": this.css.startProcessTopNode}).inject(this.startProcessAreaNode);
  92. this.startProcessCloseNode = new Element("div", {"styles": this.css.startProcessCloseNode}).inject(this.startProcessTopNode);
  93. this.startProcessCloseNode.addEvent("click", function(e){
  94. this.closeStartProcessArea();
  95. }.bind(this));
  96. },
  97. createStartProcessScrollNode: function(){
  98. this.startProcessScrollNode = new Element("div", {"styles": this.css.startProcessScrollNode}).inject(this.startProcessAreaNode);
  99. MWF.require("MWF.widget.ScrollBar", function(){
  100. new MWF.widget.ScrollBar(this.startProcessScrollNode, {
  101. "style":"xApp_taskcenter", "where": "after", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}
  102. });
  103. }.bind(this));
  104. this.startProcessContentNode = new Element("div", {"styles": this.css.startProcessContentNode}).inject(this.startProcessScrollNode);
  105. },
  106. listApplications: function(){
  107. this.getAction(function(){
  108. this.action.listApplication(function(json){
  109. json.data.each(function(app){
  110. new MWF.xApplication.process.TaskCenter.Application(app, this, this.startProcessContentNode);
  111. }.bind(this));
  112. }.bind(this));
  113. }.bind(this));
  114. },
  115. getAction: function(callback){
  116. if (!this.action){
  117. MWF.require("MWF.xApplication.process.TaskCenter.Actions.RestActions", function(){
  118. this.action = new MWF.xApplication.process.TaskCenter.Actions.RestActions();
  119. if (callback) callback();
  120. }.bind(this));
  121. }else{
  122. if (callback) callback();
  123. }
  124. },
  125. setResizeStartProcessAreaHeight: function(){
  126. var size = this.content.getSize();
  127. if (this.startProcessAreaNode){
  128. var topSize = this.startProcessCloseNode.getSize();
  129. this.startProcessAreaNode.setStyle("height", ""+size.y+"px");
  130. var y = size.y-topSize.y-20;
  131. this.startProcessScrollNode.setStyle("height", ""+y+"px");
  132. }
  133. },
  134. loadTitleTextNode: function(){
  135. this.taskTitleTextNode = new Element("div", {
  136. "styles": this.css.taskTitleTextNode,
  137. "text": this.lp.title
  138. }).inject(this.taskTitleBar);
  139. },
  140. loadSearchNode: function(){
  141. this.searchBarAreaNode = new Element("div", {
  142. "styles": this.css.searchBarAreaNode
  143. }).inject(this.taskTitleBar);
  144. this.searchBarNode = new Element("div", {
  145. "styles": this.css.searchBarNode
  146. }).inject(this.searchBarAreaNode);
  147. this.searchBarActionNode = new Element("div", {
  148. "styles": this.css.searchBarActionNode
  149. }).inject(this.searchBarNode);
  150. this.searchBarInputBoxNode = new Element("div", {
  151. "styles": this.css.searchBarInputBoxNode
  152. }).inject(this.searchBarNode);
  153. this.searchBarInputNode = new Element("input", {
  154. "type": "text",
  155. "value": this.lp.searchKey,
  156. "styles": this.css.searchBarInputNode
  157. }).inject(this.searchBarInputBoxNode);
  158. var _self = this;
  159. this.searchBarActionNode.addEvent("click", function(){
  160. this.searchTask();
  161. }.bind(this));
  162. this.searchBarInputNode.addEvents({
  163. "focus": function(){
  164. if (this.value==_self.lp.searchKey) this.set("value", "");
  165. },
  166. "blur": function(){if (!this.value) this.set("value", _self.lp.searchKey);},
  167. "keydown": function(e){
  168. if (e.code==13){
  169. this.searchTask();
  170. e.preventDefault();
  171. }
  172. }.bind(this),
  173. "selectstart": function(e){
  174. e.preventDefault();
  175. }
  176. });
  177. },
  178. loadTab: function(){
  179. this.tabAreaNode = new Element("div", {
  180. "styles": this.css.tabAreaNode
  181. }).inject(this.content);
  182. this.createTabLeft();
  183. this.createTabItem(this.lp.task, "task.png", function(){this.showTask();}.bind(this));
  184. this.createTabItem(this.lp.done, "done.png", function(){this.showDone();}.bind(this));
  185. this.createTabItem(this.lp.draft, "draft.png", function(){this.showDraft();}.bind(this));
  186. this.createTabItem(this.lp.myfile, "myfile.png", function(){this.showMyfile();}.bind(this));
  187. this.createTabRight();
  188. this.createShadowNode();
  189. },
  190. createTaskList: function(){
  191. if (!this.contentNode) this.loadContent();
  192. this.taskList = new MWF.xApplication.process.TaskCenter.TaskList(this.contentNode, this);
  193. },
  194. showTask: function(){
  195. if (this.currentTab != "task"){
  196. this.showTab(0);
  197. if (!this.taskList){
  198. this.createTaskList();
  199. }
  200. this.taskList.show();
  201. this.currentTab = "task";
  202. }
  203. },
  204. createTaskCompletedList: function(){
  205. if (!this.contentNode) this.loadContent();
  206. this.taskCompletedList = new MWF.xApplication.process.TaskCenter.TaskCompletedList(this.contentNode, this);
  207. },
  208. showDone: function(){
  209. if (this.currentTab != "done"){
  210. this.showTab(1);
  211. if (!this.taskCompletedList){
  212. this.createTaskCompletedList();
  213. }
  214. this.taskCompletedList.show();
  215. this.currentTab = "done"
  216. }
  217. },
  218. showDraft: function(){
  219. this.showTab(2);
  220. },
  221. showMyfile: function(){
  222. this.showTab(3);
  223. },
  224. showTab: function(idx){
  225. this.tabs.each(function(node, i){
  226. if (i==idx){
  227. node.setStyles(this.css.tabItemNode_current);
  228. }else{
  229. node.setStyles(this.css.tabItemNode);
  230. }
  231. }.bind(this));
  232. this.tabShadows.each(function(node, i){
  233. if (i==idx){
  234. node.setStyles(this.css.tabShadowItemNode_current);
  235. }else{
  236. node.setStyles(this.css.tabShadowItemNode);
  237. }
  238. }.bind(this));
  239. },
  240. createTabLeft: function(){
  241. var tab = new Element("div", {
  242. "styles": this.css.tabItemLeftNode,
  243. }).inject(this.tabAreaNode);
  244. },
  245. createTabRight: function(){
  246. var tab = new Element("div", {
  247. "styles": this.css.tabItemRightNode,
  248. }).inject(this.tabAreaNode);
  249. var box = new Element("div", {
  250. "styles": this.css.tabItemRightBoxNode,
  251. }).inject(tab);
  252. },
  253. createTabItem: function(text, icon, action){
  254. var tab = new Element("div", {
  255. "styles": this.css.tabItemNode,
  256. }).inject(this.tabAreaNode);
  257. var tabItem = new Element("div", {
  258. "styles": this.css.tabItemAreaNode,
  259. }).inject(tab);
  260. var tabContent = new Element("div", {
  261. "styles": this.css.tabItemContentNode,
  262. }).inject(tabItem);
  263. var tabIcon = new Element("div", {
  264. "styles": this.css.tabItemIconNode,
  265. }).inject(tabContent);
  266. tabIcon.setStyle("background-image", "url("+"/x_component_process_TaskCenter/$Main/default/tab/"+icon+")");
  267. var tabText = new Element("div", {
  268. "styles": this.css.tabItemTextNode,
  269. "text": text
  270. }).inject(tabContent);
  271. tab.addEvent("click", function(){action();}.bind(this));
  272. this.tabs.push(tab);
  273. },
  274. createShadowNode: function(){
  275. this.tabShadowNode = new Element("div", {
  276. "styles": this.css.tabShadowNode,
  277. }).inject(this.content);
  278. this.createShadowLeftRightNode();
  279. this.createShadowItemNode();
  280. this.createShadowLeftRightNode();
  281. },
  282. createShadowLeftRightNode: function(){
  283. new Element("div", {
  284. "styles": this.css.tabShadowLeftRightNode,
  285. }).inject(this.tabShadowNode);
  286. },
  287. createShadowItemNode: function(){
  288. for (var i=0; i<4; i++){
  289. this.tabShadows.push(new Element("div", {
  290. "styles": this.css.tabShadowItemNode,
  291. }).inject(this.tabShadowNode));
  292. }
  293. },
  294. loadContent: function(){
  295. this.contentNode = new Element("div", {"styles": this.css.contentNode}).inject(this.content);
  296. this.setContentNodeHeight();
  297. this.addEvent("resize", this.setContentNodeHeight.bind(this));
  298. },
  299. setContentNodeHeight: function(){
  300. var size = this.content.getSize();
  301. var titleSize = this.taskTitleBar.getSize();
  302. var tabSize1 = this.tabAreaNode.getSize();
  303. var tabSize2 = this.tabShadowNode.getSize();
  304. var y = size.y-titleSize.y-tabSize1.y-tabSize2.y-1;
  305. this.contentNode.setStyle("height", ""+y+"px");
  306. },
  307. searchTask: function(){
  308. }
  309. });
  310. MWF.xApplication.process.TaskCenter.Application = new Class({
  311. initialize: function(data, app, container){
  312. this.bgColors = ["#30afdc", "#e9573e", "#8dc153", "#9d4a9c", "#ab8465", "#959801", "#434343", "#ffb400", "#9e7698", "#00a489"];
  313. this.data = data;
  314. this.app = app;
  315. this.container = container;
  316. this.css = this.app.css;
  317. this.load();
  318. },
  319. load: function(){
  320. this.node = new Element("div", {"styles": this.css.applicationNode}).inject(this.container);
  321. this.topNode = new Element("div", {"styles": this.css.applicationTopNode}).inject(this.node);
  322. // this.topNode.setStyle("background-color", this.bgColors[(Math.random()*10).toInt()]);
  323. this.iconNode = new Element("div", {"styles": this.css.applicationIconNode}).inject(this.topNode);
  324. if (this.data.icon){
  325. this.iconNode.setStyle("background-image", "url(data:image/png;base64,"+this.data.icon+")");
  326. }else{
  327. this.iconNode.setStyle("background-image", "url("+"/x_component_process_ApplicationExplorer/$Main/default/icon/application.png)")
  328. }
  329. this.textNode = new Element("div", {"styles": this.css.applicationTextNode}).inject(this.topNode);
  330. this.textNode.set("text", this.data.name);
  331. this.childNode = new Element("div", {"styles": this.css.applicationChildNode}).inject(this.node);
  332. this.loadChild();
  333. },
  334. loadChild: function(){
  335. this.app.action.listProcess(function(json){
  336. if (json.data.length){
  337. json.data.each(function(process){
  338. new MWF.xApplication.process.TaskCenter.Process(process, this, this.childNode);
  339. }.bind(this));
  340. }else{
  341. this.node.setStyle("display", "none");
  342. }
  343. }.bind(this), null, this.data.id)
  344. }
  345. });
  346. MWF.xApplication.process.TaskCenter.Process = new Class({
  347. initialize: function(data, application, container){
  348. this.data = data;
  349. this.application = application;
  350. this.app = this.application.app
  351. this.container = container;
  352. this.css = this.app.css;
  353. this.load();
  354. },
  355. load: function(){
  356. this.node = new Element("div", {"styles": this.css.processNode}).inject(this.container);
  357. this.iconNode = new Element("div", {"styles": this.css.processIconNode}).inject(this.node);
  358. this.textNode = new Element("div", {"styles": this.css.processTextNode}).inject(this.node);
  359. this.textNode.set({
  360. "text": this.data.name,
  361. "title": this.data.name+"-"+this.data.description
  362. });
  363. var _self = this;
  364. this.node.addEvents({
  365. "mouseover": function(e){this.node.setStyles(this.css.processNode_over);}.bind(this),
  366. "mouseout": function(e){this.node.setStyles(this.css.processNode_out);}.bind(this),
  367. "click": function(e){
  368. this.startProcess(e);
  369. }.bind(this)
  370. });
  371. },
  372. startProcess: function(e){
  373. this.app.closeStartProcessArea();
  374. MWF.require("MWF.xApplication.process.TaskCenter.ProcessStarter", function(){
  375. var starter = new MWF.xApplication.process.TaskCenter.ProcessStarter(this.data, this.app, {
  376. "onStarted": function(workId){
  377. var _self = this;
  378. var options = {"workId": workId};
  379. this.app.desktop.openApplication(e, "process.Work", options);
  380. }.bind(this)
  381. });
  382. starter.load();
  383. }.bind(this));
  384. }
  385. });
  386. MWF.xApplication.process.TaskCenter.List = new Class({
  387. initialize: function(container, app){
  388. this.container = $(container);
  389. this.app = app;
  390. this.css = this.app.css;
  391. this.currentPageData = [];
  392. this.nextPageData = [];
  393. this.prevPageData = [];
  394. this.count = 0;
  395. this.currentPage = 1;
  396. this.pageCount = 20;
  397. this.pages = 0;
  398. this.load();
  399. },
  400. load: function(){
  401. this.contentNode = new Element("div", {"styles": this.css.listContentNode}).inject(this.container);
  402. this.topPageAreaNode = new Element("div", {"styles": this.css.listPageAreaNode}).inject(this.contentNode);
  403. this.createListAreaNode();
  404. this.bottomPageAreaNode = new Element("div", {"styles": this.css.listPageAreaNode}).inject(this.contentNode);
  405. this.resetListAreaHeight();
  406. this.app.addEvent("resize", this.resetListAreaHeight.bind(this));
  407. this.listCurrentPage();
  408. //this.getAction(function(){
  409. // this.action.listTask(function(json){
  410. // json.data.each(function(task){
  411. //
  412. //
  413. //
  414. // //new MWF.xApplication.process.TaskCenter.Application(app, this, this.startProcessContentNode);
  415. // }.bind(this));
  416. // }.bind(this));
  417. //}.bind(this));
  418. },
  419. listCurrentPage: function(){
  420. this._getCurrentPageData(function(json){
  421. this.count = json.count;
  422. this.reloadPages();
  423. json.data.each(function(task){
  424. new MWF.xApplication.process.TaskCenter.List.Item(task, this);
  425. }.bind(this));
  426. //this.listTable
  427. }.bind(this));
  428. },
  429. reloadPages: function(){
  430. var tmpPages = this.count/this.pageCount;
  431. this.pages = tmpPages.toInt();
  432. if (this.pages<tmpPages) this.pages = this.pages+1;
  433. this.reloadItemPages(this.topPageAreaNode);
  434. this.reloadItemPages(this.bottomPageAreaNode);
  435. },
  436. reloadItemPages: function(node){
  437. var _self = this;
  438. for (var i=this.pages; i>=1; i--){
  439. var pageNode = new Element("div", {
  440. "styles": this.css.listPageNode,
  441. "text": i
  442. }).inject(node);
  443. pageNode.addEvents({
  444. "mouseover": function(){this.setStyle("background-color", "#ffad64");},
  445. "mouseout": function(){this.setStyle("background-color", "#fff");},
  446. "click": function(){_self.gotoPage(this.get("text"));}
  447. });
  448. }
  449. },
  450. gotoPage: function(page){
  451. },
  452. createPageNode: function(){
  453. this.leftAreaPageNode = new Element("div", {"styles": this.css.leftAreaPageNode}).inject(this.contentNode);
  454. this.rightAreaPageNode = new Element("div", {"styles": this.css.rightAreaPageNode}).inject(this.contentNode);
  455. this.leftPageNode = new Element("div", {"styles": this.css.leftPageNode}).inject(this.leftAreaPageNode);
  456. this.rightPageNode = new Element("div", {"styles": this.css.rightPageNode}).inject(this.rightAreaPageNode);
  457. this.leftPageIconNode = new Element("div", {"styles": this.css.leftPageIconNode}).inject(this.leftPageNode);
  458. this.rightPagIconeNode = new Element("div", {"styles": this.css.rightPagIconeNode}).inject(this.rightPageNode);
  459. this.leftAreaPageNode.addEvents({
  460. "mouseover": function(){
  461. this.leftPageNode.fade("in");
  462. this.rightPageNode.fade("in");
  463. }.bind(this),
  464. "mouseout": function(){
  465. this.leftPageNode.fade("out");
  466. this.rightPageNode.fade("out");
  467. }.bind(this),
  468. });
  469. this.rightAreaPageNode.addEvents({
  470. "mouseover": function(){
  471. this.leftPageNode.fade("in");
  472. this.rightPageNode.fade("in");
  473. }.bind(this),
  474. "mouseout": function(){
  475. this.leftPageNode.fade("out");
  476. this.rightPageNode.fade("out");
  477. }.bind(this),
  478. });
  479. this.leftPageNode.addEvent("click", function(){
  480. //for (i=2; i<=100; i++){
  481. // var data = {
  482. // "title": "这是一个测试的流程待办,当前编号是"+i,
  483. // "identity": "胡起(山西-运城办公室)"
  484. // };
  485. // this.app.action.startWork(null, null, "e2520e24-ee72-4bff-bdee-c5e9a4a0dc0d", data)
  486. //}
  487. }.bind(this));
  488. },
  489. //createListTableNode: function(){
  490. // this.listTable = new Element("table", {
  491. // "styles": this.css.listAreaTable,
  492. // "border": "0",
  493. // "cellSpacing": "0",
  494. // "cellpadding": "0"
  495. // }).inject(this.listAreaNode);
  496. //
  497. // var tr = this.listTable.insertRow(0).setStyles(this.css.listTableTitleTr);
  498. // var th = new Element("th", {"styles": this.css.listTableTitle, "text": this.app.lp.list_application}).inject(tr);
  499. // var th = new Element("th", {"styles": this.css.listTableTitle, "text": this.app.lp.list_title}).inject(tr);
  500. // var th = new Element("th", {"styles": this.css.listTableTitle, "text": this.app.lp.list_process}).inject(tr);
  501. // var th = new Element("th", {"styles": this.css.listTableTitle, "text": this.app.lp.list_activity}).inject(tr);
  502. // var th = new Element("th", {"styles": this.css.listTableTitle, "text": this.app.lp.list_comedate}).inject(tr);
  503. //},
  504. createListAreaNode: function(){
  505. },
  506. createListAreaNode: function(){
  507. this.createPageNode();
  508. this.listScrollAreaNode = new Element("div", {"styles": this.css.listScrollAreaNode}).inject(this.contentNode);
  509. this.listAreaNode = new Element("div", {"styles": this.css.listAreaNode}).inject(this.listScrollAreaNode);
  510. //this.createListAreaNode();
  511. MWF.require("MWF.widget.ScrollBar", function(){
  512. new MWF.widget.ScrollBar(this.listScrollAreaNode, {
  513. "style":"xApp_TaskList", "where": "before", "distance": 30, "friction": 4, "axis": {"x": false, "y": true}
  514. });
  515. }.bind(this));
  516. },
  517. resetListAreaHeight: function(){
  518. var size = this.contentNode.getSize();
  519. var pageSize = this.topPageAreaNode.getSize();
  520. var y = size.y - (pageSize.y*2);
  521. this.listScrollAreaNode.setStyle("height", ""+y+"px");
  522. this.leftAreaPageNode.setStyle("height", ""+y+"px");
  523. this.rightAreaPageNode.setStyle("height", ""+y+"px");
  524. //if (this.leftPageNode){
  525. // var nodeSize = this.leftPageNode.getSize();
  526. // var marginY = (y-nodeSize.y)/2-100;
  527. // if (marginY<0) marginY = 0;
  528. //
  529. // this.leftPageNode.setStyle("margin-top", ""+marginY+"px");
  530. // if (this.rightPageNode) this.rightPageNode.setStyle("margin-top", ""+marginY+"px");
  531. //}
  532. this.pageCount = ((y-30)/30).toInt();
  533. },
  534. show: function(){
  535. (new Fx.Scroll(this.container)).toElementEdge(this.contentNode);
  536. },
  537. _getCurrentPageData: function(callback){
  538. this.app.getAction(function(){
  539. var id = (this.currentPageData.length) ? this.currentPageData[this.currentPageData.length-1].id : "(0)";
  540. this.app.action.listTaskNext(function(json){
  541. if (callback) callback(json);
  542. }, null, id, this.pageCount);
  543. }.bind(this));
  544. }
  545. });
  546. MWF.xApplication.process.TaskCenter.TaskList = new Class({
  547. Extends: MWF.xApplication.process.TaskCenter.List
  548. });
  549. MWF.xApplication.process.TaskCenter.TaskCompletedList = new Class({
  550. Extends: MWF.xApplication.process.TaskCenter.List,
  551. _getCurrentPageData: function(callback){
  552. this.app.getAction(function(){
  553. var id = (this.currentPageData.length) ? this.currentPageData[this.currentPageData.length-1].id : "(0)";
  554. this.app.action.listTaskCompletedNext(function(json){
  555. if (callback) callback(json);
  556. }, null, id, this.pageCount);
  557. }.bind(this));
  558. }
  559. });
  560. MWF.xApplication.process.TaskCenter.List.Item = new Class({
  561. initialize: function(data, list){
  562. this.data = data;
  563. this.list = list;
  564. this.container = this.list.listAreaNode;
  565. this.load();
  566. },
  567. load: function(){
  568. this.node = new Element("div", {"styles": this.list.css.itemNode}).inject(this.container);
  569. this.applicationIconNode = new Element("div", {"styles": this.list.css.itemApplicationIconNode}).inject(this.node);
  570. this.timeIconNode = new Element("div", {"styles": this.list.css.itemTimeIconNode}).inject(this.node);
  571. this.contentNode = new Element("div", {"styles": this.list.css.itemContentNode}).inject(this.node);
  572. this.titleNode = new Element("div", {"styles": this.list.css.itemTitleNode}).inject(this.contentNode);
  573. this.inforNode = new Element("div", {"styles": this.list.css.itemInforNode}).inject(this.contentNode);
  574. this.setContent();
  575. },
  576. setContent: function(){
  577. this.titleNode.set("text", this.data.title);
  578. var processNode = new Element("div", {"styles": this.list.css.itemInforProcessNode,"text": this.data.processName}).inject(this.inforNode);
  579. var timeNode = new Element("div", {"styles": this.list.css.itemInforTimeNode, "text": this.data.updateTime}).inject(this.inforNode);
  580. var activityNode = new Element("div", {"styles": this.list.css.itemInforActivityNode, "text": this.data.activityName}).inject(this.inforNode);
  581. }
  582. //load: function(){
  583. // this.node = this.table.insertRow(this.table.rows.length || 0);
  584. // this.node.setStyles(this.list.css.itemLine);
  585. //
  586. // this.appNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.applicationName}).inject(this.node);
  587. // this.titleNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.title}).inject(this.node);
  588. // this.processNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.processName}).inject(this.node);
  589. // this.activityNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.activityName}).inject(this.node);
  590. // this.dateNode = new Element("td", {"styles": this.list.css.itemCell, "text": this.data.updateTime}).inject(this.node);
  591. //
  592. //
  593. // //this.titleNode = this.node.insertCell(this.node.cells.length || 0);
  594. // //this.titleNode.setStyles(this.list.css.itemCell);
  595. // //this.titleNode.set("text", this.data.title);
  596. //}
  597. });