Subform.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. MWF.xDesktop.requireApp("process.Xform", "$Module", null, false);
  2. MWF.xApplication.process.Xform.Subform = MWF.APPSubform = new Class({
  3. Extends: MWF.APP$Module,
  4. _loadUserInterface: function(){
  5. this.node.empty();
  6. this.getSubform(function(){
  7. if (this.subformData){
  8. this.loadSubform();
  9. }
  10. }.bind(this));
  11. },
  12. loadSubform: function(){
  13. if (this.subformData){
  14. //this.form.addEvent("postLoad", function(){
  15. this.node.set("html", this.subformData.html);
  16. Object.each(this.subformData.json.moduleList, function(module, key){
  17. var formKey = key;
  18. if (this.form.json.moduleList[key]){
  19. formKey = this.json.id+"_"+key;
  20. var moduleNode = this.node.getElement("#"+key);
  21. if (moduleNode) moduleNode.set("id", formKey);
  22. module.id = formKey;
  23. }
  24. this.form.json.moduleList[formKey] = module;
  25. }.bind(this));
  26. var moduleNodes = this.form._getModuleNodes(this.node);
  27. moduleNodes.each(function(node){
  28. if (node.get("MWFtype")!=="form"){
  29. var json = this.form._getDomjson(node);
  30. var module = this.form._loadModule(json, node);
  31. this.form.modules.push(module);
  32. }
  33. }.bind(this));
  34. //}.bind(this));
  35. }
  36. },
  37. getSubform: function(callback){
  38. if (this.json.subformType==="script"){
  39. if (this.json.subformScript.code){
  40. var formNome = this.form.Macro.exec(this.json.subformScript.code, this);
  41. if (formNome){
  42. var app = (this.form.businessData.work || this.form.businessData.workCompleted).application;
  43. MWF.Actions.get("x_processplatform_assemble_surface").getForm(formNome, app, function(json){
  44. this.getSubformData(json.data);
  45. if (callback) callback();
  46. }.bind(this));
  47. }
  48. }
  49. }else{
  50. if (this.json.subformSelected && this.json.subformSelected!=="none"){
  51. var app = (this.form.businessData.work || this.form.businessData.workCompleted).application;
  52. MWF.Actions.get("x_processplatform_assemble_surface").getForm(this.json.subformSelected, app, function(json){
  53. this.getSubformData(json.data);
  54. if (callback) callback();
  55. }.bind(this));
  56. }else{
  57. if (callback) callback();
  58. }
  59. }
  60. },
  61. getSubformData: function(data){
  62. var subformDataStr = null;
  63. if (this.form.options.mode !== "Mobile"){
  64. subformDataStr = data.data;
  65. }else{
  66. subformDataStr = data.mobileData;
  67. }
  68. this.subformData = null;
  69. if (subformDataStr){
  70. this.subformData = JSON.decode(MWF.decodeJsonString(subformDataStr));
  71. this.subformData.updateTime = data.updateTime;
  72. }
  73. }
  74. });