Feat(SQL): Location Get Many and Calc Stored Procedures created with logic using Location Link table.
This commit is contained in:
2
static/dist/css/core_home.bundle.css
vendored
2
static/dist/css/core_home.bundle.css
vendored
@@ -23,7 +23,7 @@
|
||||
.home-hero a {
|
||||
font-size: 1.25rem;
|
||||
margin-bottom: 2rem;
|
||||
color: var(--colour-text-background);
|
||||
color: var(--colour-primary);
|
||||
cursor: pointer;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
||||
2
static/dist/css/core_home.bundle.css.map
vendored
2
static/dist/css/core_home.bundle.css.map
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"css/core_home.bundle.css","mappings":";AACA,iBAAiB;AACjB;IACI,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,mBAAmB;IACnB,oCAAoC;IACpC,eAAe;IACf,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA,qBAAqB;AACrB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,wBAAwB;IACxB,kBAAkB;IAClB,+BAA+B;AACnC;;AAEA;IACI,2BAA2B;AAC/B;;AAEA,wBAAwB;AACxB;IACI,eAAe;IACf,wBAAwB;AAC5B;;AAEA;IACI,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,qCAAqC;AACzC;;AAEA,oBAAoB;AACpB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;AAClB;;AAEA,gBAAgB;AAChB;IACI,eAAe;IACf,0BAA0B;IAC1B,YAAY;IACZ,kBAAkB;AACtB;;;AAGA,eAAe;AACf,4DAA4D;AAC5D;IACI,UAAU,EAAE,0BAA0B;AAC1C;;AAEA,iEAAiE;AACjE;IACI;QACI,UAAU;IACd;;IAEA;QACI,yCAAyC;IAC7C;AACJ;;AAEA;IACI;QACI,UAAU;QACV,2BAA2B;IAC/B;IACA;QACI,UAAU;QACV,wBAAwB;IAC5B;AACJ;;AAEA,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE,C","sources":["webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Hero Section */\n.home-hero {\n padding: 8rem 0 4rem;\n align-self: center;\n margin-left: auto;\n margin-right: auto;\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.home-hero h2 {\n font-size: 24px;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text); \n margin-left: auto;\n margin-right: auto;\n}\n\n.home-hero a {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-text-background);\n cursor: pointer;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Services Section */\n.services {\n padding: 6rem 0;\n background: white;\n}\n\n.services-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 2rem;\n margin-top: 3rem;\n}\n\n.service-card {\n padding: 2rem;\n background: var(--light);\n border-radius: 8px;\n transition: transform 0.3s ease;\n}\n\n.service-card:hover {\n transform: translateY(-5px);\n}\n\n/* Testimonial Section */\n.testimonial {\n padding: 6rem 0;\n background: var(--light);\n}\n\n.testimonial-card {\n background: white;\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n/* Pricing Section */\n.pricing {\n padding: 6rem 0;\n background: white;\n}\n\n.pricing-card {\n background: var(--light);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\n.price {\n font-size: 2.5rem;\n color: var(--primary);\n font-weight: bold;\n margin: 1rem 0;\n}\n\n/* CTA Section */\n.cta {\n padding: 6rem 0;\n background: var(--primary);\n color: white;\n text-align: center;\n}\n\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }"],"names":[],"sourceRoot":""}
|
||||
{"version":3,"file":"css/core_home.bundle.css","mappings":";AACA,iBAAiB;AACjB;IACI,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,mBAAmB;IACnB,4BAA4B;IAC5B,eAAe;IACf,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA,qBAAqB;AACrB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,wBAAwB;IACxB,kBAAkB;IAClB,+BAA+B;AACnC;;AAEA;IACI,2BAA2B;AAC/B;;AAEA,wBAAwB;AACxB;IACI,eAAe;IACf,wBAAwB;AAC5B;;AAEA;IACI,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,qCAAqC;AACzC;;AAEA,oBAAoB;AACpB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;AAClB;;AAEA,gBAAgB;AAChB;IACI,eAAe;IACf,0BAA0B;IAC1B,YAAY;IACZ,kBAAkB;AACtB;;;AAGA,eAAe;AACf,4DAA4D;AAC5D;IACI,UAAU,EAAE,0BAA0B;AAC1C;;AAEA,iEAAiE;AACjE;IACI;QACI,UAAU;IACd;;IAEA;QACI,yCAAyC;IAC7C;AACJ;;AAEA;IACI;QACI,UAAU;QACV,2BAA2B;IAC/B;IACA;QACI,UAAU;QACV,wBAAwB;IAC5B;AACJ;;AAEA,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE,C","sources":["webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Hero Section */\n.home-hero {\n padding: 8rem 0 4rem;\n align-self: center;\n margin-left: auto;\n margin-right: auto;\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.home-hero h2 {\n font-size: 24px;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text); \n margin-left: auto;\n margin-right: auto;\n}\n\n.home-hero a {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-primary);\n cursor: pointer;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Services Section */\n.services {\n padding: 6rem 0;\n background: white;\n}\n\n.services-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 2rem;\n margin-top: 3rem;\n}\n\n.service-card {\n padding: 2rem;\n background: var(--light);\n border-radius: 8px;\n transition: transform 0.3s ease;\n}\n\n.service-card:hover {\n transform: translateY(-5px);\n}\n\n/* Testimonial Section */\n.testimonial {\n padding: 6rem 0;\n background: var(--light);\n}\n\n.testimonial-card {\n background: white;\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n/* Pricing Section */\n.pricing {\n padding: 6rem 0;\n background: white;\n}\n\n.pricing-card {\n background: var(--light);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\n.price {\n font-size: 2.5rem;\n color: var(--primary);\n font-weight: bold;\n margin: 1rem 0;\n}\n\n/* CTA Section */\n.cta {\n padding: 6rem 0;\n background: var(--primary);\n color: white;\n text-align: center;\n}\n\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }"],"names":[],"sourceRoot":""}
|
||||
23
static/dist/css/main.bundle.css
vendored
23
static/dist/css/main.bundle.css
vendored
@@ -196,8 +196,9 @@ img.header-logo {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.container-input > input, .container-input > textarea {
|
||||
border: 2px solid var(--colour-primary);
|
||||
.container-input > input,
|
||||
.container-input > textarea {
|
||||
border: 2px solid var(--colour-accent);
|
||||
padding: 1vh;
|
||||
}
|
||||
|
||||
@@ -289,6 +290,10 @@ input.dirty, textarea.dirty, select.dirty {
|
||||
|
||||
|
||||
|
||||
select {
|
||||
border: 1px solid var(--colour-accent);
|
||||
}
|
||||
|
||||
img, video {
|
||||
border-radius: 3vh;
|
||||
}
|
||||
@@ -645,6 +650,7 @@ header {
|
||||
#formFilters .container-input input {
|
||||
width: 10vh;
|
||||
max-width: 10vh;
|
||||
height: 20px;
|
||||
}
|
||||
/*
|
||||
#formFilters .container-input input {
|
||||
@@ -662,15 +668,16 @@ header {
|
||||
display: none;
|
||||
}
|
||||
#formFilters .container-input.filter.active_only svg.active_only {
|
||||
height: 2vh;
|
||||
height: 25px;
|
||||
fill: var(--colour-text-background);
|
||||
background-color: var(--colour-primary);
|
||||
border: 1px solid var(--colour-primary);
|
||||
width: 2vh;
|
||||
border-radius: 0.5vh;
|
||||
background-color: var(--colour-accent);
|
||||
/* border: 1px solid var(--colour-accent);
|
||||
border-radius: 0.5vh; */
|
||||
width: 25px;
|
||||
}
|
||||
#formFilters .container-input.filter.active_only svg.active_only.is_checked {
|
||||
fill: var(--colour-accent);
|
||||
background-color: var(--colour-text-background);
|
||||
}
|
||||
#formFilters .container-input.filter.is_not_empty {
|
||||
width: 12vh;
|
||||
@@ -792,7 +799,7 @@ form.filter button.save, form.filter button.button-cancel {
|
||||
align-self: center;
|
||||
position: relative;
|
||||
display: block;
|
||||
width: min(calc(90vh), calc(70vw));
|
||||
width: 100%; /* min(calc(90vh), calc(70vw)); */
|
||||
}
|
||||
|
||||
#tableMain select,
|
||||
|
||||
2
static/dist/css/main.bundle.css.map
vendored
2
static/dist/css/main.bundle.css.map
vendored
File diff suppressed because one or more lines are too long
196
static/dist/js/main.bundle.js
vendored
196
static/dist/js/main.bundle.js
vendored
@@ -1339,7 +1339,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
} else {
|
||||
var dataPage = this.getLocalStoragePage();
|
||||
var filters = dataPage[flagFormFilters];
|
||||
var formFilters = this.getFormFilters();
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var filtersDefault = DOM.convertForm2JSON(formFilters);
|
||||
if (!Validation.areEqualDicts(filters, filtersDefault)) {
|
||||
this.callFilterTableContent();
|
||||
@@ -1362,6 +1362,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFilterActive",
|
||||
value: function hookupFilterActive() {
|
||||
var _this3 = this;
|
||||
var filterSelector = idFormFilters + ' #' + flagActiveOnly;
|
||||
var filterActiveOld = document.querySelector(filterSelector);
|
||||
filterActiveOld.removeAttribute('id');
|
||||
@@ -1382,7 +1383,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
} else {
|
||||
svgElement.classList.add(flagIsChecked);
|
||||
}
|
||||
return TableBasePage.isDirtyFilter(svgElement);
|
||||
return _this3.handleChangeFilter(event, filterActive);
|
||||
});
|
||||
var filter = document.querySelector(filterSelector);
|
||||
var filterValuePrevious = DOM.getElementValueCurrent(filter);
|
||||
@@ -1392,8 +1393,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFilter",
|
||||
value: function hookupFilter(filterFlag) {
|
||||
var _this4 = this;
|
||||
var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (event, filter) {
|
||||
return TableBasePage.isDirtyFilter(filter);
|
||||
return _this4.handleChangeFilter(event, filter);
|
||||
};
|
||||
var filterSelector = idFormFilters + ' #' + filterFlag;
|
||||
this.hookupEventHandler("change", filterSelector, handler);
|
||||
@@ -1402,6 +1404,44 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
filter.setAttribute(attrValueCurrent, filterValuePrevious);
|
||||
filter.setAttribute(attrValuePrevious, filterValuePrevious);
|
||||
}
|
||||
}, {
|
||||
key: "handleChangeFilter",
|
||||
value: function handleChangeFilter(event, filter) {
|
||||
var isDirtyFilter = DOM.updateAndCheckIsElementDirty(filter);
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var areDirtyFilters = isDirtyFilter || DOM.hasDirtyChildrenContainer(formFilters);
|
||||
var tbody = document.querySelector(idTableMain + ' tbody');
|
||||
var rows = tbody.querySelectorAll(':scope > tr');
|
||||
rows.forEach(function (row) {
|
||||
if (areDirtyFilters && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);
|
||||
if (!areDirtyFilters && row.classList.contains(flagIsCollapsed)) {
|
||||
row.classList.remove(flagIsCollapsed);
|
||||
var dirtyInputs = row.querySelectorAll('input.' + flagDirty);
|
||||
dirtyInputs.forEach(function (dirtyInput) {
|
||||
dirtyInput.value = DOM.getElementAttributeValueCurrent(dirtyInput);
|
||||
});
|
||||
}
|
||||
});
|
||||
if (areDirtyFilters) {
|
||||
/*
|
||||
tbody.querySelectorAll('tr').forEach((tr) => {
|
||||
if (!DOM.hasDirtyChildrenContainer(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);
|
||||
} else {
|
||||
var isDirtyLabel = tbody.querySelector(":scope > div");
|
||||
if (isDirtyLabel != null) isDirtyLabel.remove();
|
||||
if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);
|
||||
var initialisedElements = tbody.querySelectorAll('.' + flagInitialised);
|
||||
initialisedElements.forEach(function (initialisedElement) {
|
||||
initialisedElement.classList.remove(flagInitialised);
|
||||
});
|
||||
this.hookupTableMain();
|
||||
}
|
||||
this.updateAndToggleShowButtonsSaveCancel();
|
||||
}
|
||||
}, {
|
||||
key: "hookupFilterIsNotEmpty",
|
||||
value: function hookupFilterIsNotEmpty() {
|
||||
@@ -1410,10 +1450,10 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupButtonApplyFilters",
|
||||
value: function hookupButtonApplyFilters() {
|
||||
var _this3 = this;
|
||||
var _this5 = this;
|
||||
this.hookupEventHandler("click", idButtonApplyFilters, function (event, button) {
|
||||
event.stopPropagation();
|
||||
_this3.callFilterTableContent();
|
||||
_this5.callFilterTableContent();
|
||||
});
|
||||
}
|
||||
}, {
|
||||
@@ -1429,8 +1469,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFilterCommandCategory",
|
||||
value: function hookupFilterCommandCategory() {
|
||||
var _this6 = this;
|
||||
this.hookupFilter(attrIdCommandCategory, function (event, filterCommandCategory) {
|
||||
TableBasePage.isDirtyFilter(filterCommandCategory);
|
||||
_this6.handleChangeFilter();
|
||||
var isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);
|
||||
var idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);
|
||||
console.log("filter commands unsorted");
|
||||
@@ -1467,15 +1508,10 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
.catch(error => console.error('Error:', error));
|
||||
}
|
||||
*/
|
||||
}, {
|
||||
key: "getFormFilters",
|
||||
value: function getFormFilters() {
|
||||
return document.querySelector(idFormFilters);
|
||||
}
|
||||
}, {
|
||||
key: "callFilterTableContent",
|
||||
value: function callFilterTableContent() {
|
||||
var formFilters = this.getFormFilters();
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var filtersJson = DOM.convertForm2JSON(formFilters);
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment("callFilterTableContent");
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment("formFilters");
|
||||
@@ -1512,10 +1548,10 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "getAndLoadFilteredTableContentSinglePageApp",
|
||||
value: function getAndLoadFilteredTableContentSinglePageApp() {
|
||||
var _this4 = this;
|
||||
var _this7 = this;
|
||||
this.callFilterTableContent().then(function (data) {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment('Table data received:', data);
|
||||
_this4.callbackLoadTableContent(data);
|
||||
_this7.callbackLoadTableContent(data);
|
||||
})["catch"](function (error) {
|
||||
return console.error('Error:', error);
|
||||
});
|
||||
@@ -1530,13 +1566,13 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "saveRecordsTableDirty",
|
||||
value: function saveRecordsTableDirty() {
|
||||
var _this5 = this;
|
||||
var _this8 = this;
|
||||
var records = this.getTableRecords(true);
|
||||
if (records.length == 0) {
|
||||
OverlayError.show('No records to save');
|
||||
return;
|
||||
}
|
||||
var formElement = this.getFormFilters();
|
||||
var formElement = TableBasePage.getFormFilters();
|
||||
var comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));
|
||||
/*
|
||||
Utils.consoleLogIfNotProductionEnvironment({ formElement, comment, records });
|
||||
@@ -1550,7 +1586,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
||||
}
|
||||
_this5.callFilterTableContent();
|
||||
_this8.callFilterTableContent();
|
||||
} else {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment("error: ", data[flagMessage]);
|
||||
OverlayError.show(data[flagMessage]);
|
||||
@@ -1562,13 +1598,13 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "getTableRecords",
|
||||
value: function getTableRecords() {
|
||||
var _this6 = this;
|
||||
var _this9 = this;
|
||||
var dirtyOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
||||
var records = [];
|
||||
var record;
|
||||
document.querySelectorAll(idTableMain + ' > tbody > tr').forEach(function (row) {
|
||||
if (dirtyOnly && !DOM.hasDirtyChildrenContainer(row)) return;
|
||||
record = _this6.getJsonRow(row);
|
||||
record = _this9.getJsonRow(row);
|
||||
records.push(record);
|
||||
});
|
||||
return records;
|
||||
@@ -1581,13 +1617,13 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "saveRecordsTableDirtySinglePageApp",
|
||||
value: function saveRecordsTableDirtySinglePageApp() {
|
||||
var _this7 = this;
|
||||
var _this10 = this;
|
||||
var records = this.getTableRecords(true);
|
||||
if (records.length == 0) {
|
||||
OverlayError.show('No records to save');
|
||||
return;
|
||||
}
|
||||
var formElement = this.getFormFilters();
|
||||
var formElement = TableBasePage.getFormFilters();
|
||||
var comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));
|
||||
this.callSaveTableContent(records, formElement, comment).then(function (data) {
|
||||
if (data[flagStatus] == flagSuccess) {
|
||||
@@ -1595,7 +1631,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
||||
}
|
||||
_this7.callbackLoadTableContent(data);
|
||||
_this10.callbackLoadTableContent(data);
|
||||
} else {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment("error: ", data[flagMessage]);
|
||||
OverlayError.show(data[flagMessage]);
|
||||
@@ -1607,13 +1643,13 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupButtonCancel",
|
||||
value: function hookupButtonCancel() {
|
||||
var _this8 = this;
|
||||
var _this11 = this;
|
||||
Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, function (button) {
|
||||
button.addEventListener("click", function (event) {
|
||||
event.stopPropagation();
|
||||
button = event.target;
|
||||
if (button.classList.contains(flagIsCollapsed)) return;
|
||||
_this8.callFilterTableContent();
|
||||
_this11.callFilterTableContent();
|
||||
});
|
||||
button.classList.add(flagIsCollapsed);
|
||||
});
|
||||
@@ -1649,14 +1685,14 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupTableMain",
|
||||
value: function hookupTableMain() {
|
||||
var _this9 = this;
|
||||
var _this12 = this;
|
||||
if (this.constructor === TableBasePage) {
|
||||
throw new Error("Must implement hookupTableMain() method.");
|
||||
}
|
||||
if (true) {
|
||||
// _rowBlank == null) {
|
||||
Events.initialiseEventHandler(idTableMain, flagInitialised, function (table) {
|
||||
_this9.cacheRowBlank();
|
||||
_this12.cacheRowBlank();
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1702,9 +1738,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupChangeHandlerTableCells",
|
||||
value: function hookupChangeHandlerTableCells(inputSelector) {
|
||||
var _this10 = this;
|
||||
var _this13 = this;
|
||||
var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (event, element) {
|
||||
_this10.handleChangeNestedElementCellTable(event, element);
|
||||
_this13.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
Events.initialiseEventHandler(inputSelector, flagInitialised, function (input) {
|
||||
input.addEventListener("change", function (event) {
|
||||
@@ -1836,9 +1872,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupChangeHandlerTableCellsWhenNotCollapsed",
|
||||
value: function hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector) {
|
||||
var _this11 = this;
|
||||
var _this14 = this;
|
||||
var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (event, element) {
|
||||
if (!element.classList.contains(flagIsCollapsed)) _this11.handleChangeNestedElementCellTable(event, element);
|
||||
if (!element.classList.contains(flagIsCollapsed)) _this14.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
this.hookupEventHandler("change", inputSelector, handler);
|
||||
}
|
||||
@@ -1865,10 +1901,10 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFieldsActive",
|
||||
value: function hookupFieldsActive() {
|
||||
var _this12 = this;
|
||||
var _this15 = this;
|
||||
var flagTable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
||||
var handleClickRowNew = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (event, element) {
|
||||
_this12.handleClickAddRowTable(event, element);
|
||||
_this15.handleClickAddRowTable(event, element);
|
||||
};
|
||||
var selectorButton = 'table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;
|
||||
var selectorButtonDelete = selectorButton + '.' + flagDelete;
|
||||
@@ -1883,12 +1919,12 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupButtonsRowDelete",
|
||||
value: function hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete) {
|
||||
var _this13 = this;
|
||||
var _this16 = this;
|
||||
var changeHandler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (event, element) {
|
||||
_this13.handleChangeNestedElementCellTable(event, element);
|
||||
_this16.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
this.hookupEventHandler("click", selectorButtonDelete, function (event, element) {
|
||||
_this13.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, function (changeEvent, changeElement) {
|
||||
_this16.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, function (changeEvent, changeElement) {
|
||||
changeHandler(changeEvent, changeElement);
|
||||
});
|
||||
});
|
||||
@@ -1896,9 +1932,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "handleClickButtonRowDelete",
|
||||
value: function handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete) {
|
||||
var _this14 = this;
|
||||
var _this17 = this;
|
||||
var changeHandler = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (event, element) {
|
||||
_this14.handleChangeNestedElementCellTable(event, element);
|
||||
_this17.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;
|
||||
var valuePrevious = DOM.getElementAttributeValuePrevious(element);
|
||||
@@ -1923,12 +1959,12 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupButtonsRowUndelete",
|
||||
value: function hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete) {
|
||||
var _this15 = this;
|
||||
var _this18 = this;
|
||||
var changeHandler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (event, element) {
|
||||
_this15.handleChangeNestedElementCellTable(event, element);
|
||||
_this18.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
this.hookupEventHandler("click", selectorButtonUndelete, function (event, element) {
|
||||
_this15.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, function (changeEvent, changeElement) {
|
||||
_this18.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, function (changeEvent, changeElement) {
|
||||
changeHandler(changeEvent, changeElement);
|
||||
});
|
||||
});
|
||||
@@ -1936,9 +1972,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "handleClickButtonRowUndelete",
|
||||
value: function handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete) {
|
||||
var _this16 = this;
|
||||
var _this19 = this;
|
||||
var changeHandler = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (event, element) {
|
||||
_this16.handleChangeNestedElementCellTable(event, element);
|
||||
_this19.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;
|
||||
var valuePrevious = DOM.getElementAttributeValuePrevious(element);
|
||||
@@ -1963,17 +1999,17 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupTableCellDdlPreviews",
|
||||
value: function hookupTableCellDdlPreviews(fieldFlag, optionList) {
|
||||
var _this17 = this;
|
||||
var _this20 = this;
|
||||
var cellSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
||||
var ddlHookup = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function (ddlSelector) {
|
||||
_this17.hookupTableCellDdls(ddlSelector);
|
||||
_this20.hookupTableCellDdls(ddlSelector);
|
||||
};
|
||||
var changeHandler = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (event, element) {
|
||||
_this17.handleChangeNestedElementCellTable(event, element);
|
||||
_this20.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
if (cellSelector == null) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;
|
||||
this.hookupEventHandler("click", cellSelector + ' div.' + fieldFlag, function (event, div) {
|
||||
_this17.handleClickTableCellDdlPreview(event, div, fieldFlag, optionList, cellSelector, function (ddlSelector) {
|
||||
_this20.handleClickTableCellDdlPreview(event, div, fieldFlag, optionList, cellSelector, function (ddlSelector) {
|
||||
ddlHookup(ddlSelector, function (event, element) {
|
||||
changeHandler(event, element);
|
||||
});
|
||||
@@ -1984,9 +2020,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupTableCellDdls",
|
||||
value: function hookupTableCellDdls(ddlSelector) {
|
||||
var _this18 = this;
|
||||
var _this21 = this;
|
||||
var changeHandler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (event, element) {
|
||||
_this18.handleChangeNestedElementCellTable(event, element);
|
||||
_this21.handleChangeNestedElementCellTable(event, element);
|
||||
};
|
||||
this.hookupEventHandler("change", ddlSelector, function (event, element) {
|
||||
changeHandler(event, element);
|
||||
@@ -1995,10 +2031,10 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "handleClickTableCellDdlPreview",
|
||||
value: function handleClickTableCellDdlPreview(event, div, fieldFlag, optionObjectList) {
|
||||
var _this19 = this;
|
||||
var _this22 = this;
|
||||
var cellSelector = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
||||
var ddlHookup = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : function (cellSelector) {
|
||||
_this19.hookupTableCellDdls(cellSelector);
|
||||
_this22.hookupTableCellDdls(cellSelector);
|
||||
};
|
||||
if (Validation.isEmpty(cellSelector)) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;
|
||||
var idSelected = DOM.getElementAttributeValueCurrent(div);
|
||||
@@ -2046,19 +2082,19 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFieldsCommandCategory",
|
||||
value: function hookupFieldsCommandCategory() {
|
||||
var _this20 = this;
|
||||
var _this23 = this;
|
||||
this.hookupTableCellDdlPreviews(flagCommandCategory, utils_Utils.getListFromDict(filterCommandCategories).sort(function (a, b) {
|
||||
return a[flagName].localeCompare(b[flagName]);
|
||||
}), null, function (cellSelector) {
|
||||
_this20.hookupCommandCategoryDdls(cellSelector);
|
||||
_this23.hookupCommandCategoryDdls(cellSelector);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: "hookupCommandCategoryDdls",
|
||||
value: function hookupCommandCategoryDdls(ddlSelector) {
|
||||
var _this21 = this;
|
||||
var _this24 = this;
|
||||
this.hookupChangeHandlerTableCells(ddlSelector, function (event, element) {
|
||||
_this21.handleChangeCommandCategoryDdl(event, element);
|
||||
_this24.handleChangeCommandCategoryDdl(event, element);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
@@ -2092,7 +2128,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "hookupFieldsCommand",
|
||||
value: function hookupFieldsCommand() {
|
||||
var _this22 = this;
|
||||
var _this25 = this;
|
||||
this.hookupEventHandler("click", idTableMain + ' td.' + flagCommand + ' .' + flagCommand, function (event, div) {
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment(div);
|
||||
var parentTr = DOM.getRowFromElement(div);
|
||||
@@ -2101,8 +2137,8 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
parentTr: parentTr
|
||||
});
|
||||
var tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);
|
||||
var idCommandCategoryRow = _this22.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);
|
||||
var idCommandCategoryFilter = _this22.getIdCommandCategoryFilter();
|
||||
var idCommandCategoryRow = _this25.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);
|
||||
var idCommandCategoryFilter = _this25.getIdCommandCategoryFilter();
|
||||
var filterCommandList = utils_Utils.getListFromDict(filterCommands);
|
||||
var commandsInCategory = filterCommandList.filter(function (command) {
|
||||
return (command[attrIdCommandCategory] == idCommandCategoryRow || idCommandCategoryRow == 0) && (command[attrIdCommandCategory] == idCommandCategoryFilter || idCommandCategoryFilter == 0);
|
||||
@@ -2118,9 +2154,9 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
commandsInCategory: commandsInCategory
|
||||
});
|
||||
utils_Utils.consoleLogIfNotProductionEnvironment(filterCommandList);
|
||||
_this22.handleClickTableCellDdlPreview(event, div, flagCommand, sortedCommands, null, function (cellSelector) {
|
||||
_this22.hookupTableCellDdls(cellSelector, function (event, element) {
|
||||
_this22.handleChangeNestedElementCellTable(event, element);
|
||||
_this25.handleClickTableCellDdlPreview(event, div, flagCommand, sortedCommands, null, function (cellSelector) {
|
||||
_this25.hookupTableCellDdls(cellSelector, function (event, element) {
|
||||
_this25.handleChangeNestedElementCellTable(event, element);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -2135,7 +2171,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "getIdCommandCategoryFilter",
|
||||
value: function getIdCommandCategoryFilter() {
|
||||
var formFilters = this.getFormFilters();
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);
|
||||
var commandFilter = formFilters.querySelector('#' + attrIdCommand);
|
||||
var idCommandCategory = 0;
|
||||
@@ -2172,7 +2208,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
}, {
|
||||
key: "getIdCommandFilter",
|
||||
value: function getIdCommandFilter() {
|
||||
var formFilters = this.getFormFilters();
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var commandFilter = formFilters.querySelector('#' + attrIdCommand);
|
||||
var valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);
|
||||
var idCommand = Number(valueCurrentCommandFilter);
|
||||
@@ -2215,7 +2251,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
throw new Error("Must implement leave() method.");
|
||||
}
|
||||
base_table_superPropGet(TableBasePage, "leave", this, 3)([]);
|
||||
var formFilters = this.getFormFilters();
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var dataPage = {};
|
||||
dataPage[flagFormFilters] = DOM.convertForm2JSON(formFilters);
|
||||
this.setLocalStoragePage(dataPage);
|
||||
@@ -2240,35 +2276,15 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) {
|
||||
key: "updateAndToggleShowButtonsSaveCancel",
|
||||
value: function updateAndToggleShowButtonsSaveCancel() {
|
||||
var records = this.getTableRecords(true);
|
||||
var existsDirtyRecord = records.length > 0;
|
||||
this.toggleShowButtonsSaveCancel(existsDirtyRecord);
|
||||
var isDirtyMainTable = records.length > 0;
|
||||
var formFilters = TableBasePage.getFormFilters();
|
||||
var areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters);
|
||||
this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters);
|
||||
}
|
||||
}], [{
|
||||
key: "isDirtyFilter",
|
||||
value: function isDirtyFilter(filter) {
|
||||
var isDirty = DOM.updateAndCheckIsElementDirty(filter);
|
||||
var tbody = document.querySelector(idTableMain + ' tbody');
|
||||
var rows = tbody.querySelectorAll(':scope > tr');
|
||||
var cancelButton = document.querySelector(idFormFilters + ' ' + idButtonCancel);
|
||||
var saveButton = document.querySelector(idFormFilters + ' ' + idButtonSave);
|
||||
rows.forEach(function (row) {
|
||||
if (isDirty && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);
|
||||
if (!isDirty && row.classList.contains(flagIsCollapsed)) row.classList.remove(flagIsCollapsed);
|
||||
});
|
||||
if (isDirty) {
|
||||
// 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);
|
||||
var isDirtyLabel = tbody.querySelector(":scope > div");
|
||||
if (isDirtyLabel != null) isDirtyLabel.remove();
|
||||
}
|
||||
return isDirty;
|
||||
key: "getFormFilters",
|
||||
value: function getFormFilters() {
|
||||
return document.querySelector(idFormFilters);
|
||||
}
|
||||
}, {
|
||||
key: "getTableMain",
|
||||
|
||||
2
static/dist/js/main.bundle.js.map
vendored
2
static/dist/js/main.bundle.js.map
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user