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

handle initial loading without clusters

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-07-16 17:48:31 +03:00
parent ab61fd6308
commit 10e68510c4
10 changed files with 167 additions and 117 deletions

View File

@ -45,7 +45,7 @@ msgstr "<0>{0}</0> successfully created"
msgid "API Group"
msgstr "API Group"
#: src/renderer/components/layout/sidebar.tsx:88
#: src/renderer/components/layout/sidebar.tsx:94
msgid "Access Control"
msgstr "Access Control"
@ -199,7 +199,7 @@ msgstr "App crash at <0>{pageUrl}</0>"
msgid "Applying.."
msgstr "Applying.."
#: src/renderer/components/layout/sidebar.tsx:87
#: src/renderer/components/layout/sidebar.tsx:93
msgid "Apps"
msgstr "Apps"
@ -211,7 +211,7 @@ msgstr "Are you sure you want to drain <0>{nodeName}</0>?"
msgid "Arguments"
msgstr "Arguments"
#: src/renderer/components/+workspaces/clusters-menu.tsx:64
#: src/renderer/components/cluster-manager/clusters-menu.tsx:74
msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
msgstr "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
@ -219,7 +219,7 @@ msgstr "Associate clusters and choose the ones you want to access via quick laun
msgid "Auth App Role"
msgstr "Auth App Role"
#: src/renderer/components/error-boundary/error-boundary.tsx:54
#: src/renderer/components/error-boundary/error-boundary.tsx:53
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Back"
msgstr "Back"
@ -242,8 +242,8 @@ msgid "Bindings"
msgstr "Bindings"
#: src/renderer/components/error-boundary/error-boundary.tsx:37
msgid "Build version"
msgstr "Build version"
#~ msgid "Build version"
#~ msgstr "Build version"
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
@ -385,7 +385,7 @@ msgid "Cloud API Token Secret"
msgstr "Cloud API Token Secret"
#: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79
#: src/renderer/components/layout/sidebar.tsx:85
msgid "Cluster"
msgstr "Cluster"
@ -407,7 +407,7 @@ msgstr "Command"
msgid "Common Name"
msgstr "Common Name"
#: src/renderer/components/layout/sidebar.tsx:76
#: src/renderer/components/layout/sidebar.tsx:80
msgid "Compact view"
msgstr "Compact view"
@ -416,7 +416,7 @@ msgstr "Compact view"
msgid "Completions"
msgstr "Completions"
#: src/renderer/components/error-boundary/error-boundary.tsx:46
#: src/renderer/components/error-boundary/error-boundary.tsx:45
msgid "Component stack"
msgstr "Component stack"
@ -451,7 +451,7 @@ msgstr "ConfigMap <0>{0}</0> successfully updated."
msgid "ConfigMaps"
msgstr "ConfigMaps"
#: src/renderer/components/layout/sidebar.tsx:82
#: src/renderer/components/layout/sidebar.tsx:88
msgid "Configuration"
msgstr "Configuration"
@ -614,7 +614,7 @@ msgid "Currently applied filters:"
msgstr "Currently applied filters:"
#: src/renderer/components/+custom-resources/crd-list.tsx:55
#: src/renderer/components/layout/sidebar.tsx:89
#: src/renderer/components/layout/sidebar.tsx:95
msgid "Custom Resources"
msgstr "Custom Resources"
@ -678,7 +678,7 @@ msgstr "Description"
msgid "Desired number of replicas"
msgstr "Desired number of replicas"
#: src/renderer/components/+workspaces/clusters-menu.tsx:40
#: src/renderer/components/cluster-manager/clusters-menu.tsx:49
msgid "Disconnect"
msgstr "Disconnect"
@ -759,14 +759,14 @@ msgstr "Enter a name"
msgid "Environment"
msgstr "Environment"
#: src/renderer/components/error-boundary/error-boundary.tsx:50
#: src/renderer/components/error-boundary/error-boundary.tsx:49
msgid "Error stack"
msgstr "Error stack"
#: src/renderer/components/+events/events.tsx:56
#: src/renderer/components/+events/kube-event-details.tsx:34
#: src/renderer/components/+events/kube-event-details.tsx:39
#: src/renderer/components/layout/sidebar.tsx:86
#: src/renderer/components/layout/sidebar.tsx:92
msgid "Events"
msgstr "Events"
@ -784,8 +784,8 @@ msgid "Exit full size mode"
msgstr "Exit full size mode"
#: src/renderer/components/layout/sidebar.tsx:76
msgid "Extended view"
msgstr "Extended view"
#~ msgid "Extended view"
#~ msgstr "Extended view"
#: src/renderer/components/+network-services/services.tsx:49
msgid "External IP"
@ -844,6 +844,10 @@ msgstr "From <0>{from}</0> to <1>{to}</1>"
msgid "Fs Group"
msgstr "Fs Group"
#: src/renderer/components/+landing-page/landing-page.tsx:21
msgid "Get started by associating one or more clusters to Lens."
msgstr "Get started by associating one or more clusters to Lens."
#: src/renderer/components/+custom-resources/crd-details.tsx:32
#: src/renderer/components/+custom-resources/crd-list.tsx:58
#: src/renderer/components/+custom-resources/crd-list.tsx:74
@ -1335,7 +1339,7 @@ msgid "Namespace: {0}"
msgstr "Namespace: {0}"
#: src/renderer/components/+namespaces/namespaces.tsx:30
#: src/renderer/components/layout/sidebar.tsx:85
#: src/renderer/components/layout/sidebar.tsx:91
msgid "Namespaces"
msgstr "Namespaces"
@ -1345,7 +1349,7 @@ msgstr "Namespaces: {0}"
#: src/renderer/components/+network-ingresses/ingress-details.tsx:66
#: src/renderer/components/+workloads-pods/pod-charts.tsx:13
#: src/renderer/components/layout/sidebar.tsx:83
#: src/renderer/components/layout/sidebar.tsx:89
msgid "Network"
msgstr "Network"
@ -1443,7 +1447,7 @@ msgid "Node shell"
msgstr "Node shell"
#: src/renderer/components/+nodes/nodes.tsx:111
#: src/renderer/components/layout/sidebar.tsx:80
#: src/renderer/components/layout/sidebar.tsx:86
msgid "Nodes"
msgstr "Nodes"
@ -1483,6 +1487,10 @@ msgstr "Object"
msgid "Ok"
msgstr "Ok"
#: src/renderer/components/+whats-new/whats-new.tsx:36
msgid "Ok, got it!"
msgstr "Ok, got it!"
#: src/renderer/components/dock/dock.tsx:117
msgid "Open"
msgstr "Open"
@ -2030,7 +2038,7 @@ msgstr "Set"
msgid "Set quota"
msgstr "Set quota"
#: src/renderer/components/+workspaces/clusters-menu.tsx:33
#: src/renderer/components/cluster-manager/clusters-menu.tsx:43
msgid "Settings"
msgstr "Settings"
@ -2114,7 +2122,7 @@ msgid "Status URI"
msgstr "Status URI"
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:57
#: src/renderer/components/layout/sidebar.tsx:84
#: src/renderer/components/layout/sidebar.tsx:90
msgid "Storage"
msgstr "Storage"
@ -2204,7 +2212,7 @@ msgstr "This field is required"
msgid "This field must contain only lowercase latin characters, numbers and dash."
msgstr "This field must contain only lowercase latin characters, numbers and dash."
#: src/renderer/components/+workspaces/clusters-menu.tsx:62
#: src/renderer/components/cluster-manager/clusters-menu.tsx:72
msgid "This is the quick launch menu."
msgstr "This is the quick launch menu."
@ -2212,7 +2220,7 @@ msgstr "This is the quick launch menu."
msgid "To"
msgstr "To"
#: src/renderer/components/error-boundary/error-boundary.tsx:40
#: src/renderer/components/error-boundary/error-boundary.tsx:39
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
@ -2374,15 +2382,19 @@ msgstr "Waiting services to be running"
msgid "Warnings: {0}"
msgstr "Warnings: {0}"
#: src/renderer/components/+landing-page/landing-page.tsx:18
msgid "Welcome!"
msgstr "Welcome!"
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
msgid "Worker"
msgstr "Worker"
#: src/renderer/components/layout/sidebar.tsx:81
#: src/renderer/components/layout/sidebar.tsx:87
msgid "Workloads"
msgstr "Workloads"
#: src/renderer/components/+workspaces/bottom-bar.tsx:31
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
msgid "Workspaces"
msgstr "Workspaces"
@ -2492,7 +2504,7 @@ msgstr "{0} total, {1} available"
msgid "{0} unavailable"
msgstr "{0} unavailable"
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:134
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:129
msgid "{accountName} kubeconfig"
msgstr "{accountName} kubeconfig"

