Macro.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. //try {
  13. var f = eval("(function(){return function(){\n"+code+"\n}})();");
  14. returnValue = f.apply(bind);
  15. //}catch(e){};
  16. //}catch(e){}//
  17. // var macroCode = "MWF.Macro.swapSpace.tmpMacroFunction = function (){"+code+"};";
  18. // Browser.exec(macroCode);
  19. // var returnValue;
  20. // if (!bind) bind = window;
  21. //// try {
  22. // returnValue = MWF.Macro.swapSpace.tmpMacroFunction.apply(bind);
  23. //// }catch(e){};
  24. return returnValue;
  25. }
  26. };
  27. MWF.Macro.FormContext = new Class({
  28. macroFunction: null,
  29. environment: {},
  30. initialize: function(form){
  31. this.form = form;
  32. var environment = {
  33. "form": form,
  34. "forms": form.forms,
  35. "all": form.all,
  36. "data": form.businessData.data,
  37. "work": form.businessData.work,
  38. "workCompleted": form.businessData.workCompleted,
  39. "taskList": form.businessData.taskList,
  40. "readList": form.businessData.readList,
  41. "control": form.businessData.control,
  42. "activity": form.businessData.activity,
  43. "task": form.businessData.task,
  44. "taskCompletedList": form.businessData.taskCompletedList,
  45. "workLogList": form.businessData.workLogList,
  46. "attachmentList": form.businessData.attachmentList,
  47. "inheritedAttachmentList": form.businessData.inheritedAttachmentList,
  48. "formInfor": form.businessData.formInfor,
  49. "status": form.businessData.status,
  50. "target": null,
  51. "event": null
  52. };
  53. this.environment = new MWF.xScript.Environment(environment);
  54. },
  55. setTarget: function(target){
  56. if (target){
  57. this.environment.target = target;
  58. }else{
  59. this.environment.target = null;
  60. }
  61. },
  62. setEvent: function(event){
  63. if (event){
  64. this.environment.event = event;
  65. }else{
  66. this.environment.event = null;
  67. }
  68. },
  69. exec: function(code, target){
  70. this.setTarget(target);
  71. var returnValue = MWF.Macro.exec(code, this.environment);
  72. //this.form.businessData.data = Object.merge(this.form.businessData.data, this.environment.data);
  73. return returnValue;
  74. //this.environment.data
  75. },
  76. fire: function(code, target, event){
  77. this.setTarget(target);
  78. this.setEvent(event);
  79. return MWF.Macro.exec(code, this.environment);
  80. }
  81. });
  82. MWF.Macro.PageContext = new Class({
  83. macroFunction: null,
  84. environment: {},
  85. initialize: function(page){
  86. this.form = page;
  87. var environment = {
  88. "form": page,
  89. "forms": page.forms,
  90. "all": page.all,
  91. "data": page.businessData.data,
  92. "status": page.businessData.status,
  93. "pageInfor": page.businessData.pageInfor,
  94. "target": null,
  95. "event": null
  96. };
  97. this.environment = new MWF.xScript.PageEnvironment(environment);
  98. },
  99. setTarget: function(target){
  100. if (target){
  101. this.environment.target = target;
  102. }else{
  103. this.environment.target = null;
  104. }
  105. },
  106. setEvent: function(event){
  107. if (event){
  108. this.environment.event = event;
  109. }else{
  110. this.environment.event = null;
  111. }
  112. },
  113. exec: function(code, target){
  114. this.setTarget(target);
  115. var returnValue = MWF.Macro.exec(code, this.environment);
  116. //this.form.businessData.data = Object.merge(this.form.businessData.data, this.environment.data);
  117. return returnValue;
  118. //this.environment.data
  119. },
  120. fire: function(code, target, event){
  121. this.setTarget(target);
  122. this.setEvent(event);
  123. return MWF.Macro.exec(code, this.environment);
  124. }
  125. });
  126. JSONObject = function(o){
  127. };