| 1 |
- MWF.xDesktop.requireApp("process.Xform","$Module",null,false);MWF.xApplication.process.Xform.Attachment=MWF.APPAttachment=new Class({Extends:MWF.APP$Module,options:{moduleEvents:["upload","delete"]},initialize:function(t,e,i,o){this.node=$(t);this.node.store("module",this);this.json=e;this.form=i;this.field=true},_loadUserInterface:function(){this.node.empty();this.loadAttachmentController()},loadAttachmentController:function(){debugger;MWF.require("MWF.widget.AttachmentController",function(){var t={title:"附件区域",listStyle:this.json.listStyle||"icon",size:this.json.size||"max",resize:this.json.size=="true"?true:false,attachmentCount:this.json.attachmentCount||0,isUpload:this.json.isUpload=="y"?true:false,isDelete:this.json.isDelete=="y"?true:false,isReplace:this.json.isReplace=="y"?true:false,isDownload:this.json.isDownload=="y"?true:false,isSizeChange:this.json.isSizeChange=="y"?true:false,readonly:this.json.readonly=="y"?true:false};if(this.readonly)t.readonly=true;this.attachmentController=new MWF.widget.ATTER(this.node,this,t);this.attachmentController.load();this.form.businessData.attachmentList.each(function(t){if(t.site==this.json.id)this.attachmentController.addAttachment(t)}.bind(this))}.bind(this))},_loadEvents:function(t){Object.each(this.json.events,function(t,e){if(t.code){if(this.options.moduleEvents.indexOf(e)!=-1){this.addEvent(e,function(e){return this.form.Macro.fire(t.code,this,e)}.bind(this))}else{this.node.addEvent(e,function(e){return this.form.Macro.fire(t.code,this,e)}.bind(this))}}}.bind(this))},getData:function(){return this.attachmentController.getAttachmentNames()},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(){var t=this.fileUploadNode.files;if(t.length){if(t.length+this.attachmentController.attachments.length>this.attachmentController.options.attachmentCount&&this.attachmentController.options.attachmentCount>0){var e=MWF.xApplication.process.Xform.LP.uploadMore;e=e.replace("{n}",this.attachmentController.options.attachmentCount);this.form.notice(e,"error")}else{for(var i=0;i<t.length;i++){var o=t.item(i);var n=new FormData;n.append("file",o);n.append("site",this.json.id);this.form.workAction.uploadAttachment(this.form.businessData.work.id,function(t,e){if(t.id){this.form.workAction.getAttachment(t.id,this.form.businessData.work.id,function(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,n,o)}}}}.bind(this))},uploadAttachment:function(t,e){if(!this.uploadFileAreaNode){this.createUploadFileNode()}this.fileUploadNode.click()},deleteAttachments:function(t,e,i){var o=[];i.each(function(t){o.push(t.data.name)}.bind(this));var n=this;this.form.confirm("warn",t,MWF.xApplication.process.Xform.LP.deleteAttachmentTitle,MWF.xApplication.process.Xform.LP.deleteAttachment+"( "+o.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.form.workAction.deleteAttachment(t.data.id,this.form.businessData.work.id,function(e){this.attachmentController.removeAttachment(t);this.attachmentController.checkActions()}.bind(this))},replaceAttachment:function(t,e,i){var o=this;this.form.confirm("warn",t,MWF.xApplication.process.Xform.LP.replaceAttachmentTitle,MWF.xApplication.process.Xform.LP.replaceAttachment+"( "+i.data.name+" )",300,120,function(){o.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 o=e.item(i);var n=new FormData;n.append("file",o);this.form.workAction.replaceAttachment(t.data.id,this.form.businessData.work.id,function(e,i){this.form.workAction.getAttachment(t.data.id,this.form.businessData.work.id,function(e){t.data=e.data;t.reload();this.attachmentController.checkActions()}.bind(this))}.bind(this),null,n,o)}}}.bind(this))},replaceAttachmentFile:function(t){if(!this.replaceFileAreaNode){this.createReplaceFileNode(t)}this.fileReplaceNode.click()},downloadAttachment:function(t,e,i){if(this.form.businessData.work){i.each(function(t){debugger;this.form.workAction.getAttachmentStream(t.data.id,this.form.businessData.work.id)}.bind(this))}else{i.each(function(t){this.form.workAction.getWorkcompletedAttachmentStream(t.data.id,this.form.businessData.workCompleted.id)}.bind(this))}},openAttachment:function(t,e,i){if(this.form.businessData.work){i.each(function(t){this.form.workAction.getAttachmentData(t.data.id,this.form.businessData.work.id)}.bind(this))}else{i.each(function(t){this.form.workAction.getWorkcompletedAttachmentData(t.data.id,this.form.businessData.workCompleted.id)}.bind(this))}},getAttachmentUrl:function(t,e){if(this.form.businessData.work){this.form.workAction.getAttachmentUrl(t.data.id,this.form.businessData.work.id,e)}else{this.form.workAction.getAttachmentWorkcompletedUrl(t.data.id,this.form.businessData.workCompleted.id,e)}},createErrorNode:function(t){var e=new Element("div");var i=new Element("div",{styles:{width:"20px",height:"20px",float:"left",background:"url("+"/x_component_process_Xform/$Form/default/icon/error.png) center center no-repeat"}}).inject(e);var o=new Element("div",{styles:{"line-height":"20px","margin-left":"20px",color:"red"},text:t}).inject(e);return e},notValidationMode:function(t){if(!this.isNotValidationMode){this.isNotValidationMode=true;this.node.store("borderStyle",this.node.getStyles("border-left","border-right","border-top","border-bottom"));this.node.setStyle("border","1px solid red");this.errNode=this.createErrorNode(t).inject(this.node,"after");this.showNotValidationMode(this.node)}},showNotValidationMode:function(t){var e=t.getParent("div");if(e){if(e.get("MWFtype")=="tab$Content"){if(e.getParent("div").getStyle("display")=="none"){var i=e.getParent("div").getParent("div");var o=i.getPrevious("div");var n=i.getChildren().indexOf(e.getParent("div"));var a=o.getChildren()[n];a.click();e=o.getParent("div")}}this.showNotValidationMode(e)}},validationMode:function(){if(this.isNotValidationMode){this.isNotValidationMode=false;this.node.setStyles(this.node.retrieve("borderStyle"));if(this.errNode){this.errNode.destroy();this.errNode=null}}},validationConfigItem:function(t,e){var i=e.status=="all"?true:t==e.decision;if(i){var o=this.getData();var n=e.valueType=="value"?o:o.length;switch(e.operateor){case"isnull":if(!n){this.notValidationMode(e.prompt);return false}break;case"notnull":if(n){this.notValidationMode(e.prompt);return false}break;case"gt":if(n>e.value){this.notValidationMode(e.prompt);return false}break;case"lt":if(n<e.value){this.notValidationMode(e.prompt);return false}break;case"equal":if(n==e.value){this.notValidationMode(e.prompt);return false}break;case"neq":if(n!=e.value){this.notValidationMode(e.prompt);return false}break;case"contain":if(n.indexOf(e.value)!=-1){this.notValidationMode(e.prompt);return false}break;case"notcontain":if(n.indexOf(e.value)==-1){this.notValidationMode(e.prompt);return false}break}}return true},validationConfig:function(t,e){debugger;if(this.json.validationConfig){if(this.json.validationConfig.length){for(var i=0;i<this.json.validationConfig.length;i++){var o=this.json.validationConfig[i];if(!this.validationConfigItem(t,o))return false}}return true}return true},validation:function(t,e){if(!this.validationConfig(t,e))return false;if(!this.json.validation)return true;if(!this.json.validation.code)return true;var i=this.form.Macro.exec(this.json.validation.code,this);if(!i)i=MWF.xApplication.process.Xform.LP.notValidation;if(i.toString()!="true"){this.notValidationMode(i);return false}return true}});
|