View File

@ -45,7 +45,7 @@ msgstr ""
msgid "API Group"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:88
#: src/renderer/components/layout/sidebar.tsx:94
msgid "Access Control"
msgstr ""
@ -199,7 +199,7 @@ msgstr ""
msgid "Applying.."
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:87
#: src/renderer/components/layout/sidebar.tsx:93
msgid "Apps"
msgstr ""
@ -211,7 +211,7 @@ msgstr ""
msgid "Arguments"
msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:64
#: src/renderer/components/cluster-manager/clusters-menu.tsx:74
msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
msgstr ""
@ -219,7 +219,7 @@ msgstr ""
msgid "Auth App Role"
msgstr ""
#: src/renderer/components/error-boundary/error-boundary.tsx:54
#: src/renderer/components/error-boundary/error-boundary.tsx:53
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Back"
msgstr ""
@ -242,8 +242,8 @@ msgid "Bindings"
msgstr ""
#: src/renderer/components/error-boundary/error-boundary.tsx:37
msgid "Build version"
msgstr ""
#~ msgid "Build version"
#~ msgstr ""
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
@ -381,7 +381,7 @@ msgid "Cloud API Token Secret"
msgstr ""
#: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79
#: src/renderer/components/layout/sidebar.tsx:85
msgid "Cluster"
msgstr ""
@ -403,7 +403,7 @@ msgstr ""
msgid "Common Name"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:76
#: src/renderer/components/layout/sidebar.tsx:80
msgid "Compact view"
msgstr ""
@ -412,7 +412,7 @@ msgstr ""
msgid "Completions"
msgstr ""
#: src/renderer/components/error-boundary/error-boundary.tsx:46
#: src/renderer/components/error-boundary/error-boundary.tsx:45
msgid "Component stack"
msgstr ""
@ -447,7 +447,7 @@ msgstr ""
msgid "ConfigMaps"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:82
#: src/renderer/components/layout/sidebar.tsx:88
msgid "Configuration"
msgstr ""
@ -610,7 +610,7 @@ msgid "Currently applied filters:"
msgstr ""
#: src/renderer/components/+custom-resources/crd-list.tsx:55
#: src/renderer/components/layout/sidebar.tsx:89
#: src/renderer/components/layout/sidebar.tsx:95
msgid "Custom Resources"
msgstr ""
@ -674,7 +674,7 @@ msgstr ""
msgid "Desired number of replicas"
msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:40
#: src/renderer/components/cluster-manager/clusters-menu.tsx:49
msgid "Disconnect"
msgstr ""
@ -755,14 +755,14 @@ msgstr ""
msgid "Environment"
msgstr ""
#: src/renderer/components/error-boundary/error-boundary.tsx:50
#: src/renderer/components/error-boundary/error-boundary.tsx:49
msgid "Error stack"
msgstr ""
#: src/renderer/components/+events/events.tsx:56
#: src/renderer/components/+events/kube-event-details.tsx:34
#: src/renderer/components/+events/kube-event-details.tsx:39
#: src/renderer/components/layout/sidebar.tsx:86
#: src/renderer/components/layout/sidebar.tsx:92
msgid "Events"
msgstr ""
@ -775,8 +775,8 @@ msgid "Exit full size mode"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:76
msgid "Extended view"
msgstr ""
#~ msgid "Extended view"
#~ msgstr ""
#: src/renderer/components/+network-services/services.tsx:49
msgid "External IP"
@ -835,6 +835,10 @@ msgstr ""
msgid "Fs Group"
msgstr ""
#: src/renderer/components/+landing-page/landing-page.tsx:21
msgid "Get started by associating one or more clusters to Lens."
msgstr ""
#: src/renderer/components/+custom-resources/crd-details.tsx:32
#: src/renderer/components/+custom-resources/crd-list.tsx:58
#: src/renderer/components/+custom-resources/crd-list.tsx:74
@ -1326,7 +1330,7 @@ msgid "Namespace: {0}"
msgstr ""
#: src/renderer/components/+namespaces/namespaces.tsx:30
#: src/renderer/components/layout/sidebar.tsx:85
#: src/renderer/components/layout/sidebar.tsx:91
msgid "Namespaces"
msgstr ""
@ -1336,7 +1340,7 @@ msgstr ""
#: src/renderer/components/+network-ingresses/ingress-details.tsx:66
#: src/renderer/components/+workloads-pods/pod-charts.tsx:13
#: src/renderer/components/layout/sidebar.tsx:83
#: src/renderer/components/layout/sidebar.tsx:89
msgid "Network"
msgstr ""
@ -1426,7 +1430,7 @@ msgid "Node shell"
msgstr ""
#: src/renderer/components/+nodes/nodes.tsx:111
#: src/renderer/components/layout/sidebar.tsx:80
#: src/renderer/components/layout/sidebar.tsx:86
msgid "Nodes"
msgstr ""
@ -1466,6 +1470,10 @@ msgstr ""
msgid "Ok"
msgstr ""
#: src/renderer/components/+whats-new/whats-new.tsx:36
msgid "Ok, got it!"
msgstr ""
#: src/renderer/components/dock/dock.tsx:117
msgid "Open"
msgstr ""
@ -2013,7 +2021,7 @@ msgstr ""
msgid "Set quota"
msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:33
#: src/renderer/components/cluster-manager/clusters-menu.tsx:43
msgid "Settings"
msgstr ""
@ -2097,7 +2105,7 @@ msgid "Status URI"
msgstr ""
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:57
#: src/renderer/components/layout/sidebar.tsx:84
#: src/renderer/components/layout/sidebar.tsx:90
msgid "Storage"
msgstr ""
@ -2187,7 +2195,7 @@ msgstr ""
msgid "This field must contain only lowercase latin characters, numbers and dash."
msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:62
#: src/renderer/components/cluster-manager/clusters-menu.tsx:72
msgid "This is the quick launch menu."
msgstr ""
@ -2195,7 +2203,7 @@ msgstr ""
msgid "To"
msgstr ""
#: src/renderer/components/error-boundary/error-boundary.tsx:40
#: src/renderer/components/error-boundary/error-boundary.tsx:39
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr ""
@ -2357,15 +2365,19 @@ msgstr ""
msgid "Warnings: {0}"
msgstr ""
#: src/renderer/components/+landing-page/landing-page.tsx:18
msgid "Welcome!"
msgstr ""
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
msgid "Worker"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:81
#: src/renderer/components/layout/sidebar.tsx:87
msgid "Workloads"
msgstr ""
#: src/renderer/components/+workspaces/bottom-bar.tsx:31
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
msgid "Workspaces"
msgstr ""
@ -2475,7 +2487,7 @@ msgstr ""
msgid "{0} unavailable"
msgstr ""
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:134
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:129
msgid "{accountName} kubeconfig"
msgstr ""

