summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-11-16 08:59:46 +0100
committerAndrew Dolgov <[email protected]>2005-11-16 08:59:46 +0100
commit295f9b422a7fdecc451f31ab16f585582d888222 (patch)
tree9c8f457b205a598acdb89f3aac8aae04b708f1c3
parent1089b16bc2dccbfba226fbd7d98b7535203449d2 (diff)
perform backend sanity check on startup, update schema version in backend.php
-rw-r--r--backend.php21
-rw-r--r--functions.js3
-rw-r--r--tt-rss.css6
-rw-r--r--tt-rss.js55
4 files changed, 78 insertions, 7 deletions
diff --git a/backend.php b/backend.php
index 77812b981..2ed2f9266 100644
--- a/backend.php
+++ b/backend.php
@@ -1,5 +1,5 @@
<?
- define(SCHEMA_VERSION, 1);
+ define(SCHEMA_VERSION, 2);
$op = $_GET["op"];
@@ -28,6 +28,7 @@
pg_query("set client_encoding = 'utf-8'");
}
+/*
$result = db_query($link, "SELECT schema_version FROM ttrss_version");
$schema_version = db_fetch_result($result, 0, "schema_version");
@@ -37,7 +38,8 @@
(got version $schema_version; expected ".SCHEMA_VERSION.")";
return;
}
-
+*/
+
$fetch = $_GET["fetch"];
/* FIXME this needs reworking */
@@ -360,6 +362,21 @@
print "Marked active page as read.";
}
+
+ if ($subop == "sanityCheck") {
+
+ $error_code = 0;
+
+ $result = db_query($link, "SELECT schema_version FROM ttrss_version");
+
+ $schema_version = db_fetch_result($result, 0, "schema_version");
+
+ if ($schema_version != SCHEMA_VERSION) {
+ $error_code = 5;
+ }
+
+ print "<error code='$error_code'/>";
+ }
}
if ($op == "feeds") {
diff --git a/functions.js b/functions.js
index 78e3bbaae..aa3169ac9 100644
--- a/functions.js
+++ b/functions.js
@@ -416,4 +416,7 @@ function hideOrShowFeeds(doc, hide) {
}
+function fatalError(code) {
+ window.location = "error.php?c=" + param_escape(code);
+}
diff --git a/tt-rss.css b/tt-rss.css
index 0d6d223a4..271037a90 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -497,3 +497,9 @@ ul.nomarks {
padding : 10px;
}
+div.bigErrorMsg {
+ border : 1px solid #c0c0c0;
+ background : #fff0f0;
+ padding : 30px;
+ margin : 20px;
+}
diff --git a/tt-rss.js b/tt-rss.js
index 77f90303f..13b7e50a6 100644
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -121,6 +121,32 @@ function refetch_callback() {
}
}
+function backend_sanity_check_callback() {
+
+ if (xmlhttp.readyState == 4) {
+
+ if (!xmlhttp.responseXML) {
+ fatalError(3);
+ return;
+ }
+
+ var reply = xmlhttp.responseXML.firstChild;
+
+ if (!reply) {
+ fatalError(3);
+ return;
+ }
+
+ var error_code = reply.getAttribute("code");
+
+ if (error_code && error_code != 0) {
+ return fatalError(error_code);
+ }
+
+ init_second_stage();
+ }
+}
+
function updateFeed(feed_id) {
var query_str = "backend.php?op=rpc&subop=updateFeed&feed=" + feed_id;
@@ -297,7 +323,15 @@ function updateTitle(s) {
function genericSanityCheck() {
- if (!xmlhttp) {
+ if (!xmlhttp) fatalError(1);
+
+ setCookie("ttrss_vf_test", "TEST");
+
+ if (getCookie("ttrss_vf_test") != "TEST") {
+ fatalError(2);
+ }
+
+/* if (!xmlhttp) {
document.getElementById("headlines").innerHTML =
"<b>Fatal error:</b> This program requires XmlHttpRequest " +
"to function properly. Your browser doesn't seem to support it.";
@@ -312,7 +346,7 @@ function genericSanityCheck() {
"to function properly. Your browser doesn't seem to support them.";
return false;
- }
+ } */
return true;
}
@@ -324,14 +358,19 @@ function init() {
if (!genericSanityCheck())
return;
+ xmlhttp.open("GET", "backend.php?op=rpc&subop=sanityCheck", true);
+ xmlhttp.onreadystatechange=backend_sanity_check_callback;
+ xmlhttp.send(null);
+
+}
+
+function init_second_stage() {
+
setCookie("ttrss_vf_actfeed", "");
updateFeedList(false, false);
document.onkeydown = hotkey_handler;
- setTimeout("timeout()", 1800*1000);
- scheduleFeedUpdate(true);
-
var content = document.getElementById("content");
if (getCookie("ttrss_vf_vmode")) {
@@ -348,6 +387,10 @@ function init() {
// viewfeed(getCookie("ttrss_vf_actfeed"), 0, '');
// }
+ setTimeout("timeout()", 2*1000);
+// scheduleFeedUpdate(true);
+
+
}
function quickMenuGo() {
@@ -493,3 +536,5 @@ function toggleDispRead() {
}
}
+
+