diff options
author | Lukas Fleischer <archlinux@cryptocrack.de> | 2011-07-31 19:05:01 +0200 |
---|---|---|
committer | Lukas Fleischer <archlinux@cryptocrack.de> | 2011-08-11 16:17:07 +0200 |
commit | 87bdee60bcca219ad13ea9bd14cd5611f9dac4c6 (patch) | |
tree | affd61d4f68723c9fbf076f83e609dbe1c674a8b | |
parent | f481645e64145d2a0eca54af156bd7c175abfcb0 (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>
-rw-r--r-- | web/html/packages.php | 16 | ||||
-rw-r--r-- | web/template/actions_form.php | 2 | ||||
-rw-r--r-- | web/template/pkg_search_results.php | 2 |
3 files changed, 18 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."); diff --git a/web/template/actions_form.php b/web/template/actions_form.php index 058002f..68d83d7 100644 --- a/web/template/actions_form.php +++ b/web/template/actions_form.php @@ -54,6 +54,8 @@ if ($atype == "Trusted User" || $atype == "Developer") { echo "<input type='submit' class='button' name='do_Delete'"; echo " value='".__("Delete Packages")."' />\n"; + echo "<label for='merge_Into'>".__("Merge into")."</label>\n"; + echo "<input type='text' id='merge_Into' name='merge_Into' /> "; 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 d32b6c4..e576e6e 100644 --- a/web/template/pkg_search_results.php +++ b/web/template/pkg_search_results.php @@ -110,6 +110,8 @@ for ($i = 0; $row = mysql_fetch_assoc($result); $i++) { <option value='do_UnNotify'><?php print __("UnNotify") ?></option> </select> <?php if ($atype == "Trusted User" || $atype == "Developer"): ?> + <label for='merge_Into'><?php print __("Merge into") ?></label> + <input type='text' id='merge_Into' name='merge_Into' /> <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") ?>' /> |