From 8a645892a60bc3181f598d2192f01cc21f35b719 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 14 Dec 2021 21:43:02 +0300 Subject: PluginHost: add run_until() and HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 --- js/PluginHost.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'js') diff --git a/js/PluginHost.js b/js/PluginHost.js index deb7c0645..513429e4a 100644 --- a/js/PluginHost.js +++ b/js/PluginHost.js @@ -21,6 +21,7 @@ const PluginHost = { HOOK_HEADLINE_MUTATIONS_SYNCED: 16, HOOK_HEADLINES_RENDERED: 17, HOOK_HEADLINES_SCROLL_HANDLER: 18, + HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2: 19, hooks: [], register: function (name, callback) { if (typeof(this.hooks[name]) == 'undefined') @@ -36,6 +37,17 @@ const PluginHost = { this.hooks[name][i](args); } }, + run_until: function (name, check, ...args) { + //console.warn('PluginHost.run_until', name, check, args); + + if (typeof(this.hooks[name]) != 'undefined') + for (let i = 0; i < this.hooks[name].length; i++) { + if (this.hooks[name][i](args) == check) + return true; + } + + return false; + }, unregister: function (name, callback) { for (let i = 0; i < this.hooks[name].length; i++) if (this.hooks[name][i] == callback) -- cgit v1.2.3-54-g00ecf From 720b31879634f21ea7db85f49d6f07ec7d7344bc Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 14 Dec 2021 21:53:45 +0300 Subject: * fox.form.Select: add several properties allowing it to better imitate other controls like DropDownButton, etc. * rework several main toolbar items to use fox.form.Select instead of other controls * replace HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM with HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2 because of markup change (option instead of menuitem) * PluginHost: add some explicit typecasts to make intellephense shut up --- classes/feeds.php | 2 +- classes/plugin.php | 13 +++++++ classes/pluginhost.php | 28 +++++++++------ index.php | 21 ++++------- js/Feeds.js | 4 +++ js/Headlines.js | 94 ++++++++++++++++++++++++++++++++++++++++---------- js/form/Select.js | 64 ++++++++++++++++++++++++++++++++-- 7 files changed, 179 insertions(+), 47 deletions(-) (limited to 'js') diff --git a/classes/feeds.php b/classes/feeds.php index 62fd6a5b3..503108e41 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -133,7 +133,7 @@ class Feeds extends Handler_Protected { $reply['vfeed_group_enabled'] = $vfeed_group_enabled; $plugin_menu_items = ""; - PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM, + PluginHost::getInstance()->chain_hooks_callback(PluginHost::HOOK_HEADLINE_TOOLBAR_SELECT_MENU_ITEM2, function ($result) use (&$plugin_menu_items) { $plugin_menu_items .= $result; }, diff --git a/classes/plugin.php b/classes/plugin.php index be8376925..3bced3b04 100644 --- a/classes/plugin.php +++ b/classes/plugin.php @@ -647,6 +647,7 @@ abstract class Plugin { } /** Allows adding custom elements to headlines Select... dropdown + * @deprecated removed, see Plugin::hook_headline_toolbar_select_menu_item2() * @param int $feed_id * @param int $is_cat * @return string @@ -658,6 +659,18 @@ abstract class Plugin { return ""; } + /** Allows adding custom elements to headlines Select... select dropdown (