| 1 |
- MWF.require("MWF.widget.AttachmentController",null,false);MWF.xApplication.Forum.Attachment=new Class({Implements:[Options,Events],options:{documentId:"",isNew:false,isEdited:true,size:"max",isSizeChange:true},initialize:function(t,e,i,n,a){this.setOptions(a);this.app=e;this.node=$(t);this.actions=i;this.lp=n},load:function(){this.loadAttachmentController()},loadAttachmentController:function(){var t={style:"cms",title:"附件区域",size:this.options.size,resize:true,isUpload:this.options.isNew||this.options.isEdited,isDelete:this.options.isNew||this.options.isEdited,isReplace:false,isDownload:true,isSizeChange:this.options.isSizeChange,readonly:!this.options.isNew&&!this.options.isEdited};this.attachmentController=new MWF.widget.ATTER(this.node,this,t);this.attachmentController.load();if(this.data){this.data.each(function(t){this.attachmentController.addAttachment(t)}.bind(this))}else if(!this.options.isNew&&this.options.documentId&&this.options.documentId!=""){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.person=t.creatorUid;t.lastUpdateTime=t.updateTime})}else if(typeOf(t.data)=="object"){var e=t.data;e.person=e.creatorUid;e.lastUpdateTime=e.updateTime}else{t.each(function(t){t.person=t.creatorUid;t.lastUpdateTime=t.updateTime})}return t},listAttachment:function(e){if(!this.options.isNew&&this.options.documentId&&this.options.documentId!=""){this.actions.listAttachment(this.options.documentId,function(t){if(e)e(this.transportData(t))}.bind(this))}},createUploadFileNode:function(){this.attachmentController.doUploadAttachment({site:this.options.documentId},this.actions.action,"uploadAttachment",{id:this.options.documentId,documentid:this.options.documentId},null,function(t){j=t;if(j.data){var e=typeOf(j.data)=="object"?j.data.id:j.data[0].id;this.actions.getAttachment(e,this.options.documentId,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),function(t){this.isQueryUploadSuccess=true;this.fireEvent("queryUploadAttachment");return this.isQueryUploadSuccess}.bind(this))},uploadAttachment:function(t,e){this.createUploadFileNode()},deleteAttachments:function(t,e,i){var n=[];i.each(function(t){n.push(t.data.name)}.bind(this));var a=this;this.app.confirm("warn",t,this.lp.deleteAttachmentTitle,this.lp.deleteAttachment+"( "+n.join(", ")+" )",300,120,function(){while(i.length){attachment=i.shift();a.deleteAttachment(attachment)}this.close()},function(){this.close()},null)},deleteAttachment:function(e){this.fireEvent("delete",[e.data]);this.actions.deleteAttachment(e.data.id,this.documentId,function(t){this.attachmentController.removeAttachment(e);this.attachmentController.checkActions()}.bind(this))},replaceAttachment:function(t,e,i){return false;var n=this;this.form.confirm("warn",t,this.lp.replaceAttachmentTitle,this.lp.replaceAttachment+"( "+i.data.name+" )",300,120,function(){n.replaceAttachmentFile(i);this.close()},function(){this.close()},null)},createReplaceFileNode:function(a){this.replaceFileAreaNode=new Element("div");var t='<input name="file" type="file" multiple/>';this.replaceFileAreaNode.set("html",t);this.fileReplaceNode=this.replaceFileAreaNode.getFirst();this.fileReplaceNode.addEvent("change",function(){var t=this.fileReplaceNode.files;if(t.length){for(var e=0;e<t.length;e++){var i=t.item(e);var n=new FormData;n.append("file",i);this.actions.replaceAttachment(a.data.id,this.options.documentId,function(t,e){this.form.documentAction.getAttachment(a.data.id,this.opetions.documentId,function(t){a.data=t.data;a.reload();this.attachmentController.checkActions()}.bind(this))}.bind(this),null,n,i)}}}.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.getAttachmentStream(t.data.id,this.options.documentId)}.bind(this))},openAttachment:function(t,e,i){i.each(function(t){this.actions.getAttachmentStream(t.data.id,this.options.documentId)}.bind(this))},getAttachmentUrl:function(t,e){this.actions.getAttachmentUrl(t.data.id,this.options.documentId,e)},getAttachmentData:function(){var e=[];this.attachmentController.attachments.each(function(t){e.push(t.data)});return e},getAttachmentIds:function(){var e=[];this.attachmentController.attachments.each(function(t){e.push(t.data.id)});return e},loadAttachmentSelecter:function(e,i){MWF.require("MWF.widget.AttachmentSelector",function(){var t={style:"cms",title:"选择附件",listStyle:"icon",selectType:"all",size:"max",attachmentCount:0,isUpload:true,isDelete:true,isReplace:true,isDownload:true,toBase64:true,base64MaxSize:800,readonly:false};t=Object.merge(t,e);if(this.readonly)t.readonly=true;this.attachmentController=new MWF.widget.AttachmentSelector(document.body,this,t);this.attachmentController.load();this.postSelect=i;if(this.data){this.data.each(function(t){this.attachmentController.addAttachment(t)}.bind(this))}else{this.listAttachment(function(t){t.data.each(function(t){this.attachmentController.addAttachment(t)}.bind(this))}.bind(this))}}.bind(this))},selectAttachment:function(t,e,i){if(i.length>0){var n=i[i.length-1].data;this.actions.getAttachmentUrl(n.id,this.options.documentId,function(i){if(this.attachmentController.options.toBase64){this.actions.getSubjectAttachmentBase64(n.id,this.attachmentController.options.base64MaxSize,function(t){var e=t.data?"data:image/png;base64,"+t.data.value:null;if(this.postSelect)this.postSelect(i,n,e)}.bind(this))}else{if(this.postSelect)this.postSelect(i,n)}}.bind(this))}}});
|