FileExplorer.min.js 10 KB

1
  1. MWF.xDesktop.requireApp("process.ProcessManager","DictionaryExplorer",null,false);MWF.xApplication.process.ProcessManager.FileExplorer=new Class({Extends:MWF.xApplication.process.ProcessManager.DictionaryExplorer,Implements:[Options,Events],options:{create:MWF.APPPM.LP.file.create,search:MWF.APPPM.LP.file.search,searchText:MWF.APPPM.LP.file.searchText,noElement:MWF.APPPM.LP.file.noDictionaryNoticeText},_createElement:function(e){new MWF.xApplication.process.ProcessManager.FileDesigner(this)},_loadItemDataList:function(e){var t="";if(this.app.application)t=this.app.application.id;if(this.app.options.application)t=this.app.options.application.id;this.actions.listFile(t,e)},_getItemObject:function(e){return new MWF.xApplication.process.ProcessManager.FileExplorer.File(this,e)},setTooltip:function(){this.options.tooltip={create:MWF.APPPM.LP.file.create,search:MWF.APPPM.LP.file.search,searchText:MWF.APPPM.LP.file.searchText,noElement:MWF.APPPM.LP.file.noScriptNoticeText}},deleteItems:function(){this.hideDeleteAction();while(this.deleteMarkItems.length){var e=this.deleteMarkItems.shift();if(this.deleteMarkItems.length){e.deleteFile()}else{e.deleteFile(function(){}.bind(this))}}}});MWF.xApplication.process.ProcessManager.FileExplorer.File=new Class({Extends:MWF.xApplication.process.ProcessManager.DictionaryExplorer.Dictionary,_createActions:function(){this.deleteActionNode=new Element("div",{styles:this.explorer.css.deleteActionNode}).inject(this.node);this.deleteActionNode.addEvent("click",function(e){this.deleteItem(e)}.bind(this))},_customNodes:function(){},_open:function(e){var t=this;MWF.Actions.get("x_processplatform_assemble_designer").getFile(this.data.id,function(e){this.data=e.data;new MWF.xApplication.process.ProcessManager.FileDesigner(this.explorer,this.data)}.bind(this))},_getIcon:function(){return"file.png"},_getLnkPar:function(){return{icon:this.explorer.path+this.explorer.options.style+"/fileIcon/lnk.png",title:this.data.name,par:'process.FileDesigner#{"id": "'+this.data.id+'", "applicationId": "'+this.explorer.app.options.application.id+'"}'}},deleteFile:function(e){this.explorer.app.restActions.deleteFile(this.data.id,function(){this.node.destroy();if(e)e()}.bind(this))}});MWF.xApplication.process.ProcessManager.FileDesigner=new Class({initialize:function(e,t){this.explorer=e;this.app=this.explorer.app;this.data=t;this.container=this.explorer.container;this.css=this.explorer.css;this.lp=MWF.APPPM.LP;this.load()},getNewData:function(){return{id:"",name:"",alias:"",description:"",application:(this.explorer.app.options.application||this.explorer.app.application).id,fileName:""}},resize:function(){var e=this.app.content.getSize();var t=this.fileAreaNode.getSize();var i=(e.x-t.x)/2;var s=(e.y-t.y)/2;if(s<0)s=0;if(i<0)i=0;this.fileAreaNode.setStyles({top:""+s+"px",left:""+i+"px"});var n=this.titleNode.getSize();var o=this.buttonNode.getSize();var a=t.y-n.y-o.y;this.contentNode.setStyle("height",""+a+"px")},load:function(){debugger;if(!this.data)this.data=this.getNewData();this.fileMaskNode=new Element("div",{styles:this.css.createTemplateMaskNode}).inject(this.app.content);this.fileAreaNode=new Element("div",{styles:this.css.createFormTemplateAreaNode}).inject(this.app.content);this.fileAreaNode.fade("in");this.titleNode=new Element("div",{styles:this.css.fileDesignerTitleNode}).inject(this.fileAreaNode);this.titleIconNode=new Element("div",{styles:this.css.fileDesignerTitleIconNode}).inject(this.titleNode);if(!this.data.id)this.titleIconNode.setStyle("background-image","url("+this.explorer.path+this.app.options.style+"/icon/new.png)");this.titleTextNode=new Element("div",{styles:this.css.fileDesignerTitleTextNode}).inject(this.titleNode);var e=this.data.name?this.data.name:this.explorer.options.tooltip.create;this.titleTextNode.set("text",e);this.contentNode=new Element("div",{styles:this.css.fileDesignerContentNode}).inject(this.fileAreaNode);this.createContent();this.buttonNode=new Element("div",{styles:this.css.fileDesignerButtonNode}).inject(this.fileAreaNode);this.createButton();this.resizeFun=this.resize.bind(this);this.resizeFun();this.app.addEvent("resize",this.resizeFun);this.setEvent()},createContent:function(){this.contentAreaNode=new Element("div",{styles:this.css.fileDesignerContentAreaNode}).inject(this.contentNode);this.nameInput=this.createContentLine(this.lp.name,this.data.name);this.aliasInput=this.createContentLine(this.lp.alias,this.data.alias);this.descriptionInput=this.createContentLine(this.lp.file.description,this.data.description,true);this.createContentFile();this.createContentFileUrl()},createContentFileUrl:function(){if(this.data.fileName){var e=new Element("div",{styles:this.css.fileDesignerContentLineNode}).inject(this.contentAreaNode);var t=new Element("div",{styles:this.css.fileDesignerContentLineTitleNode,text:"URL"}).inject(e);this.fileUrlNode=new Element("div",{styles:this.css.fileDesignerContentLineContentNode}).inject(e);e.setStyle("height","80px");var i=MWF.Actions.get("x_processplatform_assemble_surface").action.actions.readFile.uri;i=i.replace(/{flag}/,this.data.id);i=i.replace(/{applicationFlag}/,this.data.application);i="/x_processplatform_assemble_surface"+i;this.fileUrlNode.setStyle("line-height","18px");var s=MWF.Actions.getHost("x_processplatform_assemble_surface")+i;this.fileUrlNode.set("text",i);var n=new Element("div",{styles:{height:"30px"},html:"<a target='_blank' href='"+s+"'>open</a>"}).inject(this.fileUrlNode,"bottom")}},modifyContentFileUrl:function(){if(!this.fileUrlNode){this.createContentFileUrl()}else{var e=MWF.Actions.get("x_processplatform_assemble_surface").action.actions.readFile.uri;e=e.replace(/{flag}/,this.data.id);e=e.replace(/{applicationFlag}/,this.data.application);e="/x_processplatform_assemble_surface"+e;this.fileUrlNode.setStyle("line-height","18px");var t=MWF.Actions.getHost("x_processplatform_assemble_surface")+e;this.fileUrlNode.set("text",e);var i=new Element("div",{styles:{height:"30px"},html:"<a target='_blank' href='"+t+"'>open</a>"}).inject(this.fileUrlNode,"bottom")}},createContentFile:function(){var e=new Element("div",{styles:this.css.fileDesignerContentFileLineNode}).inject(this.contentAreaNode);var t=new Element("div",{styles:this.css.fileDesignerContentFileLineTitleNode,text:this.lp.attachment}).inject(e);var i=new Element("div",{styles:this.css.fileDesignerContentFileLineRightNode}).inject(e);this.fileContentNode=new Element("div",{styles:this.css.fileDesignerContentFileLineContentNode}).inject(e);this.uploadFileButton=new Element("div",{styles:this.css.fileDesignerUploadButtonNode,text:this.lp.upload}).inject(i);if(this.data.fileName){this.loadFileIcon()}},getIconJson:function(t){if(!this.icons){MWF.getJSON("/x_component_File/$Main/icon.json",function(e){this.icons=e;if(t)t()}.bind(this),false,false)}else{if(t)t()}},getIcon:function(e){if(!e)e="unkonw";var t=this.icons[e.toLowerCase()]||this.icons.unknow;return"/x_component_File/$Main/default/file/"+t},loadFileIcon:function(){debugger;this.fileContentNode.empty();var n=this.data.fileName.substr(this.data.fileName.lastIndexOf(".")+1,this.data.fileName.length);this.getIconJson(function(){var e=this.getIcon(n);var t=new Element("div",{styles:this.css.fileDesignerContentFileLineFileIconNode}).inject(this.fileContentNode);t.setStyle("background-image","url('"+e+"')");var i=new Element("div",{styles:this.css.fileDesignerContentFileLineFileNameNode,text:this.data.fileName}).inject(this.fileContentNode);var s=new Element("div",{styles:this.css.fileDesignerContentFileLineFileSizeNode,text:this.data.description}).inject(this.fileContentNode)}.bind(this))},createContentLine:function(e,t,i){var s=new Element("div",{styles:this.css.fileDesignerContentLineNode}).inject(this.contentAreaNode);var n=new Element("div",{styles:this.css.fileDesignerContentLineTitleNode,text:e}).inject(s);var o=new Element("div",{styles:this.css.fileDesignerContentLineContentNode}).inject(s);return new Element("input",{styles:this.css.fileDesignerContentLineInputNode,value:t,readonly:i}).inject(o)},createButton:function(){this.cancelButton=new Element("div",{styles:this.css.fileDesignerCancelButtonNode,text:this.lp.cancel}).inject(this.buttonNode);this.okButton=new Element("div",{styles:this.css.fileDesignerOkButtonNode,text:this.lp.ok}).inject(this.buttonNode)},setEvent:function(){this.cancelButton.addEvent("click",function(e){this.close(e)}.bind(this));this.okButton.addEvent("click",function(){this.save()}.bind(this));this.uploadFileButton.addEvent("click",function(){this.upload()}.bind(this))},upload:function(){debugger;if(!this.data.id){var e=this.getData();this.data=Object.merge(this.data,e);MWF.Actions.get("x_processplatform_assemble_designer").saveFile(this.data,function(){this.explorer.reload();this.uploadFile(function(){this.app.notice(this.lp.file.uploadSuccess,"success")}.bind(this))}.bind(this))}else{this.uploadFile(function(){this.app.notice(this.lp.file.uploadSuccess,"success")}.bind(this))}},uploadFile:function(e){MWF.require("MWF.widget.Upload",function(){new MWF.widget.Upload(this.app.content,{action:MWF.Actions.get("x_processplatform_assemble_designer").action,method:"uploadFile",parameter:{id:this.data.id},onCompleted:function(){this.loadFileIcon();this.modifyContentFileUrl();if(e)e()}.bind(this),onEvery:function(e,t,i,s){this.data.fileName=s.name;this.data.description=s.name+" "+this.getSizeText(s.size);this.descriptionInput.set("value",this.data.description);MWF.Actions.get("x_processplatform_assemble_designer").saveFile(this.data)}.bind(this)}).load()}.bind(this))},getSizeText:function(e){var t=[{t:"K",i:1024},{t:"M",i:1024*1024},{t:"G",i:1024*1024*1024}];var i=0;var s=e/t[i].i;while(s>1e3&&i<2){i++;s=e/t[i].i}s=Math.round(s*100)/100;return""+s+" "+t[i].t},getData:function(){return{name:this.nameInput.get("value"),alias:this.aliasInput.get("value"),description:this.descriptionInput.get("value")}},close:function(e){var t=this.getData();var i=this;if(t.name!==this.data.name||t.alias!==this.data.alias||t.description!==this.data.description){this.app.confirm("infor",e,this.lp.file.saveConfirm,this.lp.file.saveConfirmText,350,120,function(){this.close();i.save()},function(){this.close();i.destroy()})}else{this.destroy()}},save:function(){var e=this.getData();this.data=Object.merge(this.data,e);MWF.Actions.get("x_processplatform_assemble_designer").saveFile(this.data,function(){this.explorer.reload();this.app.notice(this.lp.file.saveSuccess,"success");this.destroy()}.bind(this))},destroy:function(){this.fileMaskNode.destroy();this.fileAreaNode.destroy();if(this.resizeFun)this.app.removeEvent("resize",this.resizeFun);MWF.release(this)}});