View File

@ -46,7 +46,7 @@ msgstr ""
msgid "API Group"
msgstr ""
#: src/renderer/components/layout/sidebar.tsx:88
#: src/renderer/components/layout/sidebar.tsx:94
msgid "Access Control"
msgstr "Контроль доступа"
@ -200,7 +200,7 @@ msgstr "Сбой работы приложения на <0>{pageUrl}</0>"
msgid "Applying.."
msgstr "Применение.."
#: src/renderer/components/layout/sidebar.tsx:87
#: src/renderer/components/layout/sidebar.tsx:93
msgid "Apps"
msgstr "Приложения"
@ -212,7 +212,7 @@ msgstr "Выполнить команду drain для ноды <0>{nodeName}</0
msgid "Arguments"
msgstr "Аргументы"
#: src/renderer/components/+workspaces/clusters-menu.tsx:64
#: src/renderer/components/cluster-manager/clusters-menu.tsx:74
msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
msgstr ""
@ -220,7 +220,7 @@ msgstr ""
msgid "Auth App Role"
msgstr "Auth App Role"
#: src/renderer/components/error-boundary/error-boundary.tsx:54
#: src/renderer/components/error-boundary/error-boundary.tsx:53
#: src/renderer/components/wizard/wizard.tsx:130
msgid "Back"
msgstr "Назад"
@ -243,8 +243,8 @@ msgid "Bindings"
msgstr "Привязки"
#: src/renderer/components/error-boundary/error-boundary.tsx:37
msgid "Build version"
msgstr "Версия билда"
#~ msgid "Build version"
#~ msgstr "Версия билда"
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
@ -386,7 +386,7 @@ msgid "Cloud API Token Secret"
msgstr "Cloud API Token Secret"
#: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79
#: src/renderer/components/layout/sidebar.tsx:85
msgid "Cluster"
msgstr "Кластер"
@ -408,7 +408,7 @@ msgstr "Команда"
msgid "Common Name"
msgstr "Общее имя"
#: src/renderer/components/layout/sidebar.tsx:76
#: src/renderer/components/layout/sidebar.tsx:80
msgid "Compact view"
msgstr "Компактный вид"
@ -417,7 +417,7 @@ msgstr "Компактный вид"
msgid "Completions"
msgstr "Завершения"
#: src/renderer/components/error-boundary/error-boundary.tsx:46
#: src/renderer/components/error-boundary/error-boundary.tsx:45
msgid "Component stack"
msgstr "Стэк компонентов"
@ -452,7 +452,7 @@ msgstr "ConfigMap <0>{0}</0> успешно обновлена."
msgid "ConfigMaps"
msgstr "ConfigMaps"
#: src/renderer/components/layout/sidebar.tsx:82
#: src/renderer/components/layout/sidebar.tsx:88
msgid "Configuration"
msgstr "Конфигурация"
@ -615,7 +615,7 @@ msgid "Currently applied filters:"
msgstr "Текущие фильтры:"
#: src/renderer/components/+custom-resources/crd-list.tsx:55
#: src/renderer/components/layout/sidebar.tsx:89
#: src/renderer/components/layout/sidebar.tsx:95
msgid "Custom Resources"
msgstr ""
@ -679,7 +679,7 @@ msgstr "Описание"
msgid "Desired number of replicas"
msgstr "Нужный уровень реплик"
#: src/renderer/components/+workspaces/clusters-menu.tsx:40
#: src/renderer/components/cluster-manager/clusters-menu.tsx:49
msgid "Disconnect"
msgstr ""
@ -760,14 +760,14 @@ msgstr "Название"
msgid "Environment"
msgstr "Среда"
#: src/renderer/components/error-boundary/error-boundary.tsx:50
#: src/renderer/components/error-boundary/error-boundary.tsx:49
msgid "Error stack"
msgstr "Стэк ошибки"
#: src/renderer/components/+events/events.tsx:56
#: src/renderer/components/+events/kube-event-details.tsx:34
#: src/renderer/components/+events/kube-event-details.tsx:39
#: src/renderer/components/layout/sidebar.tsx:86
#: src/renderer/components/layout/sidebar.tsx:92
msgid "Events"
msgstr "События"
@ -785,8 +785,8 @@ msgid "Exit full size mode"
msgstr "Выйти из полного размера"
#: src/renderer/components/layout/sidebar.tsx:76
msgid "Extended view"
msgstr "Расширенный вид"
#~ msgid "Extended view"
#~ msgstr "Расширенный вид"
#: src/renderer/components/+network-services/services.tsx:49
msgid "External IP"
@ -845,6 +845,10 @@ msgstr "От <0>{from}</0> до <1>{to}</1>"
msgid "Fs Group"
msgstr ""
#: src/renderer/components/+landing-page/landing-page.tsx:21
msgid "Get started by associating one or more clusters to Lens."
msgstr ""
#: src/renderer/components/+custom-resources/crd-details.tsx:32
#: src/renderer/components/+custom-resources/crd-list.tsx:58
#: src/renderer/components/+custom-resources/crd-list.tsx:74
@ -1336,7 +1340,7 @@ msgid "Namespace: {0}"
msgstr "Namespace: {0}"
#: src/renderer/components/+namespaces/namespaces.tsx:30
#: src/renderer/components/layout/sidebar.tsx:85
#: src/renderer/components/layout/sidebar.tsx:91
msgid "Namespaces"
msgstr "Namespaces"
@ -1346,7 +1350,7 @@ msgstr "Namespaces: {0}"
#: src/renderer/components/+network-ingresses/ingress-details.tsx:66
#: src/renderer/components/+workloads-pods/pod-charts.tsx:13
#: src/renderer/components/layout/sidebar.tsx:83
#: src/renderer/components/layout/sidebar.tsx:89
msgid "Network"
msgstr "Сеть"
@ -1444,7 +1448,7 @@ msgid "Node shell"
msgstr "Командная строка ноды"
#: src/renderer/components/+nodes/nodes.tsx:111
#: src/renderer/components/layout/sidebar.tsx:80
#: src/renderer/components/layout/sidebar.tsx:86
msgid "Nodes"
msgstr "Ноды"
@ -1484,6 +1488,10 @@ msgstr "Объект"
msgid "Ok"
msgstr "Ок"
#: src/renderer/components/+whats-new/whats-new.tsx:36
msgid "Ok, got it!"
msgstr ""
#: src/renderer/components/dock/dock.tsx:117
msgid "Open"
msgstr "Открыть"
@ -2031,7 +2039,7 @@ msgstr "Установлено"
msgid "Set quota"
msgstr "Установить квоту"
#: src/renderer/components/+workspaces/clusters-menu.tsx:33
#: src/renderer/components/cluster-manager/clusters-menu.tsx:43
msgid "Settings"
msgstr ""
@ -2115,7 +2123,7 @@ msgid "Status URI"
msgstr "Адрес статуса"
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:57
#: src/renderer/components/layout/sidebar.tsx:84
#: src/renderer/components/layout/sidebar.tsx:90
msgid "Storage"
msgstr "Storage"
@ -2205,7 +2213,7 @@ msgstr "Это обязательное поле"
msgid "This field must contain only lowercase latin characters, numbers and dash."
msgstr "Это поле может содержать только латинские буквы в нижнем регистре, номера и дефис."
#: src/renderer/components/+workspaces/clusters-menu.tsx:62
#: src/renderer/components/cluster-manager/clusters-menu.tsx:72
msgid "This is the quick launch menu."
msgstr ""
@ -2213,7 +2221,7 @@ msgstr ""
msgid "To"
msgstr "Из"
#: src/renderer/components/error-boundary/error-boundary.tsx:40
#: src/renderer/components/error-boundary/error-boundary.tsx:39
msgid "To help us improve the product please report bugs to {slackLink} community or {githubLink} issues tracker."
msgstr "Чтобы помочь нам улучшить продукт пожалуйста отправляйте ошибки на {slackLink} сообщество или {githubLink} трекер ошибок."
@ -2375,15 +2383,19 @@ msgstr "Ожидание запуска сервисов"
msgid "Warnings: {0}"
msgstr "Предупреждения: {0}"
#: src/renderer/components/+landing-page/landing-page.tsx:18
msgid "Welcome!"
msgstr ""
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
msgid "Worker"
msgstr "Рабочие"
#: src/renderer/components/layout/sidebar.tsx:81
#: src/renderer/components/layout/sidebar.tsx:87
msgid "Workloads"
msgstr "Ресурсы"
#: src/renderer/components/+workspaces/bottom-bar.tsx:31
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
msgid "Workspaces"
msgstr ""
@ -2493,7 +2505,7 @@ msgstr "{0} всего, {1} доступно"
msgid "{0} unavailable"
msgstr "{0} недоступно"
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:134
#: src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.tsx:129
msgid "{accountName} kubeconfig"
msgstr "{accountName} конфигурация"

