mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
feat(applications): application page performance improvements EE-4956 (#8569)
This commit is contained in:
parent
01ea9afe33
commit
bdde278139
13 changed files with 239 additions and 9 deletions
|
@ -21,6 +21,8 @@ angular.module('portainer.docker').controller('KubernetesApplicationsDatatableCo
|
|||
this.state = Object.assign(this.state, {
|
||||
expandAll: false,
|
||||
expandedItems: [],
|
||||
namespace: '',
|
||||
namespaces: [],
|
||||
});
|
||||
|
||||
this.filters = {
|
||||
|
@ -70,6 +72,8 @@ angular.module('portainer.docker').controller('KubernetesApplicationsDatatableCo
|
|||
};
|
||||
|
||||
this.onSettingsShowSystemChange = function () {
|
||||
this.updateNamespace();
|
||||
this.setSystemResources(this.settings.showSystem);
|
||||
DatatableService.setDataTableSettings(this.tableKey, this.settings);
|
||||
};
|
||||
|
||||
|
@ -135,6 +139,43 @@ angular.module('portainer.docker').controller('KubernetesApplicationsDatatableCo
|
|||
this.filters.state.values = _.uniqBy(availableTypeFilters, 'type');
|
||||
};
|
||||
|
||||
this.onChangeNamespace = function () {
|
||||
this.onChangeNamespaceDropdown(this.state.namespace);
|
||||
};
|
||||
|
||||
this.updateNamespace = function () {
|
||||
if (this.namespaces) {
|
||||
const namespaces = [{ Name: 'All namespaces', Value: '', IsSystem: false }];
|
||||
this.namespaces.find((ns) => {
|
||||
if (!this.settings.showSystem && ns.IsSystem) {
|
||||
return false;
|
||||
}
|
||||
namespaces.push({ Name: ns.Name, Value: ns.Name, IsSystem: ns.IsSystem });
|
||||
});
|
||||
this.state.namespaces = namespaces;
|
||||
|
||||
if (this.state.namespace && !this.state.namespaces.find((ns) => ns.Name === this.state.namespace)) {
|
||||
if (this.state.namespaces.length > 1) {
|
||||
let defaultNS = this.state.namespaces.find((ns) => ns.Name === 'default');
|
||||
defaultNS = defaultNS || this.state.namespaces[1];
|
||||
this.state.namespace = defaultNS.Value;
|
||||
} else {
|
||||
this.state.namespace = this.state.namespaces[0].Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.$onChanges = function () {
|
||||
if (typeof this.isSystemResources !== 'undefined') {
|
||||
this.settings.showSystem = this.isSystemResources;
|
||||
DatatableService.setDataTableSettings(this.settingsKey, this.settings);
|
||||
}
|
||||
this.state.namespace = this.namespace;
|
||||
this.updateNamespace();
|
||||
this.prepareTableFromDataset();
|
||||
};
|
||||
|
||||
this.$onInit = function () {
|
||||
this.isAdmin = Authentication.isAdmin();
|
||||
this.KubernetesApplicationDeploymentTypes = KubernetesApplicationDeploymentTypes;
|
||||
|
@ -172,7 +213,16 @@ angular.module('portainer.docker').controller('KubernetesApplicationsDatatableCo
|
|||
if (storedSettings !== null) {
|
||||
this.settings = storedSettings;
|
||||
this.settings.open = false;
|
||||
|
||||
this.setSystemResources && this.setSystemResources(this.settings.showSystem);
|
||||
}
|
||||
|
||||
// Set the default selected namespace
|
||||
if (!this.state.namespace) {
|
||||
this.state.namespace = this.namespace;
|
||||
}
|
||||
|
||||
this.updateNamespace();
|
||||
this.onSettingsRepeaterChange();
|
||||
};
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue