summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/dlg.php2
-rwxr-xr-xclasses/rpc.php1
-rwxr-xr-xinclude/login_form.php7
-rw-r--r--index.php2
-rw-r--r--js/Feeds.js32
-rw-r--r--prefs.php2
6 files changed, 41 insertions, 5 deletions
diff --git a/classes/dlg.php b/classes/dlg.php
index fa154d7a4..64f9aca9d 100644
--- a/classes/dlg.php
+++ b/classes/dlg.php
@@ -202,6 +202,6 @@ class Dlg extends Handler_Protected {
print "<button dojoType='dijit.form.Button'
onclick=\"return dijit.byId('defaultPasswordDlg').hide();\">".
__('Close this window')."</button>";
- print "</footeer>";
+ print "</footer>";
}
}
diff --git a/classes/rpc.php b/classes/rpc.php
index d4fdd1cd0..a6ddf7004 100755
--- a/classes/rpc.php
+++ b/classes/rpc.php
@@ -454,6 +454,7 @@ class RPC extends Handler_Protected {
$params[strtolower($param)] = (int) get_pref($param);
}
+ $params["safe_mode"] = !empty($_SESSION["safe_mode"]);
$params["check_for_updates"] = CHECK_FOR_UPDATES;
$params["icons_url"] = ICONS_URL;
$params["cookie_lifetime"] = SESSION_COOKIE_LIFETIME;
diff --git a/include/login_form.php b/include/login_form.php
index 0e8f8389e..f3f5d448e 100755
--- a/include/login_form.php
+++ b/include/login_form.php
@@ -153,11 +153,14 @@
<fieldset class="narrow">
<label> </label>
- <label ><input dojoType="dijit.form.CheckBox" name="safe_mode" id="safe_mode"
+ <label id="safe_mode_label"><input dojoType="dijit.form.CheckBox" name="safe_mode" id="safe_mode"
type="checkbox">
- <?php echo __("Safe mode (no plugins)") ?></label>
+ <?php echo __("Safe mode") ?></label>
</fieldset>
+ <div dojoType="dijit.Tooltip" connectId="safe_mode_label" position="below" style="display:none">
+ <?php echo __("Uses default theme and prevents all plugins from loading."); ?>
+ </div>
<?php if (SESSION_COOKIE_LIFETIME > 0) { ?>
<fieldset class="narrow">
diff --git a/index.php b/index.php
index ead02f2c4..93b3da71e 100644
--- a/index.php
+++ b/index.php
@@ -39,7 +39,7 @@
<title>Tiny Tiny RSS</title>
<meta name="viewport" content="initial-scale=1,width=device-width" />
- <?php if ($_SESSION["uid"] && !isset($_REQUEST["ignore-theme"])) {
+ <?php if ($_SESSION["uid"] && empty($_SESSION["safe_mode"])) {
$theme = get_pref("USER_CSS_THEME", false, false);
if ($theme && theme_exists("$theme")) {
echo stylesheet_tag(get_theme_path($theme), 'theme_css');
diff --git a/js/Feeds.js b/js/Feeds.js
index ccb982cb3..64e932ca2 100644
--- a/js/Feeds.js
+++ b/js/Feeds.js
@@ -247,6 +247,38 @@ const Feeds = {
});
}
+ if (dijit.byId("safeModeDlg"))
+ dijit.byId("safeModeDlg").destroyRecursive();
+
+ if (App.getInitParam("safe_mode")) {
+ const dialog = new dijit.Dialog({
+ title: __("Safe mode"),
+ content: `
+ <div class='alert alert-info'>
+ ${__('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'>
+ ${__('Close this window')}
+ </button>
+ </footer>
+ `,
+ id: 'safeModeDlg',
+ style: "width: 600px",
+ onCancel: function () {
+ return true;
+ },
+ onExecute: function () {
+ return true;
+ },
+ onClose: function () {
+ return true;
+ }
+ });
+
+ dialog.show();
+ }
+
// bw_limit disables timeout() so we request initial counters separately
if (App.getInitParam("bw_limit")) {
this.requestCounters(true);
diff --git a/prefs.php b/prefs.php
index 07e636a0a..671a81473 100644
--- a/prefs.php
+++ b/prefs.php
@@ -31,7 +31,7 @@
<title>Tiny Tiny RSS : <?php echo __("Preferences") ?></title>
<meta name="viewport" content="initial-scale=1,width=device-width" />
- <?php if ($_SESSION["uid"] && !isset($_REQUEST["ignore-theme"])) {
+ <?php if ($_SESSION["uid"] && empty($_SESSION["safe_mode"])) {
$theme = get_pref("USER_CSS_THEME", false, false);
if ($theme && theme_exists("$theme")) {
echo stylesheet_tag(get_theme_path($theme), 'theme_css');