From f4613442114b36d32e903b5b0608b73e32bdbc3f Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sat, 5 Apr 2014 13:25:47 +0200 Subject: 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 --- web/html/index.php | 34 ++++++++++----------- web/html/packages.php | 75 ---------------------------------------------- web/html/pkgbase.php | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++- web/html/pkgdel.php | 10 +++---- web/html/pkgmerge.php | 10 +++---- 5 files changed, 108 insertions(+), 103 deletions(-) (limited to 'web/html') diff --git a/web/html/index.php b/web/html/index.php index e79955e..fe74857 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 d9c3a86..876e2c0 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); ?> - -

- - $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); ?> + +

+ +
-

+

', htmlspecialchars($pkgname), ''); ?> + '', htmlspecialchars($pkgbase_name), ''); ?>

-
+
- - + +

diff --git a/web/html/pkgmerge.php b/web/html/pkgmerge.php index 834d0c9..9ffd5e7 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"): ?>
-

+

', htmlspecialchars($pkgname), ''); ?> + '', htmlspecialchars($pkgbase_name), ''); ?>

- +
- - + +

-- cgit v1.2.3-54-g00ecf