1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

use dialog.showOpenDialog for selecting custom kube-config file

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-08-25 12:59:57 +03:00
parent 16e50556dd
commit 8c145131e9
4 changed files with 90 additions and 36 deletions

View File

@ -83,7 +83,7 @@ msgstr "Account Name"
msgid "Active"
msgstr "Active"
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
#: src/renderer/components/+add-cluster/add-cluster.tsx:196
#: src/renderer/components/cluster-manager/clusters-menu.tsx:116
msgid "Add Cluster"
msgstr "Add Cluster"
@ -108,7 +108,7 @@ msgstr "Add bindings to {name}"
#~ msgid "Add cluster"
#~ msgstr "Add cluster"
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
#: src/renderer/components/+add-cluster/add-cluster.tsx:223
msgid "Add cluster(s)"
msgstr "Add cluster(s)"
@ -710,7 +710,7 @@ msgstr "Currently applied filters:"
msgid "Custom Resources"
msgstr "Custom Resources"
#: src/renderer/components/+add-cluster/add-cluster.tsx:121
#: src/renderer/components/+add-cluster/add-cluster.tsx:141
msgid "Custom.."
msgstr "Custom.."
@ -1730,13 +1730,17 @@ msgstr "Persistent Volume Claims"
msgid "Persistent Volumes"
msgstr "Persistent Volumes"
#: src/renderer/components/+add-cluster/add-cluster.tsx:78
msgid "Please select kube-config's context"
msgstr "Please select kube-config's context"
#: src/renderer/components/+add-cluster/add-cluster.tsx:63
#~ msgid "Please select kubeconfig"
#~ msgstr "Please select kubeconfig"
#: src/renderer/components/+add-cluster/add-cluster.tsx:64
msgid "Please select kubeconfig context"
msgstr "Please select kubeconfig context"
#~ msgid "Please select kubeconfig context"
#~ msgstr "Please select kubeconfig context"
#: src/renderer/components/+workloads-pods/pod-menu.tsx:50
msgid "Pod"
@ -1832,7 +1836,7 @@ msgstr "Provisioner"
msgid "Proxy is used only for non-cluster communication."
msgstr "Proxy is used only for non-cluster communication."
#: src/renderer/components/+add-cluster/add-cluster.tsx:188
#: src/renderer/components/+add-cluster/add-cluster.tsx:207
msgid "Proxy settings"
msgstr "Proxy settings"
@ -2216,7 +2220,7 @@ msgstr "Secret type"
msgid "Secrets"
msgstr "Secrets"
#: src/renderer/components/+add-cluster/add-cluster.tsx:185
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
msgid "Select a context"
msgstr "Select a context"
@ -2228,6 +2232,11 @@ msgstr "Select a quota.."
#~ msgid "Select context"
#~ msgstr "Select context"
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
msgid "Select custom kube-config file"
msgstr "Select custom kube-config file"
#: src/renderer/components/+add-cluster/add-cluster.tsx:173
#~ msgid "Select kubeconfig"
#~ msgstr "Select kubeconfig"
@ -2570,6 +2579,11 @@ msgstr "Upgrade version"
msgid "Usage"
msgstr "Usage"
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
msgid "Use configuration"
msgstr "Use configuration"
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:190
msgid "Use same name for RoleBinding"
msgstr "Use same name for RoleBinding"

View File

@ -83,7 +83,7 @@ msgstr ""
msgid "Active"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
#: src/renderer/components/+add-cluster/add-cluster.tsx:196
#: src/renderer/components/cluster-manager/clusters-menu.tsx:116
msgid "Add Cluster"
msgstr ""
@ -108,7 +108,7 @@ msgstr ""
#~ msgid "Add cluster"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
#: src/renderer/components/+add-cluster/add-cluster.tsx:223
msgid "Add cluster(s)"
msgstr ""
@ -706,7 +706,7 @@ msgstr ""
msgid "Custom Resources"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:121
#: src/renderer/components/+add-cluster/add-cluster.tsx:141
msgid "Custom.."
msgstr ""
@ -1713,13 +1713,17 @@ msgstr ""
msgid "Persistent Volumes"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:78
msgid "Please select kube-config's context"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:63
#~ msgid "Please select kubeconfig"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:64
msgid "Please select kubeconfig context"
msgstr ""
#~ msgid "Please select kubeconfig context"
#~ msgstr ""
#: src/renderer/components/+workloads-pods/pod-menu.tsx:50
msgid "Pod"
@ -1815,7 +1819,7 @@ msgstr ""
msgid "Proxy is used only for non-cluster communication."
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:188
#: src/renderer/components/+add-cluster/add-cluster.tsx:207
msgid "Proxy settings"
msgstr ""
@ -2199,7 +2203,7 @@ msgstr ""
msgid "Secrets"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:185
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
msgid "Select a context"
msgstr ""
@ -2211,6 +2215,11 @@ msgstr ""
#~ msgid "Select context"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
msgid "Select custom kube-config file"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:173
#~ msgid "Select kubeconfig"
#~ msgstr ""
@ -2553,6 +2562,11 @@ msgstr ""
msgid "Usage"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
msgid "Use configuration"
msgstr ""
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:190
msgid "Use same name for RoleBinding"
msgstr ""

View File

