Quellcode durchsuchen

misc updater tweaks

Andrew Dolgov vor 17 Jahren
Ursprung
Commit
b4c27af79a
5 geänderte Dateien mit 118 neuen und 93 gelöschten Zeilen
  1. 1 1
      db-prefs.php
  2. 1 1
      errors.php
  3. 5 4
      functions.js
  4. 9 0
      tt-rss.css
  5. 102 87
      update.php

+ 1 - 1
db-prefs.php

@@ -7,7 +7,7 @@
 			$_SESSION["prefs_cache"] = array();
 	}
 
-	function get_pref($link, $pref_name, $user_id = false, $die_on_error = true) {
+	function get_pref($link, $pref_name, $user_id = false, $die_on_error = false) {
 
 		$pref_name = db_escape_string($pref_name);
 

+ 1 - 1
errors.php

@@ -11,7 +11,7 @@
 
 	$ERRORS[4] = _("Frontend sanity check failed.");
 
-	$ERRORS[5] = _("Incorrect database schema version. <a href='update.php'>Please update</a>.");
+	$ERRORS[5] = _("Incorrect database schema version. &lt;a href='update.php'&gt;Please update&lt;/a&gt;.");
 
 	$ERRORS[6] = _("Request not authorized.");
 

+ 5 - 4
functions.js

@@ -1526,16 +1526,17 @@ function storeInitParams(params, is_client) {
 function fatalError(code, message) {
 	try {	
 
-		if (code != 6) {
-
+		if (code == 6) {
+			window.location.href = "login.php?rt=none";			
+		} else if (code == 5) {
+			window.location.href = "update.php";
+		} else {
 			var fe = document.getElementById("fatal_error");
 			var fc = document.getElementById("fatal_error_msg");
 	
 			fc.innerHTML = "Code " + code + ": " + message;
 	
 			fe.style.display = "block";
-		} else {
-			window.location.href = "login.php?rt=none";			
 		}
 
 	} catch (e) {

+ 9 - 0
tt-rss.css

@@ -1061,6 +1061,15 @@ a.cdmToggleLink:hover {
 	font-weight : normal;
 }
 
+#fatal_error_msg a {
+	color : red;
+}
+
+#fatal_error_msg a:hover {
+	color : red;
+	text-decoration : underline;
+}
+
 #noDaemonWarning {	
 	position : absolute;
 	background-color : #ecf4ff;		  

+ 102 - 87
update.php

@@ -1,139 +1,154 @@
 <?php
-	require_once "sessions.php";
+require_once "sessions.php";
 
-	require_once "sanity_check.php";
-	require_once "functions.php";
-	require_once "config.php";
-	require_once "db.php";
+require_once "sanity_check.php";
+require_once "functions.php";
+require_once "config.php";
+require_once "db.php";
 
-	$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);	
+$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);	
 
-	if (DB_TYPE == "pgsql") {
-		pg_query($link, "set client_encoding = 'utf-8'");
-		pg_set_client_encoding("UNICODE");
-	}
+if (DB_TYPE == "pgsql") {
+	pg_query($link, "set client_encoding = 'utf-8'");
+	pg_set_client_encoding("UNICODE");
+}
 
-	login_sequence($link);
+login_sequence($link);
 
-	$owner_uid = $_SESSION["uid"];
+$owner_uid = $_SESSION["uid"];
 
-	if ($_SESSION["access_level"] < 10) { 
-		header("Location: login.php"); die;
-	}
+if ($_SESSION["access_level"] < 10) { 
+	header("Location: login.php"); die;
+}
 
-	define('SCHEMA_VERSION', 13);
+define('SCHEMA_VERSION', 13);
 
 ?>
 
 <html>
 <head>
-	<title>Database Updater</title>
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-	<link rel="stylesheet" type="text/css" href="update.css">
+<title>Database Updater</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="update.css">
 </head>
 
 <body>
 
+<script type='text/javascript'>
+function confirmOP() {
+	return confirm("Update the database?");
+}
+</script>
+
 <h1>Database Updater</h1>
 
 <?php
-	function getline($fp, $delim) {
-	   $result = "";
-	   while(!feof($fp)) {
-			$tmp = fgetc($fp);
+function getline($fp, $delim) {
+	$result = "";
+	while(!feof($fp)) {
+		$tmp = fgetc($fp);
 
-			if($tmp == $delim) {
-				return $result;
-			}
-			$result .= $tmp;
+		if($tmp == $delim) {
+			return $result;
 		}
-		return $result;
+		$result .= $tmp;
 	}
+	return $result;
+}
 
-	$op = $_REQUEST["op"];
-	
-	$result = db_query($link, "SELECT schema_version FROM ttrss_version");
-	$version = db_fetch_result($result, 0, "schema_version");
+$op = $_POST["op"];
 
-	$update_files = glob("schema/versions/".DB_TYPE."/*sql");
-	$update_versions = array();
+$result = db_query($link, "SELECT schema_version FROM ttrss_version");
+$version = db_fetch_result($result, 0, "schema_version");
 
-	foreach ($update_files as $f) {
-		$m = array();
-		preg_match_all("/schema\/versions\/".DB_TYPE."\/(\d*)\.sql/", $f, $m,
-			PREG_PATTERN_ORDER);
+$update_files = glob("schema/versions/".DB_TYPE."/*sql");
+$update_versions = array();
 
-		if ($m[1][0]) {
-			$update_versions[$m[1][0]] = $f;
-		}
+foreach ($update_files as $f) {
+	$m = array();
+	preg_match_all("/schema\/versions\/".DB_TYPE."\/(\d*)\.sql/", $f, $m,
+		PREG_PATTERN_ORDER);
+
+	if ($m[1][0]) {
+		$update_versions[$m[1][0]] = $f;
 	}
+}
 
-	ksort($update_versions, SORT_NUMERIC);
+ksort($update_versions, SORT_NUMERIC);
 
-	$latest_version = max(array_keys($update_versions));
+$latest_version = max(array_keys($update_versions));
 
-	if ($version == $latest_version) {
-		print "Database schema is up to date (version $version).";
-		return;
-	}
+if ($version == $latest_version) {
+	print "<p>Tiny Tiny RSS database is up to date (version $version).</p>";
+	print "<p><a href='tt-rss.php'>Return to Tiny Tiny RSS</a></p>";
+	return;
+}
 
-	if (!$op) {
-		print "<p class='warning'><b>Warning:</b> Please backup your database before proceeding.</p>";
+if (!$op) {
+	print "<p class='warning'><b>Warning:</b> Please backup your database before proceeding.</p>";
 
-		print "<p>Your database schema version is $version. Latest version is ".
-			"$latest_version.</p>";
+	print "<p>Your Tiny Tiny RSS database needs update to the latest 
+		version ($version &mdash;&gt; $latest_version).</p>";
 
-		print "<p>Available incremental updates:";
+/*		print "<p>Available incremental updates:";
 
-		foreach (array_keys($update_versions) as $v) {
-			if ($v > $version) {
-				print " <a href='$update_versions[$v]'>$v</a>";
-			}
+	foreach (array_keys($update_versions) as $v) {
+		if ($v > $version) {
+			print " <a href='$update_versions[$v]'>$v</a>";
 		}
+	} */
+
+	print "</p>";
 
-		print "</p>";
-		print "<a href='update.php?op=do'>Click here to perform updates.</a>";
+	print "<form method='POST'>
+		<input type='hidden' name='op' value='do'>
+		<input type='submit' onclick='return confirmOP()' value='Perform updates'>
+		</form>";
 
-	} else if ($op == "do") {
+} else if ($op == "do") {
 
-		print "<p>Performing updates (version: $version)...</p>";
+	print "<p>Performing updates (from version $version)...</p>";
 
-		$num_updates = 0;
+	$num_updates = 0;
 
-		foreach (array_keys($update_versions) as $v) {
-			if ($v == $version + 1) {
-				print "<p>Updating to version $v...</p>";
-				$fp = fopen($update_versions[$v], "r");
-				if ($fp) {
-					while (!feof($fp)) {
-						$query = trim(getline($fp, ";"));
-						if ($query != "") {
-							print "<p class='query'><b>QUERY:</b> $query</p>";
-							db_query($link, $query);
-						}
+	foreach (array_keys($update_versions) as $v) {
+		if ($v == $version + 1) {
+			print "<p>Updating to version $v...</p>";
+			$fp = fopen($update_versions[$v], "r");
+			if ($fp) {
+				while (!feof($fp)) {
+					$query = trim(getline($fp, ";"));
+					if ($query != "") {
+						print "<p class='query'><b>QUERY:</b> $query</p>";
+						db_query($link, $query);
 					}
 				}
-				fclose($fp);
-
-				print "<p>Checking version... ";
+			}
+			fclose($fp);
 
-				$result = db_query($link, "SELECT schema_version FROM ttrss_version");
-				$version = db_fetch_result($result, 0, "schema_version");
+			print "<p>Checking version... ";
 
-				if ($version == $v) {
-					print "OK!";
-				} else {
-					print "<b>ERROR!</b>";
-					return;
-				}
+			$result = db_query($link, "SELECT schema_version FROM ttrss_version");
+			$version = db_fetch_result($result, 0, "schema_version");
 
-				$num_updates++;
+			if ($version == $v) {
+				print "OK! ($version)";
+			} else {
+				print "<b>ERROR!</b>";
+				return;
 			}
-		}
 
-		print "<p>Finished. Performed $num_updates updates up to schema
-			version $version.</p>";
+			$num_updates++;
+		}
 	}
+
+	print "<p>Finished. Performed $num_updates updates up to schema
+		version $version.</p>";
+
+	print "<p><a href='tt-rss.php'>Return to Tiny Tiny RSS</a></p>";
+
+}
+
 ?>