Fixes FS#46545.

Signed-off-by: Lukas Fleischer <[email protected]>
---
 web/html/pkgflag.php | 40 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/web/html/pkgflag.php b/web/html/pkgflag.php
index b1ca03b..e6e7c64 100644
--- a/web/html/pkgflag.php
+++ b/web/html/pkgflag.php
@@ -8,6 +8,37 @@ include_once("pkgfuncs.inc.php");
 set_lang();
 check_sid();
 
+/* 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) = pkgbase_flag($ids, $_POST['comments']);
+       }
+
+       if ($ret) {
+               header('Location: ' . get_pkgbase_uri($pkgbase_name) . 
$fragment);
+               exit();
+       }
+}
+
+/* Get default comment. */
+$comment = '';
+if (isset($_POST['comments'])) {
+       $comment = $_POST['comments'];
+}
+
 html_header(__("Flag Package Out-Of-Date"));
 
 if (has_credential(CRED_PKGBASE_FLAG)): ?>
@@ -27,14 +58,19 @@ if (has_credential(CRED_PKGBASE_FLAG)): ?>
                        '<strong>', '</strong>'); ?>
                <?= __('Enter details on why the package is out-of-date below, 
preferably including links to the release announcement or the new release 
tarball.'); ?>
        </p>
-       <form action="<?= get_pkgbase_uri($pkgbase_name); ?>" method="post">
+
+       <?php if ($output && !$ret): ?>
+       <ul class="errorlist"><li><?= htmlspecialchars($output) ?></li></ul>
+       <?php endif; ?>
+
+       <form action="<?= get_pkgbase_uri($pkgbase_name); ?>flag/" 
method="post">
                <fieldset>
                        <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="id_comments"><?= __("Comments") 
?>:</label>
-                               <textarea name="comments" id="id_comments" 
rows="5" cols="50"></textarea>
+                               <textarea name="comments" id="id_comments" 
rows="5" cols="50"><?= htmlspecialchars($comment) ?></textarea>
                        </p>
                        <p><input type="submit" class="button" name="do_Flag" 
value="<?= __("Flag") ?>" /></p>
                </fieldset>
-- 
2.6.1

Reply via email to