| 1 |
- MWF.xApplication.cms=MWF.xApplication.cms||{};MWF.xDesktop.requireApp("cms.Column","Actions.RestActions",null,false);MWF.xApplication.cms.Column.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",name:"cms.Column",icon:"icon.png",width:"1000",height:"600",isResize:false,isMax:true,title:MWF.xApplication.cms.Column.LP.title,tooltip:{description:MWF.xApplication.cms.Column.LP.description,column:{title:MWF.xApplication.cms.Column.LP.column.title,create:MWF.xApplication.cms.Column.LP.column.create,nameLabel:MWF.xApplication.cms.Column.LP.column.nameLabel,aliasLabel:MWF.xApplication.cms.Column.LP.column.aliasLabel,descriptionLabel:MWF.xApplication.cms.Column.LP.column.descriptionLabel,sortLabel:MWF.xApplication.cms.Column.LP.column.sortLabel,iconLabel:MWF.xApplication.cms.Column.LP.column.iconLabel,cancel:MWF.xApplication.cms.Column.LP.column.cancel,ok:MWF.xApplication.cms.Column.LP.column.ok,inputName:MWF.xApplication.cms.Column.LP.column.inputName,create_cancel_title:MWF.xApplication.cms.Column.LP.column.create_cancel_title,create_cancel:MWF.xApplication.cms.Column.LP.column.create_cancel,noDescription:MWF.xApplication.cms.Column.LP.column.noDescription,delete:MWF.xApplication.cms.Column.LP.column.delete,edit:MWF.xApplication.cms.Column.LP.column.edit,delete_confirm_content:MWF.xApplication.cms.Column.LP.column.delete_confirm_content,delete_confirm_title:MWF.xApplication.cms.Column.LP.column.delete_confirm_title,createColumnSuccess:MWF.xApplication.cms.Column.LP.column.createColumnSuccess,updateColumnSuccess:MWF.xApplication.cms.Column.LP.column.updateColumnSuccess},category:{title:MWF.xApplication.cms.Column.LP.category.title,create:MWF.xApplication.cms.Column.LP.category.create,nameLabel:MWF.xApplication.cms.Column.LP.category.nameLabel,aliasLabel:MWF.xApplication.cms.Column.LP.category.aliasLabel,descriptionLabel:MWF.xApplication.cms.Column.LP.category.descriptionLabel,sortLabel:MWF.xApplication.cms.Column.LP.category.sortLabel,iconLabel:MWF.xApplication.cms.Column.LP.category.iconLabel,columnLabel:MWF.xApplication.cms.Column.LP.category.columnLabel,cancel:MWF.xApplication.cms.Column.LP.category.cancel,ok:MWF.xApplication.cms.Column.LP.category.ok,inputName:MWF.xApplication.cms.Column.LP.category.inputName,create_cancel_title:MWF.xApplication.cms.Column.LP.category.create_cancel_title,create_cancel:MWF.xApplication.cms.Column.LP.category.create_cancel,noDescription:MWF.xApplication.cms.Column.LP.category.noDescription,edit:MWF.xApplication.cms.Column.LP.category.edit}}},onQueryLoad:function(){this.lp=MWF.xApplication.cms.Column.LP;this.defaultColumnIcon="/x_component_cms_Column/$Main/"+this.options.style+"/icon/column.png";this.defaultCategoryIcon="/x_component_cms_Column/$Main/"+this.options.style+"/icon/category2.png"},loadApplication:function(e){this.isAdmin=MWF.AC.isProcessPlatformCreator()||MWF.AC.isAdministrator();if(!this.restActions)this.restActions=new MWF.xApplication.cms.Column.Actions.RestActions;this.columns=[];this.categorys=[];this.deleteElements=[];this.createNode();this.loadApplicationContent();if(e)e()},loadApplicationContent:function(){this.loadColumnArea()},createNode:function(){this.content.setStyle("overflow","hidden");this.node=new Element("div",{styles:{width:"100%",height:"100%",overflow:"hidden"}}).inject(this.content)},loadToolbar:function(){this.toolbarAreaNode=new Element("div",{styles:this.css.toolbarAreaNode,text:this.options.tooltip.description}).inject(this.node)},createCreateAction:function(){this.createCategoryNode=new Element("div",{styles:this.css.createCategoryNode,title:this.options.tooltip.category.create}).inject(this.toolbarAreaNode);this.createCategoryNode.addEvent("click",function(){this.createCategory()}.bind(this))},loadColumnArea:function(){this.columnAreaNode=new Element("div",{styles:this.css.columnAreaNode}).inject(this.node);this.columnToolbarAreaNode=new Element("div",{styles:this.css.columnToolbarAreaNode}).inject(this.columnAreaNode);if(MWF.AC.isProcessPlatformCreator()){if(MWF.AC.isAdministrator()){this.createColumnNode=new Element("button",{styles:this.css.createColumnNode,text:this.options.tooltip.column.create}).inject(this.columnToolbarAreaNode);this.createColumnNode.addEvent("click",function(){this.createColumn()}.bind(this))}}this.columnToolbarTextNode=new Element("div",{styles:this.css.columnToolbarTextNode,text:this.options.tooltip.column.title}).inject(this.columnToolbarAreaNode);this.setColumnAreaSize();this.addEvent("resize",this.setColumnAreaSize);this.loadColumnContentArea();this.setColumnContentSize()},setColumnAreaSize:function(){var e=this.node.getSize();var t=this.columnToolbarAreaNode.getSize();var i=e.y-t.y;this.columnAreaNode.setStyle("height",""+i+"px");if(this.columnContentAreaNode){var o=(e.x/282).toInt();var n=282*o;var s=(e.x-n)/2-10;this.columnContentAreaNode.setStyles({"margin-left":""+s+"px"})}},setColumnContentSize:function(){var e=this.node.getSize();if(this.columnContentAreaNode){var t=(e.x/282).toInt();var i=282*t;var o=(e.x-i)/2-10;this.columnContentAreaNode.setStyles({"margin-left":""+o+"px"})}},loadColumnContentArea:function(){this.columnContentAreaNode=new Element("div",{styles:this.css.columnContentAreaNode}).inject(this.columnAreaNode);this.loadController(function(){this.createColumnNodes()}.bind(this));MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(this.columnContentAreaNode)}.bind(this))},loadController:function(e){this.availableApp=[];this.restActions.listControllerByPerson(layout.desktop.session.user.name,function(t){if(t&&t.data&&t.data.length){t.data.each(function(e){this.availableApp.push(e.objectId)}.bind(this))}if(e)e()}.bind(this),null,true)},hasPermision:function(e){return this.isAdmin||this.availableApp.contains(e)},createColumnNodes:function(){this.restActions.listColumn(function(e){var t=null;if(e&&e.data&&e.data.length){var i=e.data;i.sort(function(e,t){return parseFloat(e.appInfoSeq)-parseFloat(t.appInfoSeq)});e.data=i;e.data.each(function(e){if(this.hasPermision(e.id)){var e=new MWF.xApplication.cms.Column.Column(this,e);e.load();this.columns.push(e)}}.bind(this))}if(this.columns.length==0){this.noElementNode=new Element("div",{styles:this.css.noElementNode,text:this.lp.column.noElement}).inject(this.columnContentAreaNode)}}.bind(this))},createColumn:function(e,t,i,o,n){var s=new MWF.xApplication.cms.Column.Column(this);s.createColumn(this.node)}});MWF.xApplication.cms.Column.Column=new Class({Implements:[Options,Events],options:{where:"bottom"},initialize:function(e,t,i){this.setOptions(i);this.app=e;this.container=this.app.columnContentAreaNode;this.data=t;this.isNew=false},load:function(){this.data.name=this.data.appName;var e=this.data.appName;var t=this.data.appAlias;var i=this.data.description;var o=this.data.appInfoSeq;var n=this.data.creatorUid;var s=this.data.createTime;var a=this.node=new Element("div.columnItem",{styles:this.app.css.columnItemNode}).inject(this.container,this.options.where);a.store("columnName",e);var l=this.iconNode=new Element("div",{styles:this.app.css.columnItemIconNode}).inject(a);if(this.data.appIcon){this.iconNode.setStyle("background-image","url(data:image/png;base64,"+this.data.appIcon+")")}else{this.iconNode.setStyle("background-image","url("+this.app.defaultColumnIcon+")")}var c=new Element("div",{styles:this.app.css.columnItemTextNode}).inject(a);var r=new Element("div",{styles:this.app.css.columnItemTitleNode,text:e,title:t?e+" ("+t+") ":e}).inject(c);var d=i&&i!=""?i:this.app.options.tooltip.column.noDescription;var m=new Element("div",{styles:this.app.css.columnItemDescriptionNode,text:d,title:d}).inject(c);var p=this;a.addEvents({mouseover:function(){if(!p.selected)this.setStyles(p.app.css.columnItemNode_over)},mouseout:function(){if(!p.selected)this.setStyles(p.app.css.columnItemNode)},click:function(e){p.clickColumnNode(p,this,e)}});if(MWF.AC.isProcessPlatformCreator()){if(n==layout.desktop.session.user.name||MWF.AC.isAdministrator()){this.delAdctionNode=new Element("div.delNode",{styles:this.app.css.columnItemDelActionNode,title:this.app.options.tooltip.column.delete}).inject(a);a.addEvents({mouseover:function(){this.delAdctionNode.fade("in")}.bind(this),mouseout:function(){this.delAdctionNode.fade("out")}.bind(this)});this.delAdctionNode.addEvent("click",function(e){this.deleteColumn(e);e.stopPropagation()}.bind(this))}}if(MWF.AC.isProcessPlatformCreator()){if(n==layout.desktop.session.user.name||MWF.AC.isAdministrator()){this.editAdctionNode=new Element("div.editNode",{styles:this.app.css.columnItemEditActionNode,title:this.app.options.tooltip.column.edit}).inject(a);a.addEvents({mouseover:function(){this.editAdctionNode.fade("in")}.bind(this),mouseout:function(){this.editAdctionNode.fade("out")}.bind(this)});this.editAdctionNode.addEvent("click",function(e){this.edit(e);e.stopPropagation()}.bind(this))}}},clickColumnNode:function(e,t,i){var o="cms.ColumnManager"+this.data.id;if(this.app.desktop.apps[o]){this.app.desktop.apps[o].setCurrent()}else{this.app.desktop.openApplication(i,"cms.ColumnManager",{column:this.data,appId:o,onQueryLoad:function(){this.status={navi:0}}})}},checkDeleteColumn:function(){if(this.deleteElements.length){if(!this.deleteElementsNode){this.deleteElementsNode=new Element("div",{styles:this.app.css.deleteElementsNode,text:this.app.lp.column.deleteElements}).inject(this.node);this.deleteElementsNode.position({relativeTo:this.container,position:"centerTop",edge:"centerbottom"});this.deleteElementsNode.addEvent("click",function(e){this.delete()}.bind(this))}}else{if(this.deleteElementsNode){this.deleteElementsNode.destroy();this.deleteElementsNode=null;delete this.deleteElementsNode}}},deleteColumn:function(e){var t=this;this.app.confirm("warn",e,this.app.options.tooltip.column.delete_confirm_title,this.app.options.tooltip.column.delete_confirm_content,"320px","100px",function(){t._deleteElement();this.close()},function(){this.close()})},_deleteElement:function(e,t,i){this.app.restActions.removeColumn(e||this.data.id,function(){this.destroy();if(t)t()}.bind(this),function(e){var t=JSON.parse(e.responseText);this.app.notice(t.message,"error");if(i)i()}.bind(this))},destroy:function(){this.node.destroy();MWF.release(this);delete this},edit:function(){this.isNew=false;this.createContainer=this.app.node;this.createColumnCreateMarkNode();this.createColumnCreateAreaNode();this.createColumnCreateNode();this.columnCreateAreaNode.inject(this.columnCreateMarkNode,"after");this.columnCreateAreaNode.fade("in");$("createColumnName").focus();this.setColumnCreateNodeSize();this.setColumnCreateNodeSizeFun=this.setColumnCreateNodeSize.bind(this);this.addEvent("resize",this.setColumnCreateNodeSizeFun)},createColumn:function(e){this.isNew=true;this.createContainer=e;this.createColumnCreateMarkNode();this.createColumnCreateAreaNode();this.createColumnCreateNode();this.columnCreateAreaNode.inject(this.columnCreateMarkNode,"after");this.columnCreateAreaNode.fade("in");$("createColumnName").focus();this.setColumnCreateNodeSize();this.setColumnCreateNodeSizeFun=this.setColumnCreateNodeSize.bind(this);this.addEvent("resize",this.setColumnCreateNodeSizeFun)},createColumnCreateMarkNode:function(){this.columnCreateMarkNode=new Element("div",{styles:this.app.css.columnCreateMarkNode,events:{mouseover:function(e){e.stopPropagation()},mouseout:function(e){e.stopPropagation()}}}).inject(this.createContainer,"after")},createColumnCreateAreaNode:function(){this.columnCreateAreaNode=new Element("div",{styles:this.app.css.columnCreateAreaNode})},createColumnCreateNode:function(){if(!this.isNew){var e=this.data.appName;var t=this.data.appAlias;var i=this.data.description;var o=this.data.appInfoSeq;var n=this.data.creatorUid;var s=this.data.createTime}else{var e="";var t="";var i="";var o="";var n="";var a="";var s=""}this.columnCreateNode=new Element("div",{styles:this.app.css.columnCreateNode}).inject(this.columnCreateAreaNode);this.columnCreateNewNode=new Element("div",{styles:this.isNew?this.app.css.columnCreateNewNode:this.app.css.columnCreateEditNode}).inject(this.columnCreateNode);this.columnCreateFormNode=new Element("div",{styles:this.app.css.columnCreateFormNode}).inject(this.columnCreateNode);var l='<table width="100%" height="90%" border="0" cellPadding="0" cellSpacing="0">'+'<tr><td style="height: 30px; line-height: 30px; text-align: left; min-width: 80px; width:25%">'+this.app.options.tooltip.column.nameLabel+":</td>"+'<td style="; text-align: right;"><input type="text" id="createColumnName" '+'style="width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC; '+'height: 26px;" value="'+e+'"/></td></tr>'+'<tr><td style="height: 30px; line-height: 30px; text-align: left">'+this.app.options.tooltip.column.descriptionLabel+":</td>"+'<td style="; text-align: right;"><input type="text" id="createColumnDescription" '+'style="width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC; '+'height: 26px;" value="'+i+'"/></td></tr>'+'<tr><td style="height: 30px; line-height: 30px; text-align: left">'+this.app.options.tooltip.column.sortLabel+":</td>"+'<td style="; text-align: right;"><input type="text" id="createColumnSort" '+'style="width: 99%; border:1px solid #999; background-color:#FFF; border-radius: 3px; box-shadow: 0px 0px 6px #CCC; '+'height: 26px;" value="'+o+'"/></td></tr>'+'<tr><td style="height: 30px; line-height: 30px; text-align: left">'+this.app.options.tooltip.column.iconLabel+":</td>"+"<td style=\"; text-align: right;\"><div id='formIconPreview'></div><div id='formChangeIconAction'></div></td></tr>"+"</table>";this.columnCreateFormNode.set("html",l);this.columnCancelActionNode=new Element("div",{styles:this.app.css.columnCreateCancelActionNode,text:this.app.options.tooltip.column.cancel}).inject(this.columnCreateFormNode);this.columnCreateOkActionNode=new Element("div",{styles:this.app.css.columnCreateOkActionNode,text:this.app.options.tooltip.column.ok}).inject(this.columnCreateFormNode);this.columnCancelActionNode.addEvent("click",function(e){this.cancelCreateColumn(e)}.bind(this));this.columnCreateOkActionNode.addEvent("click",function(e){this.okCreateColumn(e)}.bind(this));this.iconPreviewNode=this.columnCreateFormNode.getElement("div#formIconPreview");this.iconActionNode=this.columnCreateFormNode.getElement("div#formChangeIconAction");this.iconPreviewNode.setStyles({height:"72px",width:"72px",float:"left"});if(!this.isNew&&this.data.appIcon){this.iconPreviewNode.setStyle("background","url(data:image/png;base64,"+this.data.appIcon+") center center no-repeat")}else{this.iconPreviewNode.setStyle("background","url("+"/x_component_cms_Column/$Main/default/icon/column.png) center center no-repeat")}var c=new Element("div",{styles:{"margin-left":"20px",float:"left","background-color":"#FFF",padding:"4px 14px",border:"1px solid #999","border-radius":"3px","margin-top":"10px","font-size":"14px",color:"#666",cursor:"pointer"},text:"更改图标"}).inject(this.iconActionNode);c.addEvent("click",function(){this.changeIcon()}.bind(this))},setColumnCreateNodeSize:function(){var e=this.createContainer.getSize();var t=this.app.content.getSize();this.columnCreateMarkNode.setStyles({width:""+t.x+"px",height:""+t.y+"px"});this.columnCreateAreaNode.setStyles({width:""+e.x+"px",height:""+e.y+"px"});var i=e.y*.8;var o=e.y*.2/2;this.columnCreateNode.setStyles({height:""+i+"px","margin-top":""+o+"px"});var n=this.columnCreateNewNode.getSize();var s=i*.7;if(s>250)s=250;var a=i*.3/2-n.y;this.columnCreateFormNode.setStyles({height:""+s+"px","margin-top":""+a+"px"})},cancelCreateColumn:function(e){if(this.isNew){this.cancelNewColumn(e)}else{this.cancelEditColumn(e)}},cancelNewColumn:function(e){var t=this;if($("createColumnName").get("value")||$("createColumnAlias").get("value")||$("createColumnDescription").get("value")){this.app.confirm("warn",e,this.app.options.tooltip.column.create_cancel_title,this.app.options.tooltip.column.create_cancel,"320px","100px",function(){t.columnCreateMarkNode.destroy();t.columnCreateAreaNode.destroy();this.close()},function(){this.close()})}else{this.columnCreateMarkNode.destroy();this.columnCreateAreaNode.destroy()}},cancelEditColumn:function(e){this.columnCreateMarkNode.destroy();this.columnCreateAreaNode.destroy()},okCreateColumn:function(e){var t={id:this.data&&this.data.id?this.data.id:this.app.restActions.getUUID(),isNewColumn:this.isNew,appName:$("createColumnName").get("value"),description:$("createColumnDescription").get("value"),appInfoSeq:$("createColumnSort").get("value")};if(this.data&&this.data.appIcon)t.appIcon=this.data.appIcon;if(t.appName){var i=function(e){this.app.restActions.getColumn({id:e},function(e){if(this.isNew){var t={objectType:"APPINFO",objectId:e.data.id,adminUid:layout.desktop.session.user.name,adminName:layout.desktop.session.user.name,adminLevel:"ADMIN"};this.app.restActions.addController(t)}if(this.app.noElementNode)this.app.noElementNode.destroy();var i=new MWF.xApplication.cms.Column.Column(this.app,e.data,{where:"top"});i.load();this.app.columns.push(i)}.bind(this))}.bind(this);this.app.notice(this.isNew?this.app.options.tooltip.column.createColumnSuccess:this.app.options.tooltip.column.updateColumnSuccess,"success");this.app.restActions.saveColumn(t,function(e){if(e.type=="error"){this.app.notice(e.message,"error")}else{this.columnCreateMarkNode.destroy();this.columnCreateAreaNode.destroy();if(!this.isNew)this.node.destroy();if(this.formData){this.saveIcon(e.data.id,i)}else{i(e.data.id)}}}.bind(this),function(e){var t=JSON.parse(e.responseText);this.app.notice(t.message||json.userMessage,"error")}.bind(this))}else{$("createColumnName").setStyle("border-color","red");$("createColumnName").focus();this.app.notice(this.app.options.tooltip.column.inputName,"error")}},changeIcon:function(){if(!this.uploadFileAreaNode){this.uploadFileAreaNode=new Element("div");var e='<input name="file" type="file"/>';this.uploadFileAreaNode.set("html",e);this.fileUploadNode=this.uploadFileAreaNode.getFirst();this.fileUploadNode.addEvent("change",function(){var e=t.files;if(e.length){for(var i=0;i<e.length;i++){var o=e.item(i);if(!o.type.match("image.*"))continue;this.file=o;this.formData=new FormData;this.formData.append("file",this.file);if(!window.FileReader)continue;var n=new FileReader;n.onload=function(e){return function(e){this.iconPreviewNode.setStyle("background","");this.iconPreviewNode.empty();new Element("img",{styles:{height:"72px",width:"72px"},src:e.target.result}).inject(this.iconPreviewNode)}.bind(this)}.bind(this)(o);n.readAsDataURL(o)}}}.bind(this))}var t=this.uploadFileAreaNode.getFirst();t.click()},saveIcon:function(e,t){this.app.restActions.updataColumnIcon(e,function(){this.formData=null;if(t)t(e)}.bind(this),null,this.formData,this.file)}});
|