__vhook_integration.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. mgEventHandler.on('AppsPreLoad', null, function (id, params) {
  2. if (typeof params.appContainers !== 'undefined') {
  3. for (var key in params.appContainers) {
  4. if (!params.appContainers.hasOwnProperty(key)) {
  5. continue;
  6. }
  7. var isIntegration = $(params.appContainers[key]).parents('.mg-integration-container');
  8. if (isIntegration.length === 1) {
  9. var tempIntCode = $(params.appContainers[key])[0].outerHTML;
  10. var integrationType = $(isIntegration).attr('mg-integration-type');
  11. var integrationTarget = $(isIntegration).attr('mg-integration-target');
  12. if (integrationType === 'append') {
  13. $(params.appContainers[key])[0].remove();
  14. $(integrationTarget).append(tempIntCode);
  15. } else if (integrationType === 'replace') {
  16. $(params.appContainers[key])[0].remove();
  17. $(integrationTarget).replaceWith(tempIntCode);
  18. } else if (integrationType === 'after') {
  19. $(params.appContainers[key])[0].remove();
  20. $(integrationTarget).after(tempIntCode);
  21. } else if (integrationType === 'before') {
  22. $(params.appContainers[key])[0].remove();
  23. $(integrationTarget).before(tempIntCode);
  24. } else if (integrationType === 'prepend') {
  25. $(params.appContainers[key])[0].remove();
  26. $(integrationTarget).prepend(tempIntCode);
  27. } else if (integrationType === 'custom') {
  28. var contId = $(params.appContainers[key]).attr('id');
  29. var integrationFunction = $(isIntegration).attr('mg-integration-function');
  30. if (integrationFunction && typeof window[integrationFunction] === "function") {
  31. window[integrationFunction](integrationTarget, contId);
  32. }
  33. if (integrationTarget !== 'null') {
  34. $(params.appContainers[key])[0].remove();
  35. $(integrationTarget).addClass('vue-app-main-container');
  36. if (typeof $(integrationTarget).attr('id') === 'undefined') {
  37. $(integrationTarget).attr('id', contId);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. }
  44. }, 1000);