From 1a680d4eae7a5a6adb856f4db8adaa04ea4d64e3 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov <noreply@fakecake.org> Date: Thu, 11 Feb 2021 21:42:38 +0300 Subject: [PATCH] publishedOPML: use client dialog --- classes/dlg.php | 39 -------------------------------- classes/pref/feeds.php | 12 ++++++---- js/CommonDialogs.js | 51 +++++++++++++++++++++++++++++++++++++++++- js/Feeds.js | 47 ++++++++++++++++++++++---------------- 4 files changed, 86 insertions(+), 63 deletions(-) diff --git a/classes/dlg.php b/classes/dlg.php index 64f9aca9d..7c07cf4f1 100644 --- a/classes/dlg.php +++ b/classes/dlg.php @@ -35,32 +35,6 @@ class Dlg extends Handler_Protected { //return; } - function pubOPMLUrl() { - $url_path = Opml::opml_publish_url(); - - print "<header>" . __("Your Public OPML URL is:") . "</header>"; - - print "<section>"; - - print "<div class='panel text-center'>"; - print "<a id='pub_opml_url' href='$url_path' target='_blank'>$url_path</a>"; - print "</div>"; - - print "</section>"; - - print "<footer class='text-center'>"; - - print "<button dojoType='dijit.form.Button' onclick=\"return Helpers.OPML.changeKey()\">". - __('Generate new URL')."</button> "; - - print "<button dojoType='dijit.form.Button' onclick=\"return CommonDialogs.closeInfoBox()\">". - __('Close this window')."</button>"; - - print "</footer>"; - - //return; - } - function explainError() { print "<div class=\"errorExplained\">"; @@ -191,17 +165,4 @@ class Dlg extends Handler_Protected { //return; } - function defaultPasswordWarning() { - - print_warning(__("You are using default tt-rss password. Please change it in the Preferences (Personal data / Authentication).")); - - print "<footer class='text-center'>"; - print "<button dojoType='dijit.form.Button' class='alt-primary' - onclick=\"document.location.href = 'prefs.php'\">". - __('Open Preferences')."</button> "; - print "<button dojoType='dijit.form.Button' - onclick=\"return dijit.byId('defaultPasswordDlg').hide();\">". - __('Close this window')."</button>"; - print "</footer>"; - } } diff --git a/classes/pref/feeds.php b/classes/pref/feeds.php index 0b12bda13..cb2e79853 100755 --- a/classes/pref/feeds.php +++ b/classes/pref/feeds.php @@ -1379,7 +1379,7 @@ class Pref_Feeds extends Handler_Protected { " " . __("Published OPML does not include your Tiny Tiny RSS settings, feeds that require authentication or feeds hidden from Popular feeds.") . "</p>"; - print "<button dojoType='dijit.form.Button' class='alt-primary' onclick=\"return App.displayDlg('".__("Public OPML URL")."','pubOPMLUrl')\">". + print "<button dojoType='dijit.form.Button' class='alt-primary' onclick=\"return CommonDialogs.publishedOPML()\">". __('Display published OPML URL')."</button> "; PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION, "prefFeedsOPML"); @@ -1706,13 +1706,17 @@ class Pref_Feeds extends Handler_Protected { } } + function getOPMLKey() { + print json_encode(["link" => OPML::opml_publish_url()]); + } + function regenOPMLKey() { $this->update_feed_access_key('OPML:Publish', - false, $_SESSION["uid"]); + false, $_SESSION["uid"]); - $new_link = Opml::opml_publish_url(); + $new_link = OPML::opml_publish_url(); - print json_encode(array("link" => $new_link)); + print json_encode(["link" => $new_link]); } function regenFeedKey() { diff --git a/js/CommonDialogs.js b/js/CommonDialogs.js index b344967a7..08a32de86 100644 --- a/js/CommonDialogs.js +++ b/js/CommonDialogs.js @@ -359,5 +359,54 @@ const CommonDialogs = { }); } return false; - } + }, + publishedOPML: function() { + + Notify.progress("Loading, please wait...", true); + + xhrJson("backend.php", {op: "pref-feeds", method: "getOPMLKey"}, (reply) => { + try { + if (dijit.byId("publicOPMLDlg")) + dijit.byId("publicOPMLDlg").destroyRecursive(); + + const dialog = new dijit.Dialog({ + title: "Public OPML URL", + id: 'publicOPMLDlg', + style: "width: 600px", + onCancel: function () { + return true; + }, + onExecute: function () { + return true; + }, + onClose: function () { + return true; + }, + content: ` + <header>${__("Your Public OPML URL is:")}</header> + <section> + <div class='panel text-center'> + <a id='pub_opml_url' href='$url_path' target='_blank'>${reply.link}</a> + </div> + </section> + <footer class='text-center'> + <button dojoType='dijit.form.Button' onclick="return Helpers.OPML.changeKey()"> + ${__('Generate new URL')} + </button> + <button dojoType='dijit.form.Button' type='submit' class='alt-primary'> + ${__('Close this window')} + </button> + </footer> + ` + }); + + dialog.show(); + + Notify.close(); + + } catch (e) { + this.Error.report(e); + } + }); + }, }; diff --git a/js/Feeds.js b/js/Feeds.js index 64e932ca2..1e476dd98 100644 --- a/js/Feeds.js +++ b/js/Feeds.js @@ -226,25 +226,34 @@ const Feeds = { if (dijit.byId("defaultPasswordDlg")) dijit.byId("defaultPasswordDlg").destroyRecursive(); - xhrPost("backend.php", {op: 'dlg', method: 'defaultpasswordwarning'}, (transport) => { - const dialog = new dijit.Dialog({ - title: __("Your password is at default value"), - content: transport.responseText, - id: 'defaultPasswordDlg', - style: "width: 600px", - onCancel: function () { - return true; - }, - onExecute: function () { - return true; - }, - onClose: function () { - return true; - } - }); - - dialog.show(); + const dialog = new dijit.Dialog({ + title: __("Your password is at default value"), + content: `<div class='alert alert-error'> + ${__("You are using default tt-rss password. Please change it in the Preferences (Personal data / Authentication).")} + </div> + + <footer class='text-center'> + <button dojoType='dijit.form.Button' class='alt-primary' onclick="document.location.href = 'prefs.php'"> + ${__('Open Preferences')} + </button> + <button dojoType='dijit.form.Button' onclick="return dijit.byId('defaultPasswordDlg').hide()"> + ${__('Close this window')} + </button> + </footer>`, + id: 'defaultPasswordDlg', + style: "width: 600px", + onCancel: function () { + return true; + }, + onExecute: function () { + return true; + }, + onClose: function () { + return true; + } }); + + dialog.show(); } if (dijit.byId("safeModeDlg")) @@ -258,7 +267,7 @@ const Feeds = { ${__('Tiny Tiny RSS is running in safe mode. All themes and plugins are disabled. You will need to log out and back in to disable it.')} </div> <footer class='text-center'> - <button dojoType='dijit.form.Button' type='submit'> + <button dojoType='dijit.form.Button' type='submit' class='alt-primary'> ${__('Close this window')} </button> </footer> -- GitLab