ProcessExplorer.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. MWF.xDesktop.requireApp("process.ProcessManager", "Explorer", null, false);
  2. MWF.xApplication.process.ProcessManager.ProcessExplorer = new Class({
  3. Extends: MWF.xApplication.process.ProcessManager.Explorer,
  4. Implements: [Options, Events],
  5. _createElement: function(e){
  6. var createProcess = function(e, template){
  7. var options = {
  8. "template": template,
  9. "onQueryLoad": function(){
  10. this.actions = _self.app.restActions;
  11. this.application = _self.app.options.application;
  12. }
  13. };
  14. layout.desktop.openApplication(e, "process.ProcessDesigner", options);
  15. };
  16. var createTemplateMaskNode = new Element("div", {"styles": this.css.createTemplateMaskNode}).inject(this.app.content);
  17. var createTemplateAreaNode = new Element("div", {"styles": this.css.createTemplateAreaNode}).inject(this.app.content);
  18. createTemplateAreaNode.fade("in");
  19. var createTemplateScrollNode = new Element("div", {"styles": this.css.createTemplateScrollNode}).inject(createTemplateAreaNode);
  20. var createTemplateContentNode = new Element("div", {"styles": this.css.createTemplateContentNode}).inject(createTemplateScrollNode);
  21. MWF.require("MWF.widget.ScrollBar", function(){
  22. new MWF.widget.ScrollBar(createTemplateScrollNode, {"indent": false});
  23. }.bind(this));
  24. var _self = this;
  25. var url = "/x_component_process_ProcessDesigner/$Process/template/templates.json";
  26. MWF.getJSON(url, function(json){
  27. json.each(function(template){
  28. var templateNode = new Element("div", {"styles": this.css.templateNode}).inject(createTemplateContentNode);
  29. var templateIconNode = new Element("div", {"styles": this.css.templateIconNode}).inject(templateNode);
  30. var templateTitleNode = new Element("div", {"styles": this.css.templateTitleNode, "text": template.title}).inject(templateNode);
  31. templateNode.store("template", template.name);
  32. var templateIconImgNode = new Element("img", {"styles": this.css.templateIconImgNode}).inject(templateIconNode);
  33. templateIconImgNode.set("src", "/x_component_process_ProcessDesigner/$Process/template/"+template.icon);
  34. templateNode.addEvents({
  35. "mouseover": function(){this.setStyles(_self.css.templateNode_over)},
  36. "mouseout": function(){this.setStyles(_self.css.templateNode)},
  37. "mousedown": function(){this.setStyles(_self.css.templateNode_down)},
  38. "mouseup": function(){this.setStyles(_self.css.templateNode_over)},
  39. "click": function(e){
  40. createProcess(e, this.retrieve("template"));
  41. createTemplateAreaNode.destroy();
  42. createTemplateMaskNode.destroy();
  43. }
  44. });
  45. }.bind(this))
  46. }.bind(this));
  47. createTemplateMaskNode.addEvent("click", function(){
  48. createTemplateAreaNode.destroy();
  49. createTemplateMaskNode.destroy();
  50. });
  51. var size = this.app.content.getSize();
  52. var y = (size.y - 262)/2;
  53. var x = (size.x - 828)/2;
  54. if (y<0) y=0;
  55. if (x<0) x=0;
  56. createTemplateAreaNode.setStyles({
  57. "top": ""+y+"px",
  58. "left": ""+x+"px"
  59. });
  60. },
  61. _loadItemDataList: function(callback){
  62. this.app.restActions.listProcess(this.app.options.application.id,callback);
  63. },
  64. _getItemObject: function(item){
  65. return new MWF.xApplication.process.ProcessManager.ProcessExplorer.Process(this, item)
  66. },
  67. deleteItems: function(){
  68. this.hideDeleteAction();
  69. while (this.deleteMarkItems.length){
  70. var item = this.deleteMarkItems.shift();
  71. if (this.deleteMarkItems.length){
  72. item.deleteProcess();
  73. }else{
  74. item.deleteProcess(function(){
  75. // this.reloadItems();
  76. //this.hideDeleteAction();
  77. }.bind(this));
  78. }
  79. }
  80. }
  81. });
  82. MWF.xApplication.process.ProcessManager.ProcessExplorer.Process = new Class({
  83. Extends: MWF.xApplication.process.ProcessManager.Explorer.Item,
  84. _open: function(e){
  85. var _self = this;
  86. var options = {
  87. "onQueryLoad": function(){
  88. this.actions = _self.explorer.actions;
  89. this.category = _self;
  90. this.options.id = _self.data.id;
  91. this.application = _self.explorer.app.options.application;
  92. }
  93. };
  94. this.explorer.app.desktop.openApplication(e, "process.ProcessDesigner", options);
  95. },
  96. _getIcon: function(){
  97. var x = (Math.random()*49).toInt();
  98. return "process_icon_"+x+".png";
  99. },
  100. _getLnkPar: function(){
  101. return {
  102. "icon": this.explorer.path+this.explorer.options.style+"/processIcon/lnk.png",
  103. "title": this.data.name,
  104. "par": "process.ProcessDesigner#{\"id\": \""+this.data.id+"\"}"
  105. };
  106. },
  107. // deleteItem: function(e){
  108. // var _self = this;
  109. // this.explorer.app.confirm("info", e, this.explorer.app.lp.process.deleteProcessTitle, this.explorer.app.lp.process.deleteProcess, 320, 110, function(){
  110. // _self.deleteProcess();
  111. // this.close();
  112. // },function(){
  113. // this.close();
  114. // });
  115. // },
  116. deleteProcess: function(callback){
  117. this.explorer.actions.deleteProcess(this.data.id, function(){
  118. this.node.destroy();
  119. if (callback) callback();
  120. }.bind(this));
  121. }
  122. });