Skip to content

Commit c14c00e

Browse files
committed
frontend: component: Add helm secrets filter switch
1 parent 61c1d2d commit c14c00e

File tree

14 files changed

+90
-1
lines changed

14 files changed

+90
-1
lines changed

frontend/src/components/secret/List.tsx

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,63 @@
1414
* limitations under the License.
1515
*/
1616

17+
import { FormControlLabel, Switch } from '@mui/material';
18+
import React from 'react';
1719
import { useTranslation } from 'react-i18next';
1820
import Secret from '../../lib/k8s/secret';
21+
import { useNamespaces } from '../../redux/filterSlice';
22+
import { CreateResourceButton } from '../common';
1923
import ResourceListView from '../common/Resource/ResourceListView';
2024

2125
export default function SecretList() {
26+
const SECRET_LIST_HELM_SECRET_HIDE_STORAGE_KEY = 'SECRET_LIST_HELM_SECRET_HIDE_STORAGE_KEY';
27+
const SECRET_LIST_HELM_SECRET_HIDE_DEFAULT = true;
2228
const { t } = useTranslation(['glossary', 'translation']);
29+
const storedHideHelm = localStorage.getItem(SECRET_LIST_HELM_SECRET_HIDE_STORAGE_KEY);
30+
const [hideHelm, setHideHelm] = React.useState<boolean>(
31+
JSON.parse(storedHideHelm || SECRET_LIST_HELM_SECRET_HIDE_DEFAULT.toString())
32+
);
33+
34+
const [secrets, error] = Secret.useList({ namespace: useNamespaces() });
35+
36+
const filteredSecrets = React.useMemo(() => {
37+
if (!secrets) {
38+
return null;
39+
}
40+
return hideHelm ? secrets.filter(secret => secret.type !== 'helm.sh/release.v1') : secrets;
41+
}, [secrets, hideHelm]);
2342

2443
return (
2544
<ResourceListView
45+
id="headlamp-secrets"
2646
title={t('Secrets')}
27-
resourceClass={Secret}
47+
data={filteredSecrets}
48+
errorMessage={Secret.getErrorMessage(error)}
49+
headerProps={{
50+
noNamespaceFilter: false,
51+
titleSideActions: [
52+
<CreateResourceButton key="create-button" resourceClass={Secret} />,
53+
<FormControlLabel
54+
key="helm-switch"
55+
checked={hideHelm}
56+
control={
57+
<Switch
58+
checked={hideHelm}
59+
onChange={(e, checked) => {
60+
localStorage.setItem(
61+
SECRET_LIST_HELM_SECRET_HIDE_STORAGE_KEY,
62+
checked.toString()
63+
);
64+
setHideHelm(checked);
65+
}}
66+
color="primary"
67+
/>
68+
}
69+
label={t('translation|Hide Helm Secrets')}
70+
sx={{ marginLeft: '0.5rem' }}
71+
/>,
72+
],
73+
}}
2874
columns={[
2975
'name',
3076
'namespace',

frontend/src/components/secret/__snapshots__/List.Items.stories.storyshot

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,37 @@
3131
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
3232
/>
3333
</button>
34+
<label
35+
class="MuiFormControlLabel-root MuiFormControlLabel-labelPlacementEnd css-b28cjl-MuiFormControlLabel-root"
36+
>
37+
<span
38+
class="MuiSwitch-root MuiSwitch-sizeMedium css-julti5-MuiSwitch-root"
39+
>
40+
<span
41+
class="MuiButtonBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary Mui-checked PrivateSwitchBase-root MuiSwitch-switchBase MuiSwitch-colorPrimary Mui-checked Mui-checked css-1emuodk-MuiButtonBase-root-MuiSwitch-switchBase"
42+
>
43+
<input
44+
checked=""
45+
class="PrivateSwitchBase-input MuiSwitch-input css-1m9pwf3"
46+
type="checkbox"
47+
/>
48+
<span
49+
class="MuiSwitch-thumb css-jsexje-MuiSwitch-thumb"
50+
/>
51+
<span
52+
class="MuiTouchRipple-root css-8je8zh-MuiTouchRipple-root"
53+
/>
54+
</span>
55+
<span
56+
class="MuiSwitch-track css-1yjjitx-MuiSwitch-track"
57+
/>
58+
</span>
59+
<span
60+
class="MuiTypography-root MuiTypography-body1 MuiFormControlLabel-label css-1ezega9-MuiTypography-root"
61+
>
62+
Hide Helm Secrets
63+
</span>
64+
</label>
3465
</div>
3566
</div>
3667
</div>

frontend/src/i18n/locales/de/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@
685685
"Users": "Benutzer",
686686
"Handler": "Handler",
687687
"No data in this secret": "Keine Daten in dieser Secret",
688+
"Hide Helm Secrets": "",
688689
"Shrink sidebar": "Seitenleiste verkleinern",
689690
"Expand sidebar": "Seitenleiste erweitern",
690691
"Main Navigation": "Hauptnavigation",

frontend/src/i18n/locales/en/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@
685685
"Users": "Users",
686686
"Handler": "Handler",
687687
"No data in this secret": "No data in this secret",
688+
"Hide Helm Secrets": "Hide Helm Secrets",
688689
"Shrink sidebar": "Shrink sidebar",
689690
"Expand sidebar": "Expand sidebar",
690691
"Main Navigation": "Main Navigation",

frontend/src/i18n/locales/es/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,7 @@
689689
"Users": "Usuarios",
690690
"Handler": "Manejador",
691691
"No data in this secret": "Sin datos en este secret",
692+
"Hide Helm Secrets": "",
692693
"Shrink sidebar": "Reducir barra lateral",
693694
"Expand sidebar": "Expandir barra lateral",
694695
"Main Navigation": "Navegación principal",

frontend/src/i18n/locales/fr/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,7 @@
689689
"Users": "Utilisateurs",
690690
"Handler": "Gestionnaire",
691691
"No data in this secret": "Aucune donnée pour cette secret",
692+
"Hide Helm Secrets": "",
692693
"Shrink sidebar": "Réduire la barre latérale",
693694
"Expand sidebar": "Développer la barre latérale",
694695
"Main Navigation": "Navigation principale",

frontend/src/i18n/locales/hi/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@
685685
"Users": "उपयोगकर्ता",
686686
"Handler": "",
687687
"No data in this secret": "",
688+
"Hide Helm Secrets": "",
688689
"Shrink sidebar": "साइडबार संकुचित करें",
689690
"Expand sidebar": "साइडबार विस्तृत करें",
690691
"Main Navigation": "मुख्य नेविगेशन",

frontend/src/i18n/locales/it/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,7 @@
689689
"Users": "Utenti",
690690
"Handler": "Gestore",
691691
"No data in this secret": "Nessun dato in questo segreto",
692+
"Hide Helm Secrets": "",
692693
"Shrink sidebar": "Comprimi barra laterale",
693694
"Expand sidebar": "Espandi barra laterale",
694695
"Main Navigation": "Navigazione Principale",

frontend/src/i18n/locales/ja/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@
681681
"Users": "ユーザー",
682682
"Handler": "ハンドラー",
683683
"No data in this secret": "このシークレットにデータがありません",
684+
"Hide Helm Secrets": "",
684685
"Shrink sidebar": "サイドバーを縮小",
685686
"Expand sidebar": "サイドバーを展開",
686687
"Main Navigation": "メインナビゲーション",

frontend/src/i18n/locales/ko/translation.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@
681681
"Users": "Users",
682682
"Handler": "Handler",
683683
"No data in this secret": "이 비밀에 데이터가 없습니다",
684+
"Hide Helm Secrets": "",
684685
"Shrink sidebar": "사이드바 축소",
685686
"Expand sidebar": "사이드바 확장",
686687
"Main Navigation": "메인 탐색",

0 commit comments

Comments
 (0)