diff --git a/src/core/js/ext_applicable.js b/src/core/js/ext_applicable.js index 5f815dbe486b61ac2ceb1524f8fd3b2b99120ec1..24ae61e93b92586a25af4ca34a9c9954f11852df 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 9227647afd9707793a8a683351c1227861af4798..0573be0f2448ab1decc4156b48f584874d64c0c1 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);