mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
proper select-all option for NamespaceSelect (#2084)
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
ad6de71826
commit
b514e5c833
@ -70,6 +70,7 @@ export class KubeWatchApi {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: optimize - check when all namespaces are selected and then request all in one
|
||||||
if (api.isNamespaced && !this.cluster.isGlobalWatchEnabled) {
|
if (api.isNamespaced && !this.cluster.isGlobalWatchEnabled) {
|
||||||
return this.namespaces.map(namespace => api.getWatchUrl(namespace));
|
return this.namespaces.map(namespace => api.getWatchUrl(namespace));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,10 +85,9 @@ export class NamespaceSelectFilter extends React.Component {
|
|||||||
const namespaces = namespaceStore.getContextNamespaces();
|
const namespaces = namespaceStore.getContextNamespaces();
|
||||||
|
|
||||||
switch (namespaces.length) {
|
switch (namespaces.length) {
|
||||||
|
case 0:
|
||||||
case namespaceStore.allowedNamespaces.length:
|
case namespaceStore.allowedNamespaces.length:
|
||||||
return <>All namespaces</>;
|
return <>All namespaces</>;
|
||||||
case 0:
|
|
||||||
return <>Select a namespace</>;
|
|
||||||
case 1:
|
case 1:
|
||||||
return <>Namespace: {namespaces[0]}</>;
|
return <>Namespace: {namespaces[0]}</>;
|
||||||
default:
|
default:
|
||||||
@ -116,7 +115,7 @@ export class NamespaceSelectFilter extends React.Component {
|
|||||||
if (namespace) {
|
if (namespace) {
|
||||||
namespaceStore.toggleContext(namespace);
|
namespaceStore.toggleContext(namespace);
|
||||||
} else {
|
} else {
|
||||||
namespaceStore.toggleAll(); // "All namespaces" option clicked
|
namespaceStore.resetContext(); // "All namespaces" clicked, empty list considered as "all"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -103,8 +103,20 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public getContextNamespaces(): string[] {
|
getContextNamespaces(): string[] {
|
||||||
return Array.from(this.contextNs);
|
const namespaces = Array.from(this.contextNs);
|
||||||
|
|
||||||
|
// show all namespaces when nothing selected
|
||||||
|
if (!namespaces.length) {
|
||||||
|
// return actual namespaces list since "allowedNamespaces" updating every 30s in cluster and thus might be stale
|
||||||
|
if (this.isLoaded) {
|
||||||
|
return this.items.map(namespace => namespace.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.allowedNamespaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
return namespaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
getSubscribeApis() {
|
getSubscribeApis() {
|
||||||
@ -139,6 +151,11 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
|
|||||||
this.contextNs.replace(namespaces);
|
this.contextNs.replace(namespaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@action
|
||||||
|
resetContext() {
|
||||||
|
this.contextNs.clear();
|
||||||
|
}
|
||||||
|
|
||||||
hasContext(namespaces: string | string[]) {
|
hasContext(namespaces: string | string[]) {
|
||||||
return [namespaces].flat().every(namespace => this.contextNs.has(namespace));
|
return [namespaces].flat().every(namespace => this.contextNs.has(namespace));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user