View.min.js 8.6 KB

1
  1. MWF.xApplication=MWF.xApplication||{};MWF.xApplication.cms=MWF.xApplication.cms||{};MWF.xApplication.cms.QueryViewDesigner=MWF.xApplication.cms.QueryViewDesigner||{};MWF.CMSQVD=MWF.xApplication.cms.QueryViewDesigner;MWF.require("MWF.xScript.CMSMacro",null,false);MWF.xDesktop.requireApp("cms.QueryViewDesigner","lp."+MWF.language,null,false);MWF.xDesktop.requireApp("cms.QueryViewDesigner","Property",null,false);MWF.xDesktop.requireApp("process.ViewDesigner","View",null,false);MWF.xApplication.cms.QueryViewDesigner.View=new Class({Extends:MWF.xApplication.process.ViewDesigner.View,Implements:[Options,Events],options:{style:"default",isView:false,showTab:true,propertyPath:"/x_component_cms_QueryViewDesigner/$View/view.html"},initialize:function(e,t,i){this.setOptions(i);this.path="/x_component_process_ViewDesigner/$View/";this.cssPath="/x_component_process_ViewDesigner/$View/"+this.options.style+"/css.wcss";this._loadCss();this.designer=e;this.data=t;if(!this.data.data)this.data.data={};this.parseData();this.node=this.designer.designNode;this.areaNode=new Element("div",{styles:{height:"100%",overflow:"auto"}});this.propertyListNode=this.designer.propertyDomArea;if(this.designer.application){this.data.appId=this.designer.application.id;this.data.appName=this.designer.application.appName||this.designer.application.appName;if(!this.data.creatorPerson)this.data.creatorPerson=layout.desktop.session.user.distinguishedName}this.isNewView=this.data.id?false:true;this.items=[];this.view=this;this.autoSave();this.designer.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID)}.bind(this))},showProperty:function(){if(!this.property){this.property=new MWF.xApplication.cms.QueryViewDesigner.Property(this,this.designer.propertyContentArea,this.designer,{path:this.options.propertyPath,onPostLoad:function(){this.property.show()}.bind(this)});this.property.load()}else{this.property.show()}},loadViewData:function(){if(this.data.id){this.saveSilence(function(){this.viewContentBodyNode.empty();this.viewContentTableNode=new Element("table",{styles:this.css.viewContentTableNode,border:"0px",cellPadding:"0",cellSpacing:"0"}).inject(this.viewContentBodyNode);this.designer.actions.loadQueryView(this.data.id,function(l){var c={};l.data.selectEntryList.each(function(e){c[e.column]=e}.bind(this));if(this.json.data.groupEntry.column){if(l.data.groupGrid.length){l.data.groupGrid.each(function(e,t){var i=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.viewContentTableNode);var s=this.items.length;var n=new Element("td",{styles:this.css.viewContentGroupTdNode,colSpan:s}).inject(i);var a=new Element("div",{styles:this.css.viewContentTdGroupNode}).inject(n);var o=new Element("div",{styles:this.css.viewContentTdGroupIconNode}).inject(a);var r=new Element("div",{styles:this.css.viewContentTdGroupTextNode}).inject(a);r.set("text",e.group);var d=[];e.list.each(function(e){var s=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.viewContentTableNode);s.setStyle("display","none");var t=new Element("td",{styles:this.css.viewContentTdNode}).inject(s);Object.each(e.data,function(e,t){if(t!=this.json.data.groupEntry.column){var i=new Element("td",{styles:this.css.viewContentTdNode}).inject(s);i.set("text",c[t].code?MWF.CMSMacro.exec(c[t].code,{value:e,data:l.data}):e)}}.bind(this));d.push(s)}.bind(this));a.store("subtrs",d);var h=this;a.addEvent("click",function(){var e=this.retrieve("subtrs");var t=a.getFirst("div");if(e[0]){if(e[0].getStyle("display")=="none"){e.each(function(e){e.setStyle("display","table-row")});t.setStyle("background","url("+"/x_component_process_ViewDesigner/$View/default/icon/down.png) center center no-repeat")}else{e.each(function(e){e.setStyle("display","none")});t.setStyle("background","url("+"/x_component_process_ViewDesigner/$View/default/icon/right.png) center center no-repeat")}}h.setContentHeight()})}.bind(this));this.setContentColumnWidth();this.setContentHeight()}}else{if(l.data.grid.length){l.data.grid.each(function(e,t){var s=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.viewContentTableNode);Object.each(e.data,function(e,t){var i=new Element("td",{styles:this.css.viewContentTdNode}).inject(s);i.set("text",c[t].code?MWF.CMSMacro.exec(c[t].code,{value:e,data:l.data}):e)}.bind(this))}.bind(this));this.setContentColumnWidth();this.setContentHeight()}}}.bind(this))}.bind(this))}},addColumn:function(){MWF.require("MWF.widget.UUID",function(){var e=(new MWF.widget.UUID).id;var t={id:e,column:e,displayName:this.designer.lp.unnamed,selectType:"attribute",orderType:"original"};if(!this.json.data.selectEntryList)this.json.data.selectEntryList=[];this.json.data.selectEntryList.push(t);var i=new MWF.xApplication.cms.QueryViewDesigner.View.Column(t,this);this.items.push(i);i.selected();if(this.viewContentTableNode){var s=this.viewContentTableNode.getElements("tr");s.each(function(e){new Element("td",{styles:this.css.viewContentTdNode}).inject(e)}.bind(this))}this.setViewWidth();this.addColumnNode.scrollIntoView(true)}.bind(this))},loadViewColumns:function(){if(this.json.data.selectEntryList){this.json.data.selectEntryList.each(function(e){this.items.push(new MWF.xApplication.cms.QueryViewDesigner.View.Column(e,this))}.bind(this))}},createRootItem:function(){this.items.push(new MWF.xApplication.process.DictionaryDesigner.Dictionary.item("ROOT",this.data.data,null,0,this,true))},saveSilence:function(t){if(!this.data.name){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}if(this.isNewView){this.data.isNewView=true}this.designer.actions.saveQueryView(this.data,function(e){this.isNewView=false;this.data.id=e.data.id;if(this.lisNode){this.lisNode.getLast().set("text",this.data.name+"("+this.data.alias+")")}if(t)t()}.bind(this))},save:function(t){if(!this.data.name){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}if(this.isNewView){this.data.isNewView=true}this.designer.actions.saveQueryView(this.data,function(e){this.isNewView=false;this.designer.notice(this.designer.lp.notice.save_success,"success",this.node,{x:"left",y:"bottom"});this.data.id=e.data.id;if(this.lisNode){this.lisNode.getLast().set("text",this.data.name+"("+this.data.alias+")")}if(t)t()}.bind(this))},saveAs:function(){var e=new MWF.xApplication.cms.QueryViewDesigner.View.NewName(this,{name:this.data.name+"_副本"},{onSave:function(e,t){this._saveAs(e.name,t)}.bind(this)},{app:this.designer});e.edit()},clone:function(e){if(null==e||"object"!=typeof e)return e;if(typeof e.length==="number"){var t=[];for(var i=0,s=e.length;i<s;++i){t[i]=this.clone(e[i])}return t}else{var t={};for(var n in e){t[n]=this.clone(e[n])}return t}},_saveAs:function(e,t){var i=this;var s=this.clone(this.data);s.isNewView=true;s.id=this.designer.actions.getUUID();s.name=e;s.alias="";delete s[this.data.id+"viewFilterType"];s[s.id+"viewFilterType"]="custom";s.data.selectEntryList.each(function(e){e.id=(new MWF.widget.UUID).id}.bind(this));this.designer.actions.saveQueryView(s,function(e){this.designer.notice(this.designer.lp.notice.saveAs_success,"success",this.node,{x:"left",y:"bottom"});if(t)t()}.bind(this))}});MWF.xApplication.cms.QueryViewDesigner.View.Column=new Class({Extends:MWF.xApplication.process.ViewDesigner.View.Column,initialize:function(e,t,i){this.propertyPath="/x_component_cms_QueryViewDesigner/$View/column.html";this.view=t;this.json=e;this.next=i;this.css=this.view.css;this.content=this.view.viewTitleTrNode;this.domListNode=this.view.domListNode;this.load()},showProperty:function(){if(!this.property){this.property=new MWF.xApplication.cms.QueryViewDesigner.Property(this,this.view.designer.propertyContentArea,this.view.designer,{path:this.propertyPath,onPostLoad:function(){this.property.show()}.bind(this)});this.property.load()}else{this.property.show()}}});MWF.xApplication.cms.QueryViewDesigner.View.NewName=new Class({Extends:MPopupForm,Implements:[Options,Events],options:{style:"blue",width:700,height:"220",hasTop:true,hasIcon:false,draggable:true,title:"新数据视图名称"},_createTableContent:function(){var e="<table width='80%' bordr='0' cellpadding='7' cellspacing='0' styles='formTable' style='margin: 20px auto 0px auto; '>"+"<tr><td styles='formTableTitle' lable='name' width='25%'></td>"+" <td styles='formTableValue' item='name' colspan='3'></td></tr>"+"</table>";this.formTableArea.set("html",e);MWF.xDesktop.requireApp("Template","MForm",function(){this.form=new MForm(this.formTableArea,this.data||{},{isEdited:true,style:"cms",hasColon:true,itemTemplate:{name:{text:"名称",notEmpty:true}}},this.app);this.form.load()}.bind(this),null,true)},ok:function(){var e=this.form.getResult(true,null,true,false,true);if(e){this.fireEvent("save",[e,function(){this.close()}.bind(this)])}}});