summaryrefslogtreecommitdiffstats
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
parentf481645e64145d2a0eca54af156bd7c175abfcb0 (diff)
downloadaur-87bdee60bcca219ad13ea9bd14cd5611f9dac4c6.tar.gz
aur-87bdee60bcca219ad13ea9bd14cd5611f9dac4c6.tar.xz
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.php16
-rw-r--r--web/template/actions_form.php2
-rw-r--r--web/template/pkg_search_results.php2
3 files changed, 18 insertions, 2 deletions
diff --git a/web/html/packages.php b/web/html/packages.php
index 4a1fa881..4e68151d 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 058002f8..68d83d73 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 d32b6c4a..e576e6e3 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") ?>' />