Revert "Bug 36217: Fix background jobs page's include_last_hour filter"
This reverts commit f5c8393480.
https://bugs.koha-community.org/show_bug.cgi?id=37905
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
This commit is contained in:
parent
9d8b6c6ab8
commit
ed0c5af59e
|
|
@ -72,20 +72,6 @@ sub filter_by_current {
|
|||
);
|
||||
}
|
||||
|
||||
=head3 filter_by_last_hour
|
||||
|
||||
my $current_jobs = $jobs->filter_by_last_hour;
|
||||
|
||||
Returns a new resultset, filtering out jobs that were enqueued more than an hour ago.
|
||||
|
||||
=cut
|
||||
|
||||
sub filter_by_last_hour {
|
||||
my ($self) = @_;
|
||||
|
||||
return $self->search( { enqueued_on => { '>', \"NOW() - INTERVAL 1 HOUR" } } );
|
||||
}
|
||||
|
||||
=head2 Internal methods
|
||||
|
||||
=head3 _type
|
||||
|
|
|
|||
|
|
@ -38,10 +38,8 @@ sub list {
|
|||
|
||||
return try {
|
||||
|
||||
my $only_current = $c->param('only_current');
|
||||
my $only_last_hour = $c->param('only_last_hour');
|
||||
my $only_current = $c->param('only_current');
|
||||
$c->req->params->remove('only_current');
|
||||
$c->req->params->remove('only_last_hour');
|
||||
|
||||
my $bj_rs = Koha::BackgroundJobs->new;
|
||||
|
||||
|
|
@ -49,10 +47,6 @@ sub list {
|
|||
$bj_rs = $bj_rs->filter_by_current;
|
||||
}
|
||||
|
||||
if ($only_last_hour) {
|
||||
$bj_rs = $bj_rs->filter_by_last_hour;
|
||||
}
|
||||
|
||||
return $c->render(
|
||||
status => 200,
|
||||
openapi => $c->objects->search($bj_rs)
|
||||
|
|
|
|||
|
|
@ -14,11 +14,6 @@
|
|||
required: false
|
||||
type: boolean
|
||||
description: Only include current jobs
|
||||
- name: only_last_hour
|
||||
in: query
|
||||
required: false
|
||||
type: boolean
|
||||
description: Only include jobs started in the last hour
|
||||
- $ref: "../swagger.yaml#/parameters/match"
|
||||
- $ref: "../swagger.yaml#/parameters/order_by"
|
||||
- $ref: "../swagger.yaml#/parameters/page"
|
||||
|
|
|
|||
|
|
@ -259,21 +259,29 @@
|
|||
$("#job_details").show();
|
||||
[% END %]
|
||||
|
||||
let query_filters = function(){
|
||||
if ( $("#only_current").is(":checked") && !$("#include_last_hour").is(":checked") ) {
|
||||
return 'only_current=1&only_last_hour=0';
|
||||
} else if ( $("#include_last_hour").is(":checked") && !$("#only_current").is(":checked")) {
|
||||
return 'only_current=0&only_last_hour=1';
|
||||
} else if ( $("#only_current").is(":checked") && $("#include_last_hour").is(":checked") ) {
|
||||
return 'only_current=1&only_last_hour=1';
|
||||
let additional_filters = {
|
||||
enqueued_on: function(){
|
||||
let now = new Date();
|
||||
if ( $("#include_last_hour").is(":checked") ) {
|
||||
now.setHours(now.getHours() - 1);
|
||||
return { ">": now.toISOString() };
|
||||
} else {
|
||||
return { "<": now.toISOString() };
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
let only_current_filter = function(){
|
||||
if ( $("#only_current").is(":checked") ) {
|
||||
return 'only_current=1';
|
||||
} else {
|
||||
return 'only_current=0&only_last_hour=0';
|
||||
return 'only_current=0';
|
||||
}
|
||||
}
|
||||
|
||||
let jobs_table = $("#table_jobs").kohaTable({
|
||||
"ajax": {
|
||||
"url": "/api/v1/jobs?" + query_filters(),
|
||||
"url": "/api/v1/jobs?" + only_current_filter()
|
||||
},
|
||||
"order": [[ 1, "desc" ]],
|
||||
"columns": [
|
||||
|
|
@ -342,10 +350,15 @@
|
|||
"orderable": false
|
||||
}
|
||||
]
|
||||
}, null, 1);
|
||||
}, null, 1, additional_filters);
|
||||
|
||||
$("#only_current, #include_last_hour").on("change", function(){
|
||||
jobs_table.DataTable().ajax.url("/api/v1/jobs?" + query_filters()).load();
|
||||
$("#include_last_hour").on("change", function(){
|
||||
jobs_table.DataTable().draw();
|
||||
return false;
|
||||
});
|
||||
|
||||
$("#only_current").on("change", function(){
|
||||
jobs_table.DataTable().ajax.url("/api/v1/jobs?" + only_current_filter()).load();
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 16;
|
||||
use Test::More tests => 14;
|
||||
use Test::MockModule;
|
||||
|
||||
use List::MoreUtils qw(any);
|
||||
|
|
@ -123,64 +123,6 @@ subtest 'filter_by_current() tests' => sub {
|
|||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'filter_by_last_hour() tests' => sub {
|
||||
|
||||
plan tests => 2;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
my $job_now =
|
||||
$builder->build_object( { class => 'Koha::BackgroundJobs', value => { enqueued_on => dt_from_string } } );
|
||||
my $job_old = $builder->build_object(
|
||||
{ class => 'Koha::BackgroundJobs', value => { enqueued_on => dt_from_string->subtract( hours => 2 ) } } );
|
||||
my $rs = Koha::BackgroundJobs->search( { id => [ $job_now->id, $job_old->id ] } );
|
||||
|
||||
is( $rs->count, 2, '2 jobs in resultset' );
|
||||
|
||||
$rs = $rs->filter_by_last_hour;
|
||||
|
||||
is( $rs->count, 1, 'Only 1 job in filtered resultset' );
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'filter_by_last_hour() and filter_by_current() tests' => sub {
|
||||
|
||||
plan tests => 3;
|
||||
|
||||
$schema->storage->txn_begin;
|
||||
|
||||
my $job_new_now = $builder->build_object(
|
||||
{ class => 'Koha::BackgroundJobs', value => { status => 'new', enqueued_on => dt_from_string } } );
|
||||
my $job_new_old = $builder->build_object(
|
||||
{
|
||||
class => 'Koha::BackgroundJobs',
|
||||
value => { status => 'new', enqueued_on => dt_from_string->subtract( hours => 2 ) }
|
||||
}
|
||||
);
|
||||
my $job_cancelled = $builder->build_object(
|
||||
{ class => 'Koha::BackgroundJobs', value => { status => 'cancelled', enqueued_on => dt_from_string } } );
|
||||
my $job_failed = $builder->build_object(
|
||||
{ class => 'Koha::BackgroundJobs', value => { status => 'failed', enqueued_on => dt_from_string } } );
|
||||
my $job_finished = $builder->build_object(
|
||||
{ class => 'Koha::BackgroundJobs', value => { status => 'finished', enqueued_on => dt_from_string } } );
|
||||
|
||||
my $rs = Koha::BackgroundJobs->search(
|
||||
{ id => [ $job_new_now->id, $job_new_old->id, $job_cancelled->id, $job_failed->id, $job_finished->id ] } );
|
||||
|
||||
is( $rs->count, 5, '5 jobs in resultset' );
|
||||
|
||||
$rs = $rs->filter_by_last_hour;
|
||||
|
||||
is( $rs->count, 4, '4 jobs in last hour' );
|
||||
|
||||
$rs = $rs->filter_by_current;
|
||||
|
||||
is( $rs->count, 1, 'Only 1 current job in last hour' );
|
||||
|
||||
$schema->storage->txn_rollback;
|
||||
};
|
||||
|
||||
subtest 'search_limited' => sub {
|
||||
plan tests => 3;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue