97 lines
3.5 KiB
JavaScript
97 lines
3.5 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
let
|
|
control_addAdditionalPrincipalButton = document.getElementById("AddAdditionalPrincipalButton"),
|
|
control_additionalPrincipalsList = document.getElementById("AdditionalPrincipalsList"),
|
|
control_additionalPrincipalsValidation = document.getElementById("AdditionalPrincipalsValidation"),
|
|
control_addWitnessButton = document.getElementById("AddWitnessButton"),
|
|
control_currentUserEmail = document.getElementById("CurrentUserEmail"),
|
|
control_documentFile = document.getElementById("DocumentFile"),
|
|
control_isConfirmed = document.getElementById("IsConfirmed"),
|
|
control_newPrincipalEmail = document.getElementById("NewPrincipalEmail"),
|
|
control_newWitnessEmail = document.getElementById("NewWitnessEmail"),
|
|
control_participantItemTemplate = document.getElementById("ParticipantItemTemplate"),
|
|
control_participantsJson = document.getElementById("ParticipantsJson"),
|
|
control_uploadDocumentForm = document.getElementById("UploadDocumentForm"),
|
|
control_witnessesList = document.getElementById("WitnessesList"),
|
|
control_witnessesValidation = document.getElementById("WitnessesValidation");
|
|
|
|
let signatories = [];
|
|
|
|
function _addSignatory(control_email, signatoryType, control_signatoryList) {
|
|
let email = control_email.value;
|
|
|
|
if (!email) {
|
|
return "Email is required.";
|
|
}
|
|
|
|
if (control_currentUserEmail.value == email) {
|
|
return "Email must not be the same as the currently logged in user.";
|
|
}
|
|
|
|
if (signatories.find(x => x.email === email)) {
|
|
return "Email already exists.";
|
|
}
|
|
|
|
signatories.push({
|
|
email: email,
|
|
type: signatoryType
|
|
});
|
|
|
|
let liTemplate = control_participantItemTemplate.cloneNode(true);
|
|
let li = liTemplate.content;
|
|
li.querySelector(".participantitem__li").setAttribute("data-uid", "");
|
|
li.querySelector(".participantitem__email").textContent = email;
|
|
|
|
let deleteButton = li.querySelector(".participantitem__delete");
|
|
deleteButton.addEventListener("click", _deleteParticipant);
|
|
deleteButton.control_signatoryList = control_signatoryList;
|
|
control_signatoryList.appendChild(li);
|
|
|
|
control_email.value = "";
|
|
}
|
|
|
|
function _deleteParticipant(sender) {
|
|
let li = sender.target.closest("li");
|
|
let email = li.querySelector(".participantitem__email").textContent;
|
|
jfa.components.dialog.confirm({
|
|
message: "Are you sure you want to remove this participant?",
|
|
callbackyes: function () {
|
|
signatories = signatories.filter(m => m.email != email);
|
|
}
|
|
});
|
|
}
|
|
|
|
function _bindEvents() {
|
|
control_addAdditionalPrincipalButton.addEventListener("click", () => {
|
|
let err = _addSignatory(control_newPrincipalEmail, 'Principal', control_additionalPrincipalsList);
|
|
control_additionalPrincipalsValidation.textContent = err;
|
|
});
|
|
control_addWitnessButton.addEventListener("click", () => {
|
|
let err = _addSignatory(control_newWitnessEmail, 'Witness', control_witnessesList);
|
|
control_witnessesValidation.textContent = err;
|
|
});
|
|
control_uploadDocumentForm.addEventListener("submit", _onSubmitForm);
|
|
}
|
|
|
|
function _init() {
|
|
signatories = JSON.parse(control_participantsJson.value)?.map(p => ({
|
|
email: p.Email,
|
|
type: p.Type,
|
|
uid: p.UID
|
|
}));
|
|
|
|
_bindEvents();
|
|
}
|
|
|
|
function _onSubmitForm(event) {
|
|
control_participantsJson.value = JSON.stringify(signatories);
|
|
if (control_documentFile.files.length === 0 || !control_isConfirmed.checked) {
|
|
event.preventDefault();
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
_init();
|
|
})(); |