[aur-dev] [PATCH] Add timestamp when a package is flagged out-of-date (FS#20848).

Lukas Fleischer archlinux at cryptocrack.de
Tue Oct 5 22:25:53 EDT 2010


Gnah, made a mistake with converting i8n files. This should hopefully
work :)

---
 UPGRADING                           |    6 ++++++
 support/schema/aur-schema.sql       |    3 +--
 web/html/pkgsubmit.php              |    2 +-
 web/lang/cs.po                      |    2 +-
 web/lang/de.po                      |    2 +-
 web/lang/el_GR.po                   |    2 +-
 web/lang/fr.po                      |    2 +-
 web/lang/he.po                      |    2 +-
 web/lang/hr.po                      |    2 +-
 web/lang/hu.po                      |    2 +-
 web/lang/it.po                      |    2 +-
 web/lang/nb_NO.po                   |    2 +-
 web/lang/pl.po                      |    2 +-
 web/lang/ro.po                      |    2 +-
 web/lang/ru.po                      |    2 +-
 web/lang/sr.po                      |    2 +-
 web/lang/tr.po                      |    2 +-
 web/lang/uk.po                      |    2 +-
 web/lang/zh_CN.po                   |    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 +-
 25 files changed, 40 insertions(+), 29 deletions(-)

diff --git a/UPGRADING b/UPGRADING
index 743f404..bbf60f0 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 250d405..93ec9a0 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 6f7a669..5ce945d 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/lang/cs.po b/web/lang/cs.po
index e430d05..214df00 100644
--- a/web/lang/cs.po
+++ b/web/lang/cs.po
@@ -15,7 +15,7 @@ global $_t;
 
 $_t["Search by"] = "Vyhledat dle";
 
-$_t["This package has been flagged out of date."] = "Balíček byl označen jako zastaralý.";
+$_t["This package has been flagged out of date"] = "Balíček byl označen jako zastaralý";
 
 $_t["Voted"] = "Hlasováno";
 
diff --git a/web/lang/de.po b/web/lang/de.po
index 929e6f8..bbaa16b 100644
--- a/web/lang/de.po
+++ b/web/lang/de.po
@@ -390,7 +390,7 @@ $_t["You are not allowed to access this area."] = "Es ist Dir nicht erlaubt, auf
 
 $_t["Unsafe"] = "Unsicher";
 
-$_t["This package has been flagged out of date."] = "Dieses Paket wurde als veraltet markiert.";
+$_t["This package has been flagged out of date"] = "Dieses Paket wurde als veraltet markiert";
 
 $_t["The above files have been verified (by %h%s%h) and are safe to use."] = "Die obigen Dateien wurden (von %h%s%h) als sicher markiert.";
 
