MWF.xDesktop.requireApp("File","Actions.RestActions",null,false);MWF.xDesktop.requireApp("File","AttachmentController",null,false);MWF.require("MWF.widget.Tree",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;this.restActions=MWF.Actions.get("x_file_assemble_control")},loadApplication:function(e){this.history=[];this.currentHistory=1;this.currentFolder=null;MWF.getJSON("/x_component_File/$Main/icon.json",function(e){this.icons=e}.bind(this),false,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.editorTreeAreaScrollNode=new Element("div",{styles:this.css.folderTreeAreaScrollNode}).inject(this.folderContentNode);this.loadFileContentAreaNode();this.loadFolderTreeNode();this.loadShareTreeNode();this.loadEditorTreeNode();this.shareTree.loadCallback=function(){if(this.shareTab.isShow){if(this.status){if(this.status.node){var e=false;for(var t=0;ts.x/2)r=s.x/2;if(r<200)r=200;this.attachmentContentNode.setStyle("margin-left",r);this.folderContentNode.setStyle("width",r)}.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.editorTab=this.treeTab.addTab(this.editorTreeAreaScrollNode,this.lp.editorFiles,false);this.fileTabe.addEvent("show",function(){if(this.folderTree.currentNode){this.folderTree.currentNode.clickNode()}else{if(this.folderTree.firstChild){this.folderTree.firstChild.clickNode()}else{if(this.controller)this.controller.clear()}}this.checkControllerActionsFile()}.bind(this));this.shareTab.addEvent("show",function(){if(this.shareTree.currentNode){this.shareTree.currentNode.clickNode()}else{if(this.shareTree.firstChild){this.shareTree.firstChild.clickNode()}else{if(this.controller)this.controller.clear()}}this.checkControllerActionsShare()}.bind(this));this.editorTab.addEvent("show",function(){if(this.editorTree.currentNode){this.editorTree.currentNode.clickNode()}else{if(this.editorTree.firstChild){this.editorTree.firstChild.clickNode()}else{if(this.controller)this.controller.clear()}}this.checkControllerActionsEditor()}.bind(this));var e="file";if(this.status){if(this.status.tab){e=this.status.tab}}if(e=="file")this.fileTabe.showIm();if(e=="share")this.shareTab.showIm();if(e=="editor")this.editorTab.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}});new MWF.widget.ScrollBar(this.editorTreeAreaScrollNode,{style:"xApp_Organization_Explorer",where:"before",distance:100,friction:4,axis:{x:false,y:true}})}.bind(this))},checkControllerActionsFile:function(){this.controller.folderActionBoxNode.setStyle("display","block");this.controller.uploadAction.setStyle("display","block");this.controller.deleteAction.setStyle("display","block");this.controller.replaceAction.setStyle("display","block");this.controller.editActionSeparateNode.setStyle("display","block");this.controller.shareActionBoxNode.setStyle("display","block")},checkControllerActionsShare:function(){this.controller.folderActionBoxNode.setStyle("display","none");this.controller.uploadAction.setStyle("display","none");this.controller.deleteAction.setStyle("display","none");this.controller.replaceAction.setStyle("display","none");this.controller.editActionSeparateNode.setStyle("display","none");this.controller.shareActionBoxNode.setStyle("display","none")},checkControllerActionsEditor:function(){this.controller.folderActionBoxNode.setStyle("display","none");this.controller.uploadAction.setStyle("display","none");this.controller.deleteAction.setStyle("display","none");this.controller.replaceAction.setStyle("display","block");this.controller.editActionSeparateNode.setStyle("display","block");this.controller.shareActionBoxNode.setStyle("display","none")},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)},openAttachment:function(e,t,i){this.restActions.getFileUrl(i[0].data.id,function(e){window.open(e)})},downloadAttachment:function(e,t,i){i.each(function(e){this.restActions.getFileDownloadUrl(e.data.id,function(e){window.open(e)})}.bind(this))},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=this.controller.selectedAttachments[0];var i=t.treeNode;var s=new Element("div",{styles:this.css.createFolderTitleNode,text:this.lp.rename}).inject(e);var n=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.inputName}).inject(e);var o=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(e);var l=new Element("input",{type:"text",styles:this.css.createFolderInputNode,value:t.data.name}).inject(o);var r=new Element("div",{styles:this.css.createFolderActionNode}).inject(e);var d=new Element("button",{styles:this.css.createFolderCancelButton,text:this.lp.cancel}).inject(r);var a=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(r);d.addEvent("click",function(){this.content.unmask();e.destroy()}.bind(this));a.addEvent("click",function(){if(l.get("value")){t.data.name=l.get("value");if(t.type=="folder"){this.restActions.saveFolder(t.data,function(e){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}i.setText(l.get("value"))}.bind(this))}else{this.restActions.updateAttachment(this.controller.selectedAttachments[0].data.id,this.controller.selectedAttachments[0].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))},deleteAttachments:function(e,t,i){this.deleteFileFolder(e,i)},deleteFileFolder:function(e,s){if(s.length){var n=this;var t=this.lp.deleteFolderFilesTitle;var i=this.lp.deleteFolderFiles;if(s.length==1){var t=s[0].type=="folder"?this.lp.deleteFolderTitle:this.lp.deleteFileTitle;var i=s[0].type=="folder"?this.lp.deleteFolder:this.lp.deleteFile;i=i+"("+s[0].data.name+")"}var o=this.node.getSize();var l={event:{x:(o.x-300)/2,y:(o.y-120)/2}};this.confirm("infor",l,t,i,300,120,function(){var e=s.length;var t=0;var i=function(){if(t==e){if(this.currentFolder){this.currentFolder.loaded=false;this.currentFolder.clickNode()}else{this.topTreeNode.loaded=false;this.topTreeNode.clickNode()}}};s.each(function(e){if(e.type=="folder"){e.treeNode.destroy();n.restActions.deleteFolder(e.data.id,function(){t++;i.apply(n)})}else{n.restActions.deleteFile(e.data.id,function(){t++;i.apply(n)})}});this.close()},function(){this.close()})}},shareAttachment:function(){this.shareFile()},shareFile:function(){this.content.mask({style:{opacity:.7,"background-color":"#999"}});var s=new Element("div",{styles:this.css.createFolderNode}).inject(this.content);s.position({relativeTo:this.node,position:"center"});var e=new Element("div",{styles:this.css.createFolderTitleNode,text:this.lp.shareFile}).inject(s);var t=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.selectShareUser}).inject(s);var i=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(s);var n=new Element("div",{type:"text",readonly:true,styles:this.css.shareFileInputNode}).inject(i);debugger;n.addEvent("click",function(){MWF.xDesktop.requireApp("Selector","Person",function(){var e=new MWF.xApplication.Selector.Person(this.node,{onComplete:function(e){MWF.require("MWF.widget.O2Identity",function(){var t=[];var i=[];n.empty();e.each(function(e){t.push(e.data.distinguishedName);i.push(e.data.name);new MWF.widget.O2Person({name:e.data.distinguishedName},n,{style:"xform"})});n.store("texts",i);n.set("value",t.join(", "))}.bind(this))}.bind(this)});e.load()}.bind(this))}.bind(this));var o=new Element("div",{styles:this.css.createFolderActionNode}).inject(s);var l=new Element("button",{styles:this.css.createFolderCancelButton,text:this.lp.cancel}).inject(o);var r=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(o);l.addEvent("click",function(){this.content.unmask();s.destroy()}.bind(this));r.addEvent("click",function(){var e=this.controller.selectedAttachments.length;var t=0;var i=function(){if(t===e){if(n.get("value"))this.notice(this.lp.fileShareSuccess+n.retrieve("texts",[]).join(","),"success",this.content);s.destroy();this.content.unmask()}};this.controller.selectedAttachments.each(function(e){if(e.type!="folder"){e.data.shareList=n.get("value").split(/,\s*/g);this.restActions.updateAttachment(e.data.id,e.data,function(e){t++;i.apply(this)}.bind(this))}else{t++;i.apply(this)}}.bind(this))}.bind(this))},sendAttachment:function(){this.sendFile()},sendFile:function(){this.content.mask({style:{opacity:.7,"background-color":"#999"}});var s=new Element("div",{styles:this.css.createFolderNode}).inject(this.content);s.position({relativeTo:this.node,position:"center"});var e=new Element("div",{styles:this.css.createFolderTitleNode,text:this.lp.sendFile}).inject(s);var t=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.selectSendUser}).inject(s);var i=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(s);var n=new Element("div",{type:"text",readonly:true,styles:this.css.shareFileInputNode}).inject(i);n.addEvent("click",function(){MWF.xDesktop.requireApp("Selector","Person",function(){var e=new MWF.xApplication.Selector.Person(this.node,{onComplete:function(e){MWF.require("MWF.widget.O2Identity",function(){var t=[];var i=[];n.empty();e.each(function(e){t.push(e.data.distinguishedName);i.push(e.data.name);new MWF.widget.O2Person({name:e.data.distinguishedName},n,{style:"xform"})});n.store("texts",i);n.set("value",t.join(", "))}.bind(this))}.bind(this)});e.load()}.bind(this))}.bind(this));var o=new Element("div",{styles:this.css.createFolderActionNode}).inject(s);var l=new Element("button",{styles:this.css.createFolderCancelButton,text:this.lp.cancel}).inject(o);var r=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(o);l.addEvent("click",function(){this.content.unmask();s.destroy()}.bind(this));r.addEvent("click",function(){var e=this.controller.selectedAttachments.length;var t=0;var i=function(){if(t==e){if(n.get("value"))this.notice(this.lp.fileSendSuccess+n.retrieve("texts",[]).join(","),"success",this.content);s.destroy();this.content.unmask()}};this.controller.selectedAttachments.each(function(e){if(e.type!="folder"){e.data.editorList=n.get("value").split(/,\s*/g);this.restActions.updateAttachment(e.data.id,e.data,function(e){t++;i.apply(this)}.bind(this))}else{t++;i.apply(this)}}.bind(this))}.bind(this))},uploadAttachment:function(e,t){debugger;folderId=this.currentFolder&&this.currentFolder.data?this.currentFolder.data.id:"";this.controller.doUploadAttachment(null,this.restActions.action,"addAttachment",{folder:folderId||"(0)"},function(){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}}.bind(this))},replaceAttachment:function(e,t,i){var s=i.data.id;debugger;this.controller.doReplaceAttachment(null,this.restActions.action,"updateAttachmentData",{id:s},function(){if(this.currentFolder){this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}}.bind(this))},createFolder: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.createFolder}).inject(e);var i=new Element("div",{styles:this.css.createFolderInforNode,text:this.lp.inputFolderName}).inject(e);var s=new Element("div",{styles:this.css.createFolderInputAreaNode}).inject(e);var n=new Element("input",{type:"text",styles:this.css.createFolderInputNode}).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 r=new Element("button",{styles:this.css.createFolderOkButton,text:this.lp.ok}).inject(o);l.addEvent("click",function(){this.content.unmask();e.destroy()}.bind(this));r.addEvent("click",function(){if(n.get("value")){var t={name:n.get("value"),superior:this.currentFolder&&this.currentFolder.data?this.currentFolder.data.id:""};debugger;this.restActions.saveFolder(t,function(e){t.id=e.data.id;this.restActions.getFolder(t.id,function(e){if(this.currentFolder){var t={data:[e.data]};this.createTreeNode(t,this.currentFolder);this.currentFolder.clickNode()}else{this.topTreeNode.clickNode()}}.bind(this))}.bind(this));e.destroy();this.content.unmask()}else{this.notice(this.lp.folderNameNotEmpty,"error",e)}}.bind(this))},getAttachmentUrl:function(e,t){this.restActions.getFileUrl(e.data.id,t)},loadFolderTreeNode:function(){this.folderTreeNode=new Element("div",{styles:this.css.folderTreeNode}).inject(this.folderTreeAreaScrollNode);this.folderTree=new MWF.widget.Tree(this.folderTreeNode,{style:"file"});this.folderTree.load();var e={expand:false,title:"root",text:"root",action:function(e){this.recordHistory(e);this.expand(e,function(){this.loadSub(e)}.bind(this))}.bind(this),icon:"folder.png"};this.topTreeNode=this.folderTree.appendChild(e)},createShareTreeNode:function(e){e.data.each(function(e){var t=e.name.substring(0,e.name.indexOf("@"));var i={expand:false,title:t+"("+e.count+")",text:t+"("+e.count+")",action:function(e){this.loadShareFile(e)}.bind(this),icon:"folder.png"};var s=this.shareTree.appendChild(i);s.data=e}.bind(this))},loadShareTreeNode:function(){this.shareTreeNode=new Element("div",{styles:this.css.folderTreeNode}).inject(this.shareTreeAreaScrollNode);this.shareTree=new MWF.widget.Tree(this.shareTreeNode,{style:"file"});this.shareTree.load();this.restActions.listShare(function(e){this.createShareTreeNode(e);if(this.shareTree.loadCallback)this.shareTree.loadCallback.apply(this)}.bind(this),null,false)},loadShareFile:function(e){var t=e.data.name;this.restActions.listShareAttachment(t,function(e){this.controller.clear();e.data.each(function(e){this.controller.addAttachment(e)}.bind(this))}.bind(this))},createEditorTreeNode:function(e){e.data.each(function(e){var t=MWF.name.cn(e.name);var i={expand:false,title:t+"("+e.count+")",text:t+"("+e.count+")",action:function(e){this.loadEditorFile(e)}.bind(this),icon:"folder.png"};var s=this.editorTree.appendChild(i);s.data=e}.bind(this))},loadEditorTreeNode:function(){this.editorTreeNode=new Element("div",{styles:this.css.folderTreeNode}).inject(this.editorTreeAreaScrollNode);this.editorTree=new MWF.widget.Tree(this.editorTreeNode,{style:"file"});this.editorTree.load();this.restActions.listEditor(function(e){this.createEditorTreeNode(e);if(this.editorTree.loadCallback)this.editorTree.loadCallback.apply(this)}.bind(this),null,false)},loadEditorFile:function(e){var t=e.data.name;this.restActions.listEditorAttachment(t,function(e){this.controller.clear();e.data.each(function(e){this.controller.addAttachment(e)}.bind(this))}.bind(this))},loadFileContentAreaNode:function(){this.controller=new MWF.xApplication.File.AttachmentController(this.attachmentContentNode,this,{resize:false,isSizeChange:false});this.controller.load()},createTreeNode:function(e,s){e.data.each(function(e){var t={expand:false,title:e.name,text:e.name,action:function(e){this.recordHistory(e);this.expand(e,function(){this.loadSub(e)}.bind(this))}.bind(this),icon:"folder.png"};var i=s.appendChild(t);i.data=e}.bind(this))},loadFolderTree:function(t,i){if(!t.loaded){t.loaded=true;if(t.data){this.restActions.listFolder(t.data.id,function(e){this.createTreeNode(e,t);t.setOperateIcon();if(i)i()}.bind(this),null,false)}else{this.restActions.listTopFolder(function(e){this.createTreeNode(e,t);t.setOperateIcon();if(i)i()}.bind(this),null,false)}}else{if(i)i()}},setContentHeight:function(e){var t=this.node.getSize();var i=this.topNode.getSize();var s=this.topNode.getStyle("margin-top").toFloat();var n=this.topNode.getStyle("margin-bottom").toFloat();var o=this.fileContentNode.getStyle("margin-top").toFloat();var l=this.fileContentNode.getStyle("margin-bottom").toFloat();var r=t.y-i.y-s-n-o-l;this.fileContentNode.setStyle("height",r);this.attachmentContentNode.setStyle("height",r);var d=this.controller.topNode.getSize();var a=r-d.y;this.controller.contentScrollNode.setStyle("height",""+a+"px");var h=this.treeTab.tabNodeContainer.getSize();var r=r-h.y;this.folderTreeAreaScrollNode.setStyle("height",r);this.shareTreeAreaScrollNode.setStyle("height",r);this.editorTreeAreaScrollNode.setStyle("height",r)},expand:function(e,t){if(!e.options.expand){this.loadFolderTree(e,function(){if(t)t()}.bind(this));this.folderTree.expand(e);e.options.expand=true;e.setOperateIcon()}else{if(t)t()}},checkHistory:function(){if(this.history.length>1){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