Spaces:
No application file
No application file
| Mautic.integrationsConfigOnLoad = function () { | |
| mQuery('.integration-keyword-filter').each(function() { | |
| mQuery(this).off("keyup.integration-filter").on("keyup.integration-filter", function (event) { | |
| var integration = mQuery(this).attr('data-integration'); | |
| var object = mQuery(this).attr('data-object'); | |
| Mautic.getPaginatedIntegrationFields( | |
| { | |
| 'integration': integration, | |
| 'object': object, | |
| 'keyword': mQuery(this).val() | |
| }, | |
| 1, | |
| this | |
| ); | |
| }); | |
| }); | |
| Mautic.activateIntegrationFieldUpdateActions(); | |
| }; | |
| Mautic.getPaginatedIntegrationFields = function(settings, page, element) { | |
| var requestName = settings.integration + '-' + settings.object; | |
| var action = mauticBaseUrl + 's/integration/' + settings.integration + '/config/' + settings.object + '/' + page; | |
| if (settings.keyword) { | |
| action = action + '?keyword=' + settings.keyword; | |
| } | |
| if (typeof Mautic.activeActions == 'undefined') { | |
| Mautic.activeActions = {}; | |
| } else if (typeof Mautic.activeActions[requestName] != 'undefined') { | |
| Mautic.activeActions[requestName].abort(); | |
| } | |
| var object = settings.object; | |
| var fieldsTab = '#field-mappings-'+object+'-container'; | |
| if (element && mQuery(element).is('input')) { | |
| Mautic.activateLabelLoadingIndicator(mQuery(element).attr('id')); | |
| } | |
| var fieldsContainer = '#field-mappings-'+object; | |
| var modalId = '#'+mQuery(fieldsContainer).closest('.modal').attr('id'); | |
| Mautic.startModalLoadingBar(modalId); | |
| Mautic.activeActions[requestName] = mQuery.ajax({ | |
| showLoadingBar: false, | |
| url: action, | |
| type: "POST", | |
| dataType: "json", | |
| success: function (response) { | |
| if (response.success) { | |
| mQuery(fieldsContainer).html(response.html); | |
| Mautic.onPageLoad(fieldsContainer); | |
| Mautic.activateIntegrationFieldUpdateActions(); | |
| if (mQuery(fieldsTab).length) { | |
| mQuery(fieldsTab).removeClass('hide'); | |
| } | |
| } else if (mQuery(fieldsTab).length) { | |
| mQuery(fieldsTab).addClass('hide'); | |
| } | |
| if (element) { | |
| Mautic.removeLabelLoadingIndicator(); | |
| } | |
| Mautic.stopModalLoadingBar(modalId); | |
| }, | |
| error: function (request, textStatus, errorThrown) { | |
| Mautic.processAjaxError(request, textStatus, errorThrown); | |
| }, | |
| complete: function () { | |
| delete Mautic.activeActions[requestName] | |
| } | |
| }); | |
| }; | |
| Mautic.updateIntegrationField = function(integration, object, field, fieldOption, fieldValue) { | |
| var action = mauticBaseUrl + 's/integration/' + integration + '/config/' + object + '/field/' + field; | |
| var modal = mQuery('form[name=integration_config]').closest('.modal'); | |
| var requestName = integration + object + field + fieldOption; | |
| // Disable submit buttons until the action is done so nothing is lost | |
| mQuery(modal).find('.modal-form-buttons .btn').prop('disabled', true); | |
| if (typeof Mautic.activeActions == 'undefined') { | |
| Mautic.activeActions = {}; | |
| } else if (typeof Mautic.activeActions[requestName] != 'undefined') { | |
| Mautic.activeActions[requestName].abort(); | |
| } | |
| Mautic.startModalLoadingBar(mQuery(modal).attr('id')); | |
| // Must use bracket notation to use variable for key | |
| var obj = {}; | |
| obj[fieldOption] = fieldValue; | |
| Mautic.activeActions[requestName] = mQuery.ajax({ | |
| showLoadingBar: false, | |
| url: action, | |
| type: "POST", | |
| dataType: "json", | |
| data: obj, | |
| error: function (request, textStatus, errorThrown) { | |
| Mautic.processAjaxError(request, textStatus, errorThrown); | |
| }, | |
| complete: function () { | |
| modal.find('.modal-form-buttons .btn').prop('disabled', false); | |
| delete Mautic.activeActions[requestName]; | |
| } | |
| }); | |
| }; | |
| Mautic.activateIntegrationFieldUpdateActions = function () { | |
| mQuery('.integration-mapped-field').each(function() { | |
| mQuery(this).off("change.integration-mapped-field").on("change.integration-mapped-field", function (event) { | |
| var integration = mQuery(this).attr('data-integration'); | |
| var object = mQuery(this).attr('data-object'); | |
| var field = mQuery(this).attr('data-field'); | |
| Mautic.updateIntegrationField(integration, object, field, 'mappedField', mQuery(this).val()); | |
| }); | |
| }); | |
| mQuery('.integration-sync-direction').each(function() { | |
| mQuery(this).off("change.integration-sync-direction").on("change.integration-sync-direction", function (event) { | |
| var integration = mQuery(this).attr('data-integration'); | |
| var object = mQuery(this).attr('data-object'); | |
| var field = mQuery(this).attr('data-field'); | |
| Mautic.updateIntegrationField(integration, object, field, 'syncDirection', mQuery(this).val()); | |
| }); | |
| }); | |
| }; | |
| Mautic.authorizeIntegration = function () { | |
| mQuery('#integration_details_in_auth').val(1); | |
| Mautic.postForm(mQuery('form[name="integration_config"]'), 'loadIntegrationAuthWindow'); | |
| }; |