| 1 |
- MWF.xApplication=MWF.xApplication||{};MWF.xApplication.query=MWF.xApplication.query||{};MWF.xApplication.query.ViewDesigner=MWF.xApplication.query.ViewDesigner||{};MWF.APPDVD=MWF.xApplication.query.ViewDesigner;MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.xScript.Macro",null,false);MWF.xDesktop.requireApp("query.ViewDesigner","lp."+MWF.language,null,false);MWF.xDesktop.requireApp("query.ViewDesigner","Property",null,false);MWF.xApplication.query.ViewDesigner.View=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",isView:false,showTab:true,propertyPath:"/x_component_query_ViewDesigner/$View/view.html"},initialize:function(e,t,i){this.setOptions(i);this.path="/x_component_query_ViewDesigner/$View/";this.cssPath="/x_component_query_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.applicationName=this.designer.application.name;if(this.designer.application)this.data.application=this.designer.application.id;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))},autoSave:function(){this.autoSaveTimerID=window.setInterval(function(){if(!this.autoSaveCheckNode)this.autoSaveCheckNode=this.designer.contentToolbarNode.getElement("#MWFDictionaryAutoSaveCheck");if(this.autoSaveCheckNode){if(this.autoSaveCheckNode.get("checked")){this.save()}}}.bind(this),6e4)},parseData:function(){this.json=this.data},showProperty:function(){if(!this.property){this.property=new MWF.xApplication.query.ViewDesigner.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()}},hideProperty:function(){if(this.property)this.property.hide()},load:function(){this.setAreaNodeSize();this.designer.addEvent("resize",this.setAreaNodeSize.bind(this));this.areaNode.inject(this.node);this.designer.viewListAreaNode.getChildren().each(function(e){var t=e.retrieve("view");if(t.id==this.data.id){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));this.domListNode=new Element("div",{styles:{overflow:"hidden"}}).inject(this.designer.propertyDomArea);this.loadView();this.selected();this.setEvent();this.setViewWidth();this.designer.addEvent("resize",this.setViewWidth.bind(this))},setEvent:function(){this.areaNode.addEvent("click",this.selected.bind(this));this.refreshNode.addEvent("click",function(e){this.loadViewData();e.stopPropagation()}.bind(this));this.addColumnNode.addEvent("click",function(e){this.addColumn();e.stopPropagation()}.bind(this))},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.loadView(this.data.id,null,function(l){var c={};l.data.selectList.each(function(e){c[e.column]=e}.bind(this));if(this.json.data.group.column){if(l.data.groupGrid.length){var v=null;for(var e=0;e<l.data.selectList.length;e++){if(l.data.selectList[e].column===l.data.group.column){v=l.data.selectList[e];break}}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 o=new Element("div",{styles:this.css.viewContentTdGroupNode}).inject(n);var d=new Element("div",{styles:this.css.viewContentTdGroupIconNode}).inject(o);var a=new Element("div",{styles:this.css.viewContentTdGroupTextNode}).inject(o);if(v){a.set("text",v.code?MWF.Macro.exec(v.code,{value:e.group,gridData:l.data.groupGrid,data:l.data,entry:e}):e.group)}else{a.set("text",e.group)}var h=[];e.list.each(function(s){var n=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.viewContentTableNode);n.setStyle("display","none");var e=new Element("td",{styles:this.css.viewContentTdNode}).inject(n);Object.each(s.data,function(e,t){if(t!=this.json.data.group.column){var i=new Element("td",{styles:this.css.viewContentTdNode}).inject(n);i.set("text",c[t].code?MWF.Macro.exec(c[t].code,{value:e,gridData:l.data.groupGrid,data:l.data,entry:s}):e)}}.bind(this));h.push(n)}.bind(this));o.store("subtrs",h);var r=this;o.addEvent("click",function(){var e=this.retrieve("subtrs");var t=o.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")}}r.setContentHeight()})}.bind(this));this.setContentColumnWidth();this.setContentHeight()}}else{if(l.data.grid.length){l.data.grid.each(function(s,e){var n=new Element("tr",{styles:this.css.viewContentTrNode}).inject(this.viewContentTableNode);Object.each(s.data,function(e,t){var i=new Element("td",{styles:this.css.viewContentTdNode}).inject(n);i.set("text",c[t].code?MWF.Macro.exec(c[t].code,{value:e,gridData:l.data.grid,data:l.data,entry:s}):e)}.bind(this))}.bind(this));this.setContentColumnWidth();this.setContentHeight()}}}.bind(this))}.bind(this))}},setContentColumnWidth:function(){var e=this.viewTitleTrNode.getElements("td");var i=[];e.each(function(e){i.push(e.getSize().x)});var s=false;debugger;if(this.viewContentTableNode){trs=this.viewContentTableNode.getElements("tr");for(var t=0;t<trs.length;t++){var n=trs[t];var o=n.getElements("td");o.each(function(e,t){if(e.get("colSpan")==1){e.setStyle("width",""+i[t]+"px");s=true}});if(s)break}}},addColumn:function(){debugger;MWF.require("MWF.widget.UUID",function(){var e=(new MWF.widget.UUID).id;var t={id:e,column:e,displayName:this.designer.lp.unnamed,orderType:"original"};if(!this.json.data.selectList)this.json.data.selectList=[];this.json.data.selectList.push(t);var i=new MWF.xApplication.query.ViewDesigner.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))},selected:function(){if(this.currentSelectedModule){if(this.currentSelectedModule==this){return true}else{this.currentSelectedModule.unSelected()}}this.currentSelectedModule=this;this.showProperty()},unSelected:function(){this.currentSelectedModule=null;this.hideProperty()},loadViewNodes:function(){this.viewAreaNode=new Element("div#viewAreaNode",{styles:this.css.viewAreaNode}).inject(this.areaNode);this.viewTitleNode=new Element("div#viewTitleNode",{styles:this.css.viewTitleNode}).inject(this.viewAreaNode);this.refreshNode=new Element("div",{styles:this.css.refreshNode}).inject(this.viewTitleNode);this.addColumnNode=new Element("div",{styles:this.css.addColumnNode}).inject(this.viewTitleNode);this.viewTitleContentNode=new Element("div",{styles:this.css.viewTitleContentNode}).inject(this.viewTitleNode);this.viewTitleTableNode=new Element("table",{styles:this.css.viewTitleTableNode,border:"0px",cellPadding:"0",cellSpacing:"0"}).inject(this.viewTitleContentNode);this.viewTitleTrNode=new Element("tr",{styles:this.css.viewTitleTrNode}).inject(this.viewTitleTableNode);this.viewContentScrollNode=new Element("div",{styles:this.css.viewContentScrollNode}).inject(this.viewAreaNode);this.viewContentNode=new Element("div",{styles:this.css.viewContentNode}).inject(this.viewContentScrollNode);MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(this.viewContentScrollNode,{style:"view",distance:100,indent:false})}.bind(this));this.contentLeftNode=new Element("div",{styles:this.css.contentLeftNode}).inject(this.viewContentNode);this.contentRightNode=new Element("div",{styles:this.css.contentRightNode}).inject(this.viewContentNode);this.viewContentBodyNode=new Element("div",{styles:this.css.viewContentBodyNode}).inject(this.viewContentNode);this.viewContentTableNode=new Element("table",{styles:this.css.viewContentTableNode,border:"0px",cellPadding:"0",cellSpacing:"0"}).inject(this.viewContentBodyNode)},setContentHeight:function(){var e=this.areaNode.getSize();var t=this.viewTitleNode.getSize();var i=e.y-t.y-2;this.viewContentScrollNode.setStyle("height",i);var s=this.viewContentBodyNode.getSize();if(i<s.y)i=s.y+10;this.viewContentNode.setStyle("height",i);this.contentLeftNode.setStyle("height",i);this.contentRightNode.setStyle("height",i)},loadViewColumns:function(){if(this.json.data.selectList){this.json.data.selectList.each(function(e){this.items.push(new MWF.xApplication.query.ViewDesigner.View.Column(e,this))}.bind(this))}},loadView:function(){this.loadViewNodes();this.loadViewColumns()},setViewWidth:function(){this.viewAreaNode.setStyle("width","auto");this.viewTitleNode.setStyle("width","auto");var e=this.viewTitleTableNode.getSize();var t=this.refreshNode.getSize();var i=this.addColumnNode.getSize();var s=e.x+t.x+t.x;var n=this.areaNode.getSize();if(s>n.x){this.viewTitleNode.setStyle("width",""+s+"px");this.viewAreaNode.setStyle("width",""+s+"px")}else{this.viewTitleNode.setStyle("width",""+n.x+"px");this.viewAreaNode.setStyle("width",""+n.x+"px")}this.setContentColumnWidth();this.setContentHeight()},setAreaNodeSize:function(){},saveSilence:function(t){if(!this.data.name){this.designer.notice(this.designer.lp.notice.inputName,"error");return false}this.designer.actions.saveView(this.data,function(e){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}this.designer.actions.saveView(this.data,function(e){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))},explode:function(){},implode:function(){},_setEditStyle:function(s,e,t){if(s=="type"){this.items.each(function(e){if(e.property){var t=e.property.propertyContent.getElements("#"+e.json.id+"dataPathSelectedProcessArea");var i=e.property.propertyContent.getElements("#"+e.json.id+"dataPathSelectedCMSArea");if(this.json[s]=="cms"){i.setStyle("display","block");t.setStyle("display","none")}else{i.setStyle("display","none");t.setStyle("display","block")}}}.bind(this))}},saveAs:function(){var e=new MWF.xApplication.query.ViewDesigner.View.NewNameForm(this,{name:this.data.name+"_"+MWF.xApplication.query.ViewDesigner.LP.copy,query:this.data.query||this.data.application,queryName:this.data.queryName||this.data.applicationName},{onSave:function(e,t){this._saveAs(e,t)}.bind(this)},{app:this.designer});e.edit()},cloneObject: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.cloneObject(e[i])}return t}else{var t={};for(var n in e){t[n]=this.cloneObject(e[n])}return t}},_saveAs:function(e,t){var i=this;var s=this.cloneObject(this.data);s.isNewView=true;s.id=this.designer.actions.getUUID();s.name=e.name;s.alias="";s.query=e.query;s.queryName=e.queryName;s.application=e.query;s.applicationName=e.queryName;s.pid=s.id+s.id;delete s[this.data.id+"viewFilterType"];s[s.id+"viewFilterType"]="custom";s.data.selectList.each(function(e){e.id=(new MWF.widget.UUID).id}.bind(this));this.designer.actions.saveView(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.query.ViewDesigner.View.Column=new Class({initialize:function(e,t,i){this.propertyPath="/x_component_query_ViewDesigner/$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()},load:function(){this.areaNode=new Element("td",{styles:this.css.viewTitleColumnAreaNode});this.areaNode.store("column",this);if(this.next){this.areaNode.inject(this.next.areaNode,"before")}else{this.areaNode.inject(this.content)}this.node=new Element("div",{styles:this.css.viewTitleColumnNode}).inject(this.areaNode);this.textNode=new Element("div",{styles:this.css.viewTitleColumnTextNode,text:this.json.displayName}).inject(this.node);this.listNode=new Element("div",{styles:this.css.cloumnListNode});if(this.next){this.listNode.inject(this.next.listNode,"before")}else{this.listNode.inject(this.domListNode)}var e=new Element("div",{styles:this.css.cloumnListIconNode}).inject(this.listNode);var t=new Element("div",{styles:this.css.cloumnListTextNode}).inject(this.listNode);this.resetTextNode();this._createIconAction();this.setEvent()},setEvent:function(){this.node.addEvents({click:function(e){this.selected();e.stopPropagation()}.bind(this),mouseover:function(){if(!this.isSelected)this.node.setStyles(this.css.viewTitleColumnNode_over)}.bind(this),mouseout:function(){if(!this.isSelected)if(this.isError){this.node.setStyles(this.css.viewTitleColumnNode_error)}else{this.node.setStyles(this.css.viewTitleColumnNode)}}.bind(this)});this.listNode.addEvents({click:function(e){this.selected();e.stopPropagation()}.bind(this),mouseover:function(){if(!this.isSelected)this.listNode.setStyles(this.css.cloumnListNode_over)}.bind(this),mouseout:function(){if(!this.isSelected)this.listNode.setStyles(this.css.cloumnListNode)}.bind(this)})},_createIconAction:function(){if(!this.actionArea){this.actionArea=new Element("div",{styles:this.css.actionAreaNode}).inject(this.view.areaNode,"after");this._createAction({name:"move",icon:"move1.png",event:"mousedown",action:"move",title:MWF.APPDVD.LP.action.move});this._createAction({name:"add",icon:"add.png",event:"click",action:"addColumn",title:MWF.APPDVD.LP.action.add});this._createAction({name:"delete",icon:"delete1.png",event:"click",action:"delete",title:MWF.APPDVD.LP.action["delete"]})}},_createAction:function(t){var e=new Element("div",{styles:this.css.actionNodeStyles,title:t.title}).inject(this.actionArea);e.setStyle("background","url("+this.view.path+this.view.options.style+"/action/"+t.icon+") no-repeat left center");e.addEvent(t.event,function(e){this[t.action](e)}.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)})},_setActionAreaPosition:function(){var e=this.node.getPosition(this.view.areaNode.getOffsetParent());var t=e.y-25;var i=e.x;this.actionArea.setPosition({x:i,y:t})},_showActions:function(){if(this.actionArea){this._setActionAreaPosition();this.actionArea.setStyle("display","block")}},_hideActions:function(){if(this.actionArea)this.actionArea.setStyle("display","none")},selected:function(){if(this.view.currentSelectedModule){if(this.view.currentSelectedModule==this){return true}else{this.view.currentSelectedModule.unSelected()}}this.node.setStyles(this.css.viewTitleColumnNode_selected);this.listNode.setStyles(this.css.cloumnListNode_selected);new Fx.Scroll(this.view.areaNode,{wheelStops:false,duration:100}).toElementEdge(this.node);new Fx.Scroll(this.view.designer.propertyDomArea,{wheelStops:false,duration:100}).toElement(this.listNode);this.view.currentSelectedModule=this;this.isSelected=true;this._showActions();this.showProperty()},unSelected:function(){this.view.currentSelectedModule=null;if(this.isError){this.node.setStyles(this.css.viewTitleColumnNode_error)}else{this.node.setStyles(this.css.viewTitleColumnNode)}this.listNode.setStyles(this.css.cloumnListNode);this.isSelected=false;this._hideActions();this.hideProperty()},showProperty:function(){if(!this.property){this.property=new MWF.xApplication.query.ViewDesigner.Property(this,this.view.designer.propertyContentArea,this.view.designer,{path:this.propertyPath,onPostLoad:function(){this.property.show();var e=this.property.propertyContent.getElements("#"+this.json.id+"dataPathSelectedProcessArea");var t=this.property.propertyContent.getElements("#"+this.json.id+"dataPathSelectedCMSArea");if(this.view.json.type=="cms"){e.setStyle("display","none");t.setStyle("display","block")}else{e.setStyle("display","block");t.setStyle("display","none")}}.bind(this)});this.property.load()}else{this.property.show()}},hideProperty:function(){if(this.property)this.property.hide()},_setEditStyle:function(e,t,i){if(e=="displayName")this.resetTextNode();if(e=="selectType")this.resetTextNode();if(e=="attribute")this.resetTextNode();if(e=="path")this.resetTextNode();if(e=="column"){this.view.json.data.orderList.each(function(e){if(e.column==i)e.column=this.json.column}.bind(this));if(this.view.json.data.group.column==i)this.view.json.data.group.column=this.json.column}},resetTextNode:function(){var e=this.json.selectType=="attribute"?this.json.attribute||"":this.json.path||"";if(!e)e="unnamed";this.textNode.set("text",this.json.displayName);this.listNode.getLast().set("text",this.json.displayName+"("+e+")")},delete:function(e){var t=this;if(!e)e=this.node;this.view.designer.confirm("warn",e,MWF.APPDVD.LP.notice.deleteColumnTitle,MWF.APPDVD.LP.notice.deleteColumn,300,120,function(){t.destroy();this.close()},function(){this.close()},null)},destroy:function(){if(this.view.currentSelectedModule==this)this.view.currentSelectedModule=null;if(this.actionArea)this.actionArea.destroy();if(this.listNode)this.listNode.destroy();if(this.property)this.property.propertyContent.destroy();var t=this.view.items.indexOf(this);if(this.view.viewContentTableNode){var e=this.view.viewContentTableNode.getElements("tr");e.each(function(e){e.deleteCell(t)}.bind(this))}if(this.view.json.data.selectList)this.view.json.data.selectList.erase(this.json);if(this.view.json.data.calculate.calculateList)this.view.json.data.calculate.calculateList.erase(this.json);this.view.items.erase(this);this.areaNode.destroy();this.view.selected();this.view.setViewWidth();MWF.release(this);delete this},addColumn:function(e,o){MWF.require("MWF.widget.UUID",function(){var e;if(o){e=Object.clone(o);e.id=(new MWF.widget.UUID).id;e.column=(new MWF.widget.UUID).id}else{var t=(new MWF.widget.UUID).id;e={id:t,column:t,displayName:this.view.designer.lp.unnamed,orderType:"original"}}var i=this.view.json.data.selectList.indexOf(this.json);this.view.json.data.selectList.splice(i,0,e);var s=new MWF.xApplication.query.ViewDesigner.View.Column(e,this.view,this);this.view.items.splice(i,0,s);s.selected();if(this.view.viewContentTableNode){var n=this.view.viewContentTableNode.getElements("tr");n.each(function(e){var t=e.insertCell(i);t.setStyles(this.css.viewContentTdNode)}.bind(this))}this.view.setViewWidth()}.bind(this))},move:function(e){var t=[];this.view.items.each(function(e){if(e!=this){t.push(e.areaNode)}}.bind(this));this._createMoveNode();this._setNodeMove(t,e)},_createMoveNode:function(){this.moveNode=new Element("div",{text:this.node.get("text")});this.moveNode.inject(this.view.designer.content);this.moveNode.setStyles({border:"2px dashed #ffa200",opacity:.7,height:"30px","line-height":"30px",padding:"0px 10px",position:"absolute"})},_setMoveNodePosition:function(e){var t=e.page.x+2;var i=e.page.y+2;this.moveNode.positionTo(t,i)},createMoveFlagNode:function(){this.moveFlagNode=new Element("td",{styles:this.css.moveFlagNode})},_setNodeMove:function(e,t){this._setMoveNodePosition(t);var i=this.moveNode.getPosition();var s=this.moveNode.getSize();var n=this.content.getPosition();var o=this.content.getSize();var d=new Drag.Move(this.moveNode,{droppables:e,limit:{x:[n.x,n.x+o.x],y:[i.y,i.y+s.y]},onEnter:function(e,t){if(!this.moveFlagNode)this.createMoveFlagNode();this.moveFlagNode.inject(t,"before")}.bind(this),onLeave:function(e,t){if(this.moveFlagNode){this.moveFlagNode.dispose()}}.bind(this),onDrop:function(e,t){if(t){this.areaNode.inject(t,"before");var i=t.retrieve("column");this.listNode.inject(i.listNode,"before");var s=this.view.json.data.selectList.indexOf(i.json);this.view.json.data.selectList.erase(this.json);this.view.items.erase(this);this.view.json.data.selectList.splice(s,0,this.json);this.view.items.splice(s,0,this);if(this.moveNode)this.moveNode.destroy();if(this.moveFlagNode)this.moveFlagNode.destroy();this._setActionAreaPosition()}else{if(this.moveNode)this.moveNode.destroy();if(this.moveFlagNode)this.moveFlagNode.destroy()}}.bind(this),onCancel:function(e){if(this.moveNode)this.moveNode.destroy();if(this.moveFlagNode)this.moveFlagNode.destroy()}.bind(this)});d.start(t)}});
|