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>
This commit is contained in:
Lukas Fleischer 2011-07-31 19:05:01 +02:00
parent f481645e64
commit 87bdee60bc
3 changed files with 18 additions and 2 deletions

View file

@ -50,8 +50,20 @@ if (current_action("do_Flag")) {
$output = pkg_vote($atype, $ids, False); $output = pkg_vote($atype, $ids, False);
} elseif (current_action("do_Delete")) { } elseif (current_action("do_Delete")) {
if (isset($_POST['confirm_Delete'])) { if (isset($_POST['confirm_Delete'])) {
$output = pkg_delete($atype, $ids); if (!isset($_POST['merge_Into']) || empty($_POST['merge_Into'])) {
unset($_GET['ID']); $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 { else {
$output = __("The selected packages have not been deleted, check the confirmation checkbox."); $output = __("The selected packages have not been deleted, check the confirmation checkbox.");

View file

@ -54,6 +54,8 @@
if ($atype == "Trusted User" || $atype == "Developer") { if ($atype == "Trusted User" || $atype == "Developer") {
echo "<input type='submit' class='button' name='do_Delete'"; echo "<input type='submit' class='button' name='do_Delete'";
echo " value='".__("Delete Packages")."' />\n"; 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 "<input type='checkbox' name='confirm_Delete' value='1' /> ";
echo __("Confirm")."\n"; echo __("Confirm")."\n";
} }

View file

@ -110,6 +110,8 @@ for ($i = 0; $row = mysql_fetch_assoc($result); $i++) {
<option value='do_UnNotify'><?php print __("UnNotify") ?></option> <option value='do_UnNotify'><?php print __("UnNotify") ?></option>
</select> </select>
<?php if ($atype == "Trusted User" || $atype == "Developer"): ?> <?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") ?> <input type='checkbox' name='confirm_Delete' value='1' /> <?php print __("Confirm") ?>
<?php endif; ?> <?php endif; ?>
<input type='submit' class='button' style='width: 80px' value='<?php print __("Go") ?>' /> <input type='submit' class='button' style='width: 80px' value='<?php print __("Go") ?>' />