Form.min.js 6.8 KB

1
  1. MWF.xApplication.cms=MWF.xApplication.cms||{};MWF.xApplication.cms.Xform=MWF.xApplication.cms.Xform||{};MWF.require("MWF.widget.Common",null,false);MWF.require("MWF.xAction.org.express.RestActions",null,false);MWF.xDesktop.requireApp("Organization","Selector.package",null,false);MWF.xDesktop.requireApp("process.Xform","Form",null,false);MWF.require("MWF.widget.Identity",null,false);MWF.xDesktop.requireApp("cms.Xform","Package",null,false);MWF.xApplication.cms.Xform.Form=MWF.CMSForm=new Class({Implements:[Options,Events],Extends:MWF.APPForm,options:{style:"default",readonly:false,cssPath:"",autoSave:false,saveOnClose:false,showAttachment:true,moduleEvents:["postLoad","afterLoad","beforeSave","afterSave","beforeClose","beforePublish","afterPublish"]},initialize:function(t,e,s){this.setOptions(s);this.container=$(t);this.container.setStyle("-webkit-user-select","text");this.data=e;this.json=e.json;this.html=e.html;this.path="/x_component_process_Xform/$Form/";this.cssPath=this.options.cssPath||"/x_component_process_Xform/$Form/"+this.options.style+"/css.wcss";this._loadCss();this.modules=[];this.all={};this.forms={};if(!this.personActions)this.personActions=new MWF.xAction.org.express.RestActions},load:function(){if(this.app){if(this.app.formNode)this.app.formNode.setStyles(this.json.styles)}if(this.fireEvent("queryLoad")){this.fireEvent("beforeLoad");MWF.xDesktop.requireApp("cms.Xform","lp."+MWF.language,null,false);this._loadBusinessData();this.Macro=new MWF.CMSMacro.CMSFormContext(this);this._loadHtml();this._loadForm();this._loadModules(this.node);if(!this.options.readonly){if(this.options.autoSave)this.autoSave();this.app.addEvent("queryClose",function(){if(this.options.saveOnClose&&this.businessData.document.docStatus=="draft")this.saveDocument(null,true)}.bind(this))}this.fireEvent("postLoad");this.fireEvent("afterLoad")}},autoSave:function(){},_loadBusinessData:function(){if(!this.businessData){this.businessData={data:{}}}},_loadEvents:function(){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.Macro.fire(t.code,this,e)}.bind(this))}else{if(e=="load"){this.addEvent("postLoad",function(){return this.Macro.fire(t.code,this)}.bind(this))}else if(e=="submit"){this.addEvent("beforePublish",function(){return this.Macro.fire(t.code,this)}.bind(this))}else{this.node.addEvent(e,function(e){return this.Macro.fire(t.code,this,e)}.bind(this))}}}}.bind(this))},_loadModules:function(t){var e=this._getModuleNodes(t);e.each(function(t){var e=this._getDomjson(t);if(!this.options.showAttachment&&e.type=="Attachment"){return}var s=this._loadModule(e,t);this.modules.push(s)}.bind(this))},_loadModule:function(t,e,s){if(!t)return;var i=new MWF["CMS"+t.type](e,t,this);if(s)s.apply(i);if(!this.all[t.id])this.all[t.id]=i;if(i.field){if(!this.forms[t.id])this.forms[t.id]=i}i.readonly=this.options.readonly;i.load();return i},trim:function(t){var e=[];t.each(function(t){if(t)e.push(t)});return e},transportReaderData:function(t){var e=["公司","部门","人员","群组"];var s=["companyValue","departmentValue","personValue","groupValue"];var i=[];t.each(function(t){for(var n in t){var o=t[n];o.each(function(t){i.push({permission:"阅读",permissionObjectType:e[s.indexOf(n)],permissionObjectName:t.name})})}});return i.length>0?i:null},getReaderData:function(){var t=this.businessData.data;var e=[];Object.each(this.forms,function(s,i){if(s.json.type=="Readerfield"){if(s.json.section=="yes"){e=e.concat(this.getSectionData(s,t[i]))}else{e=e.concat(s.getData())}}});r=this.transportReaderData(e);return r},getDocumentData:function(t){var e=Object.clone(this.businessData.document);if(t.htmleditor){var s=new Element("div",{styles:{display:"none"},html:t.htmleditor}).inject(this.container);s.getElements("img").each(function(t){t.setStyle("max-width","100%")});t.htmleditor=s.get("html");s.destroy()}if(t.subject){e.title=t.subject;e.subject=t.subject;this.businessData.document.title=t.subject;this.businessData.document.subject=t.subject}e.isNewDocument=false;return e},saveDocument:function(t,e){this.fireEvent("beforeSave");if(this.businessData.document.docStatus=="published"){if(!this.formValidation("publish")){if(t)t();return false}}var s=this.getData();var i=this.getDocumentData(s);i.permissionList=this.getReaderData();delete i.attachmentList;this.documentAction.saveDocument(i,function(){this.documentAction.saveData(function(e){this.notice(MWF.xApplication.cms.Xform.LP.dataSaved,"success");this.businessData.data.isNew=false;this.fireEvent("afterSave");if(t)t()}.bind(this),null,this.businessData.document.id,s,!e)}.bind(this),null,!e)},closeDocument:function(){this.fireEvent("beforeClose");if(this.app){this.app.close()}},formValidation:function(t){if(this.options.readonly)return true;var e=true;Object.each(this.forms,function(s,i){s.validationMode();if(!s.validation(t)){e=false}}.bind(this));return e},publishDocument:function(t){this.fireEvent("beforePublish");this.app.content.mask({destroyOnHide:true,style:this.app.css.maskNode});if(!this.formValidation("publish")){this.app.content.unmask();if(t)t();return false}var e=this.getData();var s=this.getReaderData();this.documentAction.saveData(function(i){this.businessData.data.isNew=false;var n=this.getDocumentData(e);n.permissionList=s;delete n.attachmentList;this.documentAction.saveDocument(n,function(){this.documentAction.publishDocument(n,function(e){this.fireEvent("afterPublish");this.fireEvent("postPublish");if(t)t();this.app.notice(MWF.xApplication.cms.Xform.LP.documentPublished+": “"+this.businessData.document.title+"”","success");this.options.saveOnClose=false;this.app.close()}.bind(this))}.bind(this))}.bind(this),null,this.businessData.document.id,e)},deleteDocument:function(){var t=this;var e=MWF.getCenterPosition(this.app.content,380,150);var s={event:{x:e.x,y:e.y-200,clientX:e.x,clientY:e.y-200}};this.app.confirm("infor",s,MWF.xApplication.cms.Xform.LP.deleteDocumentTitle,MWF.xApplication.cms.Xform.LP.deleteDocumentText,380,120,function(){t.app.content.mask({style:{"background-color":"#999",opacity:.6}});t.documentAction.removeDocument(t.businessData.document.id,function(e){t.app.notice(MWF.xApplication.cms.Xform.LP.documentDelete+": “"+t.businessData.document.title+"”","success");t.options.autoSave=false;t.options.saveOnClose=false;t.fireEvent("postDelete");t.app.close();this.close()}.bind(this))},function(){this.close()})},editDocument:function(){var t={documentId:this.businessData.document.id,readonly:false};this.app.desktop.openApplication(null,"cms.Document",t);this.app.close()},setPopularDocument:function(){this.app.setPopularDocument()},printWork:function(t,e){var s=t||this.businessData.work.application;var e=e;if(!e){e=this.json.id;if(this.json.printForm)e=this.json.printForm}window.open("/x_desktop/printWork.html?workid="+this.businessData.work.id+"&app="+this.businessData.work.application+"&form="+e)}});