summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/Config.php8
-rw-r--r--classes/Handler_Public.php25
-rw-r--r--classes/OPML.php27
3 files changed, 31 insertions, 29 deletions
diff --git a/classes/Config.php b/classes/Config.php
index 7be529e41..49715a576 100644
--- a/classes/Config.php
+++ b/classes/Config.php
@@ -214,6 +214,12 @@ class Config {
/** scheduled task to send digests, value should be valid cron expression */
const SCHEDULE_SEND_HEADLINES_DIGESTS = "SCHEDULE_SEND_HEADLINES_DIGESTS";
+ /** default (fallback) light theme path */
+ const DEFAULT_LIGHT_THEME = "DEFAULT_LIGHT_THEME";
+
+ /** default (fallback) dark (night) theme path */
+ const DEFAULT_DARK_THEME = "DEFAULT_DARK_THEME";
+
/** default values for all global configuration options */
private const _DEFAULTS = [
Config::DB_TYPE => [ "pgsql", Config::T_STRING ],
@@ -280,6 +286,8 @@ class Config {
Config::SCHEDULE_EXPIRE_ERROR_LOG => ["@hourly", Config::T_STRING],
Config::SCHEDULE_EXPIRE_LOCK_FILES => ["@hourly", Config::T_STRING],
Config::SCHEDULE_SEND_HEADLINES_DIGESTS => ["@hourly", Config::T_STRING],
+ Config::DEFAULT_LIGHT_THEME => [ "light.css", Config::T_STRING],
+ Config::DEFAULT_DARK_THEME => [ "night.css", Config::T_STRING],
];
private static ?Config $instance = null;
diff --git a/classes/Handler_Public.php b/classes/Handler_Public.php
index 405d16d24..23f4dd2d2 100644
--- a/classes/Handler_Public.php
+++ b/classes/Handler_Public.php
@@ -438,16 +438,24 @@ class Handler_Public extends Handler {
<link rel="icon" type="image/png" sizes="72x72" href="images/favicon-72px.png">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
- echo stylesheet_tag("themes/light.css");
echo javascript_tag("lib/dojo/dojo.js");
echo javascript_tag("lib/dojo/tt-rss-layer.js");
+ echo javascript_tag("js/common.js");
+ echo javascript_tag("js/utility.js");
?>
<?= Config::get_override_links() ?>
</head>
- <body class='flat ttrss_utility'>
+ <body class='flat ttrss_utility css_loading'>
<div class='container'>
<script type="text/javascript">
+ const __csrf_token = "<?= $_SESSION["csrf_token"]; ?>";
+
+ const __default_light_theme = "<?= get_theme_path(Config::get(Config::DEFAULT_LIGHT_THEME), 'themes/light.css') ?>";
+ const __default_dark_theme = "<?= get_theme_path(Config::get(Config::DEFAULT_DARK_THEME), 'themes/night.css') ?>";
+ </script>
+
+ <script type="text/javascript">
require(['dojo/parser', "dojo/ready", 'dijit/form/Button','dijit/form/CheckBox', 'dijit/form/Form',
'dijit/form/Select','dijit/form/TextBox','dijit/form/ValidationTextBox'],function(parser, ready){
ready(function() {
@@ -455,6 +463,19 @@ class Handler_Public extends Handler {
});
});
</script>
+
+ <style type="text/css">
+ @media (prefers-color-scheme: dark) {
+ body {
+ background : #303030;
+ }
+ }
+
+ body.css_loading * {
+ display : none;
+ }
+ </style>
+
<?php
print "<h1>".__("Password recovery")."</h1>";
diff --git a/classes/OPML.php b/classes/OPML.php
index bae00b8bc..0560cc5f5 100644
--- a/classes/OPML.php
+++ b/classes/OPML.php
@@ -20,33 +20,6 @@ class OPML extends Handler_Protected {
return $rc;
}
- function import(): void {
- $owner_uid = $_SESSION["uid"];
-
- header('Content-Type: text/html; charset=utf-8');
-
- print "<html>
- <head>
- ".stylesheet_tag("themes/light.css")."
- <title>".__("OPML Utility")."</title>
- <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
- </head>
- <body class='claro ttrss_utility'>
- <h1>".__('OPML Utility')."</h1><div class='content'>";
-
- Feeds::_add_cat("Imported feeds", $owner_uid);
-
- $this->opml_notice(__("Importing OPML..."));
-
- $this->opml_import($owner_uid);
-
- print "<br><form method=\"GET\" action=\"prefs.php\">
- <input type=\"submit\" value=\"".__("Return to preferences")."\">
- </form>";
-
- print "</div></body></html>";
- }
-
// Export
private function opml_export_category(int $owner_uid, int $cat_id, bool $hide_private_feeds = false, bool $include_settings = true): string {