"use strict";App.Pages.GeneralSettings=function(){function isInvalid(){try{$("#general-settings .is-invalid").removeClass("is-invalid");var missingRequiredFields=!1;if($("#general-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(generalSettings){generalSettings.forEach(function(generalSetting){if("company_logo"===generalSetting.name&&generalSetting.value)return companyLogoBase64=generalSetting.value,$companyLogoPreview.attr("src",generalSetting.value),$companyLogoPreview.prop("hidden",!1),void $removeCompanyLogo.prop("hidden",!1);"company_color"===generalSetting.name&&"#ffffff"!==generalSetting.value&&$resetCompanyColor.prop("hidden",!1);var $field=$("[data-field=\""+generalSetting.name+"\"]");$field.is(":checkbox")?$field.prop("checked",!!+generalSetting.value):$field.val(generalSetting.value)})}function serialize(){var generalSettings=[];return $("[data-field]").each(function(index,field){var $field=$(field);generalSettings.push({name:$field.data("field"),value:$field.is(":checkbox")?+$field.prop("checked"):$field.val()})}),generalSettings.push({name:"company_logo",value:companyLogoBase64}),generalSettings}function onSaveSettingsClick(){if(isInvalid())return void App.Layouts.Backend.displayNotification(lang("settings_are_invalid"));var generalSettings=serialize();App.Http.GeneralSettings.save(generalSettings).done(function(){App.Layouts.Backend.displayNotification(lang("settings_saved"),[{label:lang("reload"),function:function _function(){return window.location.reload()}}])})}function onCompanyLogoChange(){var file=$companyLogo[0].files[0];return file?void App.Utils.File.toBase64(file).then(function(base64){companyLogoBase64=base64,$companyLogoPreview.attr("src",base64),$companyLogoPreview.prop("hidden",!1),$removeCompanyLogo.prop("hidden",!1)}):void $removeCompanyLogo.trigger("click")}function onRemoveCompanyLogoClick(){companyLogoBase64="",$companyLogo.val(""),$companyLogoPreview.attr("src","#"),$companyLogoPreview.prop("hidden",!0),$removeCompanyLogo.prop("hidden",!0)}function onCompanyColorChange(){$resetCompanyColor.prop("hidden","#ffffff"===$companyColor.val())}function onResetCompanyColorClick(){$companyColor.val("#ffffff")}var $saveSettings=$("#save-settings"),$companyLogo=$("#company-logo"),$companyLogoPreview=$("#company-logo-preview"),$removeCompanyLogo=$("#remove-company-logo"),$companyColor=$("#company-color"),$resetCompanyColor=$("#reset-company-color"),companyLogoBase64="";return document.addEventListener("DOMContentLoaded",function initialize(){$saveSettings.on("click",onSaveSettingsClick),$companyLogo.on("change",onCompanyLogoChange),$removeCompanyLogo.on("click",onRemoveCompanyLogoClick),$companyColor.on("change",onCompanyColorChange),$resetCompanyColor.on("click",onResetCompanyColorClick);var generalSettings=vars("general_settings");deserialize(generalSettings)}),{}}();