MWF.require("MWF.xApplication.File.Actions.RestActions",null,false);MWF.require("MWF.xApplication.File.AttachmentController",null,false);MWF.xApplication.File.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",name:"File",icon:"icon.png",width:"1000",height:"600",title:MWF.xApplication.File.LP.title},onQueryLoad:function(){this.lp=MWF.xApplication.File.LP},loadApplication:function(e){this.history=[];this.currentHistory=1;this.currentFolder=null;this.restActions=new MWF.xApplication.File.Actions.RestActions;MWF.getJSON("/x_component_File/$Main/icon.json",function(e){this.icons=e}.bind(this),false);this.createNode();this.loadApplicationContent();if(e)e()},createNode:function(){this.content.setStyle("overflow","hidden");this.node=new Element("div",{styles:{width:"100%",height:"100%",overflow:"hidden"}}).inject(this.content)},loadApplicationContent:function(){this.loadTop();this.fileContentNode=new Element("div",{styles:this.css.fileContentNode}).inject(this.node);this.folderContentNode=new Element("div",{styles:this.css.folderContentNode}).inject(this.fileContentNode);this.attachmentContentNode=new Element("div",{styles:this.css.attachmentContentNode}).inject(this.fileContentNode);this.resizeContentNode=new Element("div",{styles:this.css.resizeContentNode}).inject(this.folderContentNode);this.folderTreeAreaNode=new Element("div",{styles:this.css.folderTreeAreaNode}).inject(this.folderContentNode);this.folderTreeAreaScrollNode=new Element("div",{styles:this.css.folderTreeAreaScrollNode}).inject(this.folderContentNode);this.shareTreeAreaScrollNode=new Element("div",{styles:this.css.folderTreeAreaScrollNode}).inject(this.folderContentNode);this.loadFileContentAreaNode();this.loadFolderTreeNode();this.treeResize=new Drag(this.resizeContentNode,{snap:1,onStart:function(e,t){var i=t.event.clientX;var s=t.event.clientY;e.store("position",{x:i,y:s});var n=this.folderContentNode.getSize();e.store("initialWidth",n.x)}.bind(this),onDrag:function(e,t){var i=t.event.clientX;var s=this.content.getSize();var n=e.retrieve("position");var o=e.retrieve("initialWidth").toFloat();var l=i.toFloat()-n.x.toFloat();var d=o+l;if(d>s.x/2)d=s.x/2;if(d<160)d=160;this.attachmentContentNode.setStyle("margin-left",d);this.folderContentNode.setStyle("width",d)}.bind(this)});MWF.require("MWF.widget.Tab",function(){this.treeTab=new MWF.widget.Tab(this.folderTreeAreaNode,{style:"processlayout"});this.treeTab.load();this.fileTabe=this.treeTab.addTab(this.folderTreeAreaScrollNode,this.lp.myFiles,false);this.shareTab=this.treeTab.addTab(this.shareTreeAreaScrollNode,this.lp.shareFiles,false);this.fileTabe.showIm();this.setContentHeight();this.addEvent("resize",function(){this.setContentHeight()}.bind(this))}.bind(this));MWF.require("MWF.widget.ScrollBar",function(){new MWF.widget.ScrollBar(this.folderTreeAreaScrollNode,{style:"xApp_Organization_Explorer",where:"before",distance:100,friction:4,axis:{x:false,y:true}});new MWF.widget.ScrollBar(this.shareTreeAreaScrollNode,{style:"xApp_Organization_Explorer",where:"before",distance:100,friction:4,axis:{x:false,y:true}})}.bind(this))},loadTop:function(){this.topNode=new Element("div",{styles:this.css.topNode}).inject(this.node);this.leftNode=new Element("div",{styles:this.css.leftNode}).inject(this.topNode);this.leftNode.addEvent("click",function(){this.leftPath()}.bind(this));this.rightNode=new Element("div",{styles:this.css.rightNode}).inject(this.topNode);this.rightNode.addEvent("click",function(){this.rightPath()}.bind(this));this.refreshNode=new Element("div",{styles:this.css.refreshNode}).inject(this.topNode);this.searchNode=new Element("div",{styles:this.css.searchNode}).inject(this.topNode);this.pathNode=new Element("div",{styles:this.css.pathNode}).inject(this.topNode)},loadTools:function(){this.toolsNode=new Element("div",{styles:this.css.toolsNode}).inject(this.node);this.uploadNode=new Element("div",{styles:this.css.toolsActionNode,text:this.lp.upload}).inject(this.toolsNode);this.createFolderNode=new Element("div",{styles:this.css.toolsActionNode,text:this.lp.createFolder}).inject(this.toolsNode);this.operationNode=new Element("div",{styles:this.css.toolsMenuActionNode}).inject(this.toolsNode);var e=new Element("div",{styles:this.css.downTextNode,text:this.lp.operation}).inject(this.operationNode);var t=new Element("div",{styles:this.css.downIconNode}).inject(this.operationNode);this.uploadNode.addEvents({mouseover:function(){this.uploadNode.setStyles(this.css.toolsActionNode_over)}.bind(this),mouseout:function(){this.uploadNode.setStyles(this.css.toolsActionNode)}.bind(this),click:function(){this.createUploadFile()}.bind(this)});this.createFolderNode.addEvents({mouseover:function(){this.createFolderNode.setStyles(this.css.toolsActionNode_over)}.bind(this),mouseout:function(){this.createFolderNode.setStyles(this.css.toolsActionNode)}.bind(this),click:function(){this.createFolder()}.bind(this)});this.operationNode.addEvents({mouseover:function(){this.operationNode.setStyles(this.css.toolsMenuActionNode_over)}.bind(this),mouseout:function(){this.operationNode.setStyles(this.css.toolsMenuActionNode)}.bind(this),click:function(){}.bind(this)});this.operationMenu=new MWF.xDesktop.Menu(this.operationNode,{event:"click",style:"fileOperation",offsetX:-4,offsetY:4,onQueryShow:function(){this.operationMenu.items.each(function(e){e.setDisable(true)});if(this.selectedItem){if(this.selectedItem.type=="folder"){this.operationMenu.items[0].setText(this.lp.uploadTo+" "+this.selectedItem.data.name+"...");this.operationMenu.items[0].setDisable(false);this.operationMenu.items[3].setDisable(false);this.operationMenu.items[4].setDisable(false);this.operationMenu.items[7].setDisable(false)}if(this.selectedItem.type=="file"){this.operationMenu.items[0].setText(this.lp.uploadTo);this.operationMenu.items[0].setDisable(true);this.operationMenu.items[1].setDisable(false);this.operationMenu.items[3].setDisable(false);this.operationMenu.items[4].setDisable(false);this.operationMenu.items[5].setDisable(false);this.operationMenu.items[7].setDisable(false)}}}.bind(this)});this.operationMenu.load();var i=this.path+this.options.style+"/operation/upload.png";this.operationMenu.addMenuItem(this.lp.uploadTo,"click",function(){this.createUploadFile(this.selectedItem)}.bind(this),i);var i=this.path+this.options.style+"/operation/download.png";this.operationMenu.addMenuItem(this.lp.download,"click",function(){this.downloadCurrentFile()}.bind(this),i);this.operationMenu.addMenuLine();var i=this.path+this.options.style+"/operation/move.png";this.operationMenu.addMenuItem(this.lp.move,"click",function(){this.moveFileFolder()}.bind(this),i);var i=this.path+this.options.style+"/operation/rename.png";this.operationMenu.addMenuItem(this.lp.rename,"click",function(){this.renameFileFolder()}.bind(this),i);var i=this.path+this.options.style+"/operation/share.png";this.operationMenu.addMenuItem(this.lp.share,"click",function(){this.shareFile()}.bind(this),i);this.operationMenu.addMenuLine();var i=this.path+this.options.style+"/operation/delete.png";this.operationMenu.addMenuItem(this.lp["delete"],"click",function(e){this.deleteFileFolder(e)}.bind(this),i)},downloadCurrentFile:function(){if(this.selectedItem){if(this.selectedItem.type=="file"){this.selectedItem.open()}}},moveFileFolder:function(){},renameFileFolder:function(){this.content.mask({style:{opacity:.7,"background-color":"#999"}});var e=new Element("div",{styles:this.css.createFolderNode}).inject(this.content);e.position({relativeTo:this.node,position:"center"});var t=new Element("div",{styles:this.css.createFolderTitleNode,text:this.lp.rename}).inject(e);var i=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.inputName}).inject(e);var s=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(e);var n=new Element("input",{type:"text",styles:this.css.createFolderInputNode,value:this.selectedItem.data.name}).inject(s);var o=new Element("div",{styles:this.css.createFolderActionNode}).inject(e);var l=new Element("button",{styles:this.css.createFolderCancelButton,text:this.lp.cancel}).inject(o);var d=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(o);l.addEvent("click",function(){this.content.unmask();e.destroy()}.bind(this));d.addEvent("click",function(){if(n.get("value")){this.selectedItem.data.name=n.get("value");if(this.selectedItem.type=="folder"){this.restActions.saveFolder(this.selectedItem.data,function(e){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}this.selectedItem.treeNode.setText(this.selectedItem.data.name)}.bind(this))}else{this.restActions.updateAttachment(this.selectedItem.data,function(e){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}}.bind(this))}e.destroy();this.content.unmask()}else{this.notice(this.lp.nameNotEmpty,"error",e)}}.bind(this))},deleteFileFolder:function(e){if(this.selectedItem){var t=this;var i=this.selectedItem.type=="folder"?this.lp.deleteFolderTitle:this.lp.deleteFileTitle;var s=this.selectedItem.type=="folder"?this.lp.deleteFolder:this.lp.deleteFile;var n=this.node.getSize();var o={event:{x:(n.x-300)/2,y:(n.y-120)/2}};this.confirm("infor",o,i,s+"("+this.selectedItem.data.name+")",300,120,function(){var e=function(){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}};if(t.selectedItem.type=="folder"){t.selectedItem.treeNode.destroy();t.restActions.deleteFolder(t.selectedItem.data.id,e.bind(t))}else{t.restActions.deleteFile(t.selectedItem.data.id,e.bind(t))}this.close()},function(){this.close()})}},shareFile:function(){this.content.mask({style:{opacity:.7,"background-color":"#999"}});var e=new Element("div",{styles:this.css.createFolderNode}).inject(this.content);e.position({relativeTo:this.node,position:"center"});var t=new Element("div",{styles:this.css.createFolderTitleNode,text:this.lp.shareFile}).inject(e);var i=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.selectShareUser}).inject(e);var s=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(e);var n=new Element("input",{type:"text",readonly:true,styles:this.css.shareFileInputNode,value:this.selectedItem.data.shareList.join(", ")}).inject(s);n.addEvent("click",function(){MWF.require("MWF.xApplication.Organization.Selector.Person",function(){var e=new MWF.xApplication.Organization.Selector.Person(this.node,{names:this.selectedItem.data.shareList,onComplete:function(e){var t=[];e.each(function(e){t.push(e.data.name)});n.set("value",t.join(", "))}.bind(this)});e.load()}.bind(this))}.bind(this));var o=new Element("div",{styles:this.css.createFolderActionNode}).inject(e);var l=new Element("button",{styles:this.css.createFolderCancelButton,text:this.lp.cancel}).inject(o);var d=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(o);l.addEvent("click",function(){this.content.unmask();e.destroy()}.bind(this));d.addEvent("click",function(){this.selectedItem.data.shareList=n.get("value").split(/,\s*/g);this.restActions.updateAttachment(this.selectedItem.data,function(e){if(n.get("value"))this.notice(this.lp.fileShareSuccess+n.get("value"),"success",this.content)}.bind(this));e.destroy();this.content.unmask()}.bind(this))},createUploadFile:function(e){if(!this.uploadFileAreaNode){this.uploadFileAreaNode=new Element("div");var t='';this.uploadFileAreaNode.set("html",t);this.fileUploadNode=this.uploadFileAreaNode.getFirst();this.fileUploadNode.addEvent("change",function(){var t="";if(e){t=e.data.id}else{t=this.currentFolder&&this.currentFolder.data?this.currentFolder.data.id:""}var s=i.files;if(s.length){for(var n=0;n1){if(this.currentHistory>0){this.enabledLeftNode()}else{this.disabledLeftNode()}if(this.currentHistory0){this.currentHistory--;var e=this.history[this.currentHistory];if(e){e.selectNode();this.loadSub(e);this.checkHistory()}}},rightPath:function(){if(this.currentHistory