From 30ed5d7c3cee427eaea7a00c0ddda44ab461eaae Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 4 Jun 2020 20:04:17 +0300 Subject: [PATCH] same, but for preferences --- js/PrefHelpers.js | 436 +++++++++++++++++++++++----------------------- js/PrefUsers.js | 200 +++++++++++---------- js/prefs.js | 4 - 3 files changed, 314 insertions(+), 326 deletions(-) diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js index 4b908204c..21e07bc26 100644 --- a/js/PrefHelpers.js +++ b/js/PrefHelpers.js @@ -1,274 +1,270 @@ -define(["dojo/_base/declare"], function (declare) { - Helpers = { - AppPasswords: { - getSelected: function() { - return Tables.getSelected("app-password-list"); - }, - updateContent: function(data) { - $("app_passwords_holder").innerHTML = data; - dojo.parser.parse("app_passwords_holder"); - }, - removeSelected: function() { - const rows = this.getSelected(); - - if (rows.length == 0) { - alert("No passwords selected."); - } else { - if (confirm(__("Remove selected app passwords?"))) { - - xhrPost("backend.php", {op: "pref-prefs", method: "deleteAppPassword", ids: rows.toString()}, (transport) => { - this.updateContent(transport.responseText); - Notify.close(); - }); +const Helpers = { + AppPasswords: { + getSelected: function() { + return Tables.getSelected("app-password-list"); + }, + updateContent: function(data) { + $("app_passwords_holder").innerHTML = data; + dojo.parser.parse("app_passwords_holder"); + }, + removeSelected: function() { + const rows = this.getSelected(); - Notify.progress("Loading, please wait..."); - } - } - }, - generate: function() { - const title = prompt("Password description:") + if (rows.length == 0) { + alert("No passwords selected."); + } else { + if (confirm(__("Remove selected app passwords?"))) { - if (title) { - xhrPost("backend.php", {op: "pref-prefs", method: "generateAppPassword", title: title}, (transport) => { + xhrPost("backend.php", {op: "pref-prefs", method: "deleteAppPassword", ids: rows.toString()}, (transport) => { this.updateContent(transport.responseText); Notify.close(); }); Notify.progress("Loading, please wait..."); } - }, + } }, - clearFeedAccessKeys: function() { - if (confirm(__("This will invalidate all previously generated feed URLs. Continue?"))) { - Notify.progress("Clearing URLs..."); + generate: function() { + const title = prompt("Password description:") - xhrPost("backend.php", {op: "pref-feeds", method: "clearKeys"}, () => { - Notify.info("Generated URLs cleared."); + if (title) { + xhrPost("backend.php", {op: "pref-prefs", method: "generateAppPassword", title: title}, (transport) => { + this.updateContent(transport.responseText); + Notify.close(); }); - } - - return false; - }, - updateEventLog: function() { - xhrPost("backend.php", { op: "pref-system" }, (transport) => { - dijit.byId('systemConfigTab').attr('content', transport.responseText); - Notify.close(); - }); - }, - clearEventLog: function() { - if (confirm(__("Clear event log?"))) { Notify.progress("Loading, please wait..."); - - xhrPost("backend.php", {op: "pref-system", method: "clearLog"}, () => { - this.updateEventLog(); - }); } }, - editProfiles: function() { - - if (dijit.byId("profileEditDlg")) - dijit.byId("profileEditDlg").destroyRecursive(); + }, + clearFeedAccessKeys: function() { + if (confirm(__("This will invalidate all previously generated feed URLs. Continue?"))) { + Notify.progress("Clearing URLs..."); - const query = "backend.php?op=pref-prefs&method=editPrefProfiles"; + xhrPost("backend.php", {op: "pref-feeds", method: "clearKeys"}, () => { + Notify.info("Generated URLs cleared."); + }); + } - // noinspection JSUnusedGlobalSymbols - const dialog = new dijit.Dialog({ - id: "profileEditDlg", - title: __("Settings Profiles"), - style: "width: 600px", - getSelectedProfiles: function () { - return Tables.getSelected("pref-profiles-list"); - }, - removeSelected: function () { - const sel_rows = this.getSelectedProfiles(); - - if (sel_rows.length > 0) { - if (confirm(__("Remove selected profiles? Active and default profiles will not be removed."))) { - Notify.progress("Removing selected profiles...", true); - - const query = { - op: "rpc", method: "remprofiles", - ids: sel_rows.toString() - }; - - xhrPost("backend.php", query, () => { - Notify.close(); - Helpers.editProfiles(); - }); - } + return false; + }, + updateEventLog: function() { + xhrPost("backend.php", { op: "pref-system" }, (transport) => { + dijit.byId('systemConfigTab').attr('content', transport.responseText); + Notify.close(); + }); + }, + clearEventLog: function() { + if (confirm(__("Clear event log?"))) { + + Notify.progress("Loading, please wait..."); + + xhrPost("backend.php", {op: "pref-system", method: "clearLog"}, () => { + this.updateEventLog(); + }); + } + }, + editProfiles: function() { - } else { - alert(__("No profiles selected.")); - } - }, - activateProfile: function () { - const sel_rows = this.getSelectedProfiles(); + if (dijit.byId("profileEditDlg")) + dijit.byId("profileEditDlg").destroyRecursive(); - if (sel_rows.length == 1) { - if (confirm(__("Activate selected profile?"))) { - Notify.progress("Loading, please wait..."); + const query = "backend.php?op=pref-prefs&method=editPrefProfiles"; - xhrPost("backend.php", {op: "rpc", method: "setprofile", id: sel_rows.toString()}, () => { - window.location.reload(); - }); - } + // noinspection JSUnusedGlobalSymbols + const dialog = new dijit.Dialog({ + id: "profileEditDlg", + title: __("Settings Profiles"), + style: "width: 600px", + getSelectedProfiles: function () { + return Tables.getSelected("pref-profiles-list"); + }, + removeSelected: function () { + const sel_rows = this.getSelectedProfiles(); - } else { - alert(__("Please choose a profile to activate.")); - } - }, - addProfile: function () { - if (this.validate()) { - Notify.progress("Creating profile...", true); + if (sel_rows.length > 0) { + if (confirm(__("Remove selected profiles? Active and default profiles will not be removed."))) { + Notify.progress("Removing selected profiles...", true); - const query = {op: "rpc", method: "addprofile", title: dialog.attr('value').newprofile}; + const query = { + op: "rpc", method: "remprofiles", + ids: sel_rows.toString() + }; xhrPost("backend.php", query, () => { Notify.close(); Helpers.editProfiles(); }); - } - }, - execute: function () { - if (this.validate()) { - } - }, - href: query - }); - dialog.show(); - }, - customizeCSS: function() { - const query = "backend.php?op=pref-prefs&method=customizeCSS"; + } else { + alert(__("No profiles selected.")); + } + }, + activateProfile: function () { + const sel_rows = this.getSelectedProfiles(); - if (dijit.byId("cssEditDlg")) - dijit.byId("cssEditDlg").destroyRecursive(); + if (sel_rows.length == 1) { + if (confirm(__("Activate selected profile?"))) { + Notify.progress("Loading, please wait..."); - const dialog = new dijit.Dialog({ - id: "cssEditDlg", - title: __("Customize stylesheet"), - style: "width: 600px", - apply: function() { - xhrPost("backend.php", this.attr('value'), () => { - new Effect.Appear("css_edit_apply_msg"); - $("user_css_style").innerText = this.attr('value'); - }); - }, - execute: function () { - Notify.progress('Saving data...', true); + xhrPost("backend.php", {op: "rpc", method: "setprofile", id: sel_rows.toString()}, () => { + window.location.reload(); + }); + } - xhrPost("backend.php", this.attr('value'), () => { - window.location.reload(); - }); + } else { + alert(__("Please choose a profile to activate.")); + } + }, + addProfile: function () { + if (this.validate()) { + Notify.progress("Creating profile...", true); - }, - href: query - }); + const query = {op: "rpc", method: "addprofile", title: dialog.attr('value').newprofile}; - dialog.show(); - }, - confirmReset: function() { - if (confirm(__("Reset to defaults?"))) { - xhrPost("backend.php", {op: "pref-prefs", method: "resetconfig"}, (transport) => { - Helpers.refresh(); - Notify.info(transport.responseText); + xhrPost("backend.php", query, () => { + Notify.close(); + Helpers.editProfiles(); + }); + + } + }, + execute: function () { + if (this.validate()) { + } + }, + href: query + }); + + dialog.show(); + }, + customizeCSS: function() { + const query = "backend.php?op=pref-prefs&method=customizeCSS"; + + if (dijit.byId("cssEditDlg")) + dijit.byId("cssEditDlg").destroyRecursive(); + + const dialog = new dijit.Dialog({ + id: "cssEditDlg", + title: __("Customize stylesheet"), + style: "width: 600px", + apply: function() { + xhrPost("backend.php", this.attr('value'), () => { + new Effect.Appear("css_edit_apply_msg"); + $("user_css_style").innerText = this.attr('value'); }); - } - }, - clearPluginData: function(name) { - if (confirm(__("Clear stored data for this plugin?"))) { - Notify.progress("Loading, please wait..."); + }, + execute: function () { + Notify.progress('Saving data...', true); - xhrPost("backend.php", {op: "pref-prefs", method: "clearplugindata", name: name}, () => { - Helpers.refresh(); + xhrPost("backend.php", this.attr('value'), () => { + window.location.reload(); }); - } - }, - refresh: function() { - xhrPost("backend.php", { op: "pref-prefs" }, (transport) => { - dijit.byId('genConfigTab').attr('content', transport.responseText); - Notify.close(); + + }, + href: query + }); + + dialog.show(); + }, + confirmReset: function() { + if (confirm(__("Reset to defaults?"))) { + xhrPost("backend.php", {op: "pref-prefs", method: "resetconfig"}, (transport) => { + Helpers.refresh(); + Notify.info(transport.responseText); }); - }, - OPML: { - import: function() { - const opml_file = $("opml_file"); + } + }, + clearPluginData: function(name) { + if (confirm(__("Clear stored data for this plugin?"))) { + Notify.progress("Loading, please wait..."); - if (opml_file.value.length == 0) { - alert(__("Please choose an OPML file first.")); - return false; - } else { - Notify.progress("Importing, please wait...", true); + xhrPost("backend.php", {op: "pref-prefs", method: "clearplugindata", name: name}, () => { + Helpers.refresh(); + }); + } + }, + refresh: function() { + xhrPost("backend.php", { op: "pref-prefs" }, (transport) => { + dijit.byId('genConfigTab').attr('content', transport.responseText); + Notify.close(); + }); + }, + OPML: { + import: function() { + const opml_file = $("opml_file"); + + if (opml_file.value.length == 0) { + alert(__("Please choose an OPML file first.")); + return false; + } else { + Notify.progress("Importing, please wait...", true); - Element.show("upload_iframe"); + Element.show("upload_iframe"); - return true; - } - }, - onImportComplete: function(iframe) { - if (!iframe.contentDocument.body.innerHTML) return false; + return true; + } + }, + onImportComplete: function(iframe) { + if (!iframe.contentDocument.body.innerHTML) return false; - Element.show(iframe); + Element.show(iframe); - Notify.close(); + Notify.close(); - if (dijit.byId('opmlImportDlg')) - dijit.byId('opmlImportDlg').destroyRecursive(); + if (dijit.byId('opmlImportDlg')) + dijit.byId('opmlImportDlg').destroyRecursive(); - const content = iframe.contentDocument.body.innerHTML; + const content = iframe.contentDocument.body.innerHTML; - const dialog = new dijit.Dialog({ - id: "opmlImportDlg", - title: __("OPML Import"), - style: "width: 600px", - onCancel: function () { - window.location.reload(); - }, - execute: function () { - window.location.reload(); - }, - content: content - }); + const dialog = new dijit.Dialog({ + id: "opmlImportDlg", + title: __("OPML Import"), + style: "width: 600px", + onCancel: function () { + window.location.reload(); + }, + execute: function () { + window.location.reload(); + }, + content: content + }); - dojo.connect(dialog, "onShow", function () { - Element.hide(iframe); - }); + dojo.connect(dialog, "onShow", function () { + Element.hide(iframe); + }); - dialog.show(); - }, - export: function() { - console.log("export"); - window.open("backend.php?op=opml&method=export&" + dojo.formToQuery("opmlExportForm")); - }, - changeKey: function() { - if (confirm(__("Replace current OPML publishing address with a new one?"))) { - Notify.progress("Trying to change address...", true); + dialog.show(); + }, + export: function() { + console.log("export"); + window.open("backend.php?op=opml&method=export&" + dojo.formToQuery("opmlExportForm")); + }, + changeKey: function() { + if (confirm(__("Replace current OPML publishing address with a new one?"))) { + Notify.progress("Trying to change address...", true); - xhrJson("backend.php", {op: "pref-feeds", method: "regenOPMLKey"}, (reply) => { - if (reply) { - const new_link = reply.link; - const e = $('pub_opml_url'); + xhrJson("backend.php", {op: "pref-feeds", method: "regenOPMLKey"}, (reply) => { + if (reply) { + const new_link = reply.link; + const e = $('pub_opml_url'); - if (new_link) { - e.href = new_link; - e.innerHTML = new_link; + if (new_link) { + e.href = new_link; + e.innerHTML = new_link; - new Effect.Highlight(e); + new Effect.Highlight(e); - Notify.close(); + Notify.close(); - } else { - Notify.error("Could not change feed URL."); - } + } else { + Notify.error("Could not change feed URL."); } - }); - } - return false; - }, - } - }; - - return Helpers; -}); + } + }); + } + return false; + }, + } +}; diff --git a/js/PrefUsers.js b/js/PrefUsers.js index 55dc43dfa..1e7ed6523 100644 --- a/js/PrefUsers.js +++ b/js/PrefUsers.js @@ -1,122 +1,118 @@ 'use strict' /* global __, ngettext */ -define(["dojo/_base/declare"], function (declare) { - Users = { - reload: function(sort) { - const user_search = $("user_search"); - const search = user_search ? user_search.value : ""; - - xhrPost("backend.php", { op: "pref-users", sort: sort, search: search }, (transport) => { - dijit.byId('userConfigTab').attr('content', transport.responseText); - Notify.close(); - }); - }, - add: function() { - const login = prompt(__("Please enter username:"), ""); - - if (login) { - Notify.progress("Adding user..."); - - xhrPost("backend.php", {op: "pref-users", method: "add", login: login}, (transport) => { - alert(transport.responseText); - Users.reload(); - }); - } - }, - edit: function(id) { - const query = "backend.php?op=pref-users&method=edit&id=" + - encodeURIComponent(id); - - if (dijit.byId("userEditDlg")) - dijit.byId("userEditDlg").destroyRecursive(); - - const dialog = new dijit.Dialog({ - id: "userEditDlg", - title: __("User Editor"), - style: "width: 600px", - execute: function () { - if (this.validate()) { - Notify.progress("Saving data...", true); - - xhrPost("backend.php", dojo.formToObject("user_edit_form"), (transport) => { - dialog.hide(); - Users.reload(); - }); - } - }, - href: query +const Users = { + reload: function(sort) { + const user_search = $("user_search"); + const search = user_search ? user_search.value : ""; + + xhrPost("backend.php", { op: "pref-users", sort: sort, search: search }, (transport) => { + dijit.byId('userConfigTab').attr('content', transport.responseText); + Notify.close(); + }); + }, + add: function() { + const login = prompt(__("Please enter username:"), ""); + + if (login) { + Notify.progress("Adding user..."); + + xhrPost("backend.php", {op: "pref-users", method: "add", login: login}, (transport) => { + alert(transport.responseText); + Users.reload(); }); - dialog.show(); - }, - resetSelected: function() { - const rows = this.getSelection(); - - if (rows.length == 0) { - alert(__("No users selected.")); - return; - } - - if (rows.length > 1) { - alert(__("Please select one user.")); - return; - } - - if (confirm(__("Reset password of selected user?"))) { - Notify.progress("Resetting password for selected user..."); + } + }, + edit: function(id) { + const query = "backend.php?op=pref-users&method=edit&id=" + + encodeURIComponent(id); + + if (dijit.byId("userEditDlg")) + dijit.byId("userEditDlg").destroyRecursive(); + + const dialog = new dijit.Dialog({ + id: "userEditDlg", + title: __("User Editor"), + style: "width: 600px", + execute: function () { + if (this.validate()) { + Notify.progress("Saving data...", true); + + xhrPost("backend.php", dojo.formToObject("user_edit_form"), (transport) => { + dialog.hide(); + Users.reload(); + }); + } + }, + href: query + }); + + dialog.show(); + }, + resetSelected: function() { + const rows = this.getSelection(); + + if (rows.length == 0) { + alert(__("No users selected.")); + return; + } - const id = rows[0]; + if (rows.length > 1) { + alert(__("Please select one user.")); + return; + } - xhrPost("backend.php", {op: "pref-users", method: "resetPass", id: id}, (transport) => { - Notify.close(); - Notify.info(transport.responseText, true); - }); + if (confirm(__("Reset password of selected user?"))) { + Notify.progress("Resetting password for selected user..."); - } - }, - removeSelected: function() { - const sel_rows = this.getSelection(); + const id = rows[0]; - if (sel_rows.length > 0) { - if (confirm(__("Remove selected users? Neither default admin nor your account will be removed."))) { - Notify.progress("Removing selected users..."); + xhrPost("backend.php", {op: "pref-users", method: "resetPass", id: id}, (transport) => { + Notify.close(); + Notify.info(transport.responseText, true); + }); - const query = { - op: "pref-users", method: "remove", - ids: sel_rows.toString() - }; + } + }, + removeSelected: function() { + const sel_rows = this.getSelection(); - xhrPost("backend.php", query, () => { - this.reload(); - }); - } + if (sel_rows.length > 0) { + if (confirm(__("Remove selected users? Neither default admin nor your account will be removed."))) { + Notify.progress("Removing selected users..."); - } else { - alert(__("No users selected.")); - } - }, - editSelected: function() { - const rows = this.getSelection(); + const query = { + op: "pref-users", method: "remove", + ids: sel_rows.toString() + }; - if (rows.length == 0) { - alert(__("No users selected.")); - return; + xhrPost("backend.php", query, () => { + this.reload(); + }); } - if (rows.length > 1) { - alert(__("Please select one user.")); - return; - } + } else { + alert(__("No users selected.")); + } + }, + editSelected: function() { + const rows = this.getSelection(); - this.edit(rows[0]); - }, - getSelection :function() { - return Tables.getSelected("prefUserList"); + if (rows.length == 0) { + alert(__("No users selected.")); + return; } - } - return Users; -}); + if (rows.length > 1) { + alert(__("Please select one user.")); + return; + } + this.edit(rows[0]); + }, + getSelection :function() { + return Tables.getSelected("prefUserList"); + } +} diff --git a/js/prefs.js b/js/prefs.js index 96fcbd948..3db2fa4ea 100755 --- a/js/prefs.js +++ b/js/prefs.js @@ -2,10 +2,6 @@ /* global dijit, __ */ let App; -let CommonDialogs; -let Filters; -let Users; -let Helpers; const Plugins = {};