From 30749239ee36653ef808c1ff0823771da02142f7 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Mon, 10 Aug 2020 17:19:27 +0200 Subject: [PATCH] WIP: refactor ext_bottom_line --- src/core/js/ext_applicable.js | 16 ++++++++++++++++ src/core/js/ext_bottom_line.js | 17 +++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/core/js/ext_applicable.js b/src/core/js/ext_applicable.js index 5f815dbe..24ae61e9 100644 --- a/src/core/js/ext_applicable.js +++ b/src/core/js/ext_applicable.js @@ -93,6 +93,18 @@ var ext_applicable = function($, logger, is_in_view_port, load_config, getEntity } } + var make_creators = function (creators) { + const result = []; + for (let c of creators) { + result.push({ + id: c.id, + is_applicable: typeof c.is_applicable === "function" ? c.is_applicable : eval(c.is_applicable), + create: typeof c.create === "function" ? c.create : eval(c.create) + }); + } + return result; + } + var root_handler_trigger = function(root_handler) { var entities = $(".caosdb-entity-panel,.caosdb-entity-preview"); @@ -136,6 +148,9 @@ var ext_applicable = function($, logger, is_in_view_port, load_config, getEntity return true; }, true); + + // trigger for the first time + trigger(); }; return { @@ -143,6 +158,7 @@ var ext_applicable = function($, logger, is_in_view_port, load_config, getEntity root_creator: root_creator, root_handler: root_handler, previewReadyEvent: previewReadyEvent, + make_creators: make_creators, _css_class_preview_container: _css_class_preview_container, _css_class_preview_container_button: _css_class_preview_container_button, _css_class_preview_container_resolvable: _css_class_preview_container_resolvable, diff --git a/src/core/js/ext_bottom_line.js b/src/core/js/ext_bottom_line.js index 9227647a..0573be0f 100644 --- a/src/core/js/ext_bottom_line.js +++ b/src/core/js/ext_bottom_line.js @@ -258,28 +258,23 @@ var ext_bottom_line = function($, logger, is_in_view_port, load_config, getEntit * * @param {BottomLineConfig} config */ - var configure = async function(config, default_config) { + var configure = async function(config) { logger.debug("configure", config); if (config.version != "0.1") { throw new Error("Wrong version in config."); } - fallback_preview = config.fallback || fallback_preview; - - // append/load creators + // append/load custom creators _creators.splice(0, _creators.length); - for (let c of config.creators) { - _creators.push({ - id: c.id, - is_applicable: typeof c.is_applicable === "function" ? c.is_applicable : eval(c.is_applicable), - create: typeof c.create === "function" ? c.create : eval(c.create) - }); + for (let c of ext_applicable.make_creators(config.creators)) { + _creators.push(c); } // append default creators for (let c of _default_creators) { _creators.push(c); } + fallback_preview = config.fallback || fallback_preview; }; @@ -302,8 +297,6 @@ var ext_bottom_line = function($, logger, is_in_view_port, load_config, getEntit ext_applicable.init_watcher(_config.delay || 500, root_preview_handler_trigger); - // trigger the whole thing for the first time - root_preview_handler_trigger(); } catch (err) { logger.error(err); -- GitLab