View File

@ -39,7 +39,7 @@ export class Cluster implements ClusterModel {
protected kubeconfigManager: KubeconfigManager;
public whenReady = when(() => this.initialized);
protected disposers: CallableFunction[] = [];
protected disposers: Function[] = [];
@observable initialized = false;
@observable contextName: string;

View File

@ -74,7 +74,7 @@ async function main() {
}
// create window manager and open app
windowManager = new WindowManager();
windowManager = new WindowManager(proxyPort);
windowManager.showSplash();
}

View File

@ -126,6 +126,10 @@ export class LensProxy {
}
protected async handleRequest(proxy: httpProxy, req: http.IncomingMessage, res: http.ServerResponse) {
if (req.headers.host.split(":")[0] === "no-clusters.localhost") {
this.router.handleStaticFile(req.url, res);
return;
}
const cluster = this.clusterManager.getClusterForRequest(req)
if (!cluster) {
const reqId = this.getRequestId(req);

View File

@ -52,20 +52,20 @@ export class Router {
const matchingRoute = this.router.route(method, path);
const routeFound = !matchingRoute.isBoom;
if (routeFound) {
const request = await this.getRequest({
req, res, cluster, url,
params: matchingRoute.params
});
const request = await this.getRequest({ req, res, cluster, url, params: matchingRoute.params });
await matchingRoute.route(request)
return true
}
return false;
}
protected async getRequest(opts: RouterRequestOpts) {
protected async getRequest(opts: RouterRequestOpts): Promise<LensApiRequest> {
const { req, res, url, cluster, params } = opts
const { payload } = await Subtext.parse(req, null, { parse: true, output: 'data' });
const request: LensApiRequest = {
const { payload } = await Subtext.parse(req, null, {
parse: true,
output: "data",
});
return {
cluster: cluster,
path: url.pathname,
raw: {
@ -76,7 +76,6 @@ export class Router {
payload: payload,
params: params
}
return request
}
protected getMimeType(filename: string) {
@ -95,15 +94,15 @@ export class Router {
return mimeTypes[path.extname(filename).slice(1)] || "text/plain"
}
protected async handleStaticFile(filePath: string, response: http.ServerResponse) {
const asset = path.resolve(outDir, filePath);
async handleStaticFile(filePath: string, res: http.ServerResponse) {
const asset = path.join(outDir, filePath);
try {
const data = await readFile(asset);
response.setHeader("Content-Type", this.getMimeType(asset));
response.write(data)
response.end()
res.setHeader("Content-Type", this.getMimeType(asset));
res.write(data)
res.end()
} catch (err) {
this.handleStaticFile(`${appName}.html`, response);
this.handleStaticFile(`${appName}.html`, res);
}
}
@ -111,7 +110,7 @@ export class Router {
// Static assets
this.router.add({ method: 'get', path: '/{path*}' }, ({ params, response }: LensApiRequest) => {
this.handleStaticFile(params.path, response);
})
});
this.router.add({ method: "get", path: `${apiPrefix}/config` }, configRoute.routeConfig.bind(configRoute))
this.router.add({ method: "get", path: `${apiPrefix}/kubeconfig/service-account/{namespace}/{account}` }, kubeconfigRoute.routeServiceAccountRoute.bind(kubeconfigRoute))

View File

@ -1,4 +1,4 @@
import { reaction } from "mobx";
import { autorun, reaction } from "mobx";
import { BrowserWindow, shell } from "electron"
import windowStateKeeper from "electron-window-state"
import type { ClusterId } from "../common/cluster-store";
@ -15,7 +15,7 @@ export class WindowManager {
protected splashWindow: BrowserWindow;
protected windowState: windowStateKeeper.State;
constructor() {
constructor(protected proxyPort: number) {
this.splashWindow = new BrowserWindow({
width: 500,
height: 300,
@ -60,22 +60,22 @@ export class WindowManager {
this.destroyView(cluster.id);
});
}),
);
// handle initial view load without clusters
// if (!clusterStore.clusters.size) {
// this.initNoClustersView();
// }
// handle no-clusters view
autorun(() => {
if (!clusterStore.clusters.size) {
this.initNoClustersView();
}
})
);
}
// fixme: first run without clusters
// protected async initNoClustersView() {
// const htmlView = path.join(__dirname, `${appName}.html`);
// const view = this.initView(undefined);
// await view.loadFile(htmlView);
// view.show();
// this.hideSplash();
// }
protected async initNoClustersView() {
this.activeView = this.initView(undefined);
await this.activeView.loadURL(`http://no-clusters.localhost:${this.proxyPort}`);
this.activeView.show();
this.hideSplash();
}
async showSplash() {
await this.splashWindow.loadURL("static://splash.html")

View File

@ -1,5 +1,4 @@
import "./app.scss";
import React, { Fragment } from "react";
import { observer } from "mobx-react";
import { i18nStore } from "../i18n";
@ -31,9 +30,10 @@ import { CustomResources } from "./+custom-resources/custom-resources";
import { crdRoute } from "./+custom-resources";
import { isAllowedResource } from "../api/rbac";
import { AddCluster, addClusterRoute } from "./+add-cluster";
import { LandingPage, landingRoute } from "./+landing-page";
import { LandingPage, landingRoute, landingURL } from "./+landing-page";
import { clusterStore } from "../../common/cluster-store";
import { ClusterSettings, clusterSettingsRoute } from "./+cluster-settings";
import { Workspaces, workspacesRoute } from "./+workspaces";
@observer
export class App extends React.Component {
@ -45,16 +45,24 @@ export class App extends React.Component {
await Terminal.preloadFonts();
}
get startURL() {
if (!clusterStore.clusters.size) {
return landingURL();
}
if (isAllowedResource(["events", "nodes", "pods"])) {
return clusterURL();
}
return workloadsURL();
}
render() {
const noClusters = clusterStore.clusters.size === 0;
const homeUrl = isAllowedResource(["events", "nodes", "pods"]) ? clusterURL() : workloadsURL();
return (
<Fragment>
<Switch>
<Switch>
{noClusters && <Route component={LandingPage}/>}
<Route component={LandingPage} {...landingRoute}/>
<Route component={AddCluster} {...addClusterRoute}/>
<Route component={Workspaces} {...workspacesRoute}/>
<Route component={ClusterSettings} {...clusterSettingsRoute}/>
<Route component={Cluster} {...clusterRoute}/>
<Route component={Nodes} {...nodesRoute}/>
@ -67,8 +75,8 @@ export class App extends React.Component {
<Route component={CustomResources} {...crdRoute}/>
<Route component={UserManagement} {...usersManagementRoute}/>
<Route component={Apps} {...appsRoute}/>
<Redirect exact from="/" to={homeUrl}/>
<Route path="*" component={NotFound}/>
<Redirect exact from="/" to={this.startURL}/>
<Route component={NotFound}/>
</Switch>
</Switch>
<KubeObjectDetails/>

View File

@ -16,6 +16,9 @@ export class ConfigStore {
}
load() {
if (location.hostname === "no-clusters.localhost") {
return;
}
return apiBase.get("/config").then((config: IConfigRoutePayload) => {
this.config = config;
this.isLoaded = true;