FileSelector.min.js 6.2 KB

1
  1. MWF.xApplication.File=MWF.xApplication.File||{};MWF.xDesktop.requireApp("File","lp.zh-cn",null,false);MWF.xDesktop.requireApp("File","Actions.RestActions",null,false);MWF.xDesktop.requireApp("File","AttachmentSelector",null,false);MWF.xDesktop.requireApp("File","Main",null,false);MWF.require("MWF.widget.Tree",null,false);MWF.xApplication.File.FileSelector=new Class({Extends:MWF.xApplication.File.Main,Implements:[Options,Events],options:{title:"",style:"default",listStyle:"icon",selectType:"all",copyToPublic:true,scale:800,reference:"",referenceType:"",images:["bmp","gif","png","jpeg","jpg","jpe","ico"],audios:["mp3","wav","wma","wmv"],videos:["avi","mkv","mov","ogg","mp4","mpa","mpe","mpeg","mpg","rmvb"]},initialize:function(t,e){this.setOptions(e);this.container=$(t);this.path="/x_component_File/$FileSelector/";this.cssPath=this.path+this.options.style+"/css.wcss";this._loadCss();this.lp=MWF.xApplication.File.LP},onQueryLoad:function(){this.lp=MWF.xApplication.File.LP},load:function(){this.loadApplication()},loadApplication:function(t){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(t){this.icons=t}.bind(this),false,false);this.createNode();if(t)t()},createNode:function(){this.markNode=new Element("div",{styles:this.css.markNode,events:{mouseover:function(t){t.stopPropagation()},mouseout:function(t){t.stopPropagation()}}}).inject(this.container);this.content=new Element("div",{styles:this.css.container});this.node=new Element("div",{styles:this.css.node}).inject(this.content);this.createTopNode();this.loadApplicationContent();this.createBottomToolbarNode();this.content.inject(this.markNode,"after");this.content.fade("in");this.setNodeSize();var t=this.container.getSize();var e=this.content.getSize();this.content.makeDraggable({handle:this.titleNode,limit:{x:[0,t.x-e.x],y:[0,t.y-e.y]}})},close:function(){this.content.destroy();this.markNode.destroy();delete this},createTopNode:function(){if(this.options.title){if(!this.titleNode){this.titleNode=new Element("div.titleNode",{styles:this.css.titleNode,text:this.options.title}).inject(this.node);this.titleActionNode=new Element("div",{styles:this.css.titleActionNode}).inject(this.titleNode);this.titleActionNode.addEvent("click",function(){this.close()}.bind(this))}}},loadFileContentAreaNode:function(){this.controller=new MWF.xApplication.File.AttachmentSelector(this.attachmentContentNode,this,{resize:false,isSizeChange:false,style:this.options.style,listStyle:this.options.listStyle});this.controller.load()},createBottomToolbarNode:function(){this.bottomToolbarNode=new Element("div.bottomToolbarNode",{styles:this.css.bottomToolbarNode}).inject(this.node);this.cancelButton=new Element("div",{styles:this.css.cancelButton,text:MWF.LP.widget.cancel}).inject(this.bottomToolbarNode);this.cancelButton.addEvent("click",function(){this.close()}.bind(this));this.okButton=new Element("div",{styles:this.css.okButton,text:MWF.LP.widget.ok}).inject(this.bottomToolbarNode);this.okButton.addEvent("click",function(){if(this.controller.selectedAttachments.length){this.openAttachment(null,null,this.controller.selectedAttachments)}this.close()}.bind(this))},fiterByExtension:function(t){var e=this.options[this.options.selectType];if(e){var i=[];while(t.length){var o=t.shift();if(e.contains(o.extension)){i.push(o)}}t=i}return t},loadShareFile:function(t){var e=t.data.name;this.restActions.listShareAttachment(function(t){this.controller.clear();this.fiterByExtension(t.data).each(function(t){this.controller.addAttachment(t)}.bind(this))}.bind(this),null,e)},loadEditorFile:function(t){var e=t.data.name;this.restActions.listEditorAttachment(function(t){this.controller.clear();this.fiterByExtension(t.data).each(function(t){this.controller.addAttachment(t)}.bind(this))}.bind(this),null,e)},loadSub:function(t){this.setPathNode(t);this.controller.clear();t.children.each(function(t){var e=this.controller.addAttachmentFolder(t.data);e.treeNode=t}.bind(this));this.currentFolder=t;if(t.data){this.restActions.listAttachment(function(t){this.fiterByExtension(t.data).each(function(t){this.controller.addAttachment(t)}.bind(this))}.bind(this),null,t.data.id)}else{this.restActions.listAttachmentTop(function(t){this.fiterByExtension(t.data).each(function(t){this.controller.addAttachment(t)}.bind(this))}.bind(this))}},openAttachment:function(t,e,i){var o=i[0].data.id;this.restActions.getFileUrl(o,function(t){if(this.options.copyToPublic&&this.options.reference&&this.options.referenceType){MWF.xDesktop.copyImage(this.options.reference,this.options.referenceType,o,this.options.scale,function(t){var e=MWF.xDesktop.getImageSrc(t.data.id);this.fireEvent("postSelectAttachment",[e,t.data.id,i[0].data])}.bind(this))}else{this.fireEvent("postSelectAttachment",[t,"",i[0].data])}this.close()}.bind(this))},setContentHeight:function(t){},setNodeSize:function(t,e,i){e=e||"50%";i=i||"50%";"string"==typeof e&&(1<e.length&&"%"==e.substr(e.length-1,1))&&(e=parseInt(window.screen.width*parseInt(e,10)/100,10));"string"==typeof i&&(1<i.length&&"%"==i.substr(i.length-1,1))&&(i=parseInt(window.screen.height*parseInt(i,10)/100,10));700>e&&(e=700);420>i&&(i=420);var o=parseInt((window.screen.height-i)/2,10);var n=parseInt((window.screen.width-e)/2,10);this.content.setStyles({width:""+e+"px",height:""+i+"px",top:""+o+"px",left:""+n+"px"});this.node.setStyles({width:""+e+"px",height:""+i+"px"});var s=this.titleNode?this.titleNode.getSize().y:0;var l=this.topNode?this.topNode.getSize().y:0;var a=this.bottomToolbarNode?this.bottomToolbarNode.getSize().y:0;var h=this.topNode.getStyle("margin-top").toFloat();var c=this.topNode.getStyle("margin-bottom").toFloat();var r=this.fileContentNode.getStyle("margin-top").toFloat();var d=this.fileContentNode.getStyle("margin-bottom").toFloat();var p=i-s-l-a-h-c-r-d;this.fileContentNode.setStyle("height",p);this.attachmentContentNode.setStyle("height",p);var f=this.controller.topNode.getSize();var u=p-f.y;this.controller.contentScrollNode.setStyle("height",""+u+"px");var m=this.treeTab.tabNodeContainer.getSize();var p=p-m.y;this.folderTreeAreaScrollNode.setStyle("height",p);this.shareTreeAreaScrollNode.setStyle("height",p);this.editorTreeAreaScrollNode.setStyle("height",p)}});