From ff4248b09e1bcd48bb6346df123d5de68cf20e8d Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 3 Nov 2023 08:33:35 +0300 Subject: add wip UI/backend stuff to filter feed tree --- js/Feeds.js | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) (limited to 'js/Feeds.js') diff --git a/js/Feeds.js b/js/Feeds.js index a6eecaf81..2cc5586b3 100644 --- a/js/Feeds.js +++ b/js/Feeds.js @@ -23,6 +23,7 @@ const Feeds = { infscroll_in_progress: 0, infscroll_disabled: 0, _infscroll_timeout: false, + _filter_query: false, // TODO: figure out the UI for this _search_query: false, last_search_query: [], _viewfeed_wait_timeout: false, @@ -154,6 +155,10 @@ const Feeds = { toggle: function() { Element.toggle("feeds-holder"); }, + cancelFilter: function() { + this._filter_query = ""; + this.reload(); + }, cancelSearch: function() { this._search_query = ""; this.reloadCurrent(); @@ -178,8 +183,14 @@ const Feeds = { dijit.byId("feedTree").destroyRecursive(); } + let query = {op: 'Pref_Feeds', method: 'getfeedtree', mode: 2}; + + if (this._filter_query) { + query = Object.assign(query, this._filter_query); + } + const store = new dojo.data.ItemFileWriteStore({ - url: "backend.php?op=Pref_Feeds&method=getfeedtree&mode=2" + url: "backend.php?" + dojo.objectToQuery(query) }); // noinspection JSUnresolvedFunction @@ -682,6 +693,48 @@ const Feeds = { } }); + }, + filter: function() { + const dialog = new fox.SingleUseDialog({ + content: ` +
+
+
+ +
+
+ + +
+ `, + title: __("Search feeds"), + execute: function () { + if (this.validate()) { + Feeds._filter_query = this.attr('value'); + + this.hide(); + Feeds.reload(); + } + }, + }); + + const tmph = dojo.connect(dialog, 'onShow', function () { + dojo.disconnect(tmph); + + if (Feeds._filter_query && Feeds._filter_query.search) { + dijit.byId('filter_query') + .attr('value', Feeds._filter_query.search); + } + }); + + dialog.show(); + }, updateRandom: function() { console.log("in update_random_feed"); -- cgit v1.2.3