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 }}