From 0709aeed842fd3e4711f65a5bf1cc7ecddff62f6 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Sat, 4 Jun 2022 01:09:42 -0700 Subject: [PATCH] civicrm/queue/monitor - Add skeletal page for monitoring status --- CRM/Queue/Menu.php | 9 +++++ CRM/Queue/Page/Monitor.php | 51 ++++++++++++++++++++++++++++ templates/CRM/Queue/Page/Monitor.tpl | 3 ++ 3 files changed, 63 insertions(+) create mode 100644 CRM/Queue/Page/Monitor.php create mode 100644 templates/CRM/Queue/Page/Monitor.tpl diff --git a/CRM/Queue/Menu.php b/CRM/Queue/Menu.php index b3883e569d..c33e0e11e9 100644 --- a/CRM/Queue/Menu.php +++ b/CRM/Queue/Menu.php @@ -65,6 +65,15 @@ class CRM_Queue_Menu { $menuPath['access_callback'] = ['CRM_Core_Permission', 'checkMenu']; break; + case 'civicrm/queue/monitor': + // Not supported: case 'civicrm/upgrade/queue/monitor': + $menuPath['path'] = $path; + $menuPath['title'] = 'Queue Monitor'; + $menuPath['page_callback'] = 'CRM_Queue_Page_Monitor'; + $menuPath['access_arguments'][0][] = 'access CiviCRM'; + $menuPath['access_callback'] = ['CRM_Core_Permission', 'checkMenu']; + break; + default: // unrecognized } diff --git a/CRM/Queue/Page/Monitor.php b/CRM/Queue/Page/Monitor.php new file mode 100644 index 0000000000..d0ea387ed8 --- /dev/null +++ b/CRM/Queue/Page/Monitor.php @@ -0,0 +1,51 @@ +addWhere('name', '=', $queueName)->execute()->first(); + + if (!$queue) { + header("HTTP/1.0 404 Not found or not visible"); + CRM_Utils_System::civiExit(); + return; + } + + // If this queue was created for a user-job, then use the title. + $userJob = \Civi\Api4\UserJob::get()->addWhere('queue_id.name', '=', $queueName)->execute()->first(); + $runnerOptions = $userJob['metadata']['runner'] ?? []; + + Civi::service('angularjs.loader')->addModules('crmQueueMonitor'); + CRM_Utils_System::setTitle($runnerOptions['title'] ?? ts('Queue Monitor "%1"', [ + 1 => htmlentities($queueName), + ])); + $this->assign('queueNameJS', CRM_Utils_JS::encode($queueName)); + parent::run(); + } + +} diff --git a/templates/CRM/Queue/Page/Monitor.tpl b/templates/CRM/Queue/Page/Monitor.tpl new file mode 100644 index 0000000000..aa53bce232 --- /dev/null +++ b/templates/CRM/Queue/Page/Monitor.tpl @@ -0,0 +1,3 @@ + + + -- 2.25.1