PHRAS-3750 select time filter (#4160)

This commit is contained in:
Aina Sitraka
2022-10-25 20:29:02 +03:00
committed by GitHub
parent c8e575c1e7
commit b9c445ca2c
3 changed files with 19 additions and 6 deletions

View File

@@ -379,7 +379,7 @@ class WorkerRunningJobRepository extends EntityRepository
return count($qb->getQuery()->getResult()); 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 = new ResultSetMappingBuilder($this->_em);
$rsm->addScalarResult('info', 'info'); $rsm->addScalarResult('info', 'info');
@@ -421,8 +421,8 @@ class WorkerRunningJobRepository extends EntityRepository
} }
if ($dateTimeFilter instanceof DateTime) { if ($dateTimeFilter instanceof DateTime) {
// on published because the row is only created whe the job is started // published or created column
$sql .= " AND w.published >= :dateTimeFilter"; $sql .= " AND w." . $fieldTimeFilter . " >= :dateTimeFilter";
$params['dateTimeFilter'] = $dateTimeFilter->format('Y-m-d H:i:s'); $params['dateTimeFilter'] = $dateTimeFilter->format('Y-m-d H:i:s');
} }

View File

@@ -110,6 +110,7 @@ class AdminConfigurationController extends Controller
$databoxId = empty($request->query->get('databoxId')) ? null : $request->query->get('databoxId'); $databoxId = empty($request->query->get('databoxId')) ? null : $request->query->get('databoxId');
$recordId = empty($request->query->get('recordId')) ? null : $request->query->get('recordId'); $recordId = empty($request->query->get('recordId')) ? null : $request->query->get('recordId');
$timeFilter = empty($request->query->get('timeFilter')) ? null : $request->query->get('timeFilter'); $timeFilter = empty($request->query->get('timeFilter')) ? null : $request->query->get('timeFilter');
$fieldTimeFilter = $request->query->get('fieldTimeFilter');
$dateTimeFilter = null; $dateTimeFilter = null;
if ($timeFilter != null) { if ($timeFilter != null) {
@@ -136,7 +137,7 @@ class AdminConfigurationController extends Controller
$helpers = new PhraseanetExtension($this->app); $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 = $repoWorker->getJobCount($filterStatus, $jobType, $databoxId, $recordId);
$workerRunningJobTotalCount = number_format($workerRunningJobTotalCount, 0, '.', ' '); $workerRunningJobTotalCount = number_format($workerRunningJobTotalCount, 0, '.', ' ');
$totalDuration = array_sum(array_column($workerRunningJob, 'duration')); $totalDuration = array_sum(array_column($workerRunningJob, 'duration'));

View File

@@ -53,7 +53,10 @@
<input type="number" id="record-filter" placeholder="recordId" style="margin-bottom: 0px;margin-left: 30px;"> <input type="number" id="record-filter" placeholder="recordId" style="margin-bottom: 0px;margin-left: 30px;">
<div class="pull-right" style="display:inline-block;"> <div class="pull-right" style="display:inline-block;">
<span>{{ 'job::tab time filter since' | trans }}</span> <select id="field-time-filter" style="margin-left: 30px;max-width:150px;">
<option value="created">{{ 'started since' | trans }}</option>
<option value="published">{{ 'created since' | trans }}</option>
</select>
<span class="time-filter"> <span class="time-filter">
<a data-value="PT1H">{{ '1h' | trans }}</a>- <a data-value="PT1H">{{ '1h' | trans }}</a>-
<a data-value="PT3H">{{ '3h' | trans }}</a>- <a data-value="PT3H">{{ '3h' | trans }}</a>-
@@ -161,6 +164,7 @@
var databoxId = $("#databox-filter").val(); var databoxId = $("#databox-filter").val();
var recordId = $("#record-filter").val(); var recordId = $("#record-filter").val();
var timeFilter = $(".time-filter a.active").attr("data-value"); var timeFilter = $(".time-filter a.active").attr("data-value");
var fieldTimeFilter = $("#field-time-filter").val();
if (!$(".running-work").is(":checked")) if (!$(".running-work").is(":checked"))
{ {
@@ -186,7 +190,11 @@
jobType: jobType, jobType: jobType,
databoxId : databoxId, databoxId : databoxId,
recordId : recordId, recordId : recordId,
timeFilter: timeFilter timeFilter: timeFilter,
fieldTimeFilter: fieldTimeFilter
},
beforeSend: function () {
$(".work-list").empty().html('<img src="/assets/common/images/icons/main-loader.gif" alt="loading"/>');
}, },
success: function (data) { success: function (data) {
$(".work-list").empty().html(data.content); $(".work-list").empty().html(data.content);
@@ -217,6 +225,10 @@
refreshJobList(); refreshJobList();
}); });
$("#field-time-filter").on('change', function () {
refreshJobList();
});
$(".time-filter a").on('click', function () { $(".time-filter a").on('click', function () {
$(".time-filter a").removeClass('active'); $(".time-filter a").removeClass('active');
$(this).addClass('active'); $(this).addClass('active');