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" msgid "API Group"
msgstr "API Group" msgstr "API Group"
#: src/renderer/components/layout/sidebar.tsx:88 #: src/renderer/components/layout/sidebar.tsx:94
msgid "Access Control" msgid "Access Control"
msgstr "Access Control" msgstr "Access Control"
@ -199,7 +199,7 @@ msgstr "App crash at <0>{pageUrl}</0>"
msgid "Applying.." msgid "Applying.."
msgstr "Applying.." msgstr "Applying.."
#: src/renderer/components/layout/sidebar.tsx:87 #: src/renderer/components/layout/sidebar.tsx:93
msgid "Apps" msgid "Apps"
msgstr "Apps" msgstr "Apps"
@ -211,7 +211,7 @@ msgstr "Are you sure you want to drain <0>{nodeName}</0>?"
msgid "Arguments" msgid "Arguments"
msgstr "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." 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." 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" msgid "Auth App Role"
msgstr "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 #: src/renderer/components/wizard/wizard.tsx:130
msgid "Back" msgid "Back"
msgstr "Back" msgstr "Back"
@ -242,8 +242,8 @@ msgid "Bindings"
msgstr "Bindings" msgstr "Bindings"
#: src/renderer/components/error-boundary/error-boundary.tsx:37 #: src/renderer/components/error-boundary/error-boundary.tsx:37
msgid "Build version" #~ msgid "Build version"
msgstr "Build version" #~ msgstr "Build version"
#: src/renderer/components/+workloads-pods/container-charts.tsx:74 #: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100 #: src/renderer/components/+workloads-pods/pod-charts.tsx:100
@ -385,7 +385,7 @@ msgid "Cloud API Token Secret"
msgstr "Cloud API Token Secret" msgstr "Cloud API Token Secret"
#: src/renderer/components/+namespaces/namespace-select.tsx:43 #: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79 #: src/renderer/components/layout/sidebar.tsx:85
msgid "Cluster" msgid "Cluster"
msgstr "Cluster" msgstr "Cluster"
@ -407,7 +407,7 @@ msgstr "Command"
msgid "Common Name" msgid "Common Name"
msgstr "Common Name" msgstr "Common Name"
#: src/renderer/components/layout/sidebar.tsx:76 #: src/renderer/components/layout/sidebar.tsx:80
msgid "Compact view" msgid "Compact view"
msgstr "Compact view" msgstr "Compact view"
@ -416,7 +416,7 @@ msgstr "Compact view"
msgid "Completions" msgid "Completions"
msgstr "Completions" msgstr "Completions"
#: src/renderer/components/error-boundary/error-boundary.tsx:46 #: src/renderer/components/error-boundary/error-boundary.tsx:45
msgid "Component stack" msgid "Component stack"
msgstr "Component stack" msgstr "Component stack"
@ -451,7 +451,7 @@ msgstr "ConfigMap <0>{0}</0> successfully updated."
msgid "ConfigMaps" msgid "ConfigMaps"
msgstr "ConfigMaps" msgstr "ConfigMaps"
#: src/renderer/components/layout/sidebar.tsx:82 #: src/renderer/components/layout/sidebar.tsx:88
msgid "Configuration" msgid "Configuration"
msgstr "Configuration" msgstr "Configuration"
@ -614,7 +614,7 @@ msgid "Currently applied filters:"
msgstr "Currently applied filters:" msgstr "Currently applied filters:"
#: src/renderer/components/+custom-resources/crd-list.tsx:55 #: 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" msgid "Custom Resources"
msgstr "Custom Resources" msgstr "Custom Resources"
@ -678,7 +678,7 @@ msgstr "Description"
msgid "Desired number of replicas" msgid "Desired number of replicas"
msgstr "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" msgid "Disconnect"
msgstr "Disconnect" msgstr "Disconnect"
@ -759,14 +759,14 @@ msgstr "Enter a name"
msgid "Environment" msgid "Environment"
msgstr "Environment" msgstr "Environment"
#: src/renderer/components/error-boundary/error-boundary.tsx:50 #: src/renderer/components/error-boundary/error-boundary.tsx:49
msgid "Error stack" msgid "Error stack"
msgstr "Error stack" msgstr "Error stack"
#: src/renderer/components/+events/events.tsx:56 #: src/renderer/components/+events/events.tsx:56
#: src/renderer/components/+events/kube-event-details.tsx:34 #: src/renderer/components/+events/kube-event-details.tsx:34
#: src/renderer/components/+events/kube-event-details.tsx:39 #: 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" msgid "Events"
msgstr "Events" msgstr "Events"
@ -784,8 +784,8 @@ msgid "Exit full size mode"
msgstr "Exit full size mode" msgstr "Exit full size mode"
#: src/renderer/components/layout/sidebar.tsx:76 #: src/renderer/components/layout/sidebar.tsx:76
msgid "Extended view" #~ msgid "Extended view"
msgstr "Extended view" #~ msgstr "Extended view"
#: src/renderer/components/+network-services/services.tsx:49 #: src/renderer/components/+network-services/services.tsx:49
msgid "External IP" msgid "External IP"
@ -844,6 +844,10 @@ msgstr "From <0>{from}</0> to <1>{to}</1>"
msgid "Fs Group" msgid "Fs Group"
msgstr "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-details.tsx:32
#: src/renderer/components/+custom-resources/crd-list.tsx:58 #: src/renderer/components/+custom-resources/crd-list.tsx:58
#: src/renderer/components/+custom-resources/crd-list.tsx:74 #: src/renderer/components/+custom-resources/crd-list.tsx:74
@ -1335,7 +1339,7 @@ msgid "Namespace: {0}"
msgstr "Namespace: {0}" msgstr "Namespace: {0}"
#: src/renderer/components/+namespaces/namespaces.tsx:30 #: src/renderer/components/+namespaces/namespaces.tsx:30
#: src/renderer/components/layout/sidebar.tsx:85 #: src/renderer/components/layout/sidebar.tsx:91
msgid "Namespaces" msgid "Namespaces"
msgstr "Namespaces" msgstr "Namespaces"
@ -1345,7 +1349,7 @@ msgstr "Namespaces: {0}"
#: src/renderer/components/+network-ingresses/ingress-details.tsx:66 #: src/renderer/components/+network-ingresses/ingress-details.tsx:66
#: src/renderer/components/+workloads-pods/pod-charts.tsx:13 #: 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" msgid "Network"
msgstr "Network" msgstr "Network"
@ -1443,7 +1447,7 @@ msgid "Node shell"
msgstr "Node shell" msgstr "Node shell"
#: src/renderer/components/+nodes/nodes.tsx:111 #: src/renderer/components/+nodes/nodes.tsx:111
#: src/renderer/components/layout/sidebar.tsx:80 #: src/renderer/components/layout/sidebar.tsx:86
msgid "Nodes" msgid "Nodes"
msgstr "Nodes" msgstr "Nodes"
@ -1483,6 +1487,10 @@ msgstr "Object"
msgid "Ok" msgid "Ok"
msgstr "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 #: src/renderer/components/dock/dock.tsx:117
msgid "Open" msgid "Open"
msgstr "Open" msgstr "Open"
@ -2030,7 +2038,7 @@ msgstr "Set"
msgid "Set quota" msgid "Set quota"
msgstr "Set quota" msgstr "Set quota"
#: src/renderer/components/+workspaces/clusters-menu.tsx:33 #: src/renderer/components/cluster-manager/clusters-menu.tsx:43
msgid "Settings" msgid "Settings"
msgstr "Settings" msgstr "Settings"
@ -2114,7 +2122,7 @@ msgid "Status URI"
msgstr "Status URI" msgstr "Status URI"
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:57 #: 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" msgid "Storage"
msgstr "Storage" msgstr "Storage"
@ -2204,7 +2212,7 @@ msgstr "This field is required"
msgid "This field must contain only lowercase latin characters, numbers and dash." msgid "This field must contain only lowercase latin characters, numbers and dash."
msgstr "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." msgid "This is the quick launch menu."
msgstr "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" msgid "To"
msgstr "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." 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." 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}" msgid "Warnings: {0}"
msgstr "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 #: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
msgid "Worker" msgid "Worker"
msgstr "Worker" msgstr "Worker"
#: src/renderer/components/layout/sidebar.tsx:81 #: src/renderer/components/layout/sidebar.tsx:87
msgid "Workloads" msgid "Workloads"
msgstr "Workloads" msgstr "Workloads"
#: src/renderer/components/+workspaces/bottom-bar.tsx:31 #: src/renderer/components/cluster-manager/bottom-bar.tsx:35
msgid "Workspaces" msgid "Workspaces"
msgstr "Workspaces" msgstr "Workspaces"
@ -2492,7 +2504,7 @@ msgstr "{0} total, {1} available"
msgid "{0} unavailable" msgid "{0} unavailable"
msgstr "{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" msgid "{accountName} kubeconfig"
msgstr "{accountName} kubeconfig" msgstr "{accountName} kubeconfig"

