| 1 |
- MWF.xApplication=MWF.xApplication||{};MWF.xApplication.cms=MWF.xApplication.cms||{};MWF.xApplication.cms.ViewDesigner=MWF.xApplication.cms.ViewDesigner||{};MWF.CMSVD=MWF.xApplication.cms.ViewDesigner;MWF.require("MWF.widget.Common",null,false);MWF.xDesktop.requireApp("cms.ViewDesigner","lp."+MWF.language,null,false);MWF.xApplication.cms.ViewDesigner.View=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",showTab:true},initialize:function(e,t,i){this.setOptions(i);this.path="/x_component_cms_ViewDesigner/$View/";this.cssPath="/x_component_cms_ViewDesigner/$View/"+this.options.style+"/css.wcss";this._loadCss();this.designer=e;this.documentFields=e.documentFields;this.formFields=e.formFields;this.relativeForm=t.content.relativeForm;this.actions=e.actions;this.application=e.application;this.lp=this.designer.lp;this.node=this.designer.designNode;this.tab=this.designer.tab;this.areaNode=new Element("div.areaNode",{styles:{overflow:"hidden"}});this.data=t.content;this.isNewView=this.data.isNew;this.columns=[];this.columnsRemoved=[];this.autoSave();this.designer.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID)}.bind(this))},autoSave:function(){this.autoSaveTimerID=window.setInterval(function(){if(!this.autoSaveCheckNode)this.autoSaveCheckNode=this.designer.contentToolbarNode.getElement("#MWFViewAutoSaveCheck");if(this.autoSaveCheckNode){if(this.autoSaveCheckNode.get("checked")){this.save()}}}.bind(this),6e4)},load:function(){this.setAreaNodeSize();this.designer.addEvent("resize",function(){this.setAreaNodeSize();this.setPropertyContentResize();this.setViewNodeWidth()}.bind(this));this.page=this.tab.addTab(this.areaNode,this.data.name||this.designer.lp.newView,!this.data.isNew&&this.data.id!=this.designer.options.id);this.page.view=this;this.page.addEvent("show",function(){this.designer.viewListAreaNode.getChildren().each(function(e){var t=e.retrieve("view");if(t.id==this.data.id||t.content.isNew&&this.isNewView){if(this.designer.currentListViewItem){this.designer.currentListViewItem.setStyles(this.designer.css.listViewItem)}e.setStyles(this.designer.css.listViewItem_current);this.designer.currentListViewItem=e;this.lisNode=e}}.bind(this));if(!this.propertyNode)this.loadProperty()}.bind(this));this.page.addEvent("queryClose",function(){if(this.autoSaveTimerID)window.clearInterval(this.autoSaveTimerID);this.saveSilence();if(this.lisNode)this.lisNode.setStyles(this.designer.css.listScriptItem)}.bind(this));this.page.tabNode.addEvent("dblclick",this.designer.maxOrReturnEditor.bind(this.designer));this.createViewNode();if(this.options.showTab)this.page.showTabIm();this.setPropertyContentResize()},saveSilence:function(e){this._save(e)},save:function(e){this._save(e,true)},_save:function(t,i){var e=this;if(!this.data.name||this.data.name==""){this.designer.notice(this.lp.notice.inputName,"error");return false}var s={};s.isNew=this.isNewView;s.id=this.data.id;s.name=this.data.name;s.alias=this.data.alias;s.description=this.data.description;s.appId=this.data.application;s.formId=this.data.relativeForm.id;s.orderType=this.data.sortType;s.orderField=this.data.sortField;s.orderFieldType=this.data.sortFieldType;this.data.isNew=false;this.data.columns=this.getColumnsData();s.fields=this.getColumnsItemData();s.content=JSON.stringify(this.data);this.designer.actions.saveView(s,function(e){this.data.id=e.data.id;if(i){this.designer.notice(this.designer.lp.notice.save_success,"success",this.node,{x:"left",y:"bottom"})}if(this.lisNode){this.lisNode.getLast().set("text",this.data.name+"("+this.data.alias+")");if(this.isNewView){this.lisNode.eliminate("view");this.lisNode.store("view",e.data)}}this.data.isNew=false;this.isNewView=false;this.page.textNode.set("text",this.data.name);if(t)t()}.bind(this))},saveAs:function(){var e=new MWF.xApplication.cms.ViewDesigner.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.name=e;s.alias="";var n={};n.isNew=true;n.id=this.designer.actions.getUUID();n.name=e;n.alias="";n.description=s.description;n.appId=s.application;n.formId=s.relativeForm.id;n.orderType=s.sortType;n.orderField=s.sortField;n.orderFieldType=s.sortFieldType;s.isNew=false;var o=this.clone(this.getColumnsData());var a=this.clone(this.getColumnsItemData());debugger;o.each(function(e,t){var i=a[t];var s=this.designer.actions.getUUID();e.id=s;e.isNew=false;e.viewId=n.id;i.id=s;i.isNew=true;i.viewId=n.id}.bind(this));s.columns=o;n.fields=a;n.content=JSON.stringify(s);this.designer.actions.saveView(n,function(e){this.designer.notice(this.designer.lp.notice.saveAs_success,"success",this.node,{x:"left",y:"bottom"});if(t)t()}.bind(this))},explode:function(){},implode:function(){},setAreaNodeSize:function(){var e=this.node.getSize();var t=this.tab.tabNodeContainer.getSize();var i=parseInt(e.y-t.y);this.areaNode.setStyle("height",""+i+"px")},setViewNodeWidth:function(){this.columnWidth=this.getColumnsWidth();var e=this.columnWidth+this.columns.length*2+300;if(this.node.getSize().x-10>e){this.viewNode.setStyle("width",this.node.getSize().x-10+"px")}else{this.viewNode.setStyle("width",e+"px")}},createViewNode:function(){this.viewAreaNode=new Element("div.viewAreaNode",{styles:{"overflow-x":"scroll","overflow-y":"hidden"}}).inject(this.areaNode);this.viewAreaNode.addEvent("scroll",function(){if(this.currentColumn)this.currentColumn._hideActions()}.bind(this));this.setViewAreaNodeSize();this.viewAreaNode.addEvent("click",function(){if(this.currentColumn){this.currentColumn.cancelCurrent();this.currentColumn.hideProperty()}this.showPropertyContent()}.bind(this));this.viewNode=new Element("div.viewNode",{styles:this.css.viewNode}).inject(this.viewAreaNode);this.headBar=new MWF.xApplication.cms.ViewDesigner.View.HeadBar(this);if(this.data.columns&&this.data.columns.length>0){for(var e=0;e<this.data.columns.length;e++){var t=this.data.columns[e];this.addColumn(e,t)}}else{this.addColumn(0)}this.setViewNodeWidth()},setViewAreaNodeSize:function(){var e=this.node.getSize();var t=this.tab.tabNodeContainer.getSize();var i=parseInt((e.y-t.y)/3);this.viewAreaNode.setStyle("height",""+i+"px")},getTemplateData:function(i){if(this.dataTemplate){if(i)i(this.dataTemplate)}else{var e=this.path+this.options.style+"/columnTemplate.json";MWF.getJSON(e,function(e,t){this.dataTemplate=e;if(i)i(e)}.bind(this),false)}},addColumn:function(e,t){if(!t){this.getTemplateData();t=Object.clone(this.dataTemplate);t.isNew=true;t.id=this.actions.getUUID()}e=e||0;if(this.columns.length<=e){e=this.columns.length}var i=new MWF.xApplication.cms.ViewDesigner.View.Column(this,t,e);if(this.columns.length==e){this.columns.push(i)}else{var s=this.columns.splice(e,this.columns.length-e,i);s.each(function(e){e.data.index=e.data.index+1;e.node.set("index",e.data.index)});this.columns=this.columns.concat(s)}this.setEachColumnWidth();this.setViewNodeWidth()},moveColumn:function(e,t){if(e==t)return;var i=[];for(var s=0;s<this.columns.length;s++){if(s!=e){if(s==t&&t!=this.columns.length){i.push(this.columns[e])}i.push(this.columns[s]);if(s==this.columns.length-1&&t==this.columns.length){i.push(this.columns[e])}}}this.columns=i;for(var s=0;s<this.columns.length;s++){c=this.columns[s];c.data.index=s;c.node.set("index",s)}this.setViewNodeWidth()},removeColumn:function(e){if(this.columns.length<=1){this.designer.notice(this.designer.lp.notice.noRemoveOnlyColumn,"error");return}for(var t=e+1;t<this.columns.length;t++){c=this.columns[t];c.data.index=c.data.index-1;c.node.set("index",c.data.index)}this.showPropertyContent();var i=this.columns.splice(e,1);if(!i[0].data.isNew){this.columnsRemoved.push(i[0])}i[0].removeNode();this.setEachColumnWidth();this.setViewNodeWidth()},getColumnNodes:function(){var t=[];this.columns.each(function(e){t.push(e.node)});return t},getColumnsWidth:function(){var t=0;this.columns.each(function(e){t=t+e.data.width});return t},setEachColumnWidth:function(){var i=this.getColumnsWidth();this.columns.each(function(e){if(e.property){var t=Math.round(e.data.width/i*100);e.property.columnPercentageWidthNode.set("text",t);e.data.widthPer=t}})},getColumnsData:function(){var t=[];this.columns.each(function(e){t.push(e.data)});return t},getColumnsItemData:function(t){var i=[];this.columns.each(function(e){i.push(e.getData());if(!t)e.data.isNew=false});return i},loadProperty:function(){this.propertyNode=new Element("div",{styles:this.css.propertyNode}).inject(this.areaNode);this.propertyContentNode=new Element("div.propertyContentNode",{styles:this.css.propertyContentNode}).inject(this.propertyNode);this.viewAreaPercent=.3;this.propertyContentResizeNode=new Element("div",{styles:this.css.propertyContentResizeNode}).inject(this.propertyContentNode);this.propertyTitleNode=new Element("div.propertyTitleNode",{styles:this.css.propertyTitleNode,text:this.lp.viewProperty}).inject(this.propertyContentNode);this.propertyContentArea=new Element("div.propertyContentArea",{styles:this.css.propertyContentArea}).inject(this.propertyContentNode);this.loadPropertyContentResize();this.setPropertyContent();this.propertyNode.addEvent("keydown",function(e){e.stopPropagation()})},setPropertyContent:function(){this.propertyContentContainArea=new Element("div.propertyContentContainArea").inject(this.propertyContentArea);this.viewPropertyNode=new Element("div.viewPropertyNode",{styles:this.css.viewPropertyNode});MWF.require("MWF.widget.Tab",function(){this.propertyTab=new MWF.widget.Tab(this.propertyContentContainArea,{style:"moduleList"});this.propertyTab.load();var e=this.propertyTab.addTab(this.viewPropertyNode,this.lp.base,false);e.contentNodeArea.set("class","viewContentNodeArea");this.setScrollBar(e.contentNodeArea,"small",null,null);this.propertyTab.pages[0].showTab()}.bind(this));var e=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",styles:this.css.editTable,class:"editTable"}).inject(this.viewPropertyNode);var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.id}).inject(t);var i=this.propertyIdNode=new Element("td",{class:"editTableValue",styles:this.css.editTableValue,text:this.data.id?this.data.id:""}).inject(t);var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.relativeForm}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue,text:this.relativeForm.name}).inject(t);var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.name}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.propertyNameNode=new Element("input",{styles:this.css.editTableInput}).inject(i);this.propertyNameNode.addEvent("change",function(){this.data.name=this.propertyNameNode.get("value")}.bind(this));var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.alias}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.propertyAliasNode=new Element("input",{styles:this.css.editTableInput}).inject(i);this.propertyAliasNode.addEvent("change",function(){this.data.alias=this.propertyAliasNode.get("value")}.bind(this));var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.sortColumn}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.propertySortFieldNode=this.getFieldsSelectElement();this.propertySortFieldNode.inject(i);this.propertySortFieldNode.addEvent("change",function(){this.data.sortField=this.getSelectText(this.propertySortFieldNode);this.data.sortFieldType=this.getSelectValue(this.propertySortFieldNode)}.bind(this));this.propertySortTypeNode=this.getSortSelectElement();this.propertySortTypeNode.inject(i);this.propertySortTypeNode.addEvent("change",function(){this.data.sortType=this.getSelectValue(this.propertySortTypeNode)}.bind(this));var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.description}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.propertyDescriptionNode=new Element("textarea",{styles:this.css.editTableTextarea}).inject(i);this.propertyDescriptionNode.addEvent("change",function(){this.data.description=this.propertyDescriptionNode.get("text")}.bind(this));this.setPropertyValue()},hidePropertyContent:function(){this.propertyContentContainArea.setStyle("display","none")},showPropertyContent:function(){if(this.currentColumn){this.currentColumn.hideProperty()}this.propertyTitleNode.set("text",this.lp.viewProperty);this.propertyContentContainArea.setStyle("display","block")},getFormSelectElement:function(e,i){var s=new Element("select",{styles:this.css.propertyFormNode});this.actions.listForm(this.application.id,function(e){e.data.each(function(e){var t=new Element("option",{value:e.id,text:e.name}).inject(s);if(i==e.id){t.selected=true}})}.bind(this),null,false);return s},getFieldsSelectElement:function(){var i=new Element("select");new Element("option",{value:"",text:""}).inject(i);this.documentFields.concat(this.formFields).each(function(e){var t=new Element("option",{value:e.type,text:e.name}).inject(i);if(this.data.sortField==e.name){t.selected=true}}.bind(this));return i},getSortSelectElement:function(){var e=new Element("select",{styles:{"margin-left":"5px"}});var t=new Element("option",{value:"ASC",text:this.lp.asc}).inject(e);if(this.data.sortType=="ASC"){t.selected=true}var t=new Element("option",{value:"DESC",text:this.lp.desc}).inject(e);if(this.data.sortType=="DESC"){t.selected=true}return e},getSelectValue:function(e){var t;e.getElements("option").each(function(e){if(e.selected){t=e.value}});return t},getSelectText:function(e){var t;e.getElements("option").each(function(e){if(e.selected){t=e.text}});return t},loadPropertyContentResize:function(){this.propertyContentResize=new Drag(this.propertyContentResizeNode,{snap:1,onStart:function(e,t){var i=Browser.name=="firefox"?t.event.clientX:t.event.x;var s=Browser.name=="firefox"?t.event.clientY:t.event.y;e.store("position",{x:i,y:s});var n=this.viewAreaNode.getSize();e.store("initialHeight",n.y)}.bind(this),onDrag:function(e,t){var i=this.areaNode.getSize();var s=Browser.name=="firefox"?t.event.clientY:t.event.y;var n=e.retrieve("position");var o=s.toFloat()-n.y.toFloat();var a=e.retrieve("initialHeight").toFloat();var l=a+o;if(l<60)l=60;if(l>i.y-60)l=i.y-60;this.viewAreaPercent=l/i.y;this.setPropertyContentResize()}.bind(this)})},setPropertyContentResize:function(){var e=this.areaNode.getSize();var t=this.propertyContentResizeNode.getSize();var i=e.y-t.y-27;var s=this.viewAreaPercent*i;var n=i-s;this.viewAreaNode.setStyle("height",""+s+"px");this.propertyContentNode.setStyle("height",""+n+"px");var o=this.propertyTab.tabNodeContainer.getSize();var a=this.propertyTitleNode.getSize();var l=this.propertyPageHeight=n-o.y-a.y-20;this.propertyTab.pages.each(function(e){e.contentNodeArea.setStyle("height",""+l+"px")});if(this.currentColumn&&this.currentColumn.property){this.currentColumn.property.propertyTab.pages.each(function(e){e.contentNodeArea.setStyle("height",""+l+"px")})}},setPropertyValue:function(){this.propertyIdNode.set("text",this.data.id);this.propertyNameNode.set("value",this.data.name);this.propertyAliasNode.set("value",this.data.alias);this.propertyDescriptionNode.set("value",this.data.description)},loadEventsEditor:function(t,i){MWF.xDesktop.requireApp("cms.FormDesigner","widget.EventsEditor",function(){var e=new MWF.xApplication.cms.FormDesigner.widget.EventsEditor(t,this.designer,{helpStyle:"cmsView",maxObj:this.node});e.load(i)}.bind(this))},loadScriptEditor:function(t,i,s,n){var o=this.data[i];MWF.require("MWF.widget.ScriptArea",function(){var e=this.scriptArea=new MWF.widget.ScriptArea(t,{title:s,maxObj:this.node,onChange:function(){this.data[i]=e.toJson()}.bind(this),onSave:function(){this.save()}.bind(this),style:n||"default",helpStyle:"cmsView"});e.load(o)}.bind(this))},getViewEventsData:function(i){var e=this.path+this.options.style+"/viewEventsTemplate.json";MWF.getJSON(e,function(e,t){this.data.events=e;if(i)i(e)}.bind(this),false)},getOperationConfig:function(i){if(this.operationConfig){if(i)i(this.operationConfig)}else{var e=this.path+this.options.style+"/operation.json";MWF.getJSON(e,function(e,t){this.operationConfig=e;if(i)i(e)}.bind(this),false)}return this.operationConfig}});MWF.xApplication.cms.ViewDesigner.View.Column=new Class({Implements:[Options,Events],options:{style:"default",actions:[{name:"insertColLeft",icon:"insertColLeft.png",event:"click",action:"insertColLeft",title:MWF.xApplication.cms.ViewDesigner.LP.insertColLeft},{name:"insertColRight",icon:"insertColRight.png",event:"click",action:"insertColRight",title:MWF.xApplication.cms.ViewDesigner.LP.insertColRight},{name:"deleteCol",icon:"deleteCol1.png",event:"click",action:"deleteCol",title:MWF.xApplication.cms.ViewDesigner.LP.deleteCol},{name:"moveCol",icon:"move1.png",event:"click",action:"moveCol",title:MWF.xApplication.cms.ViewDesigner.LP.moveCol}],actionNodeStyles:{width:"16px",height:"16px","margin-left":"2px","margin-right":"2px",float:"left",border:"1px solid #F1F1F1",cursor:"pointer"}},initialize:function(e,t,i){this.view=e;this.css=e.css;this.designer=e.designer;this.data=t;this.container=e.viewNode;this.data.index=i;this.isCurrent=false;this.load()},load:function(){this.createNodes();this.createIconAction();this.setEvent()},createNodes:function(){this.node=new Element("div.column",{styles:this.view.css.columnNode,index:this.data.index});this.node.store("column",this);var e=this.container.getFirst("div.column[index="+this.data.index+"]");if(!e){this.node.inject(this.container)}else{this.node.inject(e,"before")}this.contentNode=new Element("div",{styles:this.view.css.columnContentNode}).inject(this.node);this.contentTitleNode=new Element("div.columnContentTitleNode",{styles:this.view.css.columnContentTitleNode}).inject(this.contentNode);if(this.data.title){this.contentTitleNode.set("text",this.data.title)}else{this.contentTitleNode.set("text",this.view.lp.noTitle)}if(this.data.width){this.contentNode.setStyle("width",this.data.width)}else{this.contentNode.setStyle("width","150px");this.data.width=150}if(this.data.align){this.setAlignIcon()}this.resizeNode=new Element("div",{styles:this.view.css.columnResizeNode}).inject(this.node);this.loadResize();if(this.data.operation){for(var t in this.data.operation){op=this.data.operation[t];this.setOperation(op.name,op.text,op.icon,op.iconOver,op.action)}}if(this.data.sortByClickTitle=="yes"){this.setSortIcon()}},setEvent:function(){this.node.addEvents({click:function(e){if(!this.view.isOnDragging){this.setCurrent()}e.stopPropagation()}.bind(this),mouseover:function(e){if(!this.isCurrent)this.contentNode.setStyles(this.view.css.columnContentNode_over)}.bind(this),mouseout:function(e){if(!this.isCurrent)this.contentNode.setStyles(this.view.css.columnContentNode)}.bind(this)})},_showActions:function(){if(this.actionArea){if(this.options.actions.length){this._setActionAreaPosition();this.actionArea.setStyle("display","block")}}},_hideActions:function(){if(this.actionArea)this.actionArea.setStyle("display","none")},createIconAction:function(){this.actionNodes=this.actionNodes||{};if(!this.actionArea){this.actionArea=new Element("div",{styles:{display:"none",position:"absolute","background-color":"#F1F1F1",padding:"1px","padding-right":"0px",border:"1px solid #AAA","box-shadow":"0px 2px 5px #999",opacity:1,"z-index":100}}).inject(this.container,"after");this.options.actions.each(function(t){var e=this.actionNodes[t.name]=new Element("div",{styles:this.options.actionNodeStyles,title:t.title}).inject(this.actionArea);e.setStyle("background","url("+this.view.path+this.options.style+"/icon/"+t.icon+") no-repeat left center");e.addEvent(t.event,function(e){this[t.action](e);e.stopPropagation()}.bind(this));e.addEvents({mouseover:function(e){e.target.setStyle("border","1px solid #999")}.bind(this),mouseout:function(e){e.target.setStyle("border","1px solid #F1F1F1")}.bind(this)})}.bind(this))}},_setActionAreaPosition:function(){var e=this.node.getPosition(this.designer.designNode.getOffsetParent());var t=e.y-25;var i=e.x;this.actionArea.setPosition({x:i,y:t})},insertColLeft:function(){var e=this.data.index;this.view.addColumn(e);this.view.columns[e].setCurrent()},insertColRight:function(){var e=this.data.index+1;this.view.addColumn(e);this.view.columns[e].setCurrent()},deleteCol:function(){var e=this;this.designer.confirm("warn",this.actionNodes.deleteCol,MWF.xApplication.cms.ViewDesigner.LP.deleteColConfirmTitle,MWF.xApplication.cms.ViewDesigner.LP.deleteColConfirm,300,120,function(){e.view.removeColumn(e.data.index);this.close()},function(){this.close()})},removeNode:function(){if(this.actionArea)this.actionArea.destroy();this.node.destroy()},cancelCurrent:function(){this.isCurrent=false;this.contentNode.setStyles(this.view.css.columnContentNode);this._hideActions()},setCurrent:function(){if(this.view.currentColumn){if(this.view.currentColumn.currentTimeout){clearTimeout(this.view.currentColumn.currentTimeout)}this.view.currentColumn.cancelCurrent();this.view.currentColumn.hideProperty()}this.contentNode.setStyles(this.view.css.columnContentNode_current);this.isCurrent=true;this.setNodeScroll();this.currentTimeout=setTimeout(function(){this._showActions();this.showProperty();if(this.view.propertyPageHeight){this.property.propertyTab.pages.each(function(e){e.contentNodeArea.setStyle("height",""+this.view.propertyPageHeight+"px")}.bind(this))}this.view.currentColumn=this;this.currentTimeout=null}.bind(this),100)},setNodeScroll:function(){var e=this.view.viewAreaNode;var t=this.view.viewNode;var i=e.getCoordinates();var s=i.left;var n=s+i.width;var o=this.node.getCoordinates();if(n-o.left<100){var a=o.left+100-n;if(e.getScroll().x+a<t.getSize().x){e.scrollTo(e.getScroll().x+a,0)}else{e.scrollTo(t.getSize().x,0)}}else if(s>o.left){var a=e.getScroll().x-(s-o.left)-10;if(a>0){e.scrollTo(a,0)}else{e.scrollTo(0,0)}}},loadResize:function(){this.resize=new Drag(this.resizeNode,{snap:1,onStart:function(e,t){var i=Browser.name=="firefox"?t.event.clientX:t.event.x;var s=Browser.name=="firefox"?t.event.clientY:t.event.y;e.store("position",{x:i,y:s});var n=this.contentNode.getSize();e.store("initialWidth",n.x)}.bind(this),onDrag:function(e,t){var i=Browser.name=="firefox"?t.event.clientX:t.event.x;var s=this.view.viewNode.getSize();var n=e.retrieve("position");var o=e.retrieve("initialWidth").toFloat();var a=n.x.toFloat()-i.toFloat();var l=o-a;if(l>s.x/2)l=s.x/2;if(l<40)l=40;this.contentNode.setStyle("width",l);this.data.width=l+10;if(this.property){this.property.columnWidthNode.set("value",Math.round(l)+10)}this.view.setEachColumnWidth();this.view.setViewNodeWidth()}.bind(this)})},moveCol:function(e){this._createMoveNode();this._setNodeMove(e);this._hideActions()},_createMoveNode:function(){this.moveNode=new Element("div",{MWFType:"label",styles:this.view.css.moduleNodeMove,text:this.node.get("text"),events:{selectstart:function(){return false}}}).inject(this.container)},_setNodeMove:function(e){this._setMoveNodePosition(e);var t=this.view.getColumnNodes();t.push(this.view.headBar.node);var i=new Drag.Move(this.moveNode,{droppables:t,onEnter:function(e,t){var i=t.retrieve("column");if(i)i._dragIn(this)}.bind(this),onLeave:function(e,t){var i=t.retrieve("column");if(i)i._dragOut(this)}.bind(this),onDrag:function(e){this.view.isOnDragging=true;this._setScroll()}.bind(this),onDrop:function(e,t,i){if(t){var s=t.retrieve("column");if(s){if(s.isHeadBar){if(this.data.index==0){this._dragCancel(e)}else{this._dragComplete(s.node);this.view.moveColumn(this.data.index,0)}}else{if(s.data.index+1==this.data.index||s.data.index==this.data.index){this._dragCancel(e)}else{this._dragComplete(s.node);this.view.moveColumn(this.data.index,s.data.index+1)}}s._dragDrop(this)}else{this._dragCancel(e)}}else{this._dragCancel(e)}if(this.dragColInterval){clearInterval(this.dragColInterval);this.dragColInterval=null}setTimeout(function(){this.view.isOnDragging=false}.bind(this),100);i.stopPropagation()}.bind(this),onCancel:function(e){if(this.dragColInterval){clearInterval(this.dragColInterval);this.dragColInterval=null}setTimeout(function(){this.view.isOnDragging=false}.bind(this),100)}.bind(this)});i.start(e)},_setScroll:function(){var e=this.view.viewAreaNode;var t=e.getCoordinates();var i=t.left;var s=i+t.width;var n=this.view.viewNode;var o=this.moveNode.getCoordinates();if(o.left+o.width>s){if(!this.dragColInterval){this.dragColInterval=setInterval(function(){if(e.getScroll().x+15<n.getSize().x){e.scrollTo(e.getScroll().x+15,0)}else{e.scrollTo(n.getSize().x,0)}}.bind(this),100)}}else if(o.left<i){if(!this.dragColInterval){this.dragColInterval=setInterval(function(){if(e.getScroll().x-15>0){e.scrollTo(e.getScroll().x-15,0)}else{e.scrollTo(0,0)}}.bind(this),100)}}else{if(this.dragColInterval){clearInterval(this.dragColInterval);this.dragColInterval=null}}},_dragIn:function(){this.resizeNode.setStyles(this.view.css.columnResizeNode_dragIn)},_dragOut:function(){this.resizeNode.setStyles(this.view.css.columnResizeNode)},_dragDrop:function(){this.resizeNode.setStyles(this.view.css.columnResizeNode)},_dragComplete:function(e){this.node.inject(e,"after");this.setCurrent();if(this.moveNode)this.moveNode.destroy();this.moveNode=null},_dragCancel:function(){if(this.moveNode)this.moveNode.destroy();this.moveNode=null},_setMoveNodePosition:function(e){var t=e.page.x+2;var i=e.page.y+2;this.moveNode.positionTo(t,i)},showProperty:function(){this.view.hidePropertyContent();this.view.propertyTitleNode.set("text",this.view.lp.columnProperty);if(!this.property){this.property=new MWF.xApplication.cms.ViewDesigner.View.ColumnProperty(this,this.view.propertyContentArea,this.designer,{onPostLoad:function(){this.property.show()}.bind(this)});this.property.load()}else{this.property.show()}},hideProperty:function(){if(this.property)this.property.hide()},setPropertiesOrStyles:function(e){if(e=="styles"){this.setCustomStyles()}if(e=="properties"){this.node.setProperties(this.data.properties)}},setCustomStyles:function(){var e=this.node.getStyle("border");this.node.clearStyles();this.node.setStyles(this.css.moduleNode);if(this.initialStyles)this.node.setStyles(this.initialStyles);this.node.setStyle("border",e);Object.each(this.data.styles,function(e,t){var i=/^border\w*/gi;if(!t.test(i)){this.node.setStyle(t,e)}}.bind(this))},setSortIcon:function(){if(this.sortIconNode){this.sortIconNode.setStyle("display","inline")}else{this.sortIconNode=new Element("div",{styles:this.css.sortIconNode}).inject(this.contentTitleNode,"before")}},cancelSortIcon:function(){this.sortIconNode.setStyle("display","none")},setAlignIcon:function(){if(this.alignIconNode)this.alignIconNode.destroy();if(this.data.align=="left"){this.alignIconNode=new Element("div",{styles:this.css.alignleftNode}).inject(this.contentTitleNode,"after")}else if(this.data.align=="right"){this.alignIconNode=new Element("div",{styles:this.css.alignrightNode}).inject(this.contentTitleNode,"after")}},setOperation:function(e,t,i,s,n){this.optionNodes=this.optionNodes||{};var o=this;var a=this.view.path+this.view.options.style+"/operationIcon/";if(!this.optionNodes[e]){if(this.contentTitleNode.get("text")==this.view.lp.noTitle){this.contentTitleNode.set("text","")}var l=this.optionNodes[e]=new Element("div",{styles:this.view.css.operationNode,title:t}).inject(this.contentNode,"bottom");l.setStyle("background-image","url("+a+i+")")}},deleteOperation:function(e){if(this.optionNodes&&this.optionNodes[e]){this.optionNodes[e].destroy();this.optionNodes[e]=null;delete this.optionNodes[e]}flag=false;for(var t in this.optionNodes){flag=true}if(!flag){if(this.contentTitleNode.get("text")==""){this.contentTitleNode.set("text",this.view.lp.noTitle)}}},delete:function(t){if(!this.data.isNew&&this.data.id){this.view.actions.deleteViewColumn(this.data.id,function(e){if(t)t()}.bind(this))}},getData:function(){var e={};e.id=this.data.id;e.isNew=this.data.isNew;e.viewId=this.view.data.id;e.fieldTitle=this.data.title;e.fieldName=this.data.value;e.xshowSequence=this.view.data.relativeForm.id;return e},save:function(t){var e=true;if(this.data.value&&this.data.value!=""){var i={};i.id=this.data.id;i.isNew=this.data.isNew;i.viewId=this.view.data.id;i.fieldTitle=this.data.title;i.fieldName=this.data.value;i.xshowSequence=this.view.data.relativeForm.id;this.view.actions.saveViewColumn(i,function(e){this.data.isNew=false;if(t)t()}.bind(this),function(){e=false}.bind(this),false)}else{if(!this.data.isNew){this["delete"](t);this.data.isNew=true}}return e}});MWF.xApplication.cms.ViewDesigner.View.HeadBar=new Class({initialize:function(e){this.view=e;this.designer=e.designer;this.container=e.viewNode;this.isHeadBar=true;this.load()},load:function(){this.createNodes()},createNodes:function(){this.node=new Element("div.column",{styles:this.view.css.headBarNode});this.node.store("column",this);this.node.inject(this.container);this.headBarContentNode=new Element("div",{styles:this.view.css.headBarContentNode}).inject(this.node);this.resizeNode=new Element("div",{styles:this.view.css.headBarResizeNode}).inject(this.node)},_dragIn:function(){this.resizeNode.setStyles(this.view.css.headBarResizeNode_dragIn)},_dragOut:function(){this.resizeNode.setStyles(this.view.css.headBarResizeNode)},_dragDrop:function(){this.resizeNode.setStyles(this.view.css.headBarResizeNode)}});MWF.xApplication.cms.ViewDesigner.View.ColumnProperty=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},initialize:function(e,t,i,s){this.setOptions(s);this.column=e;this.data=e.data;this.css=e.css;this.lp=e.view.lp;this.designer=i;this.propertyNode=t},load:function(){this.fireEvent("queryLoad");this.fireEvent("postLoad")},editProperty:function(e){},show:function(){if(!this.propertyContent){this.createNode()}else{this.propertyContent.setStyle("display","block")}},hide:function(){if(this.propertyContent)this.propertyContent.setStyle("display","none")},createNode:function(){var s=this;this.propertyContent=new Element("div",{styles:this.css.columnPropertyContent}).inject(this.propertyNode);this.basePropertyNode=new Element("div");MWF.require("MWF.widget.Tab",function(){this.propertyTab=new MWF.widget.Tab(this.propertyContent,{style:"moduleList"});this.propertyTab.load();var e=this.propertyTab.addTab(this.basePropertyNode,this.lp.base,false);this.setScrollBar(e.contentNodeArea,"small",null,null);this.propertyTab.pages[0].showTab()}.bind(this));var e=new Element("table",{width:"100%",border:"0",cellpadding:"5",cellspacing:"0",styles:this.css.editTable,class:"editTable"}).inject(this.basePropertyNode);var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.columnTitle}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.columnTitleNode=new Element("input",{type:"text",class:"editTableInput",styles:this.css.editTableInput,value:this.data.title}).inject(i);this.columnTitleNode.addEvents({change:function(){var e=this.columnTitleNode.get("value");this.data.title=e;this.column.contentTitleNode.set("text",e)}.bind(this)});var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.loadSort(i);var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.columnValue}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.columnValueNode=this.getFieldSelectElement();this.columnValueNode.inject(i);this.columnValueNode.addEvent("change",function(){this.data.value=this.column.view.getSelectValue(this.columnValueNode)}.bind(this));var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.columnWidth}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);if(this.data.widthPer){this.columnPercentageWidthNode=new Element("span",{text:this.data.widthPer}).inject(i)}else{this.columnPercentageWidthNode=new Element("span",{text:Math.round(this.data.width/this.column.view.getColumnsWidth()*100)}).inject(i)}if(this.data.widthType=="px"){this.columnPercentageWidthNode.setStyle("display","none")}this.columnWidthNode=new Element("input",{type:"text",class:"editTableInput",styles:this.css.editTableInputNoWidth,value:this.data.width}).inject(i);this.columnWidthNode.setStyles({width:"50px"});if(this.data.widthType!="px"){this.columnWidthNode.setStyle("display","none")}this.columnWidthNode.addEvents({change:function(){var e=Math.round(this.value);if(!isNaN(e)){if(e>10){s.column.node.setStyle("width",e);s.column.contentNode.setStyle("width",e-10);s.data.width=e;s.column.view.setViewNodeWidth()}}}});this.columnWidthTypeNode=new Element("select").inject(i);new Element("option",{value:"percentage",text:this.lp.percentage}).inject(this.columnWidthTypeNode);var n=new Element("option",{value:"px",text:this.lp.px}).inject(this.columnWidthTypeNode);if(this.data.widthType=="px")n.selected=true;this.columnWidthTypeNode.addEvents({change:function(){for(var e=0;e<this.options.length;e++){n=this.options[e];if(n.selected){s.data.widthType=n.value;if(n.value=="percentage"){s.widthType="percentage";s.columnWidthNode.setStyle("display","none");s.columnPercentageWidthNode.setStyle("display","inline");var t=Math.round(s.column.node.getSize().x/s.column.view.getColumnsWidth()*100);s.columnPercentageWidthNode.set("text",t);s.data.widthPer=t;s.column.view.setViewNodeWidth()}else{s.widthType="px";s.columnWidthNode.setStyle("display","inline");var i=s.column.node.getSize().x;s.columnWidthNode.set("value",i);s.data.width=i;s.columnPercentageWidthNode.setStyle("display","none");s.column.view.setViewNodeWidth()}}}}});var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.columnAlign}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.columnAlignNode=this.loadAlign(i);this.columnAlignNode.addEvent("change",function(){this.data.align=this.column.view.getSelectValue(this.columnAlignNode);this.column.setAlignIcon()}.bind(this));var t=new Element("tr").inject(e);var i=new Element("td",{class:"editTableTitle",styles:this.css.editTableTitle,text:this.lp.action}).inject(t);var i=new Element("td",{class:"editTableValue",styles:this.css.editTableValue}).inject(t);this.loadOperation(i)},loadSort:function(e){var t=this;var i=new Element("span",{styles:this.css.propertyCheckBox}).inject(e);var s=new Element("input",{type:"checkbox",value:"yes"}).inject(i);if(this.data.sortByClickTitle=="yes")s.checked=true;new Element("span",{text:this.lp.sortByClickTitle}).inject(i);s.addEvents({click:function(e){if(this.checked){t.data.sortByClickTitle="yes";t.column.setSortIcon()}else{t.data.sortByClickTitle="no";t.column.cancelSortIcon()}}})},getFieldSelectElement:function(){var i=new Element("select");new Element("option",{value:"",text:""}).inject(i);this.column.view.documentFields.concat(this.column.view.formFields).each(function(e){var t=new Element("option",{value:e.name,text:e.name}).inject(i);if(this.data.value==e.name){t.selected=true}}.bind(this));return i},loadEventsEditor:function(t,i){MWF.xDesktop.requireApp("cms.FormDesigner","widget.EventsEditor",function(){var e=new MWF.xApplication.cms.FormDesigner.widget.EventsEditor(t,this.designer,{helpStyle:"cmsViewColumn",maxObj:this.column.view.node});e.load(i)}.bind(this))},loadAlign:function(e){var s=new Element("select").inject(e);var t=this.lp.columnAlignValue.split(",");var n=this.lp.columnAlignText.split(",");t.each(function(e,t){var i=new Element("option",{value:e,text:n[t]}).inject(s);if(this.data.align==e){i.selected=true}}.bind(this));return s},loadOperation:function(e){var i=this;this.data.operation=this.data.operation||{};var t=this.column.view.getOperationConfig();if(t.default){for(var s in t.default){var n=t.default[s];n.name=s;n.text=i.lp[n.title]?i.lp[n.title]:n.title;var o=new Element("span",{styles:this.css.propertyCheckBox}).inject(e);var a=new Element("input",{type:"checkbox",value:n.name}).inject(o);if(this.data.operation[s])a.checked=true;new Element("span",{text:n.text}).inject(o);a.store("op",n);a.addEvents({click:function(e){var t=this.retrieve("op");if(this.checked){i.data.operation[t.name]=t;i.column.setOperation(t.name,t.text,t.icon,t.iconOver,t.action)}else{if(i.data.operation[t.name]){delete i.data.operation[t.name]}i.column.deleteOperation(t.name)}}})}}}});MWF.xApplication.cms.ViewDesigner.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)])}}});
|