[aur-dev] [PATCH] Confirmation when deleting packages

Lukas Fleischer archlinux at cryptocrack.de
Fri Jun 25 11:24:24 EDT 2010


This patch adds a confirmation checkbox for package deletion
(non-Javascript solution). Fixes FS#6515 [1].

[1] http://bugs.archlinux.org/task/6515
-------------- next part --------------
>From 1011c4643e681793377267002e32ea33f9cf9382 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <archlinux at cryptocrack.de>
Date: Fri, 25 Jun 2010 17:16:05 +0200
Subject: [PATCH] Confirmation when deleting packages

---
 web/html/packages.php               |    9 +++++++--
 web/lib/pkgfuncs.inc                |    2 +-
 web/template/actions_form.php       |    2 ++
 web/template/pkg_search_results.php |    3 +++
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/web/html/packages.php b/web/html/packages.php
index 2553590..472f6a2 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -46,8 +46,13 @@ if ($_POST['action'] == "do_Flag" || isset($_POST['do_Flag'])) {
 } elseif ($_POST['action'] == "do_UnVote" || isset($_POST['do_UnVote'])) {
 	$output = pkg_vote($atype, $ids, False);
 } elseif ($_POST['action'] == "do_Delete" || isset($_POST['do_Delete'])) {
-	$output = pkg_delete($atype, $ids);
-	unset($_GET['ID']);
+	if (isset($_POST['confirm_Delete'])) {
+		$output = pkg_delete($atype, $ids);
+		unset($_GET['ID']);
+	}
+	else {
+		$output = __("The selected packages have not been deleted, check the confirmation checkbox.");
+	}
 } elseif ($_POST['action'] == "do_Notify" || isset($_POST['do_Notify'])) {
 	$output = pkg_notify($atype, $ids);
 } elseif ($_POST['action'] == "do_UnNotify" || isset($_POST['do_UnNotify'])) {
diff --git a/web/lib/pkgfuncs.inc b/web/lib/pkgfuncs.inc
index 43a7a6f..5605daa 100644
--- a/web/lib/pkgfuncs.inc
+++ b/web/lib/pkgfuncs.inc
@@ -402,7 +402,7 @@ function package_details($id=0, $SID="") {
  *                     do_UnFlag - Remove out-of-date flag
  *                     do_Adopt  - Adopt
  *                     do_Disown - Disown
- *                     do_Delete - Delete
+ *                     do_Delete - Delete (requires confirm_Delete to be set)
  *                     do_Notify - Enable notification
  *                     do_UnNotify - Disable notification
  */
diff --git a/web/template/actions_form.php b/web/template/actions_form.php
index de77645..d1559f5 100644
--- a/web/template/actions_form.php
+++ b/web/template/actions_form.php
@@ -47,6 +47,8 @@ if ($row["MaintainerUID"] == 0) {
 		if ($atype == "Trusted User" || $atype == "Developer") {
 			echo "<input type='submit' class='button' name='do_Delete'";
 			echo " value='".__("Delete Packages")."'>\n";
+			echo "<input type='checkbox' name='confirm_Delete' value='1' /> ";
+			echo __("Confirm")."\n";
 		}
 ?>
 				
diff --git a/web/template/pkg_search_results.php b/web/template/pkg_search_results.php
index 364a352..bb898df 100644
--- a/web/template/pkg_search_results.php
+++ b/web/template/pkg_search_results.php
@@ -108,6 +108,9 @@ for ($i = 0; $row = mysql_fetch_assoc($result); $i++) {
 			<option value='do_Notify'><?php print __("Notify") ?></option>
 			<option value='do_UnNotify'><?php print __("UnNotify") ?></option>
 		</select>
+		<?php if ($atype == "Trusted User" || $atype == "Developer"): ?>
+		<input type='checkbox' name='confirm_Delete' value='1' /> <?php print __("Confirm") ?>
+		<?php endif; ?>
 		<input type='submit' class='button' style='width: 80px' value='<?php print __("Go") ?>' />
 	</div>
 	<?php endif; ?>
-- 
1.7.1



More information about the aur-dev mailing list