View File

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

View File

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

View File

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

View File

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

View File

@ -126,6 +126,10 @@ export class LensProxy {
} }
protected async handleRequest(proxy: httpProxy, req: http.IncomingMessage, res: http.ServerResponse) { 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) const cluster = this.clusterManager.getClusterForRequest(req)
if (!cluster) { if (!cluster) {
const reqId = this.getRequestId(req); const reqId = this.getRequestId(req);

View File

@ -52,20 +52,20 @@ export class Router {
const matchingRoute = this.router.route(method, path); const matchingRoute = this.router.route(method, path);
const routeFound = !matchingRoute.isBoom; const routeFound = !matchingRoute.isBoom;
if (routeFound) { if (routeFound) {
const request = await this.getRequest({ const request = await this.getRequest({ req, res, cluster, url, params: matchingRoute.params });
req, res, cluster, url,
params: matchingRoute.params
});
await matchingRoute.route(request) await matchingRoute.route(request)
return true return true
} }
return false; return false;
} }
protected async getRequest(opts: RouterRequestOpts) { protected async getRequest(opts: RouterRequestOpts): Promise<LensApiRequest> {
const { req, res, url, cluster, params } = opts const { req, res, url, cluster, params } = opts
const { payload } = await Subtext.parse(req, null, { parse: true, output: 'data' }); const { payload } = await Subtext.parse(req, null, {
const request: LensApiRequest = { parse: true,
output: "data",
});
return {
cluster: cluster, cluster: cluster,
path: url.pathname, path: url.pathname,
raw: { raw: {
@ -76,7 +76,6 @@ export class Router {
payload: payload, payload: payload,
params: params params: params
} }
return request
} }
protected getMimeType(filename: string) { protected getMimeType(filename: string) {
@ -95,15 +94,15 @@ export class Router {
return mimeTypes[path.extname(filename).slice(1)] || "text/plain" return mimeTypes[path.extname(filename).slice(1)] || "text/plain"
} }
protected async handleStaticFile(filePath: string, response: http.ServerResponse) { async handleStaticFile(filePath: string, res: http.ServerResponse) {
const asset = path.resolve(outDir, filePath); const asset = path.join(outDir, filePath);
try { try {
const data = await readFile(asset); const data = await readFile(asset);
response.setHeader("Content-Type", this.getMimeType(asset)); res.setHeader("Content-Type", this.getMimeType(asset));
response.write(data) res.write(data)
response.end() res.end()
} catch (err) { } catch (err) {
this.handleStaticFile(`${appName}.html`, response); this.handleStaticFile(`${appName}.html`, res);
} }
} }
@ -111,7 +110,7 @@ export class Router {
// Static assets // Static assets
this.router.add({ method: 'get', path: '/{path*}' }, ({ params, response }: LensApiRequest) => { this.router.add({ method: 'get', path: '/{path*}' }, ({ params, response }: LensApiRequest) => {
this.handleStaticFile(params.path, response); this.handleStaticFile(params.path, response);
}) });
this.router.add({ method: "get", path: `${apiPrefix}/config` }, configRoute.routeConfig.bind(configRoute)) 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)) 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 { BrowserWindow, shell } from "electron"
import windowStateKeeper from "electron-window-state" import windowStateKeeper from "electron-window-state"
import type { ClusterId } from "../common/cluster-store"; import type { ClusterId } from "../common/cluster-store";
@ -15,7 +15,7 @@ export class WindowManager {
protected splashWindow: BrowserWindow; protected splashWindow: BrowserWindow;
protected windowState: windowStateKeeper.State; protected windowState: windowStateKeeper.State;
constructor() { constructor(protected proxyPort: number) {
this.splashWindow = new BrowserWindow({ this.splashWindow = new BrowserWindow({
width: 500, width: 500,
height: 300, height: 300,
@ -60,22 +60,22 @@ export class WindowManager {
this.destroyView(cluster.id); this.destroyView(cluster.id);
}); });
}), }),
);
// handle initial view load without clusters // handle no-clusters view
// if (!clusterStore.clusters.size) { autorun(() => {
// this.initNoClustersView(); if (!clusterStore.clusters.size) {
// } this.initNoClustersView();
}
})
);
} }
// fixme: first run without clusters protected async initNoClustersView() {
// protected async initNoClustersView() { this.activeView = this.initView(undefined);
// const htmlView = path.join(__dirname, `${appName}.html`); await this.activeView.loadURL(`http://no-clusters.localhost:${this.proxyPort}`);
// const view = this.initView(undefined); this.activeView.show();
// await view.loadFile(htmlView); this.hideSplash();
// view.show(); }
// this.hideSplash();
// }
async showSplash() { async showSplash() {
await this.splashWindow.loadURL("static://splash.html") await this.splashWindow.loadURL("static://splash.html")

View File

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

View File

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