summaryrefslogtreecommitdiffstats
path: root/web/html
diff options
context:
space:
mode:
authorLukas Fleischer <archlinux@cryptocrack.de>2014-04-05 13:25:47 +0200
committerLukas Fleischer <archlinux@cryptocrack.de>2014-04-05 13:54:06 +0200
commitf4613442114b36d32e903b5b0608b73e32bdbc3f (patch)
treecf8fe2f3365d41ad94b1583443034846310735a7 /web/html
parentc1c77836a8b1e01f6a6f69d3cdd35321d5bf203e (diff)
downloadaur-f4613442114b36d32e903b5b0608b73e32bdbc3f.tar.gz
aur-f4613442114b36d32e903b5b0608b73e32bdbc3f.tar.xz
Move package actions to package bases
Package actions now operate on package bases instead of packages. Move all actions to the correct locations. This also fixes some issues with comment notifications. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Diffstat (limited to 'web/html')
-rw-r--r--web/html/index.php34
-rw-r--r--web/html/packages.php75
-rw-r--r--web/html/pkgbase.php82
-rw-r--r--web/html/pkgdel.php10
-rw-r--r--web/html/pkgmerge.php10
5 files changed, 108 insertions, 103 deletions
diff --git a/web/html/index.php b/web/html/index.php
index e79955ec..fe74857c 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -20,6 +20,22 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
include "./404.php";
return;
}
+ }
+
+ include get_route('/' . $tokens[1]);
+} elseif (!empty($tokens[1]) && '/' . $tokens[1] == get_pkgbase_route()) {
+ if (!empty($tokens[2])) {
+ /* TODO: Create a proper data structure to pass variables from
+ * the routing framework to the individual pages instead of
+ * initializing arbitrary variables here. */
+ $pkgbase_name = $tokens[2];
+ $base_id = pkgbase_from_name($pkgbase_name);
+
+ if (!$base_id) {
+ header("HTTP/1.0 404 Not Found");
+ include "./404.php";
+ return;
+ }
if (!empty($tokens[3])) {
/* TODO: Remove support for legacy URIs and move these
@@ -65,23 +81,7 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
return;
}
- $_POST['IDs'] = array(pkgid_from_name($tokens[2]) => '1');
- }
- }
-
- include get_route('/' . $tokens[1]);
-} elseif (!empty($tokens[1]) && '/' . $tokens[1] == get_pkgbase_route()) {
- if (!empty($tokens[2])) {
- /* TODO: Create a proper data structure to pass variables from
- * the routing framework to the individual pages instead of
- * initializing arbitrary variables here. */
- $pkgbase_name = $tokens[2];
- $base_id = pkgbase_from_name($pkgbase_name);
-
- if (!$base_id) {
- header("HTTP/1.0 404 Not Found");
- include "./404.php";
- return;
+ $_POST['IDs'] = array(pkgbase_from_name($tokens[2]) => '1');
}
}
diff --git a/web/html/packages.php b/web/html/packages.php
index d9c3a860..876e2c07 100644
--- a/web/html/packages.php
+++ b/web/html/packages.php
@@ -42,77 +42,6 @@ if (isset($_COOKIE["AURSID"])) {
$atype = "";
}
-# Grab the list of Package 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;
- }
- }
-}
-
-# Determine what action to do
-$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, pkgbase_from_pkgid($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, pkgbase_from_pkgid($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($pkgid, $atype);
- }
-
- if (isset($_REQUEST['comment'])) {
- $uid = uid_from_sid($_COOKIE["AURSID"]);
- add_package_comment($pkgid, $uid, $_REQUEST['comment']);
- $ret = true;
- }
-
- if ($ret) {
- /* Redirect back to package page on success. */
- header('Location: ' . get_pkg_uri($pkgname));
- exit();
- }
-}
-
-# Get package details after package actions have been attempted, FS#34508
$details = array();
if (isset($pkgname)) {
$details = get_package_details($pkgid);
@@ -121,10 +50,6 @@ if (isset($pkgname)) {
html_header($title, $details);
?>
-<?php if ($output): ?>
- <p class="pkgoutput"><?= $output ?></p>
-<?php endif; ?>
-
<?php
if (isset($pkgid)) {
include('pkg_search_form.php');
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"])) {
diff --git a/web/html/pkgdel.php b/web/html/pkgdel.php
index 7f244eb4..d1026ce4 100644
--- a/web/html/pkgdel.php
+++ b/web/html/pkgdel.php
@@ -18,17 +18,17 @@ if (isset($_COOKIE["AURSID"])) {
if ($atype == "Trusted User" || $atype == "Developer"): ?>
<div class="box">
- <h2><?= __('Delete Package: %s', htmlspecialchars($pkgname)) ?></h2>
+ <h2><?= __('Delete Package: %s', htmlspecialchars($pkgbase_name)) ?></h2>
<p>
<?= __('Use this form to delete the package (%s%s%s) from the AUR. ',
- '<strong>', htmlspecialchars($pkgname), '</strong>'); ?>
+ '<strong>', htmlspecialchars($pkgbase_name), '</strong>'); ?>
<?= __('Deletion of a package is permanent. '); ?>
<?= __('Select the checkbox to confirm action.') ?>
</p>
- <form action="<?= get_uri('/packages/'); ?>" method="post">
+ <form action="<?= get_uri('/pkgbase/'); ?>" method="post">
<fieldset>
- <input type="hidden" name="IDs[<?= $pkgid ?>]" value="1" />
- <input type="hidden" name="ID" value="<?= $pkgid ?>" />
+ <input type="hidden" name="IDs[<?= $base_id ?>]" value="1" />
+ <input type="hidden" name="ID" value="<?= $base_id ?>" />
<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
<p><input type="checkbox" name="confirm_Delete" value="1" />
<?= __("Confirm package deletion") ?></p>
diff --git a/web/html/pkgmerge.php b/web/html/pkgmerge.php
index 834d0c91..9ffd5e74 100644
--- a/web/html/pkgmerge.php
+++ b/web/html/pkgmerge.php
@@ -18,18 +18,18 @@ if (isset($_COOKIE["AURSID"])) {
if ($atype == "Trusted User" || $atype == "Developer"): ?>
<div class="box">
- <h2><?= __('Merge Package: %s', htmlspecialchars($pkgname)) ?></h2>
+ <h2><?= __('Merge Package: %s', htmlspecialchars($pkgbase_name)) ?></h2>
<p>
<?= __('Use this form to merge the package (%s%s%s) into another package. ',
- '<strong>', htmlspecialchars($pkgname), '</strong>'); ?>
+ '<strong>', htmlspecialchars($pkgbase_name), '</strong>'); ?>
<?= __('Once the package has been merged it cannot be reversed. '); ?>
<?= __('Enter the package name you wish to merge the package into. '); ?>
<?= __('Select the checkbox to confirm action.') ?>
</p>
- <form action="<?= get_uri('/packages/'); ?>" method="post">
+ <form action="<?= get_uri('/pkgbase/'); ?>" method="post">
<fieldset>
- <input type="hidden" name="IDs[<?= $pkgid ?>]" value="1" />
- <input type="hidden" name="ID" value="<?= $pkgid ?>" />
+ <input type="hidden" name="IDs[<?= $base_id ?>]" value="1" />
+ <input type="hidden" name="ID" value="<?= $base_id ?>" />
<input type="hidden" name="token" value="<?= htmlspecialchars($_COOKIE['AURSID']) ?>" />
<p><label for="merge_Into" ><?= __("Merge into:") ?></label>
<input type="text" id="merge_Into" name="merge_Into" /></p>