From 14d62d044f7203b96480b7ab42859b2b7585e6d4 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Mon, 13 Nov 2023 15:20:46 +0800 Subject: [PATCH] Make new page to view all Resq app job orders. #770 --- config/packages/catalyst_auth.yaml | 2 + config/packages/catalyst_menu.yaml | 4 + config/routes/resq_job_order.yaml | 14 ++ src/Controller/ResqJobOrderController.php | 61 ++++++-- templates/resq-job-order/list.all.html.twig | 151 ++++++++++++++++++++ translations/messages.en.yaml | 1 + 6 files changed, 224 insertions(+), 9 deletions(-) create mode 100644 templates/resq-job-order/list.all.html.twig diff --git a/config/packages/catalyst_auth.yaml b/config/packages/catalyst_auth.yaml index f4e5461a..dfaf31e0 100644 --- a/config/packages/catalyst_auth.yaml +++ b/config/packages/catalyst_auth.yaml @@ -277,6 +277,8 @@ catalyst_auth: label: Fulfill Cancelled JO - id: jo_resq_proc.list label: RESQ Dispatch + - id: jo_resq_all.list + label: RESQ All - id: support label: Customer Support Access diff --git a/config/packages/catalyst_menu.yaml b/config/packages/catalyst_menu.yaml index 98bce994..deb8c43f 100644 --- a/config/packages/catalyst_menu.yaml +++ b/config/packages/catalyst_menu.yaml @@ -168,6 +168,10 @@ catalyst_menu: acl: jo_hub.list label: '[menu.joborder.hubview]' parent: joborder + - id: jo_resq_all + acl: jo_resq_all.list + label: '[menu.joborder.resqall]' + parent: joborder - id: support acl: support.menu diff --git a/config/routes/resq_job_order.yaml b/config/routes/resq_job_order.yaml index 5c506621..0d1ea9ba 100644 --- a/config/routes/resq_job_order.yaml +++ b/config/routes/resq_job_order.yaml @@ -7,3 +7,17 @@ jo_resq_proc_rows: path: /resq-job-order/processing-rows controller: App\Controller\ResqJobOrderController::datatableRows methods: [POST] + defaults: + tier: "proc" + +jo_resq_all: + path: /resq-job-order/all + controller: App\Controller\ResqJobOrderController::listAll + methods: [GET] + +jo_resq_all_rows: + path: /resq-job-orer/all + controller: App\Controller\ResqJobOrderController::datatableRows + methods: [POST] + defaults: + tier: "all" diff --git a/src/Controller/ResqJobOrderController.php b/src/Controller/ResqJobOrderController.php index 8295077d..60b22537 100644 --- a/src/Controller/ResqJobOrderController.php +++ b/src/Controller/ResqJobOrderController.php @@ -39,7 +39,7 @@ class ResqJobOrderController extends Controller /** * @IsGranted("jo_resq_proc.list") */ - public function datatableRows(Request $req, JobOrderHandlerInterface $jo_handler) + public function datatableRows(Request $req, $tier, JobOrderHandlerInterface $jo_handler) { // get query builder $qb = $this->getDoctrine() @@ -52,7 +52,14 @@ class ResqJobOrderController extends Controller // count total records $tquery = $qb->select('COUNT(q)'); - $this->setQueryFilters($datatable, $tquery, $qb, JOStatus::PENDING, TransactionOrigin::MOBILE_APP); + // right now, tier is either proc or all + if ($tier == 'proc') + $this->setQueryFilters($datatable, $tquery, $qb, JOStatus::PENDING, TransactionOrigin::MOBILE_APP); + else + { + // default to all + $this->setQueryFilters($datatable, $tquery, $qb, null, TransactionOrigin::MOBILE_APP); + } $total = $tquery->getQuery() ->getSingleScalarResult(); @@ -76,7 +83,13 @@ class ResqJobOrderController extends Controller // build query $query = $qb->select('q'); - $this->setQueryFilters($datatable, $query, $qb, JOStatus::PENDING, TransactionOrigin::MOBILE_APP); + if ($tier == 'proc') + $this->setQueryFilters($datatable, $tquery, $qb, JOStatus::PENDING, TransactionOrigin::MOBILE_APP); + else + { + // default to all + $this->setQueryFilters($datatable, $tquery, $qb, null, TransactionOrigin::MOBILE_APP); + } // check if sorting is present, otherwise use default if (isset($datatable['sort']['field']) && !empty($datatable['sort']['field'])) { @@ -135,8 +148,18 @@ class ResqJobOrderController extends Controller // add the items for Actions $jo_id = $orow->getID(); - $row['meta']['update_url'] = $this->generateUrl('jo_proc_form', ['id' => $jo_id, 'origin' => 'resq']); - $row['meta']['unlock_url'] = $this->generateUrl('jo_proc_unlock', ['id' => $jo_id, 'origin' => 'resq']); + if ($tier == 'proc') + { + $row['meta']['update_url'] = $this->generateUrl('jo_proc_form', ['id' => $jo_id, 'origin' => 'resq']); + $row['meta']['unlock_url'] = $this->generateUrl('jo_proc_unlock', ['id' => $jo_id, 'origin' => 'resq']); + } + else + { + // default to all + $row['meta']['update_url'] = $this->generateUrl('jo_all_form', ['id' => $jo_id, 'origin' => 'resq']); + $row['meta']['pdf_url'] = $this->generateUrl('jo_pdf_form', ['id' => $jo_id, 'origin' => 'resq']); + $row['meta']['view_url'] = $this->generateUrl('jo_all_view_form',['id' => $jo_id, 'origin' => 'resq']); + } $rows[] = $row; } @@ -148,11 +171,31 @@ class ResqJobOrderController extends Controller ]); } + /** + * @Menu(selected="jo_resq_all") + * @IsGranted("jo_resq_all.list") + */ + public function listAll() + { + $params['table_refresh_rate'] = $this->container->getParameter('job_order_refresh_interval'); + + return $this->render('resq-job-order/list.all.html.twig', $params); + } + protected function setQueryFilters($datatable, &$query, $qb, $status, $source) { - $query->where('q.status = :status') - ->andWhere('q.source = :source') - ->setParameter('status', $status) - ->setParameter('source', $source); + if ($status != null) + { + $query->where('q.status = :status') + ->andWhere('q.source = :source') + ->setParameter('status', $status) + ->setParameter('source', $source); + } + else + { + // get all resq app job orders + $query->where('q.source = :source') + ->setParameter('source', $source); + } } } diff --git a/templates/resq-job-order/list.all.html.twig b/templates/resq-job-order/list.all.html.twig new file mode 100644 index 00000000..62a1fbe3 --- /dev/null +++ b/templates/resq-job-order/list.all.html.twig @@ -0,0 +1,151 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +
+
+
+

+ RESQ Job Orders (All) +

+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ + + + +
+
+
+
+
+
+ +
+ +
+
+
+
+
+{% endblock %} + +{% block scripts %} + +{% endblock %} diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml index 78080119..1cc4984f 100644 --- a/translations/messages.en.yaml +++ b/translations/messages.en.yaml @@ -126,6 +126,7 @@ menu.joborder.fulfillment: 'Fulfillment' menu.joborder.open: 'Open' menu.joborder.viewall: 'View All' menu.joborder.hubview: 'Hub View' +menu.joborder.resqall: 'RESQ All' menu.support: 'Support' menu.support.customers: 'Customers'