1 line
3.3 KiB
JavaScript
Executable File
1 line
3.3 KiB
JavaScript
Executable File
"use strict";App.Pages.Account=function(){function isInvalid(){try{$("#account .is-invalid").removeClass("is-invalid");var missingRequiredFields=!1;if($("#account .required").each(function(index,requiredField){var $requiredField=$(requiredField);$requiredField.val()||($requiredField.addClass("is-invalid"),missingRequiredFields=!0)}),missingRequiredFields)throw new Error(lang("fields_are_required"));if($password.val()&&$password.val()!==$retypePassword.val())throw $password.addClass("is-invalid"),$retypePassword.addClass("is-invalid"),new Error(lang("passwords_mismatch"));var emailValue=$email.val();if(!App.Utils.Validation.email(emailValue))throw $email.addClass("is-invalid"),new Error(lang("invalid_email"));if($username.hasClass("is-invalid"))throw new Error(lang("username_already_exists"));return!1}catch(error){return App.Layouts.Backend.displayNotification(error.message),!0}}function deserialize(account){$userId.val(account.id),$firstName.val(account.first_name),$lastName.val(account.last_name),$email.val(account.email),$mobileNumber.val(account.mobile_number),$phoneNumber.val(account.phone_number),$address.val(account.address),$city.val(account.city),$state.val(account.state),$zipCode.val(account.zip_code),$notes.val(account.notes),$language.val(account.language),$timezone.val(account.timezone),$username.val(account.settings.username),$password.val(""),$retypePassword.val(""),$calendarView.val(account.settings.calendar_view),notifications.prop("checked",!!+account.settings.notifications)}function serialize(){return{id:$userId.val(),first_name:$firstName.val(),last_name:$lastName.val(),email:$email.val(),mobile_number:$mobileNumber.val(),phone_number:$phoneNumber.val(),address:$address.val(),city:$city.val(),state:$state.val(),zip_code:$zipCode.val(),notes:$notes.val(),language:$language.val(),timezone:$timezone.val(),settings:{username:$username.val(),password:$password.val()||void 0,calendar_view:$calendarView.val(),notifications:+notifications.prop("checked")}}}function onSaveSettingsClick(){if(isInvalid())return void App.Layouts.Backend.displayNotification(lang("user_settings_are_invalid"));var account=serialize();App.Http.Account.save(account).done(function(){App.Layouts.Backend.displayNotification(lang("settings_saved")),$footerUserDisplayName.text("Hello, "+$firstName.val()+" "+$lastName.val()+"!")})}function onUsernameChange(){var username=$username.val();App.Http.Account.validateUsername(vars("user_id"),username).done(function(response){var isValid=response.is_valid;$username.toggleClass("is-invalid",!isValid),isValid||App.Layouts.Backend.displayNotification(lang("username_already_exists"))})}var $userId=$("#user-id"),$firstName=$("#first-name"),$lastName=$("#last-name"),$email=$("#email"),$mobileNumber=$("#mobile-number"),$phoneNumber=$("#phone-number"),$address=$("#address"),$city=$("#city"),$state=$("#state"),$zipCode=$("#zip-code"),$notes=$("#notes"),$language=$("#language"),$timezone=$("#timezone"),$username=$("#username"),$password=$("#password"),$retypePassword=$("#retype-password"),$calendarView=$("#calendar-view"),notifications=$("#notifications"),$saveSettings=$("#save-settings"),$footerUserDisplayName=$("#footer-user-display-name");return document.addEventListener("DOMContentLoaded",function(){var account=vars("account");deserialize(account),$saveSettings.on("click",onSaveSettingsClick),$username.on("change",onUsernameChange)}),{}}(); |