diff --git a/web/lang/el_GR.po b/web/lang/el_GR.po
index 5f5c96c..4118c18 100644
--- a/web/lang/el_GR.po
+++ b/web/lang/el_GR.po
@@ -86,7 +86,7 @@ $_t["Unsupported packages are user produced content. Any use of the provided fil
 
 $_t["Search by"] = "Αναζήτηση κατά";
 
-$_t["This package has been flagged out of date."] = "Αυτό το πακέτο έχει χαρακτηριστεί παρωχημένο.";
+$_t["This package has been flagged out of date"] = "Αυτό το πακέτο έχει χαρακτηριστεί παρωχημένο";
 
 $_t["Voted"] = "Ψηφισμένο";
 
diff --git a/web/lang/fr.po b/web/lang/fr.po
index 5728947..947a826 100644
--- a/web/lang/fr.po
+++ b/web/lang/fr.po
@@ -405,7 +405,7 @@ $_t["Out of Date"] = "Périmé";
 
 $_t["Required by"] = "Requis par";
 
-$_t["This package has been flagged out of date."] = "Ce paquet a été marqué comme périmé.";
+$_t["This package has been flagged out of date"] = "Ce paquet a été marqué comme périmé";
 
 $_t["Toggle Notify"] = "Annoncer/Ne plus annoncer";
 
diff --git a/web/lang/he.po b/web/lang/he.po
index d5c19b7..ad0c558 100644
--- a/web/lang/he.po
+++ b/web/lang/he.po
@@ -14,7 +14,7 @@ global $_t;
 
 $_t["Confirm your e-mail address:"] = "אישור כתובת הדוא״ל שלך";
 
-$_t["This package has been flagged out of date."] = "החבילה מסומנת כלא עדכנית.";
+$_t["This package has been flagged out of date"] = "החבילה מסומנת כלא עדכנית";
 
 $_t["Missing a required field."] = "שדה הכרחי חסר.";
 
diff --git a/web/lang/hr.po b/web/lang/hr.po
index 93028b7..4d46fec 100644
--- a/web/lang/hr.po
+++ b/web/lang/hr.po
@@ -162,7 +162,7 @@ $_t["Description"] = "Opis";
 
 $_t["unknown"] = "nepoznato";
 
-$_t["This package has been flagged out of date."] = "Paket je obilježen kao zastarijeli.";
+$_t["This package has been flagged out of date"] = "Paket je obilježen kao zastarijeli";
 
 $_t["No New Comment Notification"] = "Nemoj me više obavještavati o novim komentarima";
 
diff --git a/web/lang/hu.po b/web/lang/hu.po
index e198ac3..54f3a12 100644
--- a/web/lang/hu.po
+++ b/web/lang/hu.po
@@ -6,7 +6,7 @@ global $_t;
 
 $_t["Search by"] = "Keresés eszerint";
 
-$_t["This package has been flagged out of date."] = "Ez a csomag elavultnak van jelölve.";
+$_t["This package has been flagged out of date"] = "Ez a csomag elavultnak van jelölve";
 
 $_t["Missing a required field."] = "Egy kötelező mező megadása hiányzik.";
 
diff --git a/web/lang/it.po b/web/lang/it.po
index 4bd0727..5876c45 100644
--- a/web/lang/it.po
+++ b/web/lang/it.po
@@ -411,7 +411,7 @@ $_t["Required by"] = "Richiesto da";
 
 $_t["The above files have been verified (by %h%s%h) and are safe to use."] = "I file sono stati verificati (da %h%s%h) ed il loro utilizzo è da considerarsi sicuro.";
 
-$_t["This package has been flagged out of date."] = "Questo pacchetto è stato contrassegnato come non aggiornato.";
+$_t["This package has been flagged out of date"] = "Questo pacchetto è stato contrassegnato come non aggiornato";
 
 $_t["Toggle Notify"] = "Rimuovi la notifica";
 
diff --git a/web/lang/nb_NO.po b/web/lang/nb_NO.po
index 687e639..1b8b20e 100644
--- a/web/lang/nb_NO.po
+++ b/web/lang/nb_NO.po
@@ -14,7 +14,7 @@ global $_t;
 
 $_t["Search by"] = "Søk etter";
 
-$_t["This package has been flagged out of date."] = "Denne pakken har blitt merket som utdatert.";
+$_t["This package has been flagged out of date"] = "Denne pakken har blitt merket som utdatert";
 
 $_t["Voted"] = "Stemmet";
 
diff --git a/web/lang/pl.po b/web/lang/pl.po
index 967ab36..e337bb1 100644
--- a/web/lang/pl.po
+++ b/web/lang/pl.po
@@ -367,7 +367,7 @@ $_t["unknown"] = "nieznana";
 
 $_t["Out of Date"] = "Nieaktualny";
 
-$_t["This package has been flagged out of date."] = "Ten pakiet został oznaczony jako nieaktualny.";
+$_t["This package has been flagged out of date"] = "Ten pakiet został oznaczony jako nieaktualny";
 
 $_t["Required by"] = "Wymagane przez";
 
diff --git a/web/lang/ro.po b/web/lang/ro.po
index 0118f24..3a41477 100644
--- a/web/lang/ro.po
+++ b/web/lang/ro.po
@@ -14,7 +14,7 @@ global $_t;
 
 $_t["Search by"] = "Caută după";
 
-$_t["This package has been flagged out of date."] = "Acest pachet a fost marcat ca Neactualizat.";
+$_t["This package has been flagged out of date"] = "Acest pachet a fost marcat ca Neactualizat";
 
 $_t["Voted"] = "Votat";
 
diff --git a/web/lang/ru.po b/web/lang/ru.po
index 2382b35..020f230 100644
--- a/web/lang/ru.po
+++ b/web/lang/ru.po
@@ -389,7 +389,7 @@ $_t["You are not allowed to access this area."] = "Доступ сюда вам
 
 $_t["Unsafe"] = "Небезопаный";
 
-$_t["This package has been flagged out of date."] = "Пакет отмечен как устаревший.";
+$_t["This package has been flagged out of date"] = "Пакет отмечен как устаревший";
 
 $_t["The above files have been verified (by %h%s%h) and are safe to use."] = "Файлы проверены %h%s%h и могут быть безопасно использованы.";
 
diff --git a/web/lang/sr.po b/web/lang/sr.po
index ddd54da..c743728 100644
--- a/web/lang/sr.po
+++ b/web/lang/sr.po
@@ -14,7 +14,7 @@ global $_t;
 
 $_t["Search by"] = "Pretražuje se";
 
-$_t["This package has been flagged out of date."] = "Paket je označen kao zastareo";
+$_t["This package has been flagged out of date"] = "Paket je označen kao zastareo";
 
 $_t["Missing a required field."] = "Nedostaje neophodno polje.";
 
diff --git a/web/lang/tr.po b/web/lang/tr.po
index 5d41840..df608ac 100644
--- a/web/lang/tr.po
+++ b/web/lang/tr.po
@@ -400,7 +400,7 @@ $_t["Required by"] = "İhtiyaç duyan";
 
 $_t["The above files have been verified (by %h%s%h) and are safe to use."] = "Yukarıdaki dosyalar doğrulandı (%h%s%h tarafından) ve kullanım için güvenli olarak işaretlendi.";
 
-$_t["This package has been flagged out of date."] = "Bu paket güncel değil olarak işaretlendi.";
+$_t["This package has been flagged out of date"] = "Bu paket güncel değil olarak işaretlendi";
 
 $_t["Toggle Notify"] = "Toggle Notify";
 
diff --git a/web/lang/uk.po b/web/lang/uk.po
index 007c30e..3023f78 100644
--- a/web/lang/uk.po
+++ b/web/lang/uk.po
@@ -170,7 +170,7 @@ $_t["Description"] = "Опис";
 
 $_t["unknown"] = "невідомо";
 
-$_t["This package has been flagged out of date."] = "Цьому пакунку призначено мітку Застарілий";
+$_t["This package has been flagged out of date"] = "Цьому пакунку призначено мітку Застарілий";
 
 $_t["No New Comment Notification"] = "Немає нових сповіщень про коментарі";
 
diff --git a/web/lang/zh_CN.po b/web/lang/zh_CN.po
index 19cc4f6..8f1f567 100644
--- a/web/lang/zh_CN.po
+++ b/web/lang/zh_CN.po
@@ -17,7 +17,7 @@ global $_t;
 
 $_t["Search by"] = "搜索";
 
-$_t["This package has been flagged out of date."] = "此包已被标记为过期。";
+$_t["This package has been flagged out of date"] = "此包已被标记为过期";
 
 $_t["Missing a required field."] = "缺少必填项。";
 
diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
index a5b3f9e..ab1bdbf 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 5605daa..0f45124 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 85c7e28..6a76558 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 d1559f5..41d8df9 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 "<input type='submit' class='button' name='do_Flag'";
     echo " value='".__("Flag Out-of-date")."'>\n";
 } else {
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index 9c76ab3..2c5b666 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) ? "(unknown)" : gmdate("r", intval($row["ModifiedTS"]));
 $submitted_time = ($row["SubmittedTS"] == 0) ? "(unknown)" : gmdate("r", intval($row["SubmittedTS"]));
+$out_of_date_time = ($row["OutOfDateTS"] == 0) ? "(unknown)" : gmdate("r", intval($row["OutOfDateTS"]));
 
 ?>
 <div class="pgbox">
@@ -69,8 +70,8 @@ $submitted_time = ($row["SubmittedTS"] == 0) ? "(unknown)" : gmdate("r", intval(
 			print "<a href='$urlpath.tar.gz'>".__("Tarball")."</a> :: <a href='$urlpath'>".__("Files")."</a> :: <a href='$urlpath/PKGBUILD'>PKGBUILD</a></span>";
 		}
 
-		if ($row["OutOfDate"] == 1) {
-			echo "<br /><span class='f6'>".__("This package has been flagged out of date.")."</span>";
+		if ($row["OutOfDateTS"] !== NULL) {
+			echo "<br /><span class='f6'>".__("This package has been flagged out of date")." (".$out_of_date_time.")</span>";
 		}
 ?>
 	</p>
diff --git a/web/template/pkg_search_results.php b/web/template/pkg_search_results.php
index ab49c6b..bf00da5 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;
 ?>
 <tr>
 	<?php if ($SID): ?>
-- 
1.7.3.1



More information about the aur-dev mailing list