Professional Documents
Culture Documents
Srinivas Sat HTML
Srinivas Sat HTML
/**JS**/
const addEffectiveDateButton =
"#clubChannelEntryForm .add-effectivedate--btn";
const clubAndChannelEntryForm = {
selectedEffectiveDates: []
};
function createChip(
chipLabel,
chipClassName,
onChipIcon
) {
const spanElement = document.createElement("span");
spanElement.className = `badge badge-primary ${chipClassName}`;
spanElement.textContent = chipLabel;
spanElement.onclick = onChipIcon;
return spanElement;
}
function onRemoveChip(chipToBeDeleted, selectedChipsSelector, postRemoval) {
return (selectedChips) => {
const deleteChipCounter = selectedChips.indexOf(chipToBeDeleted);
if (deleteChipCounter > -1) {
selectedChips.splice(deleteChipCounter, 1);
let chipElementToRemoveFromDOM;
selectedChipsSelector().childNodes.forEach((childNode, index) => {
if (deleteChipCounter === index) {
chipElementToRemoveFromDOM = childNode;
}
});
chipElementToRemoveFromDOM && chipElementToRemoveFromDOM.remove();
}
postRemoval();
};
}
function getClubAndChannelLookupSelectedEffectiveDatesContainer() {
return document.querySelector(".club-channel--effectiveDatesContainer");
}
function getFormElementsCloseModelSelector() {
return document.querySelector(closeEffectiveDateModelButton);
}
function createFormGroupWithInputElement(formGroupInputDetails) {
const {
labelFor,
labelClassName,
inputPlaceholder,
inputName,
onInputChange,
type = "text",
isRequired = true,
} = formGroupInputDetails;
// Create form group div
const formGroupDiv = document.createElement("div");
formGroupDiv.className = "form-group col-md-10";
// Create Field set
const fieldSetDiv = document.createElement("fieldset");
formGroupDiv.appendChild(fieldSetDiv);
// Create Label
const labelEle = document.createElement("label");
labelEle.for = labelFor;
labelEle.className = labelClassName;
fieldSetDiv.appendChild(labelEle);
// Create Input
const inputEle = document.createElement("input");
inputEle.type = type;
inputEle.className = "form-control";
inputEle.name = inputName;
inputEle.placeholder = inputPlaceholder;
inputEle.onchange = onInputChange;
inputEle.required = isRequired;
fieldSetDiv.appendChild(inputEle);
return formGroupDiv;
}
document.querySelector(addEffectiveDateButton).onclick = () => {
let effectiveDate;
const effectiveDatesFormGroupDiv = createFormGroupWithInputElement({
labelFor: "effectiveDates",
labelClassName: "disable-label",
inputPlaceholder: "Enter Club Name",
inputName: "effectiveDates",
type: "date",
onInputChange: (e) => {
const effectiveDateSplitByForwardSlash = e.target.value.split("-");
effectiveDate = `${effectiveDateSplitByForwardSlash[1]}/$
{effectiveDateSplitByForwardSlash[2]}/${effectiveDateSplitByForwardSlash[0]}`
},
});
openModel(
effectiveDatesFormGroupDiv,
onAddEffectiveDate,
"Select Effective Date and Add",
"Add date"
);
};
function closeModel() {
getFormElementsCloseModelSelector().click();
}
function openModel(
bodyContentDOM,
onClickHandler,
modelTitle,
saveButtonText
) {
document.querySelector(
".modal.form-elements--model .modal-body p"
).innerHTML = "";
document.querySelector(
".modal.form-elements--model .modal-footer .save-changes--btn"
).innerHTML = saveButtonText;
document.querySelector(
".modal.form-elements--model .modal-title"
).innerHTML = modelTitle;
document
.querySelector(".modal.form-elements--model .modal-body p")
.appendChild(bodyContentDOM);
document.querySelector(
".modal.form-elements--model .modal-footer .save-changes--btn"
).onclick = onClickHandler;
document.getElementById("form-elements--model_btn").click();
}