Store whether a package request is accepted or rejected and display the
reason of each closed request in the request list.

Signed-off-by: Lukas Fleischer <[email protected]>
---
 web/lib/pkgreqfuncs.inc.php     | 16 ++++++++++++----
 web/template/pkgreq_results.php | 12 ++++++++++--
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/web/lib/pkgreqfuncs.inc.php b/web/lib/pkgreqfuncs.inc.php
index 8266c67..53cf328 100644
--- a/web/lib/pkgreqfuncs.inc.php
+++ b/web/lib/pkgreqfuncs.inc.php
@@ -30,11 +30,11 @@ function pkgreq_list($offset, $limit) {
        $q.= "PackageRequests.MergeBaseName AS MergeInto, ";
        $q.= "RequestTypes.Name AS Type, PackageRequests.Comments, ";
        $q.= "Users.Username AS User, PackageRequests.RequestTS, ";
-       $q.= "PackageRequests.Status ";
+       $q.= "PackageRequests.Status, PackageRequests.Status = 0 AS Open ";
        $q.= "FROM PackageRequests INNER JOIN RequestTypes ON ";
        $q.= "RequestTypes.ID = PackageRequests.ReqTypeID ";
        $q.= "INNER JOIN Users ON Users.ID = PackageRequests.UsersID ";
-       $q.= "ORDER BY Status ASC, RequestTS DESC ";
+       $q.= "ORDER BY Open DESC, RequestTS DESC ";
        $q.= "LIMIT " . $limit . " OFFSET " . $offset;
 
        return $dbh->query($q)->fetchAll();
@@ -164,7 +164,14 @@ function pkgreq_close($id, $reason, $comments) {
        global $AUR_LOCATION;
        global $AUR_REQUEST_ML;
 
-       if ($reason != 'accepted' && $reason != 'rejected') {
+       switch ($reason) {
+       case 'accepted':
+               $status = 2;
+               break;
+       case 'rejected':
+               $status = 3;
+               break;
+       default:
                return array(false, __("Invalid reason."));
        }
 
@@ -175,7 +182,8 @@ function pkgreq_close($id, $reason, $comments) {
                return array(false, __("Only TUs and developers can close 
requests."));
        }
 
-       $q = "UPDATE PackageRequests SET Status = 1 WHERE ID = " . intval($id);
+       $q = "UPDATE PackageRequests SET Status = " . intval($status) . " ";
+       $q.= "WHERE ID = " . intval($id);
        $dbh->exec($q);
 
        /*
diff --git a/web/template/pkgreq_results.php b/web/template/pkgreq_results.php
index b5e1177..261a1f7 100644
--- a/web/template/pkgreq_results.php
+++ b/web/template/pkgreq_results.php
@@ -45,8 +45,8 @@
                        <td>
                        <a href="<?= get_uri('/account/') . 
htmlspecialchars($row['User'], ENT_QUOTES) ?>" title="<?= __('View account 
information for %s', htmlspecialchars($row['User'])) ?>"><?= 
htmlspecialchars($row['User']) ?></a>
                        </td>
-                       <td<?php if ($row['Status'] == 0 && time() - 
intval($row['RequestTS']) > $REQUEST_IDLE_TIME): ?> class="flagged"<?php endif; 
?>><?= gmdate("Y-m-d H:i", intval($row['RequestTS'])) ?></td>
-                       <?php if ($row['Status'] == 0): ?>
+                       <td<?php if ($row['Open'] && time() - 
intval($row['RequestTS']) > $REQUEST_IDLE_TIME): ?> class="flagged"<?php endif; 
?>><?= gmdate("Y-m-d H:i", intval($row['RequestTS'])) ?></td>
+                       <?php if ($row['Open']): ?>
                        <td>
                                <?php if ($row['BaseID']): ?>
                                <?php if ($row['Type'] == 'deletion'): ?>
@@ -66,7 +66,15 @@
                                <a href="<?= get_pkgreq_route() . '/' . 
intval($row['ID']) ?>/close/"><?= __('Close') ?></a>
                        </td>
                        <?php else: ?>
+                       <?php if ($row['Status'] == 1): ?>
                        <td><?= __("Closed") ?></td>
+                       <?php elseif ($row['Status'] == 2): ?>
+                       <td><?= __("Accepted") ?></td>
+                       <?php elseif ($row['Status'] == 3): ?>
+                       <td><?= __("Rejected") ?></td>
+                       <?php else: ?>
+                       <td><?= __("unknown") ?></td>
+                       <?php endif; ?>
                        <?php endif; ?>
                </tr>
                <?php endwhile; ?>
-- 
2.0.1

Reply via email to