PriorityAttachment.min.js 4.4 KB

1
  1. MWF.require("MWF.widget.AttachmentController",null,false);MWF.xApplication.Strategy.PriorityAttachment=new Class({Implements:[Options,Events],options:{workId:"",isNew:false,isEdited:true,size:"max",isSizeChange:true},initialize:function(t,e,i,a,n){this.setOptions(n);this.app=e;this.node=$(t);this.actions=i;this.lp=a},load:function(){this.loadAttachmentController()},loadAttachmentController:function(){var t={style:"default",title:"附件区域",size:this.options.size,resize:true,isUpload:this.options.isNew||this.options.isEdited?true:false,isDelete:this.options.isNew||this.options.isEdited?true:false,isReplace:false,isDownload:true,isSizeChange:this.options.isSizeChange,readonly:!this.options.isNew&&!this.options.isEdited?true:false};this.attachmentController=new MWF.widget.ATTER(this.node,this,t);this.attachmentController.load();this.listAttachment(function(t){t.data.each(function(t){this.attachmentController.addAttachment(t)}.bind(this))}.bind(this))},transportData:function(t){if(typeOf(t.data)=="array"){t.data.each(function(t){t.lastUpdateTime=t.updateTime})}else if(typeOf(t.data)=="object"){var e=t.data;e.lastUpdateTime=e.updateTime}else{t.each(function(t){t.lastUpdateTime=t.updateTime})}return t},listAttachment:function(t){if(this.options.workId){this.actions.listPriorityAttachment(this.options.workId,function(e){if(t)t(this.transportData(e))}.bind(this))}},createUploadFileNode:function(){this.uploadFileAreaNode=new Element("div");var t='<input name="file" type="file" multiple/>';this.uploadFileAreaNode.set("html",t);this.fileUploadNode=this.uploadFileAreaNode.getFirst();this.fileUploadNode.addEvent("change",function(){this.isQueryUploadSuccess=true;this.fireEvent("queryUploadAttachment");if(this.isQueryUploadSuccess){var t=this.fileUploadNode.files;if(t.length){for(var e=0;e<t.length;e++){var i=t.item(e);var a=new FormData;a.append("file",i);a.append("site",this.options.workId);this.actions.uploadPriorityAttachment(this.options.workId,function(t,e){j=JSON.decode(e);if(j.data&&j.data.id){this.actions.getPriorityAttachment(j.data.id,this.options.workId,function(t){t=this.transportData(t);if(t.data){this.attachmentController.addAttachment(t.data)}this.attachmentController.checkActions();this.fireEvent("upload",[t.data])}.bind(this))}this.attachmentController.checkActions()}.bind(this),null,a,i)}}}else{this.uploadFileAreaNode.destroy();this.uploadFileAreaNode=false}}.bind(this))},uploadAttachment:function(t,e){if(!this.uploadFileAreaNode){this.createUploadFileNode()}this.fileUploadNode.click()},deleteAttachments:function(t,e,i){var a=[];i.each(function(t){a.push(t.data.name)}.bind(this));var n=this;this.app.confirm("warn",t,this.lp.deleteAttachmentTitle,this.lp.deleteAttachment+"( "+a.join(", ")+" )",300,120,function(){while(i.length){attachment=i.shift();n.deleteAttachment(attachment)}this.close()},function(){this.close()},null)},deleteAttachment:function(t){this.fireEvent("delete",[t.data]);this.actions.deletePriorityAttachment(t.data.id,this.options.workId,function(e){this.attachmentController.removeAttachment(t);this.attachmentController.checkActions()}.bind(this))},replaceAttachment:function(t,e,i){var a=this;this.form.confirm("warn",t,this.lp.replaceAttachmentTitle,this.lp.replaceAttachment+"( "+i.data.name+" )",300,120,function(){a.replaceAttachmentFile(i);this.close()},function(){this.close()},null)},createReplaceFileNode:function(t){this.replaceFileAreaNode=new Element("div");var e='<input name="file" type="file" multiple/>';this.replaceFileAreaNode.set("html",e);this.fileReplaceNode=this.replaceFileAreaNode.getFirst();this.fileReplaceNode.addEvent("change",function(){var e=this.fileReplaceNode.files;if(e.length){for(var i=0;i<e.length;i++){var a=e.item(i);var n=new FormData;n.append("file",a);this.actions.replaceAttachment(t.data.id,this.options.workId,function(e,i){this.form.documentAction.getAttachment(t.data.id,this.options.workId,function(e){t.data=e.data;t.reload();this.attachmentController.checkActions()}.bind(this))}.bind(this),null,n,a)}}}.bind(this))},replaceAttachmentFile:function(t){if(!this.replaceFileAreaNode){this.createReplaceFileNode(t)}this.fileReplaceNode.click()},downloadAttachment:function(t,e,i){i.each(function(t){this.actions.getPriorityAttachmentStream(t.data.id,this.options.workId)}.bind(this))},openAttachment:function(t,e,i){i.each(function(t){this.actions.getPriorityAttachmentStream(t.data.id,this.options.workId)}.bind(this))},getAttachmentUrl:function(t,e){this.actions.getAttachmentUrl(t.data.id,this.options.workId,e)}});