1. Module bundling added to reduce server calls as each file was taking ~440 ms to load on public server.\n2. JavaScript lib files refactored with OOP for use with module bundling.

This commit is contained in:
2024-09-10 19:43:02 +01:00
parent aac01e687f
commit 0c88f161c3
7678 changed files with 778712 additions and 1254 deletions

View File

@@ -1,3 +1,6 @@
import Events from "../lib/events.js";
import LocalStorage from "../lib/local_storage.js";
import API from "../api.js";
import DOM from "../dom.js";
import { router } from "../router.js";
@@ -44,7 +47,7 @@ export class BasePage {
// overlayHamburger.css('height', (countOptions * 27) + 'px');
/* end of can be removed */
initialiseEventHandler(idButtonHamburger, flagInitialised, function(buttonToggleOverlayNavigation) {
Events.initialiseEventHandler(idButtonHamburger, flagInitialised, function(buttonToggleOverlayNavigation) {
buttonToggleOverlayNavigation.addEventListener("click", function(event) {
event.stopPropagation();
let overlayHamburger = document.querySelector(idOverlayHamburger);
@@ -71,7 +74,7 @@ export class BasePage {
this.hookupButtonNavAdminHome();
}
hookupButtonNavHome() {
initialiseEventHandler('.' + flagNavHome, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavHome, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageHome);
@@ -79,7 +82,7 @@ export class BasePage {
});
}
hookupButtonNavServices() {
initialiseEventHandler('.' + flagNavServices, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavServices, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
console.log('going to services page');
@@ -88,7 +91,7 @@ export class BasePage {
});
}
hookupButtonNavContact() {
initialiseEventHandler('.' + flagNavContact, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavContact, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageContact);
@@ -96,7 +99,7 @@ export class BasePage {
});
}
hookupButtonNavUserAccount() {
initialiseEventHandler('.' + flagNavUserAccount, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavUserAccount, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageUserAccount);
@@ -104,7 +107,7 @@ export class BasePage {
});
}
hookupButtonNavUserLogout() {
initialiseEventHandler('.' + flagNavUserLogout, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavUserLogout, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageUserLogout);
@@ -112,7 +115,7 @@ export class BasePage {
});
}
hookupButtonNavUserLogin() {
initialiseEventHandler('.' + flagNavUserLogin, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavUserLogin, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
// router.navigateToHash(hashPageUserLogin);
@@ -127,14 +130,14 @@ export class BasePage {
if (response.Success) {
window.app.router.navigateToUrl(response[keyCallback], null, false);
} else {
alertError("Error", response.Message);
DOM.alertError("Error", response.Message);
}
});
});
});
}
hookupButtonNavStoreHome() {
initialiseEventHandler('.' + flagNavStoreHome, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreHome, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreHome);
@@ -142,7 +145,7 @@ export class BasePage {
});
}
hookupButtonNavStoreProductCategories() {
initialiseEventHandler('.' + flagNavStoreProductCategories, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreProductCategories, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreProductCategories);
@@ -150,7 +153,7 @@ export class BasePage {
});
}
hookupButtonNavStoreProducts() {
initialiseEventHandler('.' + flagNavStoreProducts, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreProducts, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreProducts);
@@ -158,7 +161,7 @@ export class BasePage {
});
}
hookupButtonNavStoreProductPermutations() {
initialiseEventHandler('.' + flagNavStoreProductPermutations, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreProductPermutations, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreProductPermutations);
@@ -166,7 +169,7 @@ export class BasePage {
});
}
hookupButtonNavStoreProductPrices() {
initialiseEventHandler('.' + flagNavStoreProductPrices, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreProductPrices, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreProductPrices);
@@ -174,7 +177,7 @@ export class BasePage {
});
}
hookupButtonNavStoreProductVariations() {
initialiseEventHandler('.' + flagNavStoreProductVariations, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreProductVariations, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreProductVariations);
@@ -182,7 +185,7 @@ export class BasePage {
});
}
hookupButtonNavStoreStockItems() {
initialiseEventHandler('.' + flagNavStoreStockItems, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavStoreStockItems, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageStoreStockItems);
@@ -190,7 +193,7 @@ export class BasePage {
});
}
hookupButtonNavAdminHome() {
initialiseEventHandler('.' + flagNavAdminHome, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavAdminHome, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageAdminHome);
@@ -200,7 +203,7 @@ export class BasePage {
hookupImagesLogo() {
let selectorImagesLogo = "img." + flagImageLogo;
initialiseEventHandler(selectorImagesLogo, flagInitialised, function(imageLogo) {
Events.initialiseEventHandler(selectorImagesLogo, flagInitialised, function(imageLogo) {
imageLogo.addEventListener("click", function(event) {
event.stopPropagation();
router.navigateToHash(hashPageHome);
@@ -209,7 +212,7 @@ export class BasePage {
}
hookupOverlayFromId(idOverlay) {
initialiseEventHandler(idOverlay, flagInitialised, function(overlay) {
Events.initialiseEventHandler(idOverlay, flagInitialised, function(overlay) {
overlay.querySelector('button.' + flagClose).addEventListener("click", function(event) {
event.stopPropagation();
overlay.css('display', 'none');
@@ -219,7 +222,7 @@ export class BasePage {
hookupButtonSave() {
initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, function(button) {
Events.initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, function(button) {
button.addEventListener("click", function(event) {
event.stopPropagation();
showOverlayConfirm();
@@ -229,7 +232,7 @@ export class BasePage {
}
hookupVideos() {
initialiseEventHandler('video', flagInitialised, function(video) {
Events.initialiseEventHandler('video', flagInitialised, function(video) {
video.addEventListener("mouseover", videoPlay(video));
video.addEventListener("mouseout", videoPause(video));
});
@@ -237,16 +240,15 @@ export class BasePage {
leave() {
console.log('Leaving ' + this.title + ' page');
_pageCurrent = null;
if (this.constructor === BasePage) {
throw new Error("Must implement leave() method.");
}
}
setLocalStoragePage(dataPage) {
setLocalStorage(this.constructor.hash, dataPage);
LocalStorage.setLocalStorage(this.constructor.hash, dataPage);
}
getLocalStoragePage() {
return getLocalStorage(this.constructor.hash);
return LocalStorage.getLocalStorage(this.constructor.hash);
}
toggleShowButtonsSaveCancel(show, buttonSave = null, buttonCancel = null) {

View File

@@ -1,5 +1,7 @@
import Events from "../lib/events.js";
import LocalStorage from "../lib/local_storage.js";
import Validation from "../lib/validation";
import { BasePage } from "./base.js";
import API from "../api.js";
import DOM from "../dom.js";
@@ -53,7 +55,7 @@ export class TableBasePage extends BasePage {
let filters = dataPage[flagFormFilters];
let formFilters = this.getFormFilters();
let filtersDefault = DOM.convertForm2JSON(formFilters);
if (!areEqualDicts(filters, filtersDefault)) {
if (!Validation.areEqualDicts(filters, filtersDefault)) {
}
}
@@ -65,7 +67,7 @@ export class TableBasePage extends BasePage {
this.hookupButtonApplyFilters();
}
hookupFilterActive() {
initialiseEventHandler(idFormFilters + '.' + flagActive, flagInitialised, (filter) => {
Events.initialiseEventHandler(idFormFilters + '.' + flagActive, flagInitialised, (filter) => {
filter.addEventListener("change", (event) => {
TableBasePage.isDirtyFilter(filter);
});
@@ -81,7 +83,7 @@ export class TableBasePage extends BasePage {
return isDirty;
}
hookupButtonApplyFilters() {
initialiseEventHandler(idButtonApplyFilters, flagInitialised, (button) => {
Events.initialiseEventHandler(idButtonApplyFilters, flagInitialised, (button) => {
button.addEventListener("click", (event) => {
event.stopPropagation();
this.getAndLoadFilteredTableContent();
@@ -108,7 +110,7 @@ export class TableBasePage extends BasePage {
let bodyTable = table.querySelector('tbody');
bodyTable.querySelectorAll('tr').forEach(function(row) { row.remove(); });
let rowsJson = response.data[flagRows];
if (!isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {
if (!Validation.isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {
rowsJson = rowsJson.sort((a, b) => a.display_order - b.display_order);
}
rowsJson.forEach(this.loadRowTable.bind(this));
@@ -161,7 +163,7 @@ export class TableBasePage extends BasePage {
throw new Error("Subclass of TableBasePage must implement method getJsonRow().");
}
hookupButtonCancel() {
initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, function(button) {
Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, function(button) {
button.addEventListener("click", function(event) {
event.stopPropagation();
getAndLoadFilteredTableContent();
@@ -170,7 +172,7 @@ export class TableBasePage extends BasePage {
});
}
hookupButtonAddRowTable() {
initialiseEventHandler(idFormFilters + ' button.' + flagAdd, flagInitialised, (button) => {
Events.initialiseEventHandler(idFormFilters + ' button.' + flagAdd, flagInitialised, (button) => {
button.addEventListener("click", (event) => {
event.stopPropagation();
let tbody = document.querySelector(idTableMain + ' tbody');
@@ -209,7 +211,7 @@ export class TableBasePage extends BasePage {
}
hookupSlidersDisplayOrderTable() {
let selectorDisplayOrder = idTableMain + ' tbody tr td.' + flagDisplayOrder + ' input.' + flagSlider + '.' + flagDisplayOrder;
initialiseEventHandler(selectorDisplayOrder, flagInitialised, (sliderDisplayOrder) => {
Events.initialiseEventHandler(selectorDisplayOrder, flagInitialised, (sliderDisplayOrder) => {
/*
sliderDisplayOrder.setAttribute('draggable', true);
sliderDisplayOrder.addEventListener('dragstart', this.handleDragSliderStart.bind(this), false);
@@ -285,7 +287,7 @@ export class TableBasePage extends BasePage {
*/
hookupTextareasCodeTable() {
let selectorCode = idTableMain + ' tbody tr td.' + flagCode + ' textarea';
initialiseEventHandler(selectorCode, flagInitialised, (textareaCode) => {
Events.initialiseEventHandler(selectorCode, flagInitialised, (textareaCode) => {
textareaCode.addEventListener("change", (event) => {
console.log("textarea change event");
this.handleChangeElementCellTable(textareaCode);
@@ -359,7 +361,7 @@ export class TableBasePage extends BasePage {
}
hookupTextareasNameTable() {
let selectorName = idTableMain + ' tbody tr td.' + flagName + ' textarea';
initialiseEventHandler(selectorName, flagInitialised, (textareaName) => {
Events.initialiseEventHandler(selectorName, flagInitialised, (textareaName) => {
textareaName.addEventListener("change", (event) => {
console.log("textarea change event");
this.handleChangeElementCellTable(textareaName);
@@ -368,7 +370,7 @@ export class TableBasePage extends BasePage {
}
hookupTextareasDescriptionTable() {
let selectorDescription = idTableMain + ' tbody tr td.' + flagDescription + ' textarea';
initialiseEventHandler(selectorDescription, flagInitialised, (textareaDescription) => {
Events.initialiseEventHandler(selectorDescription, flagInitialised, (textareaDescription) => {
textareaDescription.addEventListener("change", (event) => {
console.log("textarea change event");
this.handleChangeElementCellTable(textareaDescription);
@@ -377,7 +379,7 @@ export class TableBasePage extends BasePage {
}
hookupInputsActiveTable() {
let selectorActive = idTableMain + ' tbody tr td.' + flagActive + ' input[type="checkbox"]';
initialiseEventHandler(selectorActive, flagInitialised, (inputActive) => {
Events.initialiseEventHandler(selectorActive, flagInitialised, (inputActive) => {
inputActive.addEventListener("change", (event) => {
console.log("input change event");
this.handleChangeElementCellTable(inputActive);
@@ -385,7 +387,7 @@ export class TableBasePage extends BasePage {
});
}
hookupTdsAccessLevel() {
initialiseEventHandler(idTableMain + ' tbody td.' + flagAccessLevel, flagInitialised, (tdAccessLevel) => {
Events.initialiseEventHandler(idTableMain + ' tbody td.' + flagAccessLevel, flagInitialised, (tdAccessLevel) => {
tdAccessLevel.addEventListener("click", (event) => { this.handleClickTdAccessLevel(event); } );
});
}
@@ -414,7 +416,7 @@ export class TableBasePage extends BasePage {
this.hookupDdlsAccessLevelTable();
}
hookupDdlsAccessLevelTable() {
initialiseEventHandler(idTableMain + ' tbody select.' + flagAccessLevel, flagInitialised, (ddlAccessLevel) => {
Events.initialiseEventHandler(idTableMain + ' tbody select.' + flagAccessLevel, flagInitialised, (ddlAccessLevel) => {
ddlAccessLevel.addEventListener("change", (event) => {
event.stopPropagation();
this.handleChangeDdlAccessLevelTable(ddlAccessLevel);

View File

@@ -1,4 +1,5 @@
import Events from "../../lib/events.js";
import { BasePage } from "../base.js";
// import { router } from "../../router.js";
@@ -26,14 +27,14 @@ export class PageAdminHome extends BasePage {
this.hookupButtonNavAdminStoreStripePrices();
}
hookupButtonNavAdminStoreStripeProducts() {
initialiseEventHandler('.' + flagNavAdminStoreStripeProducts, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavAdminStoreStripeProducts, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
router.navigateToHash(hashPageAdminStoreStripeProducts);
});
});
}
hookupButtonNavAdminStoreStripePrices() {
initialiseEventHandler('.' + flagNavAdminStoreStripePrices, flagInitialised, function(navigator) {
Events.initialiseEventHandler('.' + flagNavAdminStoreStripePrices, flagInitialised, function(navigator) {
navigator.addEventListener("click", function(event) {
router.navigateToHash(hashPageAdminStoreStripePrices);
});

View File

@@ -10,7 +10,7 @@ export class PageHome extends BasePage {
initialize() {
this.sharedInitialize();
this.hookupButtonsContactUs();
this.hookupButtonNavContact();
}
leave() {

View File

@@ -1,11 +1,14 @@
import Events from "../../lib/events.js";
import LocalStorage from "../../lib/local_storage.js";
import Validation from "../../lib/validation";
// import { BasePage } from "../base.js";
import { DOM } from "../../dom.js";
import DOM from "../../dom.js";
import { isEmpty } from "../../lib/utils.js";
export class StoreMixinPage { // extends BasePage {
constructor() {
super();
// super();
}
initialize(thisPage) {
@@ -24,7 +27,7 @@ export class StoreMixinPage { // extends BasePage {
/*
let elForm = document.querySelectorAll(idFormCurrency);
let elSelector = document.querySelectorAll(elForm.querySelector('select')[0]);
initialiseEventHandler(elSelector, flagInitialised, function(){
Events.initialiseEventHandler(elSelector, flagInitialised, function(){
elForm = document.querySelectorAll(idFormCurrency);
elSelector.addEventListener("change", function(event) {
ajaxData = {};
@@ -52,7 +55,7 @@ export class StoreMixinPage { // extends BasePage {
option.classList.add(flagCollapsed);
}
handleSelectCollapse(dropdownCurrency);
initialiseEventHandler(dropdownCurrency, flagInitialised, function() {
Events.initialiseEventHandler(dropdownCurrency, flagInitialised, function() {
dropdownCurrency = document.querySelectorAll(dropdownCurrency);
dropdownCurrency.addEventListener("focus", function() {
handleSelectExpand(dropdownCurrency);
@@ -63,10 +66,10 @@ export class StoreMixinPage { // extends BasePage {
dropdownCurrency.addEventListener("change", function() {
let selectedCurrency = dropdownCurrency.val();
console.log("selected currency: ", selectedCurrency);
let basket = getLocalStorage(keyBasket);
let basket = LocalStorage.getLocalStorage(keyBasket);
basket[keyIdCurrency] = selectedCurrency;
// setLocalStorage(keyIdCurrency, selectedCurrency);
setLocalStorage(keyBasket, basket);
// LocalStorage.setLocalStorage(keyIdCurrency, selectedCurrency);
LocalStorage.setLocalStorage(keyBasket, basket);
let ajaxData = {};
ajaxData[keyBasket] = basket;
ajaxJSONData('update currency', mapHashToController(hashPageCurrent), ajaxData, loadPageBody, false);
@@ -77,7 +80,7 @@ export class StoreMixinPage { // extends BasePage {
/*
let elForm = document.querySelectorAll(idFormDeliveryRegion);
let elSelector = document.querySelectorAll(elForm.querySelector('select')[0]);
initialiseEventHandler(elSelector, flagInitialised, function(){
Events.initialiseEventHandler(elSelector, flagInitialised, function(){
elForm = document.querySelectorAll(idFormDeliveryRegion);
elSelector.addEventListener("change", function(event) {
ajaxData = {};
@@ -103,7 +106,7 @@ export class StoreMixinPage { // extends BasePage {
handleSelectCollapse(dropdownRegion);
initialiseEventHandler(dropdownRegion, flagInitialised, function() {
Events.initialiseEventHandler(dropdownRegion, flagInitialised, function() {
dropdownRegion = document.querySelectorAll(dropdownRegion);
dropdownRegion.addEventListener("focus", function() {
console.log("dropdown region focused");
@@ -117,10 +120,10 @@ export class StoreMixinPage { // extends BasePage {
handleSelectCollapse(dropdownRegion);
let selectedRegion = dropdownRegion.val();
console.log("selected region: ", selectedRegion);
let basket = getLocalStorage(keyBasket);
let basket = LocalStorage.getLocalStorage(keyBasket);
basket[keyIdRegionDelivery] = selectedRegion;
// setLocalStorage(keyIdRegionDelivery, selectedRegion);
setLocalStorage(keyBasket, basket);
// LocalStorage.setLocalStorage(keyIdRegionDelivery, selectedRegion);
LocalStorage.setLocalStorage(keyBasket, basket);
let ajaxData = {};
ajaxData[keyIdRegionDelivery] = selectedRegion;
ajaxJSONData('update region', mapHashToController(hashStoreSetRegion), ajaxData, null, false);
@@ -130,7 +133,7 @@ export class StoreMixinPage { // extends BasePage {
hookupFilterIsIncludedVAT() {
let elForm = document.querySelectorAll(idFormIsIncludedVAT);
let elSelector = document.querySelectorAll(elForm.querySelector('input[type="checkbox"]')[0]);
initialiseEventHandler(elSelector, flagInitialised, function(){
Events.initialiseEventHandler(elSelector, flagInitialised, function(){
elForm = document.querySelectorAll(idFormIsIncludedVAT);
elSelector.addEventListener("change", function(event) {
ajaxData = {};
@@ -146,15 +149,15 @@ export class StoreMixinPage { // extends BasePage {
// setupPageLocalStorage(hashPageCurrent);
// let lsPage = getPageLocalStorage(hashPageCurrent);
// let d = {}
// d[keyBasket] = getLocalStorage(keyBasket); // (keyBasket in lsPage) ? lsPage[keyBasket] : {'items': []};
// d[keyBasket] = LocalStorage.getLocalStorage(keyBasket); // (keyBasket in lsPage) ? lsPage[keyBasket] : {'items': []};
// console.log('d:'); console.log(d);
let basket;
let createNewBasket = true;
if (true) { // !isUserLoggedIn) {
try {
basket = getLocalStorage(keyBasket);
basket = LocalStorage.getLocalStorage(keyBasket);
console.log('basket found: '); console.log(basket);
createNewBasket = isEmpty(basket);
createNewBasket = Validation.isEmpty(basket);
}
catch {
@@ -171,13 +174,13 @@ export class StoreMixinPage { // extends BasePage {
basket[keyIsIncludedVAT] = true;
basket[keyIdCurrency] = 1;
basket[keyIdRegionDelivery] = 1;
setLocalStorage(keyBasket, basket);
LocalStorage.setLocalStorage(keyBasket, basket);
console.log("new local basket created");
}
let ajaxData = {}
ajaxData[keyBasket] = basket;
// console.log("hookupLocalStorageStore\nhashStoreBasketLoad: " + hashStoreBasketLoad + "\n");
// ajaxData[keyIsIncludedVAT] = getLocalStorage(keyIsIncludedVAT);
// ajaxData[keyIsIncludedVAT] = LocalStorage.getLocalStorage(keyIsIncludedVAT);
console.log('ajax:' + ajaxData);
ajaxJSONData(keyBasket, mapHashToController(hashStoreBasketLoad), ajaxData, loadBasket, false);
}
@@ -201,7 +204,7 @@ export class StoreMixinPage { // extends BasePage {
// let lsPage = getPageLocalStorage(hashPageCurrent);
// let basket = lsPage[keyBasket]['items'];
// let products = containerBasket.filter('');
let basket = getLocalStorage(keyBasket);
let basket = LocalStorage.getLocalStorage(keyBasket);
if (basket['items'].length == 0) {
btnCheckout.style.display = "none";
@@ -217,11 +220,11 @@ export class StoreMixinPage { // extends BasePage {
const btnCheckout = document.querySelectorAll(idButtonCheckout);
// let lsPage = getPageLocalStorage(hashPageCurrent);
initialiseEventHandler(btnCheckout, flagInitialised, function() {
Events.initialiseEventHandler(btnCheckout, flagInitialised, function() {
btnCheckout.addEventListener("click", function() {
/*
//setupPageLocalStorageNext(hashPageStoreBasket);
let basket = getLocalStorage(keyBasket);
let basket = LocalStorage.getLocalStorage(keyBasket);
// goToPage(hashPageStoreBasket);
let ajaxData = {};
ajaxData[keyBasket] = basket;
@@ -238,7 +241,7 @@ export class StoreMixinPage { // extends BasePage {
// Increment
document.querySelectorAll('div.btn-increment[' + attrFormType + '=' + typeFormBasketAdd + ']').each(function() {
let elButton = this;
initialiseEventHandler(elButton, flagInitialised, function(){
Events.initialiseEventHandler(elButton, flagInitialised, function(){
elButton.addEventListener("click", function(event) {
event.preventDefault();
event.stopPropagation();
@@ -254,7 +257,7 @@ export class StoreMixinPage { // extends BasePage {
// Decrement
document.querySelectorAll('div.btn-decrement[' + attrFormType + '=' + typeFormBasketAdd + ']').each(function() {
let elButton = this;
initialiseEventHandler(elButton, flagInitialised, function(){
Events.initialiseEventHandler(elButton, flagInitialised, function(){
elButton.addEventListener("click", function(event) {
event.preventDefault();
event.stopPropagation();
@@ -272,7 +275,7 @@ export class StoreMixinPage { // extends BasePage {
// Increment
document.querySelectorAll('div.btn-increment[' + attrFormType + '=' + typeFormBasketEdit + ']').each(function() {
let elButton = this;
initialiseEventHandler(elButton, flagInitialised, function(){
Events.initialiseEventHandler(elButton, flagInitialised, function(){
elButton.addEventListener("click", function(event) {
event.stopPropagation();
// basketItem = document.querySelectorAll('.card.subcard[' + attrIdProduct +'=' + elButton.attr(attrIdProduct) + ']');
@@ -289,7 +292,7 @@ export class StoreMixinPage { // extends BasePage {
// Decrement
document.querySelectorAll('div.btn-decrement[' + attrFormType + '=' + typeFormBasketEdit + ']').each(function() {
let elButton = this;
initialiseEventHandler(elButton, flagInitialised, function(){
Events.initialiseEventHandler(elButton, flagInitialised, function(){
elButton.addEventListener("click", function(event) {
event.stopPropagation();
let elInput= document.querySelectorAll(getFormProductSelector(typeFormBasketEdit, elButton)).querySelector('input[type="number"]');
@@ -307,7 +310,7 @@ export class StoreMixinPage { // extends BasePage {
document.querySelectorAll('form[' + attrFormType + '=' + typeFormBasketAdd + ']').each(function() {
let elForm = this;
let elInput = elForm.querySelector('input[type="number"]');
initialiseEventHandler(elInput, flagInitialised, function(){
Events.initialiseEventHandler(elInput, flagInitialised, function(){
elInput.addEventListener("change", function(event) {
event.preventDefault();
event.stopPropagation();
@@ -328,13 +331,13 @@ export class StoreMixinPage { // extends BasePage {
document.querySelectorAll('form[' + attrFormType + '=' + typeFormBasketEdit + ']').each(function() {
let elForm = this;
let elInput = elForm.querySelector('input[type="number"]');
initialiseEventHandler(elInput, flagInitialised, function(){
Events.initialiseEventHandler(elInput, flagInitialised, function(){
elInput.addEventListener("change", function(event) {
event.preventDefault();
event.stopPropagation();
// let lsPage = getPageLocalStorageCurrent();
d = {};
d[keyBasket]= getLocalStorage(keyBasket); // lsPage[keyBasket]; // JSON.parse(lsPage[keyBasket]);
d[keyBasket]= LocalStorage.getLocalStorage(keyBasket); // lsPage[keyBasket]; // JSON.parse(lsPage[keyBasket]);
d[keyIdProduct] = elForm.attr(attrIdProduct); // lsPage[keyIdProduct];
d[keyIdPermutation] = elForm.attr(attrIdPermutation);
// d[keyQuantity] = lsPage[keyQuantity];
@@ -356,11 +359,11 @@ export class StoreMixinPage { // extends BasePage {
document.querySelectorAll('form[' + attrFormType + '=' + typeFormBasketEdit + ']').each(function() {
let elForm = this;
let elDelete = elForm.querySelector('a.' + flagBasketItemDelete);
initialiseEventHandler(elDelete, flagInitialised, function(){
Events.initialiseEventHandler(elDelete, flagInitialised, function(){
elDelete.addEventListener("click", function(event) {
event.stopPropagation();
ajaxData = {};
ajaxData[keyBasket]= getLocalStorage(keyBasket);
ajaxData[keyBasket]= LocalStorage.getLocalStorage(keyBasket);
ajaxData[keyIdProduct] = elForm.attr(attrIdProduct);
ajaxData[keyIdPermutation] = elForm.attr(attrIdPermutation);
console.log('sending data to basket delete controller: '); console.log(ajaxData);
@@ -387,7 +390,7 @@ export class StoreMixinPage { // extends BasePage {
var form = this;
initialiseEventHandler(form, flagInitialised, function() {
Events.initialiseEventHandler(form, flagInitialised, function() {
// form = document.querySelectorAll(form);
form.submit(function(event) {
event.preventDefault();
@@ -398,7 +401,7 @@ export class StoreMixinPage { // extends BasePage {
ajaxData = {};
ajaxData[keyIdProduct] = form.attr(attrIdProduct);
ajaxData[keyIdPermutation] = form.attr(attrIdPermutation);
basket = getLocalStorage(keyBasket);
basket = LocalStorage.getLocalStorage(keyBasket);
ajaxData[keyBasket] = basket; // lsShared[keyBasket];
console.log("basket before add: ", basket);
ajaxData[keyForm] = convertForm2JSON(form); // formData; // form.serialize();
@@ -420,7 +423,7 @@ export class StoreMixinPage { // extends BasePage {
let basket = response.data[keyBasket]; // JSON.parse(response.data[keyBasket]);
// setPageLocalStorage(keyShared, lsShared);
setLocalStorage(keyBasket, basket);
LocalStorage.setLocalStorage(keyBasket, basket);
items = basket['items'];
// console.log('old basket:'); console.log(basketContainer.innerHTML);
// console.log('setting basket:'); console.log(response.data['html_block']);
@@ -446,7 +449,7 @@ export class StoreMixinPage { // extends BasePage {
getFormProductSelector(typeForm, elementInForm) {
idPermutation = elementInForm.attr(attrIdPermutation);
console.log('idPermutation: ', idPermutation);
hasPermutation = !isEmpty(idPermutation);
hasPermutation = !Validation.isEmpty(idPermutation);
console.log('has permutation: ', hasPermutation);
selectorIdPermutation = hasPermutation ? '[' + attrIdPermutation + '=' + idPermutation + ']' : '';
return 'form[' + attrFormType + '="' + typeForm + '"][' + attrIdProduct + '=' + elementInForm.attr(attrIdProduct) + ']' + selectorIdPermutation;
@@ -462,9 +465,9 @@ export class StoreMixinPage { // extends BasePage {
}
addMetadataBasketToJSON(jsonData) {
jsonData[keyIdCurrency] = getLocalStorage(keyIdCurrency);
jsonData[keyIdRegionDelivery] = getLocalStorage(keyIdRegionDelivery);
jsonData[keyIsIncludedVAT] = getLocalStorage(keyIsIncludedVAT);
jsonData[keyIdCurrency] = LocalStorage.getLocalStorage(keyIdCurrency);
jsonData[keyIdRegionDelivery] = LocalStorage.getLocalStorage(keyIdRegionDelivery);
jsonData[keyIsIncludedVAT] = LocalStorage.getLocalStorage(keyIsIncludedVAT);
return jsonData;
}
@@ -472,7 +475,7 @@ export class StoreMixinPage { // extends BasePage {
let d; // , lsShared;
let selectorCardProduct = '.card.subcard';
initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {
Events.initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {
console.log("initialising product card: ", cardProduct);
cardProduct.addEventListener("click", function(event) {
// d = { keyIdProduct: product.attr(attrIdProduct) }

View File

@@ -1,3 +1,6 @@
import Events from "../../lib/events.js";
import LocalStorage from "../../lib/local_storage.js";
import { BasePage } from "../base.js";
export class PageStoreBasket extends BasePage {
@@ -37,7 +40,7 @@ export class PageStoreBasket extends BasePage {
elForm = elOverlay.querySelector('form');
hookupOverlay(elOverlay);
initialiseEventHandler(elForm, flagInitialised, function() {
Events.initialiseEventHandler(elForm, flagInitialised, function() {
elForm.submit(function(event) {
elForm = document.querySelectorAll(elForm);
event.preventDefault();
@@ -57,7 +60,7 @@ export class PageStoreBasket extends BasePage {
elForm = elOverlay.querySelector('form');
hookupOverlay(elOverlay);
initialiseEventHandler(elForm, flagInitialised, function() {
Events.initialiseEventHandler(elForm, flagInitialised, function() {
elForm.submit(function(event) {
event.preventDefault();
console.log("billing submit method");
@@ -81,7 +84,7 @@ export class PageStoreBasket extends BasePage {
console.log('ajax:'); console.log(response.data);
let infoType = response.data[keyInfoType];
let infoAddress = response.data[infoType];
setLocalStorage(infoType, infoAddress);
LocalStorage.setLocalStorage(infoType, infoAddress);
// update webpage elements in background
if (infoType == keyInfoBilling) {
@@ -137,14 +140,14 @@ export class PageStoreBasket extends BasePage {
hookupButtonCheckoutSession() {
let btnCheckout = document.querySelectorAll(idButtonCheckout);
btnCheckout.classList.remove(flagInitialised);
initialiseEventHandler(idButtonCheckout, flagInitialised, function() {
Events.initialiseEventHandler(idButtonCheckout, flagInitialised, function() {
btnCheckout.removeEventListener("click");
btnCheckout.addEventListener("click", function(event) {
//setupPageLocalStorageNext(hashPageStoreBasket);
let basket = getLocalStorage(keyBasket);
let basket = LocalStorage.getLocalStorage(keyBasket);
// goToPage(hashPageStoreBasket);
let ajaxData = {};
ajaxData[keyBasket] = basket;
@@ -169,7 +172,7 @@ export class PageStoreBasket extends BasePage {
// let elButton = document.querySelectorAll(idButtonFormBillingCopy);
initialiseEventHandler(idButtonFormBillingCopy, flagInitialised, function() {
Events.initialiseEventHandler(idButtonFormBillingCopy, flagInitialised, function() {
document.querySelectorAll(idButtonFormBillingCopy).addEventListener("click", function (event) {
let keys = [keyNameFull, keyPhoneNumber, keyPostcode, keyAddress1, keyAddress2, keyCity, keyCounty];

View File

@@ -1,4 +1,5 @@
import Events from "../../lib/events.js";
import { TableBasePage } from "../base_table.js";
import API from "../../api.js";
import DOM from "../../dom.js";
@@ -22,7 +23,7 @@ export class PageStoreProductCategories extends TableBasePage {
this.hookupFilterActive();
}
hookupFilterIsNotEmpty() {
initialiseEventHandler('.' + flagIsNotEmpty, flagInitialised, (filter) => {
Events.initialiseEventHandler('.' + flagIsNotEmpty, flagInitialised, (filter) => {
filter.addEventListener("change", (event) => {
PageStoreProductCategories.isDirtyFilter(filter);
});

View File

@@ -1,5 +1,8 @@
import Events from "../../lib/events.js";
import { BasePage } from "../base.js";
import Validation from "../../lib/validation";
export class PageStoreProductPermutations extends BasePage {
static hash = hashPageStoreProductPermutations;
@@ -17,7 +20,7 @@ export class PageStoreProductPermutations extends BasePage {
}
hookupFilters() {
initialiseEventHandler(idFilterCategory, flagInitialised, function(filterCategory) {
Events.initialiseEventHandler(idFilterCategory, flagInitialised, function(filterCategory) {
console.log("hooking up filter category");
/*
listCategories.forEach(function(category) {
@@ -37,7 +40,7 @@ export class PageStoreProductPermutations extends BasePage {
console.log("hooked up filter category");
});
initialiseEventHandler(idFilterProduct, flagInitialised, function(filterProduct) {
Events.initialiseEventHandler(idFilterProduct, flagInitialised, function(filterProduct) {
listProducts.forEach(function(product) {
if (product[attrIdCategory] != getElementCurrentValue(document.querySelectorAll(idFilterCategory))) return;
/*
@@ -52,19 +55,19 @@ export class PageStoreProductPermutations extends BasePage {
});
});
initialiseEventHandler(idFilterIsOutOfStock, flagInitialised, function(filterIsOutOfStock) {
Events.initialiseEventHandler(idFilterIsOutOfStock, flagInitialised, function(filterIsOutOfStock) {
filterIsOutOfStock.addEventListener("change", function(event) {
loadPermutations();
});
});
initialiseEventHandler(idFilterQuantityMin, flagInitialised, function(filterQuantityMin) {
Events.initialiseEventHandler(idFilterQuantityMin, flagInitialised, function(filterQuantityMin) {
filterQuantityMin.addEventListener("change", function(event) {
loadPermutations();
});
});
initialiseEventHandler(idFilterQuantityMax, flagInitialised, function(filterQuantityMax) {
Events.initialiseEventHandler(idFilterQuantityMax, flagInitialised, function(filterQuantityMax) {
filterQuantityMax.addEventListener("change", function(event) {
loadPermutations();
});
@@ -127,7 +130,7 @@ export class PageStoreProductPermutations extends BasePage {
}
hookupButtonsSaveCancel() {
initialiseEventHandler(idButtonSave, flagInitialised, function(button) {
Events.initialiseEventHandler(idButtonSave, flagInitialised, function(button) {
button.addEventListener("click", function(event) {
event.stopPropagation();
showOverlayConfirm();
@@ -136,7 +139,7 @@ export class PageStoreProductPermutations extends BasePage {
// let parentSave = btnSave.closest('div.' + flagColumn);
// parentSave.classList.add(flagCollapsed);
initialiseEventHandler(idButtonCancel, flagInitialised, function(button) {
Events.initialiseEventHandler(idButtonCancel, flagInitialised, function(button) {
button.addEventListener("click", function(event) {
event.stopPropagation();
loadPermutations();
@@ -145,7 +148,7 @@ export class PageStoreProductPermutations extends BasePage {
// let parentCancel = btnCancel.closest('div.' + flagColumn);
// parentCancel.classList.add(flagCollapsed);
initialiseEventHandler(idButtonCancel, flagInitialised, function(button) {
Events.initialiseEventHandler(idButtonCancel, flagInitialised, function(button) {
button.addEventListener("click", function(event) {
event.stopPropagation();
let table = document.querySelectorAll(idTableMain);
@@ -213,7 +216,7 @@ export class PageStoreProductPermutations extends BasePage {
}
hookupTableMain() {
initialiseEventHandler(idTableMain, flagInitialised, function(table) {
Events.initialiseEventHandler(idTableMain, flagInitialised, function(table) {
table.querySelectorAll('td.' + flagCategory + ' select').addEventListener("change", function(event) {
handleChangeInputPermutations(this);
@@ -277,7 +280,7 @@ export class PageStoreProductPermutations extends BasePage {
if (wasDirty != isDirty) {
isRowDirty(row);
let permutationsDirty = getPermutations(true);
if (isEmpty(permutationsDirty)) {
if (Validation.isEmpty(permutationsDirty)) {
buttonCancel.classList.add(flagCollapsed);
buttonSave.classList.add(flagCollapsed);
} else {
@@ -341,7 +344,7 @@ export class PageStoreProductPermutations extends BasePage {
element = document.querySelectorAll(element);
let variations = element.attr(attrValueCurrent);
let objVariations = [];
if (!isEmpty(variations)) {
if (!Validation.isEmpty(variations)) {
variations = variations.split(',');
variations.forEach((variation) => {
let parts = variation.split(':');
@@ -385,7 +388,7 @@ export class PageStoreProductPermutations extends BasePage {
let tbody = document.createElement("<tbody>");
console.log('variations:', variations);
/*
if (isEmpty(variations)) {
if (Validation.isEmpty(variations)) {
return;
}
*/
@@ -459,7 +462,7 @@ export class PageStoreProductPermutations extends BasePage {
let row = getRowFromElement(element);
let variations = row.querySelector('td.' + flagVariations + ' textarea');
let value = variations.value;
value = (isEmpty(value)) ? '' : value + '\n';
value = (Validation.isEmpty(value)) ? '' : value + '\n';
value += 'Type: Variation\n';
variations.value = value;
handleChangeInputPermutations(variations);

View File

@@ -1,6 +1,7 @@
import Events from "../../lib/events.js";
import Validation from "../../lib/validation";
import { BasePage } from "../base.js";
export class PageStoreStockItems extends BasePage {
@@ -20,7 +21,7 @@ export class PageStoreStockItems extends BasePage {
hookupFilters() {
let filterCategory = document.querySelectorAll(idFilterCategory);
initialiseEventHandler(filterCategory, flagInitialised, function() {
Events.initialiseEventHandler(filterCategory, flagInitialised, function() {
console.log("hooking up filter category");
filterCategory = document.querySelectorAll(filterCategory);
/*
@@ -42,7 +43,7 @@ export class PageStoreStockItems extends BasePage {
});
let filterProduct = document.querySelectorAll(idFilterProduct);
initialiseEventHandler(filterProduct, flagInitialised, function() {
Events.initialiseEventHandler(filterProduct, flagInitialised, function() {
listProducts.forEach(function(product) {
if (product[attrIdCategory] != getElementCurrentValue(document.querySelectorAll(idFilterCategory))) return;
/*
@@ -58,21 +59,21 @@ export class PageStoreStockItems extends BasePage {
});
let filterIsOutOfStock = document.querySelectorAll(idFilterIsOutOfStock);
initialiseEventHandler(filterIsOutOfStock, flagInitialised, function() {
Events.initialiseEventHandler(filterIsOutOfStock, flagInitialised, function() {
filterIsOutOfStock.addEventListener("change", function(event) {
loadPermutations();
});
});
let filterQuantityMin = document.querySelectorAll(idFilterQuantityMin);
initialiseEventHandler(filterQuantityMin, flagInitialised, function() {
Events.initialiseEventHandler(filterQuantityMin, flagInitialised, function() {
filterQuantityMin.addEventListener("change", function(event) {
loadPermutations();
});
});
let filterQuantityMax = document.querySelectorAll(idFilterQuantityMax);
initialiseEventHandler(filterQuantityMax, flagInitialised, function() {
Events.initialiseEventHandler(filterQuantityMax, flagInitialised, function() {
filterQuantityMax.addEventListener("change", function(event) {
loadPermutations();
});
@@ -251,7 +252,7 @@ export class PageStoreStockItems extends BasePage {
quantityMin = row.querySelector('td.' + flagQuantityMin + ' input');
quantityMax = row.querySelector('td.' + flagQuantityMax + ' input');
initialiseEventHandler(ddlCategory, flagInitialised, function() {
Events.initialiseEventHandler(ddlCategory, flagInitialised, function() {
// ddlCategory = document.querySelectorAll(ddlCategory);
ddlCategory.addEventListener('change', function() {
/*
@@ -273,21 +274,21 @@ export class PageStoreStockItems extends BasePage {
});
});
initialiseEventHandler(ddlProduct, flagInitialised, function() {
Events.initialiseEventHandler(ddlProduct, flagInitialised, function() {
// ddlProduct = document.querySelectorAll(ddlProduct);
ddlProduct.addEventListener('change', function() {
handleChangeInputPermutations(this);
});
});
initialiseEventHandler(variations, flagInitialised, function() {
Events.initialiseEventHandler(variations, flagInitialised, function() {
// variations = document.querySelectorAll(variations);
variations.addEventListener('change', function() {
handleChangeInputPermutations(this);
});
});
initialiseEventHandler(quantityStock, flagInitialised, function() {
Events.initialiseEventHandler(quantityStock, flagInitialised, function() {
// quantityStock = document.querySelectorAll(quantityStock);
quantityStock.addEventListener('change', function() {
// console.log(this.value);
@@ -296,14 +297,14 @@ export class PageStoreStockItems extends BasePage {
});
});
initialiseEventHandler(quantityMin, flagInitialised, function() {
Events.initialiseEventHandler(quantityMin, flagInitialised, function() {
// quantityMin = document.querySelectorAll(quantityMin);
quantityMin.addEventListener('change', function() {
handleChangeInputPermutations(this);
});
});
initialiseEventHandler(quantityMax, flagInitialised, function() {
Events.initialiseEventHandler(quantityMax, flagInitialised, function() {
// quantityMax = document.querySelectorAll(quantityMax);
quantityMax.addEventListener('change', function() {
handleChangeInputPermutations(this);
@@ -330,7 +331,7 @@ export class PageStoreStockItems extends BasePage {
if (wasDirty != isDirty) {
isRowDirty(row);
let permutationsDirty = getPermutations(true);
if (isEmpty(permutationsDirty)) {
if (Validation.isEmpty(permutationsDirty)) {
buttonCancel.classList.add(flagCollapsed);
buttonSave.classList.add(flagCollapsed);
} else {
@@ -395,7 +396,7 @@ export class PageStoreProductCategories extends TableBasePage {
this.hookupFilterActive();
}
hookupFilterIsNotEmpty() {
initialiseEventHandler('.' + flagIsNotEmpty, flagInitialised, (filter) => {
Events.initialiseEventHandler('.' + flagIsNotEmpty, flagInitialised, (filter) => {
filter.addEventListener("change", (event) => {
PageStoreProductCategories.isDirtyFilter(filter);
});

View File

@@ -10,7 +10,7 @@ export class PageUser extends BasePage {
initialize() {
this.sharedInitialize();
hookupButtonsContactUs();
this.hookupButtonNavContact();
}
leave() {