summaryrefslogtreecommitdiffstats
path: root/web/html/pkgbase.php
diff options
context:
space:
mode:
Diffstat (limited to 'web/html/pkgbase.php')
-rw-r--r--web/html/pkgbase.php82
1 files changed, 81 insertions, 1 deletions
diff --git a/web/html/pkgbase.php b/web/html/pkgbase.php
index e0c9af69..42705edd 100644
--- a/web/html/pkgbase.php
+++ b/web/html/pkgbase.php
@@ -22,7 +22,7 @@ if (!isset($base_id) || !isset($pkgbase_name)) {
unset($base_id, $pkgbase_name);
}
- if ($base_id == 0 || $base_id == NULL || $pkgbase_name == NULL) {
+ if (isset($base_id) && ($base_id == 0 || $base_id == NULL || $pkgbase_name == NULL)) {
header("HTTP/1.0 404 Not Found");
include "./404.php";
return;
@@ -39,10 +39,90 @@ if (isset($_COOKIE["AURSID"])) {
$atype = "";
}
+/* Grab the list of package base IDs to be operated on. */
+$ids = array();
+if (isset($_POST['IDs'])) {
+ foreach ($_POST['IDs'] as $id => $i) {
+ $id = intval($id);
+ if ($id > 0) {
+ $ids[] = $id;
+ }
+ }
+}
+
+/* Perform package base actions. */
+$ret = false;
+$output = "";
+if (check_token()) {
+ if (current_action("do_Flag")) {
+ list($ret, $output) = pkg_flag($atype, $ids);
+ } elseif (current_action("do_UnFlag")) {
+ list($ret, $output) = pkg_unflag($atype, $ids);
+ } elseif (current_action("do_Adopt")) {
+ list($ret, $output) = pkg_adopt($atype, $ids, true);
+ } elseif (current_action("do_Disown")) {
+ list($ret, $output) = pkg_adopt($atype, $ids, false);
+ } elseif (current_action("do_Vote")) {
+ list($ret, $output) = pkg_vote($atype, $ids, true);
+ } elseif (current_action("do_UnVote")) {
+ list($ret, $output) = pkg_vote($atype, $ids, false);
+ } elseif (current_action("do_Delete")) {
+ if (isset($_POST['confirm_Delete'])) {
+ if (!isset($_POST['merge_Into']) || empty($_POST['merge_Into'])) {
+ list($ret, $output) = pkg_delete($atype, $ids, NULL);
+ unset($_GET['ID']);
+ }
+ else {
+ $merge_base_id = pkgbase_from_name($_POST['merge_Into']);
+ if ($merge_base_id) {
+ list($ret, $output) = pkg_delete($atype, $ids, $merge_base_id);
+ 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.");
+ }
+ } elseif (current_action("do_Notify")) {
+ list($ret, $output) = pkg_notify($atype, $ids);
+ } elseif (current_action("do_UnNotify")) {
+ list($ret, $output) = pkg_notify($atype, $ids, false);
+ } elseif (current_action("do_DeleteComment")) {
+ list($ret, $output) = pkg_delete_comment($atype);
+ } elseif (current_action("do_ChangeCategory")) {
+ list($ret, $output) = pkg_change_category($base_id, $atype);
+ }
+
+ if (isset($_REQUEST['comment'])) {
+ $uid = uid_from_sid($_COOKIE["AURSID"]);
+ add_package_comment($base_id, $uid, $_REQUEST['comment']);
+ $ret = true;
+ }
+
+ if ($ret) {
+ if (isset($base_id)) {
+ /* Redirect back to package base page on success. */
+ header('Location: ' . get_pkgbase_uri($pkgbase_name));
+ exit();
+ } else {
+ /* Redirect back to package search page. */
+ header('Location: ' . get_pkg_route());
+ exit();
+ }
+ }
+}
+
$details = get_pkgbase_details($base_id);
html_header($title, $details);
?>
+<?php if ($output): ?>
+<p class="pkgoutput"><?= $output ?></p>
+<?php endif; ?>
+
<?php
include('pkg_search_form.php');
if (isset($_COOKIE["AURSID"])) {