/** * @author Usman Naeem */ const profile_form_id = "profile_form"; function enableProfilePage() { if (!user_json) { enableHomePage(); } addLoader(); setPage("profile_page"); addHeader(true); addFooter(); preventDefaultFormSubmit(profile_form_id); const messageboxElement = getElement("profile_message_box"); messageboxElement.innerHTML = ""; load_user(messageboxElement).then(() => { load_user_form().then(() => { removeLoader(); load_timezones("timeZone", user_json.timezone, false, false); }).catch(error => { handleError(error, "profile_message_box", true); enableLoginPage(); return; }); }).catch(error => { handleError(error, "preferred_timeframes_message_box", true); enableLoginPage(); return; }); } async function load_user_form() { try { const nameElement = getElement("name"); nameElement.value = user_json.name; const emailElement = getElement("email"); emailElement.readOnly = true; emailElement.value = user_json.email; const stateElement = getElement("state"); stateElement.readOnly = true; stateElement.value = user_json.state; const typeElement = getElement("type"); typeElement.readOnly = true; typeElement.value = user_json.type; const accountElement = getElement("account"); accountElement.readOnly = true; accountElement.value = user_json.account; typeElement.value = user_json.type; const languageElement = getElement("language"); languageElement.readOnly = true; languageElement.value = user_json.language; const expiryElement = getElement("expiry"); expiryElement.readOnly = true; expiryElement.value = user_json.expiry; } catch (error) { throw new Error("Failed to load user"); } } async function save_profile() { try { const messageboxElement = getElement("profile_message_box"); messageboxElement.innerHTML = ""; const nameElement = getElement("name"); if (nameElement.value.trim() === "") { return; } const form_data = getFormData(profile_form_id); disableOrEnableForm(profile_form_id, true); const url = "EditUser"; const json = await callWebservicePOST(url, form_data, messageboxElement, null); if (json.code !== 200) { messageboxElement.innerHTML = json.message; } else { user_json = null; messageboxElement.innerHTML = "Profile saved"; await sleep(1000); enableHomePage(); } } catch (error) { handleError("Failed to edit user", "profile_message_box"); } disableOrEnableForm(profile_form_id, false); }