@ -84,7 +84,7 @@ msgstr "Название аккаунта"
msgid "Active"
msgstr "Активный"
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
#: src/renderer/components/+add-cluster/add-cluster.tsx:196
#: src/renderer/components/cluster-manager/clusters-menu.tsx:116
msgid "Add Cluster"
msgstr ""
@ -109,7 +109,7 @@ msgstr "Добавить привязки к {name}"
#~ msgid "Add cluster"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
#: src/renderer/components/+add-cluster/add-cluster.tsx:223
msgid "Add cluster(s)"
msgstr ""
@ -711,7 +711,7 @@ msgstr "Текущие фильтры:"
msgid "Custom Resources"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:121
#: src/renderer/components/+add-cluster/add-cluster.tsx:141
msgid "Custom.."
msgstr ""
@ -1731,13 +1731,17 @@ msgstr "Persistent Volume Claims"
msgid "Persistent Volumes"
msgstr "Persistent Volumes"
#: src/renderer/components/+add-cluster/add-cluster.tsx:78
msgid "Please select kube-config's context"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:63
#~ msgid "Please select kubeconfig"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:64
msgid "Please select kubeconfig context"
msgstr ""
#~ msgid "Please select kubeconfig context"
#~ msgstr ""
#: src/renderer/components/+workloads-pods/pod-menu.tsx:50
msgid "Pod"
@ -1833,7 +1837,7 @@ msgstr "Комиссия"
msgid "Proxy is used only for non-cluster communication."
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:188
#: src/renderer/components/+add-cluster/add-cluster.tsx:207
msgid "Proxy settings"
msgstr ""
@ -2217,7 +2221,7 @@ msgstr "Тип секрета"
msgid "Secrets"
msgstr "Secrets"
#: src/renderer/components/+add-cluster/add-cluster.tsx:185
#: src/renderer/components/+add-cluster/add-cluster.tsx:204
msgid "Select a context"
msgstr ""
@ -2229,6 +2233,11 @@ msgstr "Выберите квоту..."
#~ msgid "Select context"
#~ msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
msgid "Select custom kube-config file"
msgstr ""
#: src/renderer/components/+add-cluster/add-cluster.tsx:173
#~ msgid "Select kubeconfig"
#~ msgstr ""
@ -2571,6 +2580,11 @@ msgstr "Обновить версию"
msgid "Usage"
msgstr "Использование"
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
#: src/renderer/components/+add-cluster/add-cluster.tsx:53
msgid "Use configuration"
msgstr ""
#: src/renderer/components/+user-management-roles-bindings/add-role-binding-dialog.tsx:190
msgid "Use same name for RoleBinding"
msgstr "Использовать тоже имя для привязки ролей"

View File

@ -2,10 +2,12 @@ import "./add-cluster.scss"
import React, { Fragment } from "react";
import { observer } from "mobx-react";
import { computed, observable } from "mobx";
import { remote } from "electron";
import { KubeConfig } from "@kubernetes/client-node";
import { Trans } from "@lingui/macro";
import { _i18n } from "../../i18n";
import { t, Trans } from "@lingui/macro";
import { Select, SelectOption } from "../select";
import { FileInput, Input } from "../input";
import { Input } from "../input";
import { AceEditor } from "../ace-editor";
import { Button } from "../button";
import { Icon } from "../icon";
@ -33,14 +35,18 @@ export class AddCluster extends React.Component {
@observable customConfig = ""
componentDidMount() {
this.setLocalConfigPath(userStore.kubeConfigPath);
this.kubeConfigPath = userStore.kubeConfigPath;
}
componentWillUnmount() {
userStore.markNewContextsAsSeen();
}
protected setLocalConfigPath(filePath: string) {
protected get kubeConfigPath() {
return userStore.kubeConfigPath;
}
protected set kubeConfigPath(filePath: string) {
try {
const kubeConfig = loadConfig(filePath);
validateConfig(kubeConfig);
@ -54,6 +60,19 @@ export class AddCluster extends React.Component {
}
}
selectKubeConfig = async () => {
const { dialog, BrowserWindow } = remote;
const { canceled, filePaths } = await dialog.showOpenDialog(BrowserWindow.getFocusedWindow(), {
defaultPath: this.kubeConfigPath,
properties: ["openFile", "showHiddenFiles"],
message: _i18n._(t`Select custom kube-config file`),
buttonLabel: _i18n._(t`Use configuration`),
});
if (!canceled && filePaths.length) {
this.kubeConfigPath = filePaths[0];
}
}
@computed get isCustom() {
return this.newClusterConfig === this.custom;
}
@ -179,25 +198,18 @@ export class AddCluster extends React.Component {
<WizardLayout className="AddCluster" infoPanel={this.renderInfo()}>
<h2><Trans>Add Cluster</Trans></h2>
<div className="flex gaps align-center">
<label
htmlFor="kube-config-select"
className="kube-config-select flex gaps align-center box grow"
>
<label className="kube-config-select flex gaps align-center box grow" onClick={this.selectKubeConfig}>
<span className="title">Kubeconfig file</span>
<code>{userStore.kubeConfigPath}</code>
<code>{this.kubeConfigPath}</code>
</label>
{kubeConfigDefaultPath !== userStore.kubeConfigPath && (
{this.kubeConfigPath !== kubeConfigDefaultPath && (
<Icon
material="settings_backup_restore"
onClick={() => this.setLocalConfigPath(kubeConfigDefaultPath)}
onClick={() => this.kubeConfigPath = kubeConfigDefaultPath}
tooltip="Reset to defaults"
/>
)}
</div>
<FileInput
id="kube-config-select"
onSelectFiles={({ file }) => this.setLocalConfigPath(file.path)}
/>
<Select
placeholder={<Trans>Select a context</Trans>}
value={this.newClusterConfig}