summaryrefslogtreecommitdiff
path: root/web/html/packages.php
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2011-07-31 19:05:01 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2011-08-11 16:17:07 +0200
commit87bdee60bcca219ad13ea9bd14cd5611f9dac4c6 (patch)
treeaffd61d4f68723c9fbf076f83e609dbe1c674a8b /web/html/packages.php
parentf481645e64145d2a0eca54af156bd7c175abfcb0 (diff)
Allow for merging deleted packages into existing ones
Merge all comments and votes of deleted packages into another package if the "Merge with" field is used. Duplicate votes (votes from a user who already voted on the target package or voted on more than one of the deleted packages) are discarded. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'web/html/packages.php')
-rw-r--r--web/html/packages.php16
1 files changed, 14 insertions, 2 deletions
diff --git a/web/html/packages.php b/web/html/packages.php
index 4a1fa88..4e68151 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -50,8 +50,20 @@ if (current_action("do_Flag")) {
$output = pkg_vote($atype, $ids, False);
} elseif (current_action("do_Delete")) {
if (isset($_POST['confirm_Delete'])) {
- $output = pkg_delete($atype, $ids);
- unset($_GET['ID']);
+ if (!isset($_POST['merge_Into']) || empty($_POST['merge_Into'])) {
+ $output = pkg_delete($atype, $ids, NULL);
+ unset($_GET['ID']);
+ }
+ else {
+ $mergepkgid = pkgid_from_name($_POST['merge_Into']);
+ if ($mergepkgid) {
+ $output = pkg_delete($atype, $ids, $mergepkgid);
+ unset($_GET['ID']);
+ }
+ else {
+ $output = __("Cannot find package to merge votes and comments into.");
+ }
+ }
}
else {
$output = __("The selected packages have not been deleted, check the confirmation checkbox.");