summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--functions.php69
-rw-r--r--modules/popup-dialog.php33
-rw-r--r--tt-rss.css8
-rw-r--r--tt-rss.js21
-rw-r--r--tt-rss.php2
5 files changed, 64 insertions, 69 deletions
diff --git a/functions.php b/functions.php
index 99db938ba..98e4c688b 100644
--- a/functions.php
+++ b/functions.php
@@ -3199,15 +3199,12 @@
}
}
- if (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) {
-
- if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
+ if ($_SESSION["last_version_check"] + 86400 + rand(-1000, 1000) < time()) {
$new_version_details = @check_for_update($link);
- $data['new_version_available'] = (int) $new_version_details != "";
+ $data['new_version_available'] = (int) ($new_version_details != false);
$_SESSION["last_version_check"] = time();
- }
}
return $data;
@@ -3913,62 +3910,22 @@
}
function check_for_update($link) {
- $releases_feed = "http://tt-rss.org/releases.rss";
-
- if (!CHECK_FOR_NEW_VERSION || $_SESSION["access_level"] < 10) {
- return;
- }
-
- if (DEFAULT_UPDATE_METHOD == "1") {
- $rss = new SimplePie();
- $rss->set_useragent(SELF_USER_AGENT);
- $rss->set_feed_url($fetch_url);
- $rss->set_output_encoding('UTF-8');
- $rss->init();
- } else {
- $rss = fetch_rss($releases_feed);
- }
-
- if ($rss) {
-
- if (DEFAULT_UPDATE_METHOD == "1") {
- $items = $rss->get_items();
- } else {
- $items = $rss->items;
-
- if (!$items || !is_array($items)) $items = $rss->entries;
- if (!$items || !is_array($items)) $items = $rss;
- }
+ if (CHECK_FOR_NEW_VERSION && $_SESSION['access_level'] >= 10) {
+ $version_url = "http://tt-rss.org/version.php?ver=" . VERSION;
- if (!is_array($items) || count($items) == 0) {
- return;
- }
+ $version_data = @fetch_file_contents($version_url);
- $latest_item = $items[0];
+ if ($version_data) {
+ $version_data = json_decode($version_data, true);
+ if ($version_data && $version_data['version']) {
- if (DEFAULT_UPDATE_METHOD == "1") {
- $last_title = $latest_item->get_title();
- } else {
- $last_title = $latest_item["title"];
- }
-
- $latest_version = trim(preg_replace("/(Milestone)|(completed)/", "", $last_title));
-
- if (DEFAULT_UPDATE_METHOD == "1") {
- $release_url = sanitize_rss($link, $latest_item->get_link());
- $content = sanitize_rss($link, $latest_item->get_description());
- } else {
- $release_url = sanitize_rss($link, $latest_item["link"]);
- $content = sanitize_rss($link, $latest_item["description"]);
+ if (version_compare(VERSION, $version_data['version']) == -1) {
+ return $version_data['version'];
+ }
+ }
}
-
- if (version_compare(VERSION, $latest_version) == -1) {
- return sprintf("New version of Tiny-Tiny RSS (%s) is available:",
- $latest_version)."<div class='milestoneDetails'>$content</div>";
- } else {
- return false;
- }
}
+ return false;
}
function markArticlesById($link, $ids, $cmode) {
diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php
index 0a272d1a3..584f6e51d 100644
--- a/modules/popup-dialog.php
+++ b/modules/popup-dialog.php
@@ -217,17 +217,6 @@
}
- if ($param == 2) {
- $msg = check_for_update($link);
-
- if (!$msg) {
- print __("You are running the latest version of Tiny Tiny RSS. The fact that you are seeing this dialog is probably a bug.");
- } else {
- print $msg;
- }
-
- }
-
if ($param == 3) {
print __("Update daemon is taking too long to perform a feed update. This could indicate a problem like crash or a hang. Please check the daemon process or contact instance owner.");
@@ -241,7 +230,7 @@
print "<div align='center'>";
- print "<button onclick=\"return closeInfoBox()\"".
+ print "<button onclick=\"return closeInfoBox()\">".
__('Close this window')."</button>";
print "</div>";
@@ -777,6 +766,26 @@
//return;
}
+ if ($id == "newVersion") {
+ $version = check_for_update($link);
+
+ $version_link = "<a class=\"visibleLink\" target=\"_blank\"
+ href=\"http://tt-rss.org\">http://tt-rss.org</a>";
+
+ print "<div class='tagCloudContainer'>";
+
+ print T_sprintf("New version of Tiny Tiny RSS is available (%s).<br/>Visit %s for more information.", "<b>$version</b>", $version_link);
+
+ print "</div>";
+
+ print "<div style='text-align : center'>";
+ print "<button dojoType=\"dijit.form.Button\"
+ onclick=\"return dijit.byId('newVersionDlg').hide()\">".
+ __('Close this window')."</button>";
+ print "</div>";
+
+ }
+
print "</dlg>";
}
?>
diff --git a/tt-rss.css b/tt-rss.css
index 539cf93f3..69b1abf9c 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -1096,6 +1096,7 @@ div.topLinks {
float : right;
color : gray;
font-size : 12px;
+ line-height : 120%;
}
div.topLinks a {
@@ -1646,3 +1647,10 @@ a.bookmarklet {
border : 1px solid #ecf4ff;
padding : 2px;
}
+
+#newVersionIcon {
+ margin-left : 5px;
+ vertical-align : middle;
+ position : relative;
+ top : -1px;
+}
diff --git a/tt-rss.js b/tt-rss.js
index 46ea5a4bb..d88554669 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -1107,3 +1107,24 @@ function scheduleFeedUpdate(id, is_cat) {
exception_error("scheduleFeedUpdate", e);
}
}
+
+function newVersionDlg() {
+ try {
+ var query = "backend.php?op=dlg&id=newVersion";
+
+ if (dijit.byId("newVersionDlg"))
+ dijit.byId("newVersionDlg").destroyRecursive();
+
+ dialog = new dijit.Dialog({
+ id: "newVersionDlg",
+ title: __("New version available!"),
+ style: "width: 600px",
+ href: query,
+ });
+
+ dialog.show();
+
+ } catch (e) {
+ exception_error("newVersionDlg", e);
+ }
+}
diff --git a/tt-rss.php b/tt-rss.php
index ceeca3581..f51648fef 100644
--- a/tt-rss.php
+++ b/tt-rss.php
@@ -107,7 +107,7 @@
| <a href="logout.php"><?php echo __('Logout') ?></a>
<?php } ?>
- <img id="newVersionIcon" style="display:none;" onclick="javascript:explainError(2)"
+ <img id="newVersionIcon" style="display:none;" onclick="newVersionDlg()"
width="13" height="13"
src="<?php echo theme_image($link, 'images/new_version.png') ?>"
title="<?php echo __('New version of Tiny Tiny RSS is available!') ?>"