diff --git a/apps/jobbrowser/src/jobbrowser/templates/job_browser.mako b/apps/jobbrowser/src/jobbrowser/templates/job_browser.mako
index a3f4c19514..03e44649d8 100644
--- a/apps/jobbrowser/src/jobbrowser/templates/job_browser.mako
+++ b/apps/jobbrowser/src/jobbrowser/templates/job_browser.mako
@@ -492,7 +492,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
-
+
@@ -2452,7 +2452,6 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
-
@@ -2474,6 +2473,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
${_('lastModifiedTime')} |
+
+
+
+
+
+ |
+
+
+
@@ -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 {
@@ -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);
}
});
@@ -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');
}
@@ -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) {
@@ -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;