fix(docker/services): get datas from local storage when auto refresh is enable

pull/4766/head
alice groux 2021-01-27 16:10:49 +01:00
parent 36fbaa9026
commit 51d584bb50
3 changed files with 25 additions and 12 deletions

View File

@ -24,10 +24,6 @@ angular.module('portainer.docker').controller('ServicesDatatableController', [
}
};
this.onSettingsRepeaterChange = function () {
DatatableService.setDataTableSettings(this.tableKey, this.settings);
};
this.expandItem = function (item, expanded) {
item.Expanded = expanded;
if (item.Expanded) {
@ -70,6 +66,13 @@ angular.module('portainer.docker').controller('ServicesDatatableController', [
}
};
this.onDataRefresh = function () {
var storedExpandedItems = DatatableService.getDataTableExpandedItems(this.tableKey);
if (storedExpandedItems !== null) {
this.expandItems(storedExpandedItems);
}
};
this.$onInit = function () {
this.setDefaults();
this.prepareTableFromDataset();

View File

@ -13,12 +13,13 @@ angular.module('portainer.docker').controller('ServicesController', [
function getServices() {
var agentProxy = $scope.applicationState.endpoint.mode.agentProxy;
$q.all({
services: ServiceService.services(),
tasks: TaskService.tasks(),
containers: agentProxy ? ContainerService.containers(1) : [],
nodes: NodeService.nodes(),
})
return $q
.all({
services: ServiceService.services(),
tasks: TaskService.tasks(),
containers: agentProxy ? ContainerService.containers(1) : [],
nodes: NodeService.nodes(),
})
.then(function success(data) {
var services = data.services;
var tasks = data.tasks;

View File

@ -183,8 +183,9 @@ angular.module('portainer.app').controller('GenericDatatableController', [
};
this.startRepeater = function () {
this.repeater = $interval(() => {
this.refreshCallback();
this.repeater = $interval(async () => {
await this.refreshCallback();
this.onDataRefresh();
}, this.settings.repeater.refreshRate * 1000);
};
@ -197,6 +198,14 @@ angular.module('portainer.app').controller('GenericDatatableController', [
}
DatatableService.setDataTableSettings(this.tableKey, this.settings);
};
/**
* Override this method to execute code after calling the refresh callback
*/
this.onDataRefresh = function () {
return;
};
/**
* !REPEATER SECTION
*/