summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-03-02 19:21:21 +0300
committerAndrew Dolgov <[email protected]>2021-03-02 19:21:21 +0300
commitba86c64d38d9995d38af163ae4c51a42b21d5de7 (patch)
tree3180dba6d383a89e26e38a893170315344a8fb17
parent386316aba1b955f50502562e1308e02680ffe997 (diff)
add digest preview button, also fix a bunch of bugs
-rw-r--r--classes/digest.php16
-rw-r--r--classes/pref/prefs.php11
-rw-r--r--js/PrefHelpers.js27
-rw-r--r--templates/digest_template_html.txt14
4 files changed, 51 insertions, 17 deletions
diff --git a/classes/digest.php b/classes/digest.php
index 26ca5221f..2fea99344 100644
--- a/classes/digest.php
+++ b/classes/digest.php
@@ -78,7 +78,7 @@ class Digest
Debug::log("All done.");
}
- static function prepare_headlines_digest($user_id, $days = 1, $limit = 1000) {
+ static function prepare_headlines_digest(int $user_id, int $days = 1, int $limit = 1000) {
$tpl = new Templator();
$tpl_t = new Templator();
@@ -87,20 +87,22 @@ class Digest
$tpl_t->readTemplateFromFile("digest_template.txt");
$user_tz_string = get_pref(Prefs::USER_TIMEZONE, $user_id);
+
+ if ($user_tz_string == 'Automatic')
+ $user_tz_string = 'GMT';
+
$local_ts = TimeHelper::convert_timestamp(time(), 'UTC', $user_tz_string);
$tpl->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
$tpl->setVariable('CUR_TIME', date('G:i', $local_ts));
- $tpl->setVariable('TTRSS_HOST', Config::get(Config::get(Config::SELF_URL_PATH)));
+ $tpl->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$tpl_t->setVariable('CUR_DATE', date('Y/m/d', $local_ts));
$tpl_t->setVariable('CUR_TIME', date('G:i', $local_ts));
- $tpl_t->setVariable('TTRSS_HOST', Config::get(Config::get(Config::SELF_URL_PATH)));
+ $tpl_t->setVariable('TTRSS_HOST', Config::get(Config::SELF_URL_PATH));
$affected_ids = array();
- $days = (int) $days;
-
if (Config::get(Config::DB_TYPE) == "pgsql") {
$interval_qpart = "ttrss_entries.date_updated > NOW() - INTERVAL '$days days'";
} else /* if (Config::get(Config::DB_TYPE) == "mysql") */ {
@@ -131,9 +133,7 @@ class Digest
AND score >= 0
ORDER BY ttrss_feed_categories.title, ttrss_feeds.title, score DESC, date_updated DESC
LIMIT :limit");
- $sth->bindParam(':user_id', intval($user_id, 10), PDO::PARAM_INT);
- $sth->bindParam(':limit', intval($limit, 10), PDO::PARAM_INT);
- $sth->execute();
+ $sth->execute([':user_id' => $user_id, ':limit' => $limit]);
$headlines_count = 0;
$headlines = array();
diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php
index eaf724199..1c5092167 100644
--- a/classes/pref/prefs.php
+++ b/classes/pref/prefs.php
@@ -664,6 +664,10 @@ class Pref_Prefs extends Handler_Protected {
print \Controls\checkbox_tag($pref_name, $is_checked, "true",
["disabled" => $is_disabled], "CB_$pref_name");
+ if ($pref_name == Prefs::DIGEST_ENABLE) {
+ print \Controls\button_tag(__('Preview'), '', ['onclick' => 'Helpers.Digest.preview()', 'style' => 'margin-left : 10px']);
+ }
+
} else if (in_array($pref_name, ['FRESH_ARTICLE_MAX_AGE',
'PURGE_OLD_DAYS', 'LONG_DATE_FORMAT', 'SHORT_DATE_FORMAT'])) {
@@ -698,11 +702,10 @@ class Pref_Prefs extends Handler_Protected {
"class" => "alt-info",
"onclick" => "window.open('https://tt-rss.org/wiki/SSL%20Certificate%20Authentication')"]);
- } else if ($pref_name == 'DIGEST_PREFERRED_TIME') {
+ } else if ($pref_name == Prefs::DIGEST_PREFERRED_TIME) {
print "<input dojoType=\"dijit.form.ValidationTextBox\"
id=\"$pref_name\" regexp=\"[012]?\d:\d\d\" placeHolder=\"12:00\"
name=\"$pref_name\" value=\"$value\">";
-
$item['help_text'] .= ". " . T_sprintf("Current server time: %s", date("H:i"));
} else {
$regexp = ($type_hint == Config::T_INT) ? 'regexp="^\d*$"' : '';
@@ -1408,6 +1411,10 @@ class Pref_Prefs extends Handler_Protected {
$this->appPasswordList();
}
+ function previewDigest() {
+ print json_encode(Digest::prepare_headlines_digest($_SESSION["uid"], 1, 16));
+ }
+
static function _get_ssl_certificate_id() {
if ($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] ?? false) {
return sha1($_SERVER["REDIRECT_SSL_CLIENT_M_SERIAL"] .
diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js
index fb1689879..8035d7866 100644
--- a/js/PrefHelpers.js
+++ b/js/PrefHelpers.js
@@ -53,6 +53,33 @@ const Helpers = {
return false;
},
},
+ Digest: {
+ preview: function() {
+ const dialog = new fox.SingleUseDialog({
+ title: __("Digest Preview"),
+ content: `
+ <div class='panel panel-scrollable digest-preview'>
+ <div class='text-center'>${__("Loading, please wait...")}</div>
+ </div>
+
+ <footer class='text-center'>
+ ${App.FormFields.submit_tag(__('Close this window'))}
+ </footer>
+ `
+ });
+
+ const tmph = dojo.connect(dialog, 'onShow', function () {
+ dojo.disconnect(tmph);
+
+ xhr.json("backend.php", {op: "pref-prefs", method: "previewDigest"}, (reply) => {
+ dialog.domNode.querySelector('.digest-preview').innerHTML = reply[0];
+ });
+ });
+
+ dialog.show();
+
+ }
+ },
System: {
//
},
diff --git a/templates/digest_template_html.txt b/templates/digest_template_html.txt
index f38d98a21..f82294896 100644
--- a/templates/digest_template_html.txt
+++ b/templates/digest_template_html.txt
@@ -1,20 +1,20 @@
<!-- $BeginBlock digest -->
-<h1 style='font-size : x-large'>New headlines for last 24 hours, as of ${CUR_DATE} ${CUR_TIME}</h1>
+<h1>New headlines for last 24 hours, as of ${CUR_DATE} ${CUR_TIME}</h1>
<hr/>
<!-- $BeginBlock feed -->
-<h2 style='font-size : large'>${FEED_TITLE}</h2>
+<h2>${FEED_TITLE}</h2>
<ul>
<!-- $BeginBlock article -->
<li><a href="${ARTICLE_LINK}">${ARTICLE_TITLE}</a> &mdash; <strong>${ARTICLE_UPDATED}</strong>
-<div style='font-style : italic'>${ARTICLE_LABELS}</div>
-<div style='color : gray'>${ARTICLE_EXCERPT}</div>
+<div><em>${ARTICLE_LABELS}</em></div>
+<div>${ARTICLE_EXCERPT}</div>
<!-- $EndBlock article -->
</ul>
<!-- $EndBlock feed -->
-
+
<hr>
-<em>To unsubscribe, visit your configuration options or contact instance owner.</em><br/>
-<em>Sent by tt-rss mailer daemon at ${TTRSS_HOST}.</em>
+<em style='color : gray'>To unsubscribe, visit your configuration options or contact instance owner.<br/>
+Sent by tt-rss mailer daemon at ${TTRSS_HOST}.</em>
<!-- $EndBlock digest -->