MenuExplorer.js 5.8 KB

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