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 ""; + print "$message"; + print ""; + + return; + } + print "Unknown method: $subop"; } ?> 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 @@ - - - - - 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)