Make the settings serialization more dynamic

This commit is contained in:
Alex Tselegidis 2023-12-22 11:22:16 +01:00
parent 054c4fe36d
commit 1ee373a544
5 changed files with 32 additions and 12 deletions

View file

@ -52,7 +52,11 @@ App.Pages.ApiSettings = (function () {
function deserialize(apiSettings) {
apiSettings.forEach((apiSetting) => {
$('[data-field="' + apiSetting.name + '"]').val(apiSetting.value);
const $field = $('[data-field="' + apiSetting.name + '"]');
$field.is(':checkbox')
? $field.prop('checked', Boolean(Number(apiSetting.value)))
: $field.val(apiSetting.value);
});
}
@ -64,7 +68,7 @@ App.Pages.ApiSettings = (function () {
apiSettings.push({
name: $field.data('field'),
value: $field.val()
value: $field.is(':checkbox') ? Number($field.prop('checked')) : $field.val()
});
});

View file

@ -17,7 +17,7 @@
App.Pages.BusinessSettings = (function () {
const $saveSettings = $('#save-settings');
const $applyGlobalWorkingPlan = $('#apply-global-working-plan');
const $appointmentStatusOptions = $('#appointment-status-options')
const $appointmentStatusOptions = $('#appointment-status-options');
let workingPlanManager = null;
/**
@ -55,7 +55,11 @@ App.Pages.BusinessSettings = (function () {
function deserialize(businessSettings) {
businessSettings.forEach((businessSetting) => {
$('[data-field="' + businessSetting.name + '"]').val(businessSetting.value);
const $field = $('[data-field="' + businessSetting.name + '"]');
$field.is(':checkbox')
? $field.prop('checked', Boolean(Number(businessSetting.value)))
: $field.val(businessSetting.value);
});
}
@ -67,7 +71,7 @@ App.Pages.BusinessSettings = (function () {
businessSettings.push({
name: $field.data('field'),
value: $field.val()
value: $field.is(':checkbox') ? Number($field.prop('checked')) : $field.val()
});
});
@ -160,7 +164,7 @@ App.Pages.BusinessSettings = (function () {
workingPlanManager.setup(companyWorkingPlan);
workingPlanManager.timepickers(false);
workingPlanManager.addEventListeners();
App.Components.AppointmentStatusOptions.setOptions($appointmentStatusOptions, appointmentStatusOptions);
$saveSettings.on('click', onSaveSettingsClick);

View file

@ -70,7 +70,11 @@ App.Pages.GeneralSettings = (function () {
$resetCompanyColor.prop('hidden', false);
}
$('[data-field="' + generalSetting.name + '"]').val(generalSetting.value);
const $field = $('[data-field="' + generalSetting.name + '"]');
$field.is(':checkbox')
? $field.prop('checked', Boolean(Number(generalSetting.value)))
: $field.val(generalSetting.value);
});
}
@ -82,7 +86,7 @@ App.Pages.GeneralSettings = (function () {
generalSettings.push({
name: $field.data('field'),
value: $field.val()
value: $field.is(':checkbox') ? Number($field.prop('checked')) : $field.val()
});
});

View file

@ -52,7 +52,11 @@ App.Pages.GoogleAnalyticsSettings = (function () {
function deserialize(googleAnalyticsSettings) {
googleAnalyticsSettings.forEach((googleAnalyticsSetting) => {
$('[data-field="' + googleAnalyticsSetting.name + '"]').val(googleAnalyticsSetting.value);
const $field = $('[data-field="' + googleAnalyticsSetting.name + '"]');
$field.is(':checkbox')
? $field.prop('checked', Boolean(Number(googleAnalyticsSetting.value)))
: $field.val(googleAnalyticsSetting.value);
});
}
@ -64,7 +68,7 @@ App.Pages.GoogleAnalyticsSettings = (function () {
googleAnalyticsSettings.push({
name: $field.data('field'),
value: $field.val()
value: $field.is(':checkbox') ? Number($field.prop('checked')) : $field.val()
});
});

View file

@ -52,7 +52,11 @@ App.Pages.MatomoAnalyticsSettings = (function () {
function deserialize(matomoAnalyticsSettings) {
matomoAnalyticsSettings.forEach((matomoAnalyticsSetting) => {
$('[data-field="' + matomoAnalyticsSetting.name + '"]').val(matomoAnalyticsSetting.value);
const $field = $('[data-field="' + matomoAnalyticsSetting.name + '"]');
$field.is(':checkbox')
? $field.prop('checked', Boolean(Number(matomoAnalyticsSetting.value)))
: $field.val(matomoAnalyticsSetting.value);
});
}
@ -64,7 +68,7 @@ App.Pages.MatomoAnalyticsSettings = (function () {
matomoAnalyticsSettings.push({
name: $field.data('field'),
value: $field.val()
value: $field.is(':checkbox') ? Number($field.prop('checked')) : $field.val()
});
});