FormExplorer.min.js 12 KB

1
  1. MWF.xDesktop.requireApp("cms.ColumnManager","Explorer",null,false);MWF.xApplication.cms.ColumnManager.FormExplorer=new Class({Extends:MWF.xApplication.cms.ColumnManager.Explorer,Implements:[Options,Events],options:{create:MWF.CMSCM.LP.form.create,search:MWF.CMSCM.LP.form.search,searchText:MWF.CMSCM.LP.form.searchText,noElement:MWF.CMSCM.LP.form.noFormNoticeText},_createElement:function(e){this.formTemplateList=null;this.defalutFormTemplateList=null;var n=this;var a=function(t,i){layout.desktop.getFormDesignerStyle(function(){var e={style:layout.desktop.formDesignerStyle,template:i,onQueryLoad:function(){this.actions=n.app.restActions;this.application=n.app.options.application}};layout.desktop.openApplication(t,"cms.FormDesigner",e)}.bind(this))};var r=function(t,i){layout.desktop.getFormDesignerStyle(function(){var e={style:layout.desktop.formDesignerStyle,templateId:i,onQueryLoad:function(){this.actions=n.app.restActions;this.application=n.app.options.application}};layout.desktop.openApplication(t,"cms.FormDesigner",e)}.bind(this))};var p=new Element("div",{styles:this.css.createTemplateMaskNode}).inject(this.app.content);var l=new Element("div",{styles:this.css.createFormTemplateAreaNode}).inject(this.app.content);l.fade("in");var t=new Element("div",{styles:this.css.createTemplateFormTitleNode,text:this.app.lp.createSelectTemplate}).inject(l);var o=new Element("div",{styles:this.css.createTemplateFormCategoryNode}).inject(l);var i=new Element("div",{styles:this.css.createTemplateFormCategoryTitleNode,text:this.app.lp.templateCategory}).inject(o);var c=new Element("div",{styles:this.css.createTemplateFormContentNode}).inject(l);var s=new Element("div",{styles:this.css.createTemplateFormCategoryItemNode,text:this.app.lp.all}).inject(o);s.addEvent("click",function(){v()});this.app.restActions.listFormTemplateCategory(function(e){e.data.each(function(e){var t=new Element("div",{styles:this.css.createTemplateFormCategoryItemNode,text:e.name+"("+e.count+")",value:e.name}).inject(o);t.addEvent("click",function(){c.empty();o.getElements("div").each(function(e,t){if(t>0)e.setStyles(n.css.createTemplateFormCategoryItemNode)});this.setStyles(n.css.createTemplateFormCategoryItemNode_current);u(this.get("value"))})}.bind(this))}.bind(this));var m=function(){var e=this.app.content.getSize();var t=e.y*.1/2;var i=e.x*.1/2;if(t<0)t=0;if(i<0)i=0;l.setStyles({top:""+t+"px",left:""+i+"px"});t=e.y*.9-o.getSize().y-70;c.setStyle("height",""+t+"px")}.bind(this);m();this.app.addEvent("resize",m);var d=function(t){if(this.defalutFormTemplateList){if(t)t()}else{var e="/x_component_cms_FormDesigner/Module/Form/template/templates.json";MWF.getJSON(e,function(e){this.defalutFormTemplateList=e;if(t)t()}.bind(this))}}.bind(this);var f=function(){d(function(){this.defalutFormTemplateList.each(function(e){var t=new Element("div",{styles:this.css.formTemplateNode}).inject(c);var i=new Element("div",{styles:this.css.formTemplateIconNode}).inject(t);var o=new Element("div",{styles:this.css.formTemplateTitleNode,text:e.title}).inject(t);t.store("template",e.name);var s=new Element("img",{styles:this.css.formTemplateIconImgNode}).inject(i);s.set("src","/x_component_cms_FormDesigner/Module/Form/template/"+e.icon);t.addEvents({mouseover:function(){this.setStyles(n.css.formTemplateNode_over)},mouseout:function(){this.setStyles(n.css.formTemplateNode)},mousedown:function(){this.setStyles(n.css.formTemplateNode_down)},mouseup:function(){this.setStyles(n.css.formTemplateNode_over)},click:function(e){a(e,this.retrieve("template"));n.app.removeEvent("resize",m);l.destroy();p.destroy()}})}.bind(this))}.bind(this))}.bind(this);var h=function(t){if(this.formTemplateList){if(t)t()}else{this.app.restActions.listFormTemplate(function(e){this.formTemplateList=e.data;if(t)t()}.bind(this))}}.bind(this);var u=function(o){h(function(){Object.each(this.formTemplateList,function(e,t){var i=o?t==o:true;if(i){e.each(function(e){var t=new Element("div",{styles:this.css.formTemplateNode}).inject(c);var i=new Element("div",{styles:this.css.formTemplatePreviewNode}).inject(t);var o=new Element("div",{styles:this.css.formTemplateTitleNode,text:e.name}).inject(t);t.store("template",e.id);i.set("html",e.outline);var s=new Element("img",{styles:this.css.formTemplateActionNode}).inject(i);s.addEvent("click",function(t){var e=this.getParent().getParent();var i=e.retrieve("template");n.app.confirm("wram",t,n.app.lp.form.deleteFormTemplateTitle,n.app.lp.form.deleteFormTemplate,300,120,function(){n.app.restActions.deleteFormTemplate(i,function(e){n.app.removeEvent("resize",m);l.destroy();p.destroy();n._createElement(t)}.bind(this));this.close()},function(){this.close()});t.stopPropagation()});t.addEvents({mouseover:function(){this.setStyles(n.css.formTemplateNode_over);if(s)s.setStyle("display","block")},mouseout:function(){this.setStyles(n.css.formTemplateNode);if(s)s.setStyle("display","none")},mousedown:function(){this.setStyles(n.css.formTemplateNode_down)},mouseup:function(){this.setStyles(n.css.formTemplateNode_over)},click:function(e){r(e,this.retrieve("template"));n.app.removeEvent("resize",m);l.destroy();p.destroy()}})}.bind(this))}}.bind(this))}.bind(this))}.bind(this);var v=function(){c.empty();o.getElements("div").each(function(e,t){if(t>0)e.setStyles(n.css.createTemplateFormCategoryItemNode)});s.setStyles(n.css.createTemplateFormCategoryItemNode_current);f();u()};v();p.addEvent("click",function(){this.app.removeEvent("resize",m);l.destroy();p.destroy()}.bind(this))},showDeleteAction:function(){if(!this.deleteItemsAction){this.deleteItemsAction=new Element("div",{styles:this.css.deleteItemsAction,text:this.app.lp.deleteItems}).inject(this.node);this.deleteItemsAction.fade("in");this.deleteItemsAction.position({relativeTo:this.elementContentListNode});this.deleteItemsAction.addEvent("click",function(){var e=this;this.app.confirm("warn",this.deleteItemsAction,MWF.CMSCM.LP.form.deleteFormTitle,MWF.CMSCM.LP.form.deleteForm,300,120,function(){e.deleteItems();this.close()},function(){this.close()})}.bind(this))}},_loadItemDataList:function(e){this.app.restActions.listForm(this.app.options.column.id,e)},_getItemObject:function(e,t){return new MWF.xApplication.cms.ColumnManager.FormExplorer.Form(this,e,{index:t})},setTooltip:function(){this.options.tooltip={create:MWF.CMSCM.LP.form.create,search:MWF.CMSCM.LP.form.search,searchText:MWF.CMSCM.LP.form.searchText,noElement:MWF.CMSCM.LP.form.noFormNoticeText}},deleteItems:function(){while(this.deleteMarkItems.length){var e=this.deleteMarkItems.shift();if(this.deleteMarkItems.length){e.deleteForm()}else{e.deleteForm(function(){this.hideDeleteAction();this.reload()}.bind(this))}}},keyCopy:function(t){if(this.selectMarkItems.length){var i=[];var o=0;var s=function(e){if(o>=this.selectMarkItems.length){if(i.length){var t=JSON.encode(i);if(e){e.clipboardData.setData("text/plain",t)}else{window.clipboardData.setData("Text",t)}this.app.notice(this.app.lp.copyed,"success")}}}.bind(this);this.selectMarkItems.each(function(e){this.app.restActions.getForm(e.data.id,function(e){e.data.elementType="form";i.push(e.data);o++;s(t)}.bind(this),null,false)}.bind(this))}},keyPaste:function(e){var t="";if(e){t=e.clipboardData.getData("text/plain")}else{t=window.clipboardData.getData("Text")}var i=JSON.decode(t);this.pasteItem(i,0)},pasteItem:function(e,t){if(t<e.length){var i=e[t];if(i.elementType==="form"){this.saveItemAs(i,function(){t++;this.pasteItem(e,t)}.bind(this),function(){t++;this.pasteItem(e,t)}.bind(this),function(){this.reload()}.bind(this))}else{t++;this.pasteItem(e,t)}}else{this.reload()}},saveItemAs:function(l,c,m,d){this.app.restActions.listForm(this.app.options.application.id,function(e){e.data=e.data||[];var t=1;var i=e.data.filter(function(e){return e.id===l.id});if(i.length){var o=i[0];var s=this.app.lp;var n=this;var a=(new Date).parse(l.updateTime);var r=(new Date).parse(o.updateTime);var p="<div>"+s.copyConfirmInfor+"</div>";p+="<div style='overflow: hidden; margin: 10px 0px; padding: 5px 10px; background-color: #ffffff; border-radius: 6px;'><div style='font-weight: bold; font-size:14px;'>"+s.copySource+" "+o.name+"</div>";p+="<div style='font-size:12px; color: #666666; float: left'>"+o.updateTime+"</div>"+"<div style='color: red; float: right;'>"+(a>=r?"":s.copynew)+"</div></div>";p+="<div style='overflow: hidden; margin: 10px 0px; padding: 5px 10px; background-color: #ffffff; border-radius: 6px;'><div style='clear: both;font-weight: bold; font-size:14px;'>"+s.copyTarget+" "+l.name+"</div>";p+="<div style='font-size:12px; color: #666666; float: left;'>"+l.updateTime+"</div>"+"<div style='color: red; float: right;'>"+(a<=r?"":s.copynew)+"</div></div>";this.app.dlg("inofr",null,this.app.lp.copyConfirmTitle,{html:p},500,290,[{text:s.copyConfirm_overwrite,action:function(){n.saveItemAsUpdate(o,l,c,m);this.close()}},{text:s.copyConfirm_new,action:function(){n.saveItemAsNew(e,l,c,m);this.close()}},{text:s.copyConfirm_skip,action:function(){this.close();if(c)c()}},{text:s.copyConfirm_cancel,action:function(){this.close();if(d)d()}}])}else{this.saveItemAsNew(e,l,c,m)}}.bind(this),function(){if(m)m()}.bind(this))},saveItemAsUpdate:function(e,t,i,o){var s=this.app.options.application;var n=JSON.decode(MWF.decodeJsonString(t.data));var a=JSON.decode(MWF.decodeJsonString(t.mobileData));n.id=e.id;n.isNewForm=false;n.json.id=e.id;n.json.application=s.id;n.json.applicationName=s.name;n.json.name=e.name;n.json.alias=e.alias;n.json.appId=s.id;n.json.appName=s.name;a.json.id=e.id;a.json.application=s.id;a.json.applicationName=s.name;a.applicationName=s.name;a.json.name=e.name;a.json.alias=e.alias;a.json.appId=s.id;a.json.appName=s.name;this.app.restActions.saveForm(n,a,t.fieldList,function(){if(i)i()}.bind(this),function(){if(o)o()}.bind(this))},saveItemAsNew:function(e,t,i,o){var s=this.app.options.application;var n=s.id;var a=s.name;var r=JSON.decode(MWF.decodeJsonString(t.data));var p=JSON.decode(MWF.decodeJsonString(t.mobileData));var l=r.json.name;var c=1;while(e.data.some(function(e){return e.name==r.json.name})){r.json.name=l+"_copy"+c;p.json.name=l+"_copy"+c;c++}r.id="";r.isNewForm=true;r.json.id="";r.json.application=n;r.json.applicationName=a;r.json.appId=n;r.json.appName=a;r.json.alias="";p.json.id="";p.json.application=n;p.json.applicationName=a;p.applicationName=a;p.json.appId=n;p.json.appName=a;p.json.alias="";this.app.restActions.saveForm(r,p,t.fieldList,function(){if(i)i()}.bind(this),function(){if(o)o()}.bind(this))}});MWF.xApplication.cms.ColumnManager.FormExplorer.Form=new Class({Extends:MWF.xApplication.cms.ColumnManager.Explorer.Item,_open:function(i){layout.desktop.getFormDesignerStyle(function(){var e=this;var t={style:layout.desktop.formDesignerStyle,onQueryLoad:function(){this.actions=e.explorer.actions;this.category=e;this.options.id=e.data.id;this.column=e.explorer.app.options.column;this.application=e.explorer.app.options.column}};this.explorer.app.desktop.openApplication(i,"cms.FormDesigner",t)}.bind(this))},_getIcon:function(){var e=(Math.random()*33).toInt();return"process_icon_"+e+".png"},_getLnkPar:function(){return{icon:this.explorer.path+this.explorer.options.style+"/formIcon/lnk.png",title:this.data.name,par:'cms.FormDesigner#{"id": "'+this.data.id+'"}'}},deleteForm:function(e){this.explorer.app.restActions.removeForm(this.data.id,function(){this.node.destroy();if(e)e()}.bind(this))},saveItemAs:function(e){var a=e.id;var r=e.name||e.appName;this.explorer.app.restActions.getForm(this.data.id,function(e){var o=JSON.decode(MWF.decodeJsonString(e.data.data));var s=JSON.decode(MWF.decodeJsonString(e.data.mobileData));o.json.alias="";s.json.alias="";var n=o.json.name;this.explorer.app.restActions.listForm(a,function(e){debugger;e.data=e.data||[];var t=1;while(e.data.some(function(e){return e.name==o.json.name})){o.json.name=n+"_copy"+t;s.json.name=n+"_copy"+t;t++}o.id="";o.isNewForm=true;o.json.id="";o.json.application=a;o.json.applicationName=r;o.json.appId=a;o.json.appName=r;s.json.id="";s.json.application=a;s.applicationName=r;s.json.applicationName=r;s.json.appId=a;s.json.appName=r;var i=[];this.explorer.app.restActions.saveForm(o,s,i,function(){if(a==this.explorer.app.options.application.id)this.explorer.reload()}.bind(this))}.bind(this))}.bind(this))}});