easyappointments/assets/js/pages/matomo_analytics_settings.m...

1 line
1.6 KiB
JavaScript
Executable File

"use strict";App.Pages.MatomoAnalyticsSettings=function(){function isInvalid(){try{$("#matomo-analytics-settings .is-invalid").removeClass("is-invalid");var missingRequiredFields=!1;if($("#matomo-analytics-settings .required").each(function(index,requiredField){var $requiredField=$(requiredField);$requiredField.val()||($requiredField.addClass("is-invalid"),missingRequiredFields=!0)}),missingRequiredFields)throw new Error(lang("fields_are_required"));return!1}catch(error){return App.Layouts.Backend.displayNotification(error.message),!0}}function deserialize(matomoAnalyticsSettings){matomoAnalyticsSettings.forEach(function(matomoAnalyticsSetting){var $field=$("[data-field=\""+matomoAnalyticsSetting.name+"\"]");$field.is(":checkbox")?$field.prop("checked",!!+matomoAnalyticsSetting.value):$field.val(matomoAnalyticsSetting.value)})}function serialize(){var matomoAnalyticsSettings=[];return $("[data-field]").each(function(index,field){var $field=$(field);matomoAnalyticsSettings.push({name:$field.data("field"),value:$field.is(":checkbox")?+$field.prop("checked"):$field.val()})}),matomoAnalyticsSettings}function onSaveSettingsClick(){if(isInvalid())return void App.Layouts.Backend.displayNotification(lang("settings_are_invalid"));var matomoAnalyticsSettings=serialize();App.Http.MatomoAnalyticsSettings.save(matomoAnalyticsSettings).done(function(){App.Layouts.Backend.displayNotification(lang("settings_saved"))})}var $saveSettings=$("#save-settings");return document.addEventListener("DOMContentLoaded",function(){$saveSettings.on("click",onSaveSettingsClick);var matomoAnalyticsSettings=vars("matomo_analytics_settings");deserialize(matomoAnalyticsSettings)}),{}}();