Skip to content

Commit

Permalink
[jb] Fix broken pagination in the Job Browser schedules tasks table
Browse files Browse the repository at this point in the history
  • Loading branch information
JohanAhlen committed Jul 10, 2023
1 parent d193a45 commit fe26fd2
Showing 1 changed file with 22 additions and 14 deletions.
36 changes: 22 additions & 14 deletions apps/jobbrowser/src/jobbrowser/templates/job_browser.mako
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
<!-- /ko -->
<!-- /ko -->
<!-- ko if: $root.job() && $root.job().hasPagination() && interface() === 'schedules' -->
<!-- ko if: $root.job() && !$root.job().forceUpdatingJob() && $root.job().hasPagination() && interface() === 'schedules' -->
<div data-bind="template: { name: 'pagination${ SUFFIX }', data: $root.job() }, visible: !jobs.loadingJobs()"></div>
<!-- /ko -->
<div data-bind="template: { name: 'pagination${ SUFFIX }', data: $root.jobs }, visible: !$root.job() && !jobs.loadingJobs()"></div>
Expand Down Expand Up @@ -2452,7 +2452,6 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
<div class="inline-block" data-bind="text: name, toggle: checked"></div>
</label>
</span>
<!-- ko hueSpinner: { spin: applyingFilters, inline: true } --><!-- /ko -->
<!-- /ko -->
<!-- /ko -->
<div data-bind="template: { name: 'job-actions${ SUFFIX }' }" class="pull-right"></div>
Expand All @@ -2474,6 +2473,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
<th>${_('lastModifiedTime')}</th>
</tr>
</thead>
<!-- ko if: !$root.job().forceUpdatingJob() -->
<tbody data-bind="foreach: apps">
<tr class="status-border pointer" data-bind="
css: {
Expand All @@ -2499,6 +2499,14 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
<td data-bind="text: properties.lastModifiedTime"></td>
</tr>
</tbody>
<!-- /ko -->
<!-- ko if: $root.job().forceUpdatingJob() -->
<tbody>
<tr>
<td colspan="11"><!-- ko hueSpinner: { spin: true, inline: true, size: 'large' } --><!-- /ko --></td>
</tr>
</tbody>
<!-- /ko -->
</table>
<!-- /ko -->
</div>
Expand Down Expand Up @@ -2810,9 +2818,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
self.paginationPage = ko.observable(1);
self.paginationOffset = ko.observable(1); // Starting index
self.paginationResultPage = ko.observable(50);
self.totalApps = ko.observable(null);
self.totalApps = ko.observable(job.properties && job.properties.total_actions || 0);
self.hasPagination = ko.computed(function() {
return ['workflows', 'schedules', 'bundles'].indexOf(vm.interface()) != -1;
return self.totalApps() && ['workflows', 'schedules', 'bundles'].indexOf(vm.interface()) !== -1;
});
self.pagination = ko.pureComputed(function() {
return {
Expand All @@ -2822,11 +2830,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
};
});
self.pagination.subscribe(function(value) {
if (vm.interface() === 'schedules' && value.page > 1) {
vm.interface('schedules');
self.hasPagination(true);
self.fetchJob();
self.pagination.subscribe(function() {
if (vm.interface() === 'schedules') {
self.updateJob(false, true);
}
});
Expand Down Expand Up @@ -2967,13 +2973,10 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
{'types': ko.mapping.toJS(self.typesFilter())},
];
});
self.applyingFilters = ko.observable(false);
self.forceUpdatingJob = ko.observable(false);
self.filters.subscribe(function () {
if (self.type() === 'schedule') {
self.applyingFilters(true);
self.updateJob(false, true).always(function () {
self.applyingFilters(false);
});
self.updateJob(false, true);
} else {
self.fetchProfile('tasks');
}
Expand Down Expand Up @@ -3268,6 +3271,9 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
var deferred = $.Deferred();
if (vm.job() == self && (self.apiStatus() == 'RUNNING' || forceUpdate)) {
vm.apiHelper.cancelActiveRequest(lastUpdateJobRequest);
if (forceUpdate) {
self.forceUpdatingJob(true);
}
lastUpdateJobRequest = self._fetchJob(function (data) {
var requests = [];
if (['schedule', 'workflow'].indexOf(vm.job().type()) >= 0) {
Expand Down Expand Up @@ -3304,6 +3310,8 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
$.when.apply(this, requests).done(function (){
deferred.resolve();
});
}).always(function () {
self.forceUpdatingJob(false);
});
}
return deferred;
Expand Down

0 comments on commit fe26fd2

Please sign in to comment.