Macro.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. MWF.xScript = MWF.xScript || {};
  2. MWF.require("MWF.xScript.Environment", null, false);
  3. MWF.require("MWF.xScript.PageEnvironment", null, false);
  4. MWF.xScript.Macro = MWF.Macro = {
  5. "swapSpace": {},
  6. expression: function(code, bind){},
  7. runEvent: function(code, bind, arg){},
  8. exec: function(code, bind){
  9. var returnValue;
  10. //try{
  11. if (!bind) bind = window;
  12. if (o2.session.isDebugger){
  13. try {
  14. var f = eval("(function(){return function(){\n"+code+"\n}})();");
  15. returnValue = f.apply(bind);
  16. }catch(e){
  17. console.log(o2.LP.script.error);
  18. if (code.length>500){
  19. var t = code.substr(0,500)+"\n...\n";
  20. console.log(t);
  21. }else{
  22. console.log(code);
  23. }
  24. console.log(e);
  25. //throw e;
  26. }
  27. }else{
  28. var f = eval("(function(){return function(){\n"+code+"\n}})();");
  29. returnValue = f.apply(bind);
  30. }
  31. //}catch(e){}//
  32. // var macroCode = "MWF.Macro.swapSpace.tmpMacroFunction = function (){"+code+"};";
  33. // Browser.exec(macroCode);
  34. // var returnValue;
  35. // if (!bind) bind = window;
  36. //// try {
  37. // returnValue = MWF.Macro.swapSpace.tmpMacroFunction.apply(bind);
  38. //// }catch(e){};
  39. return returnValue;
  40. }
  41. };
  42. MWF.Macro.FormContext = new Class({
  43. macroFunction: null,
  44. environment: {},
  45. initialize: function(form){
  46. this.form = form;
  47. var environment = {
  48. "form": form,
  49. "forms": form.forms,
  50. "all": form.all,
  51. "data": form.businessData.data,
  52. "work": form.businessData.work,
  53. "workCompleted": form.businessData.workCompleted,
  54. "taskList": form.businessData.taskList,
  55. "readList": form.businessData.readList,
  56. "control": form.businessData.control,
  57. "activity": form.businessData.activity,
  58. "task": form.businessData.task,
  59. "taskCompletedList": form.businessData.taskCompletedList,
  60. "workLogList": form.businessData.workLogList,
  61. "attachmentList": form.businessData.attachmentList,
  62. "inheritedAttachmentList": form.businessData.inheritedAttachmentList,
  63. "formInfor": form.businessData.formInfor,
  64. "status": form.businessData.status,
  65. "target": null,
  66. "event": null
  67. };
  68. this.environment = new MWF.xScript.Environment(environment);
  69. },
  70. setTarget: function(target){
  71. if (target){
  72. this.environment.target = target;
  73. }else{
  74. this.environment.target = null;
  75. }
  76. },
  77. setEvent: function(event){
  78. if (event){
  79. this.environment.event = event;
  80. }else{
  81. this.environment.event = null;
  82. }
  83. },
  84. exec: function(code, target){
  85. this.setTarget(target);
  86. var returnValue = MWF.Macro.exec(code, this.environment);
  87. //this.form.businessData.data = Object.merge(this.form.businessData.data, this.environment.data);
  88. return returnValue;
  89. //this.environment.data
  90. },
  91. fire: function(code, target, event){
  92. this.setTarget(target);
  93. this.setEvent(event);
  94. return MWF.Macro.exec(code, this.environment);
  95. }
  96. });
  97. MWF.Macro.PageContext = new Class({
  98. macroFunction: null,
  99. environment: {},
  100. initialize: function(page){
  101. this.form = page;
  102. var environment = {
  103. "form": page,
  104. "forms": page.forms,
  105. "all": page.all,
  106. "data": page.businessData.data,
  107. "status": page.businessData.status,
  108. "pageInfor": page.businessData.pageInfor,
  109. "target": null,
  110. "event": null
  111. };
  112. this.environment = new MWF.xScript.PageEnvironment(environment);
  113. },
  114. setTarget: function(target){
  115. if (target){
  116. this.environment.target = target;
  117. }else{
  118. this.environment.target = null;
  119. }
  120. },
  121. setEvent: function(event){
  122. if (event){
  123. this.environment.event = event;
  124. }else{
  125. this.environment.event = null;
  126. }
  127. },
  128. exec: function(code, target){
  129. this.setTarget(target);
  130. var returnValue = MWF.Macro.exec(code, this.environment);
  131. //this.form.businessData.data = Object.merge(this.form.businessData.data, this.environment.data);
  132. return returnValue;
  133. //this.environment.data
  134. },
  135. fire: function(code, target, event){
  136. this.setTarget(target);
  137. this.setEvent(event);
  138. return MWF.Macro.exec(code, this.environment);
  139. }
  140. });
  141. JSONObject = function(o){
  142. };