__event_handler.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Core js fw functions
  3. * Do not edit this file
  4. */
  5. /**
  6. * Available Actions List:
  7. * - AppsPreLoad
  8. * - ModalLoaded
  9. * - DatatableDataLoaded
  10. * - DatatableDataLoadingFailed
  11. * - SelectFieldValueChanged
  12. */
  13. /*
  14. * Call
  15. */
  16. var mgEventCallback = {
  17. objectId: null,
  18. eventType: null,
  19. callbackFunction: null,
  20. order: 1000,
  21. generateEvent: function (id, eventType, callbackFunction, order) {
  22. if ((id === null || typeof id === 'string') && typeof eventType === 'string'
  23. && typeof callbackFunction === 'function') {
  24. this.objectId = id;
  25. this.eventType = eventType;
  26. this.callbackFunction = callbackFunction;
  27. this.order = (!order || typeof order !== 'number') ? 1000 : order;
  28. return this;
  29. } else {
  30. return null;
  31. }
  32. },
  33. runEventCallback: function (objectId, params) {
  34. this.callbackFunction(objectId, params);
  35. }
  36. };
  37. /*
  38. * Events Handler
  39. * collects and run all events callbacks in the app
  40. */
  41. var mgEventHandler = {
  42. callbacks: {},
  43. on: function (eventType, id, callbackFunction, order) {
  44. var tmpCall = mgEventCallback.generateEvent(id, eventType, callbackFunction, order);
  45. var tempId = Object.keys(this.callbacks).length;
  46. this.callbacks['call_' + tempId] = Object.assign({}, tmpCall);
  47. },
  48. runCallback: function (eventType, id, callbackParams) {
  49. var callbackList = [];
  50. for (var key in this.callbacks) {
  51. if (!this.callbacks.hasOwnProperty(key)) {
  52. continue;
  53. }
  54. var tmpCallback = Object.assign({}, this.callbacks[key]);
  55. if (tmpCallback.eventType !== eventType || (tmpCallback.objectId !== null && tmpCallback.objectId !== id)) {
  56. continue;
  57. } else if (tmpCallback.objectId !== null && tmpCallback.objectId === id) {
  58. callbackList.push(tmpCallback);
  59. } else {
  60. callbackList.push(tmpCallback);
  61. }
  62. }
  63. callbackList.sort(function (a, b) {
  64. return a.order - b.order
  65. });
  66. $(callbackList).each(function () {
  67. this.runEventCallback(id, callbackParams);
  68. });
  69. }
  70. };