summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--feedlist.js6
-rw-r--r--functions.php3
-rw-r--r--modules/backend-rpc.php39
-rw-r--r--tt-rss.js36
-rw-r--r--tt-rss.php6
-rw-r--r--viewfeed.js4
6 files changed, 87 insertions, 7 deletions
diff --git a/feedlist.js b/feedlist.js
index b52f134b3..9285c61fd 100644
--- a/feedlist.js
+++ b/feedlist.js
@@ -732,10 +732,12 @@ function parse_counters(reply, scheduled_call) {
if (updated && feedlink) {
if (error) {
- feedlink.title = "Error: " + error + " (" + updated + ")";
+ feedlink.title = __("Error:") + " " + error + " (" + updated + ")";
} else {
- feedlink.title = "Updated: " + updated;
+ feedlink.title = __("Updated:") + " " + updated;
}
+ } else if (!updated && feedlink) {
+ feedlink.title = __("Updated:") + " " + __("Never");
}
if (feedupd) {
diff --git a/functions.php b/functions.php
index 7d7e82893..553b26563 100644
--- a/functions.php
+++ b/functions.php
@@ -2872,6 +2872,9 @@
$has_img = feed_has_icon($id);
+ if (date('Y') - date('Y', strtotime($line['last_updated'])) > 2)
+ $last_updated = '';
+
$cv = array("id" => $id,
"updated" => $last_updated,
"counter" => $count,
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index a6d495feb..23706ea3d 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -1173,6 +1173,45 @@
return;
}
+ if ($subop == "scheduleFeedUpdate") {
+ $feed_id = db_escape_string($_REQUEST["id"]);
+ $is_cat = db_escape_string($_REQUEST['is_cat']);
+
+ $message = __("Your request could not be completed.");
+
+ if ($feed_id >= 0) {
+ if (!$is_cat) {
+ $message = __("Feed update has been scheduled.");
+
+ db_query($link, "UPDATE ttrss_feeds SET
+ last_update_started = '1970-01-01',
+ last_updated = '1970-01-01' WHERE id = '$feed_id' AND
+ owner_uid = ".$_SESSION["uid"]);
+
+ } else {
+ $message = __("Category update has been scheduled.");
+
+ if ($feed_id)
+ $cat_query = "cat_id = '$feed_id'";
+ else
+ $cat_query = "cat_id IS NULL";
+
+ db_query($link, "UPDATE ttrss_feeds SET
+ last_update_started = '1970-01-01',
+ last_updated = '1970-01-01' WHERE $cat_query AND
+ owner_uid = ".$_SESSION["uid"]);
+ }
+ } else {
+ $message = __("Can't update this kind of feed.");
+ }
+
+ print "<rpc-reply>";
+ print "<message>$message</message>";
+ print "</rpc-reply>";
+
+ return;
+ }
+
print "<rpc-reply><error>Unknown method: $subop</error></rpc-reply>";
}
?>
diff --git a/tt-rss.js b/tt-rss.js
index a3bfbde5d..35927fd42 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -1286,3 +1286,39 @@ function handle_rpc_reply(transport, scheduled_call) {
return true;
}
+function scheduleFeedUpdate() {
+ try {
+
+ if (!getActiveFeedId()) {
+ alert(__("Please select some feed first."));
+ return;
+ }
+
+ var query = "?op=rpc&subop=scheduleFeedUpdate&id=" +
+ param_escape(getActiveFeedId()) +
+ "&is_cat=" + param_escape(activeFeedIsCat());
+
+ console.log(query);
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+
+ if (transport.responseXML) {
+ var message = transport.responseXML.getElementsByTagName("message")[0];
+
+ if (message) {
+ notify_info(message.firstChild.nodeValue);
+ return;
+ }
+ }
+
+ notify_error("Error communicating with server.");
+
+ } });
+
+
+ } catch (e) {
+ exception_error("scheduleFeedUpdate", e);
+ }
+}
diff --git a/tt-rss.php b/tt-rss.php
index a4814b270..869e1338d 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -226,13 +226,9 @@
<option value="score"><?php echo __('Score') ?></option>
</select>
- <?php if (defined('_ENABLE_FEED_DEBUGGING')) { ?>
-
- <button name="update" onclick="return viewCurrentFeed('ForceUpdate')">
+ <button name="update" onclick="return scheduleFeedUpdate()">
<?php echo __('Update') ?></button>
- <?php } ?>
-
<button onclick="return catchupCurrentFeed()">
<?php echo __('Mark as read') ?></button>
diff --git a/viewfeed.js b/viewfeed.js
index ebf479243..fa5c618ee 100644
--- a/viewfeed.js
+++ b/viewfeed.js
@@ -58,6 +58,10 @@ function headlines_callback2(transport, feed_cur_page) {
}
}
+ var update_btn = document.forms["main_toolbar_form"].update;
+
+ update_btn.disabled = !(feed_id >= 0 && !is_cat);
+
var ll = $('FLL-' + feed_id);
if (ll && ll.parentNode)