diff --git a/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php b/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php index da456ffaa6..d6c61589f6 100644 --- a/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php +++ b/lib/Alchemy/Phrasea/Model/Repositories/WorkerRunningJobRepository.php @@ -379,7 +379,7 @@ class WorkerRunningJobRepository extends EntityRepository return count($qb->getQuery()->getResult()); } - public function findByFilter(array $status, $jobType, $databoxId, $recordId, $dateTimeFilter = null, $start = 0, $limit = WorkerRunningJob::MAX_RESULT) + public function findByFilter(array $status, $jobType, $databoxId, $recordId, $fieldTimeFilter, $dateTimeFilter = null, $start = 0, $limit = WorkerRunningJob::MAX_RESULT) { $rsm = new ResultSetMappingBuilder($this->_em); $rsm->addScalarResult('info', 'info'); @@ -421,8 +421,8 @@ class WorkerRunningJobRepository extends EntityRepository } if ($dateTimeFilter instanceof DateTime) { - // on published because the row is only created whe the job is started - $sql .= " AND w.published >= :dateTimeFilter"; + // published or created column + $sql .= " AND w." . $fieldTimeFilter . " >= :dateTimeFilter"; $params['dateTimeFilter'] = $dateTimeFilter->format('Y-m-d H:i:s'); } diff --git a/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php b/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php index bf16a8638e..ac28c1d84f 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Controller/AdminConfigurationController.php @@ -110,6 +110,7 @@ class AdminConfigurationController extends Controller $databoxId = empty($request->query->get('databoxId')) ? null : $request->query->get('databoxId'); $recordId = empty($request->query->get('recordId')) ? null : $request->query->get('recordId'); $timeFilter = empty($request->query->get('timeFilter')) ? null : $request->query->get('timeFilter'); + $fieldTimeFilter = $request->query->get('fieldTimeFilter'); $dateTimeFilter = null; if ($timeFilter != null) { @@ -136,7 +137,7 @@ class AdminConfigurationController extends Controller $helpers = new PhraseanetExtension($this->app); - $workerRunningJob = $repoWorker->findByFilter($filterStatus, $jobType, $databoxId, $recordId, $dateTimeFilter); + $workerRunningJob = $repoWorker->findByFilter($filterStatus, $jobType, $databoxId, $recordId, $fieldTimeFilter, $dateTimeFilter); $workerRunningJobTotalCount = $repoWorker->getJobCount($filterStatus, $jobType, $databoxId, $recordId); $workerRunningJobTotalCount = number_format($workerRunningJobTotalCount, 0, '.', ' '); $totalDuration = array_sum(array_column($workerRunningJob, 'duration')); diff --git a/templates/web/admin/worker-manager/worker_info.html.twig b/templates/web/admin/worker-manager/worker_info.html.twig index 7fc32acd86..2c934b81b9 100644 --- a/templates/web/admin/worker-manager/worker_info.html.twig +++ b/templates/web/admin/worker-manager/worker_info.html.twig @@ -53,7 +53,10 @@
- {{ 'job::tab time filter since' | trans }} + {{ '1h' | trans }}- {{ '3h' | trans }}- @@ -161,6 +164,7 @@ var databoxId = $("#databox-filter").val(); var recordId = $("#record-filter").val(); var timeFilter = $(".time-filter a.active").attr("data-value"); + var fieldTimeFilter = $("#field-time-filter").val(); if (!$(".running-work").is(":checked")) { @@ -186,7 +190,11 @@ jobType: jobType, databoxId : databoxId, recordId : recordId, - timeFilter: timeFilter + timeFilter: timeFilter, + fieldTimeFilter: fieldTimeFilter + }, + beforeSend: function () { + $(".work-list").empty().html('loading'); }, success: function (data) { $(".work-list").empty().html(data.content); @@ -217,6 +225,10 @@ refreshJobList(); }); + $("#field-time-filter").on('change', function () { + refreshJobList(); + }); + $(".time-filter a").on('click', function () { $(".time-filter a").removeClass('active'); $(this).addClass('active');