assets/themes/j1/adapter/js/dropdowns.js in j1-template-2024.1.5 vs assets/themes/j1/adapter/js/dropdowns.js in j1-template-2024.2.0

- old
+ new

@@ -25,21 +25,21 @@ {% comment %} Liquid procedures -------------------------------------------------------------------------------- {% endcomment %} {% comment %} Set global settings -------------------------------------------------------------------------------- {% endcomment %} -{% assign environment = site.environment %} -{% assign asset_path = "/assets/themes/j1" %} +{% assign environment = site.environment %} +{% assign asset_path = "/assets/themes/j1" %} {% comment %} Process YML config data ================================================================================ {% endcomment %} {% comment %} Set config files -------------------------------------------------------------------------------- {% endcomment %} -{% assign template_config = site.data.j1_config %} -{% assign blocks = site.data.blocks %} -{% assign modules = site.data.modules %} +{% assign template_config = site.data.j1_config %} +{% assign blocks = site.data.blocks %} +{% assign modules = site.data.modules %} {% comment %} Set config data -------------------------------------------------------------------------------- {% endcomment %} {% assign dropdowns_defaults = modules.defaults.dropdowns.defaults %} {% assign dropdowns_settings = modules.dropdowns.settings %} @@ -76,48 +76,56 @@ // ESLint shimming // ----------------------------------------------------------------------------- /* eslint indent: "off" */ // ----------------------------------------------------------------------------- 'use strict'; -j1.adapter.dropdowns = (function (j1, window) { +j1.adapter.dropdowns = ((j1, window) => { {% comment %} Set global variables ------------------------------------------------------------------------------ {% endcomment %} - var environment = '{{environment}}'; - var instances = []; - var state = 'not_started'; + var environment = '{{environment}}'; + var instances = []; + var state = 'not_started'; var dropdownsDefaults; var dropdownsSettings; var dropdownsOptions; + var _this; var logger; var logText; + // date|time + var startTime; + var endTime; + var startTimeModule; + var endTimeModule; + var timeSeconds; + // --------------------------------------------------------------------------- - // Helper functions + // helper functions // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- - // Main object + // main // --------------------------------------------------------------------------- return { // ------------------------------------------------------------------------- - // Initializer + // adapter initializer // ------------------------------------------------------------------------- - init: function (options) { + init: (options) => { // ----------------------------------------------------------------------- - // Default module settings + // default module settings // ----------------------------------------------------------------------- var settings = $.extend({ module_name: 'j1.adapter.dropdowns', generated: '{{site.time}}' }, options); // ----------------------------------------------------------------------- - // Global variable settings + // global variable settings // ----------------------------------------------------------------------- _this = j1.adapter.dropdowns; logger = log4javascript.getLogger('j1.adapter.dropdowns'); // Load module DEFAULTS|CONFIG @@ -128,26 +136,27 @@ // initialize state flag _this.setState('started'); logger.debug('\n' + 'state: ' + _this.getState()); logger.info('\n' + 'module is being initialized'); - var dependencies_met_j1_finished = setInterval(function() { - var pageState = $('#no_flicker').css("display"); - var pageVisible = (pageState == 'block') ? true : false; - var atticFinished = (j1.adapter.attic.getState() == 'finished') ? true: false; + // ----------------------------------------------------------------------- + // module initializer + // ----------------------------------------------------------------------- + var dependencies_met_page_ready = setInterval (() => { + var pageState = $('#content').css("display"); + var pageVisible = (pageState === 'block') ? true : false; + var j1CoreFinished = (j1.getState() === 'finished') ? true : false; - if (j1.getState() == 'finished' && pageVisible) { -// if (j1.getState() == 'finished' && pageVisible && atticFinished) { - + if (j1CoreFinished && pageVisible) { var elms = document.querySelectorAll('.dropdowns'); - // ------------------------------------------------------------------- - // dropdowns initializer - // ------------------------------------------------------------------- - var log_text = '\n' + 'dropdowns is being initialized'; - logger.info(log_text); + startTimeModule = Date.now(); + _this.setState('started'); + logger.debug('\n' + 'state: ' + _this.getState()); + logger.info('\n' + 'module is being initialized'); + {% for item in dropdowns_options.dropdowns %} {% if item.dropdown.enabled %} {% assign dropdown_id = item.dropdown.id %} {% comment %} load default options ---------------------------------------------------------------------- {% endcomment %} @@ -175,11 +184,11 @@ {% if item.dropdown.options.outDuration %} {% assign outDuration = item.dropdown.options.outDuration %} {% endif %} {% if item.dropdown.options.cbOnOpen %} {% assign cbOnOpen = item.dropdown.options.cbOnOpen %} {% endif %} {% if item.dropdown.options.cbOnClose %} {% assign cbOnClose = item.dropdown.options.cbOnClose %} {% endif %} {% if item.dropdown.options.cbOnItemClick %} {% assign cbOnItemClick = item.dropdown.options.cbOnItemClick %} {% endif %} - elms.forEach(function (elm) { + elms.forEach((elm) => { var id = elm.dataset.target; if (id === '{{dropdown_id}}') { // processing: {{dropdown_id}} // @@ -203,51 +212,53 @@ {% assign item.dropdown.options = nil %} {% endif %} {% endfor %} _this.setState('finished'); logger.debug('\n' + 'state: ' + _this.getState()); + logger.info('\n' + 'module initialized successfully'); - clearInterval(dependencies_met_j1_finished); - } // END dependencies_met_j1_finished - }, 10); + endTimeModule = Date.now(); + logger.info('\n' + 'module initializing time: ' + (endTimeModule-startTimeModule) + 'ms'); + clearInterval(dependencies_met_page_ready); + } // END pageVisible + }, 10); // END dependencies_met_page_ready }, // END init // ------------------------------------------------------------------------- // cbOnClick) - // Called by the dropdowns CORE module when and dropdown element + // called by the dropdowns CORE module when and dropdown element // is clicked // ------------------------------------------------------------------------- - cbOnclick: function (event) { - var logger = log4javascript.getLogger('j1.adapter.dropdowns.cbOnClick'); + cbOnclick: (event) => { + var logger = log4javascript.getLogger('j1.adapter.dropdowns.cbOnClick'); var itemEl = $(event.target).closest('li')[0]; - // logText = '\n' + 'entered cbOnClick on id: ' + id; // logger.info(logText); return true; - }, + }, // END cbOnclick // ------------------------------------------------------------------------- // cbOnOpen() - // Called by the dropdowns CORE module when dropdown get opened + // called by the dropdowns CORE module when dropdown get opened // ------------------------------------------------------------------------- - cbOnOpen: function (elm) { + cbOnOpen: (elm) => { var logger = log4javascript.getLogger('j1.adapter.dropdowns.cbOnOpen'); var id = elm.id; logText = '\n' + 'entered cbOnOpen on id: ' + id; logger.info(logText); return true; - }, + }, // END cbOnOpen // ------------------------------------------------------------------------- // cbOnClose() - // Called by the dropdowns CORE module when dropdown get closed + // called by the dropdowns CORE module when dropdown get closed // ------------------------------------------------------------------------- - cbOnClose: function (elm) { + cbOnClose: (elm) => { var logger = log4javascript.getLogger('j1.adapter.dropdowns.cbOnClose'); var id = elm.id; var listItems = '#' + elm.id + " li"; var menuItems = document.querySelectorAll(listItems); var activeItem; @@ -266,55 +277,57 @@ logText = '\n' + 'item selected: ' + activeItem; logger.info(logText); logText = '\n' + 'value selected: ' + activeValue; logger.info(logText); return true; - }, + }, // END cbOnClose // ------------------------------------------------------------------------- - // messageHandler - // Manage messages send from other J1 modules + // messageHandler() + // manage messages send from other J1 modules // ------------------------------------------------------------------------- - messageHandler: function (sender, message) { + messageHandler: (sender, message) => { var json_message = JSON.stringify(message, undefined, 2); logText = '\n' + 'received message from ' + sender + ': ' + json_message; logger.debug(logText); // ----------------------------------------------------------------------- - // Process commands|actions + // process commands|actions // ----------------------------------------------------------------------- if (message.type === 'command' && message.action === 'module_initialized') { + // - // Place handling of command|action here + // place handling of command|action here // + logger.info('\n' + message.text); } // - // Place handling of other command|action here + // place handling of other command|action here // return true; }, // END messageHandler // ------------------------------------------------------------------------- // setState() - // Sets the current (processing) state of the module + // sets the current (processing) state of the module // ------------------------------------------------------------------------- - setState: function (stat) { + setState: (stat) => { _this.state = stat; }, // END setState // ------------------------------------------------------------------------- // getState() // Returns the current (processing) state of the module // ------------------------------------------------------------------------- - getState: function () { + getState: () => { return _this.state; } // END getState - }; // END return + }; // END main (return) })(j1, window); {% endcapture %} {% if production %} {{ cache | minifyJS }}