From eda713032ce9bed773b6c927b2f6ac4b445fe577 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 6 Oct 2010 04:25:53 +0200 Subject: Add timestamp when a package is flagged out-of-date (FS#20848). Signed-off-by: Loui Chang - resolve conflict and omit i18n changes. --- UPGRADING | 6 ++++++ support/schema/aur-schema.sql | 3 +-- web/html/pkgsubmit.php | 2 +- web/lib/aurjson.class.php | 2 +- web/lib/pkgfuncs.inc | 13 +++++++++---- web/lib/stats.inc | 2 +- web/template/actions_form.php | 2 +- web/template/pkg_details.php | 5 +++-- web/template/pkg_search_results.php | 2 +- 9 files changed, 24 insertions(+), 13 deletions(-) diff --git a/UPGRADING b/UPGRADING index 743f4042..bbf60f08 100644 --- a/UPGRADING +++ b/UPGRADING @@ -1,6 +1,12 @@ Upgrading ========= +From 1.7.0 to 1.8.0 +------------------- +ALTER TABLE Packages ADD OutOfDateTS BIGINT UNSIGNED NULL DEFAULT NULL; +UPDATE Packages SET OutOfDateTS = UNIX_TIMESTAMP() WHERE OutOfDate = 1; +ALTER TABLE Packages DROP OutOfDate; + From 1.6.0 to 1.7.0 ------------------- ALTER TABLE Users ADD Salt CHAR(32) NOT NULL DEFAULT ''; diff --git a/support/schema/aur-schema.sql b/support/schema/aur-schema.sql index 250d4058..93ec9a06 100644 --- a/support/schema/aur-schema.sql +++ b/support/schema/aur-schema.sql @@ -119,7 +119,7 @@ CREATE TABLE Packages ( License CHAR(40) NOT NULL DEFAULT '', LocationID TINYINT UNSIGNED NOT NULL DEFAULT 1, NumVotes INTEGER UNSIGNED NOT NULL DEFAULT 0, - OutOfDate TINYINT UNSIGNED DEFAULT 0, + OutOfDateTS BIGINT UNSIGNED NULL DEFAULT NULL, SubmittedTS BIGINT UNSIGNED NOT NULL, ModifiedTS BIGINT UNSIGNED NOT NULL, SubmitterUID INTEGER UNSIGNED NOT NULL DEFAULT 0, -- who submitted it? @@ -130,7 +130,6 @@ CREATE TABLE Packages ( INDEX (CategoryID), INDEX (LocationID), INDEX (DummyPkg), - INDEX (OutOfDate), INDEX (NumVotes), INDEX (SubmitterUID), INDEX (MaintainerUID), diff --git a/web/html/pkgsubmit.php b/web/html/pkgsubmit.php index 6f7a6697..5ce945dc 100644 --- a/web/html/pkgsubmit.php +++ b/web/html/pkgsubmit.php @@ -313,7 +313,7 @@ if ($_COOKIE["AURSID"]): } # Update package data - $q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s-%s', License = '%s', Description = '%s', URL = '%s', LocationID = 2, FSPath = '%s', URLPath = '%s', OutOfDate = 0 WHERE ID = %d", + $q = sprintf("UPDATE Packages SET ModifiedTS = UNIX_TIMESTAMP(), Name = '%s', Version = '%s-%s', License = '%s', Description = '%s', URL = '%s', LocationID = 2, FSPath = '%s', URLPath = '%s', OutOfDateTS = NULL WHERE ID = %d", mysql_real_escape_string($new_pkgbuild['pkgname']), mysql_real_escape_string($new_pkgbuild['pkgver']), mysql_real_escape_string($new_pkgbuild['pkgrel']), diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php index a5b3f9e0..ab1bdbf2 100644 --- a/web/lib/aurjson.class.php +++ b/web/lib/aurjson.class.php @@ -21,7 +21,7 @@ class AurJSON { private $exposed_methods = array('search','info','msearch'); private $fields = array('Packages.ID','Name','Version','CategoryID', 'Description', 'LocationID', 'URL','URLPath','License','NumVotes', - 'OutOfDate'); + '(OutOfDateTS IS NOT NULL) AS OutOfDate'); /** * Handles post data, and routes the request. diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc index 5605daa5..0f45124d 100644 --- a/web/lib/pkgfuncs.inc +++ b/web/lib/pkgfuncs.inc @@ -457,7 +457,7 @@ function pkg_search_page($SID="") { PackageCategories.Category, PackageLocations.Location, Packages.Name, Packages.Version, Packages.Description, Packages.NumVotes, - Packages.ID, Packages.OutOfDate + Packages.ID, Packages.OutOfDateTS FROM Packages LEFT JOIN Users ON (Packages.MaintainerUID = Users.ID) "; @@ -510,7 +510,7 @@ function pkg_search_page($SID="") { } if (isset($_GET['outdated'])) { - $q .= "AND OutOfDate = 1 "; + $q .= "AND OutOfDateTS IS NOT NULL "; } $order = $_GET["SO"] == 'd' ? 'DESC' : 'ASC'; @@ -642,8 +642,13 @@ function pkg_flag ($atype, $ids, $action = True) { } } - $ood = $action ? 1 : 0; - $q = "UPDATE Packages SET OutOfDate = " . $ood; + $q = "UPDATE Packages SET"; + if ($action) { + $q.= " OutOfDateTS = UNIX_TIMESTAMP()"; + } + else { + $q.= " OutOfDateTS = NULL"; + } $q.= " WHERE ID IN (" . $flag . ")"; db_query($q, $dbh); diff --git a/web/lib/stats.inc b/web/lib/stats.inc index 85c7e28e..6a765581 100644 --- a/web/lib/stats.inc +++ b/web/lib/stats.inc @@ -59,7 +59,7 @@ function user_table($user, $dbh) $maintainer_unsupported_count = db_cache_value(sprintf($base_q, 'unsupported'), $dbh, $apc_prefix . 'user_unsupported_count:' . $escuser); - $q = "SELECT count(*) FROM Packages,Users WHERE Packages.OutOfDate = 1 AND Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'"; + $q = "SELECT count(*) FROM Packages,Users WHERE Packages.OutOfDateTS IS NOT NULL AND Packages.MaintainerUID = Users.ID AND Users.Username='" . $escuser . "'"; $flagged_outdated = db_cache_value($q, $dbh, $apc_prefix . 'user_flagged_outdated:' . $escuser); diff --git a/web/template/actions_form.php b/web/template/actions_form.php index d1559f57..41d8df9b 100644 --- a/web/template/actions_form.php +++ b/web/template/actions_form.php @@ -27,7 +27,7 @@ echo " value='".__("UnNotify")."' title='".__("No New Comment Notification")."'> "; } -if ($row["OutOfDate"] == 0) { +if ($row["OutOfDateTS"] === NULL) { echo "\n"; } else { diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php index 30d17e17..a4b8f954 100644 --- a/web/template/pkg_details.php +++ b/web/template/pkg_details.php @@ -35,6 +35,7 @@ $license = empty($row['License']) ? $msg : $row['License']; # Print the timestamps for last updates $updated_time = ($row["ModifiedTS"] == 0) ? $msg : gmdate("r", intval($row["ModifiedTS"])); $submitted_time = ($row["SubmittedTS"] == 0) ? $msg : gmdate("r", intval($row["SubmittedTS"])); +$out_of_date_time = ($row["OutOfDateTS"] == 0) ? $msg : gmdate("r", intval($row["OutOfDateTS"])); ?>
@@ -69,8 +70,8 @@ $submitted_time = ($row["SubmittedTS"] == 0) ? $msg : gmdate("r", intval($row["S print "".__("Tarball")." :: ".__("Files")." :: PKGBUILD"; } - if ($row["OutOfDate"] == 1) { - echo "
".__("This package has been flagged out of date.").""; + if ($row["OutOfDateTS"] !== NULL) { + echo "
".__("This package has been flagged out of date.")." (${out_of_date_time})"; } ?>

diff --git a/web/template/pkg_search_results.php b/web/template/pkg_search_results.php index ab49c6b9..bf00da5a 100644 --- a/web/template/pkg_search_results.php +++ b/web/template/pkg_search_results.php @@ -46,7 +46,7 @@ $atype = account_from_sid($_COOKIE['AURSID']); for ($i = 0; $row = mysql_fetch_assoc($result); $i++) { (($i % 2) == 0) ? $c = "data1" : $c = "data2"; - if ($row["OutOfDate"]): $c = "outofdate"; endif; + if ($row["OutOfDateTS"] !== NULL): $c = "outofdate"; endif; ?> -- cgit v1.2.3-24-g4f1b