public-typescript/licence-activeSummary.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
(() => {
const urlPrefix = document.querySelector("main").dataset.urlPrefix;
let externalLicenceNumberFieldLabel = "";
const formElement = document.querySelector("#form--activeSummary");
const containerElement = document.querySelector("#container--activeSummary");
const getActiveLicenceSummaryFunction = () => {
containerElement.innerHTML = "<p class=\"has-text-centered has-text-grey-lighter\">" +
"<i class=\"fas fa-3x fa-circle-notch fa-spin\" aria-hidden=\"true\"></i><br />" +
"<em>Loading licences...</em>" +
"</p>";
cityssm.postJSON(urlPrefix + "/licences/doGetActiveLicenceSummary", formElement, (activeLicenceList) => {
if (activeLicenceList.length === 0) {
containerElement.innerHTML = "<div class=\"message is-info\">" +
"<p class=\"message-body\">" +
"There are no active licences on the selected time range." +
"</p>" +
"</div>";
return;
}
const tableElement = document.createElement("table");
tableElement.className = "table is-striped is-hoverable is-fullwidth has-sticky-header";
tableElement.innerHTML = "<thead>" +
"<tr>" +
"<th>" + externalLicenceNumberFieldLabel + "</th>" +
"<th>Licence Type</th>" +
"<th>Organization</th>" +
"<th>Location</th>" +
"<th>Issue Date</th>" +
"<th>Licence Start Date</th>" +
"<th>Licence End Date</th>" +
"</tr>" +
"</thead>";
const tbodyElement = document.createElement("tbody");
for (const licenceObject of activeLicenceList) {
const trElement = document.createElement("tr");
trElement.innerHTML = ("<td>" +
"<a href=\"/licences/" + licenceObject.licenceID.toString() + "\" data-tooltip=\"View Licence\">" +
cityssm.escapeHTML(licenceObject.externalLicenceNumber) + "<br />" +
"<small>Licence #" + licenceObject.licenceID.toString() + "</small>" +
"</a>" +
"</td>") +
("<td>" +
(exports.config_licenceTypes[licenceObject.licenceTypeKey] || licenceObject.licenceTypeKey) +
"</td>") +
("<td>" +
"<a href=\"/organizations/" + licenceObject.organizationID.toString() + "\"" +
" data-tooltip=\"View Organization\">" +
cityssm.escapeHTML(licenceObject.organizationName) +
"</a>" +
"</td>") +
("<td>" +
(licenceObject.locationID
? "<a href=\"/locations/" + licenceObject.locationID.toString() + "\" data-tooltip=\"View Location\">" +
cityssm.escapeHTML(licenceObject.locationDisplayName) +
"</a>" +
(licenceObject.locationDisplayName === licenceObject.locationName
? "<br /><small>" + cityssm.escapeHTML(licenceObject.locationAddress1) + "</small>"
: "")
: "<span class=\"has-text-grey\">(No Location)</span>") +
"</td>") +
("<td class=\"is-nowrap\">" + licenceObject.issueDateString + "</td>") +
("<td class=\"is-nowrap\">" +
"<span class=\"icon\"><i class=\"fas fa-play\" aria-hidden=\"true\"></i></span> " +
licenceObject.startDateString +
"</td>") +
("<td class=\"is-nowrap\">" +
"<span class=\"icon\"><i class=\"fas fa-stop\" aria-hidden=\"true\"></i></span> " +
licenceObject.endDateString +
"</td>");
tbodyElement.append(trElement);
}
tableElement.append(tbodyElement);
cityssm.clearElement(containerElement);
containerElement.append(tableElement);
});
};
llm.initializeDateRangeSelector(document.querySelector(".is-date-range-selector[data-field-key='startEndDate']"), getActiveLicenceSummaryFunction);
llm.getDefaultConfigProperty("externalLicenceNumber_fieldLabel", (fieldLabel) => {
externalLicenceNumberFieldLabel = fieldLabel;
getActiveLicenceSummaryFunction();
});
})();