1. Fix(CSS): Styles improved across all pages. \n 2. Fix(SQL): User authentication correction for demo account with user role.

This commit is contained in:
2025-07-12 18:28:30 +01:00
parent 62cafa8bed
commit 4954c63d84
121 changed files with 562 additions and 3917 deletions

View File

@@ -4,11 +4,11 @@ function handleSelectCollapse(elementSelect) {
let optionSelected = document.querySelectorAll(elementSelect).querySelector('option:selected');
optionSelected.text(optionSelected.getAttribute(attrTextCollapsed));
optionSelected.classList.remove(flagExpanded);
optionSelected.classList.add(flagCollapsed);
optionSelected.classList.add(flagIsCollapsed);
}
function handleSelectExpand(elementSelect) {
let optionSelected = document.querySelectorAll(elementSelect).querySelector('option:selected');
optionSelected.text(optionSelected.getAttribute(attrTextExpanded));
optionSelected.classList.remove(flagCollapsed);
optionSelected.classList.remove(flagIsCollapsed);
optionSelected.classList.add(flagExpanded);
}

View File

@@ -20,7 +20,7 @@ export default class OverlayConfirm {
}
static show() {
let overlay = document.querySelector(idOverlayConfirm);
overlay.classList.remove(flagCollapsed);
overlay.classList.remove(flagIsCollapsed);
overlay.style.visibility = 'visible';
}
}

View File

@@ -60,12 +60,12 @@ export default class BasePage {
hookupNavigation() {
this.hookupEventHandler("click", idButtonHamburger, (event, element) => {
let overlayHamburger = document.querySelector(idOverlayHamburger);
if (overlayHamburger.classList.contains(flagCollapsed)) {
overlayHamburger.classList.remove(flagCollapsed);
if (overlayHamburger.classList.contains(flagIsCollapsed)) {
overlayHamburger.classList.remove(flagIsCollapsed);
overlayHamburger.classList.add(flagExpanded);
} else {
overlayHamburger.classList.remove(flagExpanded);
overlayHamburger.classList.add(flagCollapsed);
overlayHamburger.classList.add(flagIsCollapsed);
}
});
@@ -168,6 +168,8 @@ export default class BasePage {
Events.initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, (button) => {
button.addEventListener("click", (event) => {
event.stopPropagation();
button = event.target;
if (button.classList.contains(flagIsCollapsed)) return;
Utils.consoleLogIfNotProductionEnvironment('saving page: ', this.title);
OverlayConfirm.show();
});
@@ -191,12 +193,12 @@ export default class BasePage {
let buttonSave = document.querySelector('form.' + flagFilter + ' button.' + flagSave);
let buttonCancel = document.querySelector('form.' + flagFilter + ' button.' + flagCancel);
if (show) {
buttonCancel.classList.remove(flagCollapsed);
buttonSave.classList.remove(flagCollapsed);
buttonCancel.classList.remove(flagIsCollapsed);
buttonSave.classList.remove(flagIsCollapsed);
Utils.consoleLogIfNotProductionEnvironment('showing buttons');
} else {
buttonCancel.classList.add(flagCollapsed);
buttonSave.classList.add(flagCollapsed);
buttonCancel.classList.add(flagIsCollapsed);
buttonSave.classList.add(flagIsCollapsed);
Utils.consoleLogIfNotProductionEnvironment('hiding buttons');
}
}

View File

@@ -101,10 +101,27 @@ export default class TableBasePage extends BasePage {
}
static isDirtyFilter(filter) {
let isDirty = DOM.updateAndCheckIsElementDirty(filter);
let tbody = document.querySelector(idTableMain + ' tbody');
let rows = tbody.querySelectorAll(':scope > tr');
let cancelButton = document.querySelector(idFormFilters + ' ' + idButtonCancel);
let saveButton = document.querySelector(idFormFilters + ' ' + idButtonSave);
rows.forEach((row) => {
if (isDirty && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);
if (!isDirty && row.classList.contains(flagIsCollapsed)) row.classList.remove(flagIsCollapsed);
});
if (isDirty) {
let tbody = document.querySelector(idTableMain + ' tbody');
tbody.querySelectorAll('tr').forEach((tr) => { tr.remove(); });
tbody.innerHTML = '<div>Press "Apply Filters" to refresh the table.</div>';
// tbody.querySelectorAll('tr').forEach((tr) => { tr.remove(); });
tbody.innerHTML = '<div>Press "Apply Filters" to refresh the table.</div>' + tbody.innerHTML;
if (!tbody.classList.contains(flagIsCollapsed)) tbody.classList.add(flagIsCollapsed);
if (!cancelButton.classList.contains(flagIsCollapsed)) cancelButton.classList.add(flagIsCollapsed);
if (!saveButton.classList.contains(flagIsCollapsed)) saveButton.classList.add(flagIsCollapsed);
}
else {
if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);
if (cancelButton.classList.contains(flagIsCollapsed)) cancelButton.classList.remove(flagIsCollapsed);
if (saveButton.classList.contains(flagIsCollapsed)) saveButton.classList.remove(flagIsCollapsed);
let isDirtyLabel = tbody.querySelector(":scope > div");
if (isDirtyLabel != null) isDirtyLabel.remove();
}
return isDirty;
}
@@ -271,15 +288,18 @@ export default class TableBasePage extends BasePage {
Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, (button) => {
button.addEventListener("click", (event) => {
event.stopPropagation();
button = event.target;
if (button.classList.contains(flagIsCollapsed)) return;
this.callFilterTableContent();
});
button.classList.add(flagCollapsed);
button.classList.add(flagIsCollapsed);
});
}
handleClickAddRowTable(event, button) {
event.stopPropagation();
_rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - _rowBlank.getAttribute(this.constructor.attrIdRowObject));
let tbody = document.querySelector(idTableMain + ' tbody');
if (tbody.classList.contains(flagIsCollapsed)) return;
let row = _rowBlank.cloneNode(true);
row.classList.remove(flagInitialised);
row.querySelectorAll('.' + flagInitialised).forEach(function(element) {
@@ -288,7 +308,8 @@ export default class TableBasePage extends BasePage {
let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;
row.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);
this.initialiseRowNew(tbody, row);
tbody.appendChild(row);
tbody.prepend(row);
tbody.scrollTop = 0;
this.hookupTableMain();
this.postInitialiseRowNewCallback(tbody);
}
@@ -459,7 +480,7 @@ export default class TableBasePage extends BasePage {
}
}
hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector, handler = (event, element) => {
if (!element.classList.contains(flagCollapsed)) this.handleChangeNestedElementCellTable(event, element);
if (!element.classList.contains(flagIsCollapsed)) this.handleChangeNestedElementCellTable(event, element);
}) {
this.hookupEventHandler("change", inputSelector, handler);
}
@@ -593,10 +614,10 @@ export default class TableBasePage extends BasePage {
}
*/
toggleColumnCollapsed(flagColumn, isCollapsed) {
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagCollapsed);
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);
}
toggleColumnHeaderCollapsed(flagColumn, isCollapsed) {
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagCollapsed);
this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);
}
hookupFieldsCommandCategory() {