mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-10-12 11:31:00 +02:00
add separate light.css to force light theme remove manual night mode toggle and related code
162 lines
4.0 KiB
JavaScript
Executable File
162 lines
4.0 KiB
JavaScript
Executable File
'use strict'
|
|
/* global dijit, __ */
|
|
|
|
let App;
|
|
let CommonDialogs;
|
|
let Filters;
|
|
let Users;
|
|
let Helpers;
|
|
|
|
const Plugins = {};
|
|
|
|
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/NumberSpinner",
|
|
"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/CommonDialogs",
|
|
"fox/CommonFilters",
|
|
"fox/PrefUsers",
|
|
"fox/PrefHelpers",
|
|
"fox/PrefFeedStore",
|
|
"fox/PrefFilterStore",
|
|
"fox/PrefFeedTree",
|
|
"fox/PrefFilterTree",
|
|
"fox/PrefLabelTree",
|
|
"fox/Toolbar",
|
|
"fox/form/Select",
|
|
"fox/form/ComboButton",
|
|
"fox/form/DropDownButton"], function (dojo, declare, ready, parser, AppBase) {
|
|
|
|
ready(function () {
|
|
try {
|
|
const _App = declare("fox.App", AppBase, {
|
|
constructor: function() {
|
|
parser.parse();
|
|
|
|
this.setLoadingProgress(50);
|
|
|
|
const clientTzOffset = new Date().getTimezoneOffset() * 60;
|
|
const params = {op: "rpc", method: "sanityCheck", clientTzOffset: clientTzOffset};
|
|
|
|
xhrPost("backend.php", params, (transport) => {
|
|
try {
|
|
this.backendSanityCallback(transport);
|
|
} catch (e) {
|
|
this.Error.report(e);
|
|
}
|
|
});
|
|
},
|
|
initSecondStage: function() {
|
|
this.enableCsrfSupport();
|
|
|
|
document.onkeydown = (event) => { return App.hotkeyHandler(event) };
|
|
document.onkeypress = (event) => { return App.hotkeyHandler(event) };
|
|
App.setLoadingProgress(50);
|
|
Notify.close();
|
|
|
|
let tab = App.urlParam('tab');
|
|
|
|
if (tab) {
|
|
tab = dijit.byId(tab + "Tab");
|
|
if (tab) {
|
|
dijit.byId("pref-tabs").selectChild(tab);
|
|
|
|
switch (App.urlParam('method')) {
|
|
case "editfeed":
|
|
window.setTimeout(function () {
|
|
CommonDialogs.editFeed(App.urlParam('methodparam'))
|
|
}, 100);
|
|
break;
|
|
default:
|
|
console.warn("initSecondStage, unknown method:", App.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);
|
|
});
|
|
|
|
},
|
|
hotkeyHandler: function (event) {
|
|
if (event.target.nodeName == "INPUT" || event.target.nodeName == "TEXTAREA") return;
|
|
|
|
// Arrow buttons and escape are not reported via keypress, handle them via keydown.
|
|
// escape = 27, left = 37, up = 38, right = 39, down = 40
|
|
if (event.type == "keydown" && event.which != 27 && (event.which < 37 || event.which > 40)) return;
|
|
|
|
const action_name = App.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":
|
|
App.helpDialog("main");
|
|
return false;
|
|
default:
|
|
console.log("unhandled action: " + action_name + "; keycode: " + event.which);
|
|
}
|
|
}
|
|
},
|
|
isPrefs: function() {
|
|
return true;
|
|
}
|
|
});
|
|
|
|
App = new _App();
|
|
|
|
} catch (e) {
|
|
this.Error.report(e);
|
|
}
|
|
});
|
|
});
|