/** * @author Usman Naeem */ const send_invitation_form_id = "send_invitation_form"; const license_periods = new Array(); function enableSendInvitationPage() { addLoader(); setPage("send_invitation_page"); addHeader(true); addFooter(); preventDefaultFormSubmit(send_invitation_form_id); const messageboxElement = getElement("send_invitation_message_box"); messageboxElement.innerHTML = ""; const inviteeEmailElement = getElement("invitee_email"); inviteeEmailElement.value = ""; load_user().then(() => { if (user_json.type !== 'Administrator') { enableHomePage(); } // load_signup_duration_options().then(() => { removeLoader(); }).catch((error) => { handleError(error, "send_invitation_message_box", true); return; }); }).catch((error) => { handleError(error, "send_invitation_message_box", true); enableHomePage(); return; }); } async function load_signup_duration_options() { try { if(license_periods.length > 0) { return; } //license_periods.length = 0; const messageboxElement = getElement("send_invitation_message_box"); const url = "/administration/GetLicensePeriodOptions"; const json = await callWebserviceGET(url, messageboxElement, null); if (json.code !== 200) { messageboxElement.innerHTML = json.message; } else { json.license_periods.forEach(option => { if (!license_periods.includes(option)) { license_periods.push(option); } }); license_periods.sort((a, b) => { return (a - b); }); const licensePeriodElement = getElement("license_period"); licensePeriodElement.innerHTML = ""; var selectedDone = false; license_periods.forEach(option => { var optionElement = document.createElement('option'); optionElement.value = option; optionElement.innerHTML = option + " Day" + (option > 1 ? "s" : ""); if (!selectedDone) { optionElement.selected = true; selectedDone = true; } licensePeriodElement.appendChild(optionElement); }); } } catch (error) { console.log(error); throw new Error("Failed to load license period options"); } } async function send_invitation() { try { const messageboxElement = getElement("send_invitation_message_box"); messageboxElement.innerHTML = ""; const inviteeEmailElement = getElement("invitee_email"); if (inviteeEmailElement.value.trim() === "") { return; } const form_data = getFormData(send_invitation_form_id); disableOrEnableForm(send_invitation_form_id, true); const url = "administration/GenerateSignupInvitation"; const json = await callWebservicePOST(url, form_data, messageboxElement, null); if (json.code !== 200) { messageboxElement.innerHTML = json.message; } else { messageboxElement.innerHTML = "Signup invitation has been generated for " + inviteeEmailElement.value; } } catch (error) { handleError("Failed to send invitation", "send_invitation_message_box"); } disableOrEnableForm(send_invitation_form_id, false); }