From 03b85248e6c7fb89f86cb98c839ab86f6162b657 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 12 Feb 2021 18:38:26 +0300 Subject: [PATCH] move some dialogs to xhr loading --- classes/pref/feeds.php | 4 +--- classes/pref/labels.php | 2 +- js/CommonDialogs.js | 27 ++++++++++++++++++--------- js/PrefFeedTree.js | 20 +++++++++++++++----- js/PrefLabelTree.js | 19 ++++++++++++------- 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 086bf04f4..1a5e3d206 100755 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -1,9 +1,7 @@ { + dialog.attr('content', transport.responseText); + }) }); dialog.show(); @@ -313,7 +314,15 @@ const CommonDialogs = { }); } }, - href: "backend.php?" + dojo.objectToQuery(query) + content: __("Loading, please wait...") + }); + + const tmph = dojo.connect(dialog, 'onShow', function () { + dojo.disconnect(tmph); + + xhrPost("backend.php", {op: "pref-feeds", method: "editfeed", id: feed}, (transport) => { + dialog.attr('content', transport.responseText); + }) }); dialog.show(); diff --git a/js/PrefFeedTree.js b/js/PrefFeedTree.js index c8c8118c1..df580c948 100644 --- a/js/PrefFeedTree.js +++ b/js/PrefFeedTree.js @@ -29,7 +29,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio const bare_id = parseInt(id.substr(id.indexOf(':')+1)); if (id.match("CAT:") && bare_id > 0) { - var menu = new dijit.Menu(); + const menu = new dijit.Menu(); menu.row_id = bare_id; menu.item = args.item; @@ -49,7 +49,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio menu.bindDomNode(tnode.domNode); tnode._menu = menu; } else if (id.match("FEED:")) { - var menu = new dijit.Menu(); + const menu = new dijit.Menu(); menu.row_id = bare_id; menu.item = args.item; @@ -76,6 +76,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio this.inherited(arguments); this.tree.model.store.save(); }, + // eslint-disable-next-line no-unused-vars getRowClass: function (item, opened) { let rc = (!item.error || item.error == '') ? "dijitTreeRow" : "dijitTreeRow Error"; @@ -85,11 +86,12 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio return rc; }, getIconClass: function (item, opened) { + // eslint-disable-next-line no-nested-ternary return (!item || this.model.store.getValue(item, 'type') == 'category') ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "feed-icon"; }, reload: function() { const searchElem = $("feed_search"); - let search = (searchElem) ? searchElem.value : ""; + const search = (searchElem) ? searchElem.value : ""; xhrPost("backend.php", { op: "pref-feeds", search: search }, (transport) => { dijit.byId('feedsTab').attr('content', transport.responseText); @@ -285,7 +287,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio /* normalize unchecked checkboxes because [] is not serialized */ Object.keys(query).each((key) => { - let val = query[key]; + const val = query[key]; if (typeof val == "object" && val.length == 0) query[key] = ["off"]; @@ -395,7 +397,15 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio alert(__("No feeds selected.")); } }, - href: 'backend.php?' + dojo.objectToQuery({op: 'pref-feeds', method: 'inactiveFeeds'}) + content: __("Loading, please wait...") + }); + + const tmph = dojo.connect(dialog, 'onShow', function () { + dojo.disconnect(tmph); + + xhrPost("backend.php", {op: "pref-feeds", method: "inactivefeeds"}, (transport) => { + dialog.attr('content', transport.responseText); + }) }); dialog.show(); diff --git a/js/PrefLabelTree.js b/js/PrefLabelTree.js index 65dc7ea3b..eab1a643b 100644 --- a/js/PrefLabelTree.js +++ b/js/PrefLabelTree.js @@ -13,10 +13,10 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f _createTreeNode: function(args) { const tnode = this.inherited(arguments); - const fg_color = this.model.store.getValue(args.item, 'fg_color'); - const bg_color = this.model.store.getValue(args.item, 'bg_color'); + //const fg_color = this.model.store.getValue(args.item, 'fg_color'); + //const bg_color = this.model.store.getValue(args.item, 'bg_color'); const type = this.model.store.getValue(args.item, 'type'); - const bare_id = this.model.store.getValue(args.item, 'bare_id'); + //const bare_id = this.model.store.getValue(args.item, 'bare_id'); if (type == 'label') { const label = dojo.doc.createElement('i'); @@ -59,9 +59,6 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f }); }, editLabel: function(id) { - const query = "backend.php?op=pref-labels&method=edit&id=" + - encodeURIComponent(id); - const dialog = new fox.SingleUseDialog({ id: "labelEditDlg", title: __("Label Editor"), @@ -114,7 +111,15 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree", "dijit/f }); } }, - href: query + content: __("Loading, please wait...") + }); + + const tmph = dojo.connect(dialog, 'onShow', function () { + dojo.disconnect(tmph); + + xhrPost("backend.php", {op: "pref-labels", method: "edit", id: id}, (transport) => { + dialog.attr('content', transport.responseText); + }) }); dialog.show();