summaryrefslogtreecommitdiff
path: root/js/prefs.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2018-12-02 21:52:50 +0300
committerAndrew Dolgov <[email protected]>2018-12-02 21:52:50 +0300
commitac8361e6f6e81e25d3c17e14b973af53a9b93885 (patch)
tree96f11d780211e203ff54b75b512682d684c43846 /js/prefs.js
parenteeb49d375ce7e6addc382bab1a1545e897bb1771 (diff)
add AppBase as a shared ancestor for main and prefs app objects
remove event.observe stuff from startup, unneeded
Diffstat (limited to 'js/prefs.js')
-rwxr-xr-xjs/prefs.js249
1 files changed, 129 insertions, 120 deletions
diff --git a/js/prefs.js b/js/prefs.js
index a1866f478..75f285b38 100755
--- a/js/prefs.js
+++ b/js/prefs.js
@@ -1,64 +1,67 @@
'use strict'
/* global dijit, __ */
+let App;
let Utils;
let CommonDialogs;
let Filters;
let Users;
let Prefs;
-const App = {
- init: function() {
- window.onerror = function (message, filename, lineno, colno, error) {
- report_error(message, filename, lineno, colno, error);
- };
-
- require(["dojo/_base/kernel",
- "dojo/ready",
- "dojo/parser",
- "dojo/_base/loader",
- "dojo/_base/html",
- "dijit/ColorPalette",
- "dijit/Dialog",
- "dijit/form/Button",
- "dijit/form/CheckBox",
- "dijit/form/DropDownButton",
- "dijit/form/FilteringSelect",
- "dijit/form/MultiSelect",
- "dijit/form/Form",
- "dijit/form/RadioButton",
- "dijit/form/ComboButton",
- "dijit/form/Select",
- "dijit/form/SimpleTextarea",
- "dijit/form/TextBox",
- "dijit/form/ValidationTextBox",
- "dijit/InlineEditBox",
- "dijit/layout/AccordionContainer",
- "dijit/layout/AccordionPane",
- "dijit/layout/BorderContainer",
- "dijit/layout/ContentPane",
- "dijit/layout/TabContainer",
- "dijit/Menu",
- "dijit/ProgressBar",
- "dijit/Toolbar",
- "dijit/Tree",
- "dijit/tree/dndSource",
- "dojo/data/ItemFileWriteStore",
- "lib/CheckBoxStoreModel",
- "lib/CheckBoxTree",
- "fox/Utils",
- "fox/CommonDialogs",
- "fox/CommonFilters",
- "fox/PrefUsers",
- "fox/PrefHelpers",
- "fox/PrefFeedStore",
- "fox/PrefFilterStore",
- "fox/PrefFeedTree",
- "fox/PrefFilterTree",
- "fox/PrefLabelTree"], function (dojo, ready, parser) {
-
- ready(function () {
- try {
+require(["dojo/_base/kernel",
+ "dojo/_base/declare",
+ "dojo/ready",
+ "dojo/parser",
+ "fox/AppBase",
+ "dojo/_base/loader",
+ "dojo/_base/html",
+ "dijit/ColorPalette",
+ "dijit/Dialog",
+ "dijit/form/Button",
+ "dijit/form/CheckBox",
+ "dijit/form/DropDownButton",
+ "dijit/form/FilteringSelect",
+ "dijit/form/MultiSelect",
+ "dijit/form/Form",
+ "dijit/form/RadioButton",
+ "dijit/form/ComboButton",
+ "dijit/form/Select",
+ "dijit/form/SimpleTextarea",
+ "dijit/form/TextBox",
+ "dijit/form/ValidationTextBox",
+ "dijit/InlineEditBox",
+ "dijit/layout/AccordionContainer",
+ "dijit/layout/AccordionPane",
+ "dijit/layout/BorderContainer",
+ "dijit/layout/ContentPane",
+ "dijit/layout/TabContainer",
+ "dijit/Menu",
+ "dijit/ProgressBar",
+ "dijit/Toolbar",
+ "dijit/Tree",
+ "dijit/tree/dndSource",
+ "dojo/data/ItemFileWriteStore",
+ "lib/CheckBoxStoreModel",
+ "lib/CheckBoxTree",
+ "fox/Utils",
+ "fox/CommonDialogs",
+ "fox/CommonFilters",
+ "fox/PrefUsers",
+ "fox/PrefHelpers",
+ "fox/PrefFeedStore",
+ "fox/PrefFilterStore",
+ "fox/PrefFeedTree",
+ "fox/PrefFilterTree",
+ "fox/PrefLabelTree"], function (dojo, declare, ready, parser, AppBase) {
+
+ ready(function () {
+ try {
+ const _App = declare("fox.App", AppBase, {
+ constructor: function() {
+ window.onerror = function (message, filename, lineno, colno, error) {
+ report_error(message, filename, lineno, colno, error);
+ };
+
Utils = fox.Utils();
CommonDialogs = fox.CommonDialogs();
Filters = fox.CommonFilters();
@@ -73,81 +76,87 @@ const App = {
const params = {op: "rpc", method: "sanityCheck", clientTzOffset: clientTzOffset};
xhrPost("backend.php", params, (transport) => {
- Utils.backendSanityCallback(transport);
+ try {
+ Utils.backendSanityCallback(transport);
+ } catch (e) {
+ exception_error(e);
+ }
});
+ },
+ initSecondStage: function() {
+ document.onkeydown = () => { App.hotkeyHandler(event) };
+ Utils.setLoadingProgress(50);
+ Notify.close();
- } catch (e) {
- exception_error(e);
- }
- });
- });
- },
- initSecondStage: function() {
- document.onkeydown = () => { App.hotkeyHandler(event) };
- Utils.setLoadingProgress(50);
- Notify.close();
-
- let tab = Utils.urlParam('tab');
-
- if (tab) {
- tab = dijit.byId(tab + "Tab");
- if (tab) {
- dijit.byId("pref-tabs").selectChild(tab);
-
- switch (Utils.urlParam('method')) {
- case "editfeed":
- window.setTimeout(function () {
- CommonDialogs.editFeed(Utils.urlParam('methodparam'))
- }, 100);
- break;
- default:
- console.warn("initSecondStage, unknown method:", Utils.urlParam("method"));
- }
- }
- } else {
- let tab = localStorage.getItem("ttrss:prefs-tab");
+ let tab = Utils.urlParam('tab');
+
+ if (tab) {
+ tab = dijit.byId(tab + "Tab");
+ if (tab) {
+ dijit.byId("pref-tabs").selectChild(tab);
+
+ switch (Utils.urlParam('method')) {
+ case "editfeed":
+ window.setTimeout(function () {
+ CommonDialogs.editFeed(Utils.urlParam('methodparam'))
+ }, 100);
+ break;
+ default:
+ console.warn("initSecondStage, unknown method:", Utils.urlParam("method"));
+ }
+ }
+ } else {
+ let tab = localStorage.getItem("ttrss:prefs-tab");
+
+ if (tab) {
+ tab = dijit.byId(tab);
+ if (tab) {
+ dijit.byId("pref-tabs").selectChild(tab);
+ }
+ }
+ }
+
+ dojo.connect(dijit.byId("pref-tabs"), "selectChild", function (elem) {
+ localStorage.setItem("ttrss:prefs-tab", elem.id);
+ });
- if (tab) {
- tab = dijit.byId(tab);
- if (tab) {
- dijit.byId("pref-tabs").selectChild(tab);
+ },
+ hotkeyHandler: function (event) {
+ if (event.target.nodeName == "INPUT" || event.target.nodeName == "TEXTAREA") return;
+
+ const action_name = Utils.keyeventToAction(event);
+
+ if (action_name) {
+ switch (action_name) {
+ case "feed_subscribe":
+ CommonDialogs.quickAddFeed();
+ return false;
+ case "create_label":
+ CommonDialogs.addLabel();
+ return false;
+ case "create_filter":
+ Filters.quickAddFilter();
+ return false;
+ case "help_dialog":
+ Utils.helpDialog("main");
+ return false;
+ default:
+ console.log("unhandled action: " + action_name + "; keycode: " + event.which);
+ }
+ }
+ },
+ isPrefs: function() {
+ return true;
}
- }
- }
+ });
- dojo.connect(dijit.byId("pref-tabs"), "selectChild", function (elem) {
- localStorage.setItem("ttrss:prefs-tab", elem.id);
- });
+ App = new _App();
- },
- hotkeyHandler: function (event) {
- if (event.target.nodeName == "INPUT" || event.target.nodeName == "TEXTAREA") return;
-
- const action_name = Utils.keyeventToAction(event);
-
- if (action_name) {
- switch (action_name) {
- case "feed_subscribe":
- CommonDialogs.quickAddFeed();
- return false;
- case "create_label":
- CommonDialogs.addLabel();
- return false;
- case "create_filter":
- Filters.quickAddFilter();
- return false;
- case "help_dialog":
- Utils.helpDialog("main");
- return false;
- default:
- console.log("unhandled action: " + action_name + "; keycode: " + event.which);
- }
+ } catch (e) {
+ exception_error(e);
}
- },
- isPrefs: function() {
- return true;
- }
-};
+ });
+});
function opmlImportComplete(iframe) {
if (!iframe.contentDocument.body.innerHTML) return false;