Macro.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. MWF.xScript = MWF.xScript || {};
  2. MWF.require("MWF.xScript.Environment", null, false);
  3. MWF.xScript.Macro = MWF.Macro = {
  4. "swapSpace": {},
  5. expression: function(code, bind){},
  6. runEvent: function(code, bind, arg){},
  7. exec: function(code, bind){
  8. var returnValue;
  9. try{
  10. if (!bind) bind = window;
  11. //try {
  12. var f = eval("(function(){\n"+code+"\n})");
  13. returnValue = f.apply(bind);
  14. //}catch(e){};
  15. }catch(e){}
  16. // var macroCode = "MWF.Macro.swapSpace.tmpMacroFunction = function (){"+code+"};";
  17. // Browser.exec(macroCode);
  18. // var returnValue;
  19. // if (!bind) bind = window;
  20. //// try {
  21. // returnValue = MWF.Macro.swapSpace.tmpMacroFunction.apply(bind);
  22. //// }catch(e){};
  23. return returnValue;
  24. }
  25. };
  26. MWF.Macro.FormContext = new Class({
  27. macroFunction: null,
  28. environment: {},
  29. initialize: function(form){
  30. this.form = form;
  31. var environment = {
  32. "form": form,
  33. "forms": form.forms,
  34. "all": form.all,
  35. "data": form.businessData.data,
  36. "work": form.businessData.work,
  37. "workCompleted": form.businessData.workCompleted,
  38. "taskList": form.businessData.taskList,
  39. "control": form.businessData.control,
  40. "activity": form.businessData.activity,
  41. "task": form.businessData.task,
  42. "workLogList": form.businessData.workLogList,
  43. "attachmentList": form.businessData.attachmentList,
  44. "status": form.businessData.status,
  45. "target": null,
  46. "event": null
  47. }
  48. this.environment = new MWF.xScript.Environment(environment);
  49. },
  50. setTarget: function(target){
  51. if (target){
  52. this.environment.target = target;
  53. }else{
  54. this.environment.target = null;
  55. }
  56. },
  57. setEvent: function(event){
  58. if (event){
  59. this.environment.event = event;
  60. }else{
  61. this.environment.event = null;
  62. }
  63. },
  64. exec: function(code, target){
  65. this.setTarget(target);
  66. var returnValue = MWF.Macro.exec(code, this.environment);
  67. //this.form.businessData.data = Object.merge(this.form.businessData.data, this.environment.data);
  68. return returnValue;
  69. //this.environment.data
  70. },
  71. fire: function(code, target, event){
  72. this.setTarget(target);
  73. this.setEvent(event);
  74. return MWF.Macro.exec(code, this.environment);
  75. }
  76. });
  77. JSONObject = function(o){
  78. }