| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- var mgIntegrationHelper = {
- //help determine what part of app should be integrated
- getIngegrationInsertType: function(isIntegration) {
- var allowedInsertTypes= ['full', 'content', 'mc_content'];
- var intParam = $(isIntegration).attr('mg-integration-insert-type');
- if (allowedInsertTypes.includes(intParam)) {
- return intParam;
- } else {
- return 'full';
- }
- },
- //get integration HTML code to be passed on the page
- getIngegrationCode: function(selector, integrationInsertType) {
- if(integrationInsertType === 'full'){
- return $(selector).parents('.mg-integration-container').children('#layers').first()[0].outerHTML;
- } else if (integrationInsertType === 'mc_content') {
- return $(selector)[0].innerHTML;
- } else {
- return $(selector)[0].outerHTML;
- }
- },
- removeOldContainer: function(selector, integrationInsertType, integrationTarget) {
- return $(selector)[0].remove();
- },
- afterInsertActions: function(selector, integrationInsertType, integrationTarget) {
- if (integrationInsertType === 'full') {
- var modalContId = $('#' + $(selector).attr('id') + '_modal');
- $(integrationTarget).find(modalContId).first().remove();
- }
- }
- }
- mgEventHandler.on('AppsPreLoad', null, function(id, params){
- if (typeof params.appContainers !== 'undefined') {
- //check all app container, looking for integration containers
- for (var key in params.appContainers) {
- if (!params.appContainers.hasOwnProperty(key)) {
- continue;
- }
- //each integration container needs to have 'mg-integration-container' class
- var isIntegration = $(params.appContainers[key]).parents('.mg-integration-container');
- if (isIntegration.length === 1) {
- var integrationInsertType = mgIntegrationHelper.getIngegrationInsertType(isIntegration);
- var tempIntCode = mgIntegrationHelper.getIngegrationCode(params.appContainers[key], integrationInsertType);
- var integrationType = $(isIntegration).attr('mg-integration-type');
- var integrationTarget = $(isIntegration).attr('mg-integration-target');
- if (integrationType === 'append') {
- mgIntegrationHelper.removeOldContainer(params.appContainers[key], integrationInsertType, integrationTarget);
- $(integrationTarget).append(tempIntCode);
- mgIntegrationHelper.afterInsertActions(params.appContainers[key], integrationInsertType, integrationTarget);
- } else if(integrationType === 'replace') {
- mgIntegrationHelper.removeOldContainer(params.appContainers[key], integrationInsertType, integrationTarget);
- $(integrationTarget).replaceWith(tempIntCode);
- mgIntegrationHelper.afterInsertActions(params.appContainers[key], integrationInsertType, integrationTarget);
- } else if(integrationType === 'after') {
- mgIntegrationHelper.removeOldContainer(params.appContainers[key], integrationInsertType, integrationTarget);
- $(integrationTarget).after(tempIntCode);
- mgIntegrationHelper.afterInsertActions(params.appContainers[key], integrationInsertType, integrationTarget);
- } else if(integrationType === 'before') {
- mgIntegrationHelper.removeOldContainer(params.appContainers[key], integrationInsertType, integrationTarget);
- $(integrationTarget).before(tempIntCode);
- mgIntegrationHelper.afterInsertActions(params.appContainers[key], integrationInsertType, integrationTarget);
- } else if(integrationType === 'prepend') {
- mgIntegrationHelper.removeOldContainer(params.appContainers[key], integrationInsertType, integrationTarget);
- $(integrationTarget).prepend(tempIntCode);
- mgIntegrationHelper.afterInsertActions(params.appContainers[key], integrationInsertType, integrationTarget);
- } else if(integrationType === 'custom') {
- var contId = $(params.appContainers[key]).attr('id');
- var integrationFunction = $(isIntegration).attr('mg-integration-function');
- if (integrationFunction && typeof window[integrationFunction] === "function") {
- window[integrationFunction](integrationTarget, contId);
- }
- if (integrationTarget !== 'null') {
- $(params.appContainers[key])[0].remove();
- $(integrationTarget).addClass('vue-app-main-container');
- if (typeof $(integrationTarget).attr('id') === 'undefined'){
- $(integrationTarget).attr('id', contId);
- }
- }
- }
- }
- }
- }
- }, 3000);
|