ViewExplorer.min.js 13 KB

1
  1. MWF.xDesktop.requireApp("cms.ColumnManager","Explorer",null,false);MWF.xApplication.cms.ColumnManager.ViewExplorer=new Class({Extends:MWF.xApplication.cms.ColumnManager.Explorer,Implements:[Options,Events],options:{style:"default",create:MWF.CMSCM.LP.view.create,search:MWF.CMSCM.LP.view.search,searchText:MWF.CMSCM.LP.view.searchText,noElement:MWF.CMSCM.LP.view.noViewNoticeText},_createElement:function(e){var s=this;var t=function(t,i){layout.desktop.getFormDesignerStyle(function(){var e={style:layout.desktop.formDesignerStyle,onQueryLoad:function(){this.actions=s.app.restActions;this.column=s.app.options.column;this.application=s.app.options.column;this.relativeForm=i},onPostSave:function(){s.reload()}};layout.desktop.openApplication(t,"cms.ViewDesigner",e)}.bind(this))};this.loadSelectFormDialog(t)},loadSelectFormDialog:function(o,e,t){var a=this;var l=new Element("div",{styles:this.css.selectFormMaskNode}).inject(this.app.content);var r=new Element("div",{styles:this.css.selectFormTemplateAreaNode}).inject(this.app.content);r.fade("in");var i=new Element("div",{styles:this.css.createTemplateFormTitleNode,text:e||this.app.lp.view.selectRelativeForm}).inject(r);var s=new Element("div",{styles:this.css.selectFormScrollNode}).inject(r);var p=new Element("div",{styles:this.css.selectFormContentNode}).inject(s);MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(s,{indent:false})}.bind(this));var a=this;this.app.restActions.listForm(t||this.app.options.column.id,function(e){e.data.each(function(e){var t=new Element("div",{styles:this.css.formNode}).inject(p);var i="process_icon_"+(Math.random()*33).toInt()+".png";var s=this.path+this.options.style+"/processIcon/"+i;var n=new Element("div",{styles:this.css.formIconNode}).inject(t);n.setStyle("background","url("+s+") center center no-repeat");new Element("div",{styles:this.css.formTitleNode,text:e.name}).inject(t);new Element("div",{styles:this.css.formDescriptionNode,text:e.description||"",title:e.description||""}).inject(t);new Element("div",{styles:this.css.formDateNode,text:e.updateTime||""}).inject(t);t.store("form",{name:e.name,id:e.id});t.addEvents({mouseover:function(){this.setStyles(a.css.formNode_over)},mouseout:function(){this.setStyles(a.css.formNode)},mousedown:function(){this.setStyles(a.css.formNode_down)},mouseup:function(){this.setStyles(a.css.formNode_over)},click:function(e){if(o)o(e,this.retrieve("form"));r.destroy();l.destroy()}})}.bind(this));var t=this.app.content.getSize();var i=r.getSize();var s=(t.y-i.y)/2;var n=(t.x-i.x)/2;if(s<0)s=0;if(n<0)n=0;r.setStyles({top:""+s+"px",left:""+n+"px"})}.bind(this));l.addEvent("click",function(){r.destroy();l.destroy()})},_loadItemDataList:function(e){this.actions.listView(this.app.options.column.id,e)},_getItemObject:function(e,t){return new MWF.xApplication.cms.ColumnManager.ViewExplorer.View(this,e,{index:t})},setTooltip:function(){this.options.tooltip={create:MWF.CMSCM.LP.view.create,search:MWF.CMSCM.LP.view.search,searchText:MWF.CMSCM.LP.view.searchText,noElement:MWF.CMSCM.LP.view.noViewNoticeText}},loadElementList:function(){this._loadItemDataList(function(e){e.data=e.data||[];if(e.data.length){e.data.each(function(e){var t=this._getItemObject(e,this.itemArray.length+1);t.load();this.itemObject[e.id]=t;this.itemArray.push(t)}.bind(this))}else{var t=new Element("div",{styles:this.css.noElementNode,text:this.options.noCreate?MWF.CMSCM.LP.view.noViewNoCreateNoticeText:this.options.tooltip.noElement}).inject(this.elementContentListNode);if(!this.options.noCreate){t.addEvent("click",function(e){this._createElement(e)}.bind(this))}}}.bind(this))},deleteItems:function(){while(this.deleteMarkItems.length){var e=this.deleteMarkItems.shift();if(this.deleteMarkItems.length){e.deleteView()}else{e.deleteView(function(){this.hideDeleteAction();this.reload()}.bind(this))}}},keyCopy:function(t){if(this.selectMarkItems.length){var i=[];var s=0;var n=function(e){if(s>=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.getView(e.data.id,function(e){e.data.elementType="view";i.push(e.data);s++;n(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.loadSelectFormDialog(function(e,t){this.pasteItem(i,0,t)}.bind(this),"请选择需粘贴视图的关联表单")},pasteItem:function(e,t,i){if(t<e.length){var s=e[t];if(s.elementType==="view"){this.saveItemAs(s,function(){t++;this.pasteItem(e,t,i)}.bind(this),function(){t++;this.pasteItem(e,t,i)}.bind(this),function(){this.reload()}.bind(this),i)}else{t++;this.pasteItem(e,t,i)}}else{this.reload()}},saveItemAs:function(p,c,d,h,m){this.app.restActions.listView(this.app.options.application.id,function(e){e.data=e.data||[];var t=1;var i=e.data.filter(function(e){return e.id===p.id});if(i.length){var s=i[0];var n=this.app.lp;var o=this;var a=(new Date).parse(p.updateTime);var l=(new Date).parse(s.updateTime);var r="<div>"+n.copyConfirmInfor+"</div>";r+="<div style='overflow: hidden; margin: 10px 0px; padding: 5px 10px; background-color: #ffffff; border-radius: 6px;'><div style='font-weight: bold; font-size:14px;'>"+n.copySource+" "+s.name+"</div>";r+="<div style='font-size:12px; color: #666666; float: left'>"+s.updateTime+"</div>"+"<div style='font-size:12px; color: #666666; float: left; margin-left: 20px;'></div>"+"<div style='color: red; float: right;'>"+(a>=l?"":n.copynew)+"</div></div>";r+="<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;'>"+n.copyTarget+" "+p.name+"</div>";r+="<div style='font-size:12px; color: #666666; float: left;'>"+p.updateTime+"</div>"+"<div style='font-size:12px; color: #666666; float: left; margin-left: 20px;'></div>"+"<div style='color: red; float: right;'>"+(a<=l?"":n.copynew)+"</div></div>";this.app.dlg("inofr",null,this.app.lp.copyConfirmTitle,{html:r},500,290,[{text:n.copyConfirm_overwrite,action:function(){o.saveItemAsUpdate(s,p,c,d);this.close()}},{text:n.copyConfirm_new,action:function(){o.saveItemAsNew(e,p,c,d);this.close()}},{text:n.copyConfirm_skip,action:function(){this.close();if(c)c()}},{text:n.copyConfirm_cancel,action:function(){this.close();if(h)h()}}])}else{this.saveItemAsNew(e,p,c,d,m)}}.bind(this),function(){if(d)d()}.bind(this))},saveItemAsUpdate:function(e,i,t,s,n){i.isNew=false;i.id=e.id;i.application=e.appId||e.application;i.applicationName=e.appName||e.applicationName;i.appId=i.application;i.appName=i.applicationName;i.name=e.name;i.alias=e.alias;i.formId=n.id;var o=JSON.parse(i.content);o.application=i.application;o.applicationName=i.applicationName;o.relativeForm=n;o.id=i.id;o.name=e.name;o.alias=e.alias;var a=[];o.columns.each(function(e){e.id=this.app.restActions.getUUID();e.isNew=false;var t={};t.id=e.id;t.isNew=true;t.viewId=i.id;t.fieldTitle=e.title;t.fieldName=e.value;t.xshowSequence=n.id;a.push(t)}.bind(this));i.content=JSON.stringify(o);this.app.restActions.saveView(i,function(){if(t)t()}.bind(this),function(){if(s)s()}.bind(this))},saveItemAsNew:function(e,i,t,s,n){var o=this.app.options.application;var a=o.id;var l=o.name;var r=i.name;var p=1;while(e.data.some(function(e){return e.name==i.name||e.alias==i.name})){i.name=r+"_copy"+p;i.alias=r+"_copy"+p;p++}i.isNew=true;i.id=this.app.restActions.getUUID();i.application=a;i.applicationName=l;i.appId=a;i.appName=l;i.formId=n.id;var c=JSON.parse(i.content);c.application=i.application;c.applicationName=i.applicationName;c.relativeForm=n;c.id=i.id;c.name=i.name;c.alias=i.alias;var d=[];c.columns.each(function(e){e.id=this.app.restActions.getUUID();e.isNew=false;var t={};t.id=e.id;t.isNew=true;t.viewId=i.id;t.fieldTitle=e.title;t.fieldName=e.value;t.xshowSequence=n.id;d.push(t)}.bind(this));i.content=JSON.stringify(c);delete i.createTime;delete i.updateTime;delete i.elementType;this.app.restActions.saveView(i,function(){if(t)t()}.bind(this),function(){if(s)s()}.bind(this))}});MWF.xApplication.cms.ColumnManager.ViewExplorer.View=new Class({Extends:MWF.xApplication.cms.ColumnManager.Explorer.Item,load_bak:function(){if(this.options.index%2==0){this.itemNodeCss=this.explorer.css.itemNode_even}else{this.itemNodeCss=this.explorer.css.itemNode}this.node=new Element("div",{styles:this.itemNodeCss,events:{click:function(e){this._open(e);e.stopPropagation()}.bind(this),mouseover:function(){this.node.setStyles(this.explorer.css.itemNode_over)}.bind(this),mouseout:function(){this.node.setStyles(this.itemNodeCss)}.bind(this)}}).inject(this.container,this.options.where);if(this.data.name.icon)this.icon=this.data.name.icon;var e=this.explorer.path+""+this.explorer.options.style+"/processIcon/"+this.icon;var t=new Element("div",{styles:this.explorer.css.itemIconNode}).inject(this.node);t.setStyle("background","url("+e+") center center no-repeat");t.makeLnk({par:this._getLnkPar()});this.actionsArea=new Element("div.actionsArea",{styles:this.explorer.css.actionsArea}).inject(this.node);if(!this.explorer.options.noDelete){this.deleteActionNode=new Element("div.deleteAction",{styles:this.explorer.css.deleteAction}).inject(this.actionsArea);this.deleteActionNode.addEvent("click",function(e){this.deleteItem(e);e.stopPropagation()}.bind(this));this.deleteActionNode.addEvents({mouseover:function(e){this.deleteActionNode.setStyles(this.explorer.css.deleteAction_over)}.bind(this),mouseout:function(e){this.deleteActionNode.setStyles(this.explorer.css.deleteAction)}.bind(this)})}var i=new Element("div.itemInforNode",{styles:this.explorer.css.itemInforNode}).inject(this.node);var s=new Element("div.itemInforBaseNode",{styles:this.explorer.css.itemInforBaseNode}).inject(i);new Element("div.itemTextTitleNode",{styles:this.explorer.css.itemTextTitleNode,text:this.data.name,title:this.data.name}).inject(s);new Element("div.itemTextAliasNode",{styles:this.explorer.css.itemTextAliasNode,text:this.data.alias,title:this.data.alias}).inject(s);new Element("div.itemTextDateNode",{styles:this.explorer.css.itemTextDateNode,text:this.data.updateTime||""}).inject(s);new Element("div.itemTextDescriptionNode",{styles:this.explorer.css.itemTextDescriptionNode,text:this.data.description||"",title:this.data.description||""}).inject(s);this._customNodes()},_customNodes:function(){},_open:function(e){var t=this;var i={onQueryLoad:function(){this.actions=t.explorer.actions;this.category=t;this.options.id=t.data.id;this.column=t.explorer.app.options.column;this.application=t.explorer.app.options.column;this.options.noModifyName=t.explorer.options.noModifyName;this.options.readMode=t.explorer.options.readMode,this.options.formId=t.data.formId}};this.explorer.app.desktop.openApplication(e,"cms.ViewDesigner",i)},_getIcon:function(){var e=(Math.random()*33).toInt();return"process_icon_"+e+".png"},_getLnkPar:function(){return{icon:this.explorer.path+this.explorer.options.style+"/viewIcon/lnk.png",title:this.data.name,par:'cms.ViewDesigner#{"id": "'+this.data.id+'", "application": '+JSON.stringify(this.explorer.app.options.application)+"}"}},deleteView:function(e){this.explorer.app.restActions.deleteView(this.data.id,function(){this.node.destroy();if(e)e()}.bind(this))},saveas:function(){MWF.xDesktop.requireApp("Selector","package",function(){var e=this.explorer.app.options.application;e.name=e.appName;debugger;var t=new MWF.O2Selector(this.explorer.app.content,{title:this.explorer.app.lp.copyto,type:"CMSApplication",count:1,values:[e],onComplete:function(e){e.each(function(e){this.saveItemAs(e.data)}.bind(this))}.bind(this)})}.bind(this))},saveItemAs:function(i){this.explorer.loadSelectFormDialog(function(e,t){this._saveItemAs(i,t)}.bind(this),"请选择需粘贴视图的关联表单",i.id)},_saveItemAs:function(e,a){this.app=this.app||this.explorer.app;var l=e.id;var r=e.name||e.appName;this.explorer.app.restActions.getView(this.data.id,function(e){var n=e.data;var o=n.name;this.explorer.app.restActions.listView(l,function(e){e.data=e.data||[];var t=1;while(e.data.some(function(e){return e.name==n.name||e.alias==n.name})){n.name=o+"_copy"+t;n.alias=o+"_copy"+t;t++}n.isNew=true;n.id=this.app.restActions.getUUID();n.application=l;n.applicationName=r;n.appId=l;n.appName=r;n.formId=a.id;var i=JSON.parse(n.content);i.application=n.application;i.applicationName=n.applicationName;i.relativeForm=a;i.id=n.id;i.name=n.name;i.alias=n.alias;var s=[];i.columns.each(function(e){e.id=this.app.restActions.getUUID();e.isNew=false;var t={};t.id=e.id;t.isNew=true;t.viewId=n.id;t.fieldTitle=e.title;t.fieldName=e.value;t.xshowSequence=a.id;s.push(t)}.bind(this));n.content=JSON.stringify(i);delete n.createTime;delete n.updateTime;delete n.elementType;this.explorer.app.restActions.saveView(n,function(){if(l==this.explorer.app.options.application.id)this.explorer.reload()}.bind(this))}.bind(this))}.bind(this))}});