FormExplorer.js 6.5 KB

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