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

added workspaces layout, more refactoring

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-07-08 17:21:54 +03:00
parent b9089a7c5e
commit 4a06f65cb8
31 changed files with 555 additions and 329 deletions

View File

@ -13,6 +13,14 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
#~ msgid "'Disconnect'"
#~ msgstr "'Disconnect'"
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
#~ msgid "'Settings'"
#~ msgstr "'Settings'"
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:28 #: src/renderer/components/+config-autoscalers/hpa-details.tsx:28
msgid "(as a percentage of request)" msgid "(as a percentage of request)"
msgstr "(as a percentage of request)" msgstr "(as a percentage of request)"
@ -67,6 +75,10 @@ msgstr "Add RoleBinding"
msgid "Add bindings to {name}" msgid "Add bindings to {name}"
msgstr "Add bindings to {name}" msgstr "Add bindings to {name}"
#: src/renderer/components/+workspaces/clusters-menu.tsx:58
#~ msgid "Add clusters"
#~ msgstr "Add clusters"
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125
msgid "Add field" msgid "Add field"
msgstr "Add field" msgstr "Add field"
@ -125,7 +137,7 @@ msgstr "All groups"
msgid "All logs" msgid "All logs"
msgstr "All logs" msgstr "All logs"
#: src/renderer/components/+namespaces/namespace-select.tsx:96 #: src/renderer/components/+namespaces/namespace-select.tsx:95
msgid "All namespaces" msgid "All namespaces"
msgstr "All namespaces" msgstr "All namespaces"
@ -199,6 +211,10 @@ 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:55
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."
#: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101 #: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101
msgid "Auth App Role" msgid "Auth App Role"
msgstr "Auth App Role" msgstr "Auth App Role"
@ -229,32 +245,32 @@ msgstr "Bindings"
msgid "Build version" msgid "Build version"
msgstr "Build version" msgstr "Build version"
#: src/renderer/components/+workloads-pods/container-charts.tsx:72 #: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98 #: src/renderer/components/+workloads-pods/pod-charts.tsx:100
msgid "Bytes consumed on this filesystem" msgid "Bytes consumed on this filesystem"
msgstr "Bytes consumed on this filesystem" msgstr "Bytes consumed on this filesystem"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:81 #: src/renderer/components/+workloads-pods/pod-charts.tsx:83
msgid "Bytes received by all containers" msgid "Bytes received by all containers"
msgstr "Bytes received by all containers" msgstr "Bytes received by all containers"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:31 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:33
msgid "Bytes sent by Ingress controller with error status" msgid "Bytes sent by Ingress controller with error status"
msgstr "Bytes sent by Ingress controller with error status" msgstr "Bytes sent by Ingress controller with error status"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:24 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:26
msgid "Bytes sent by Ingress controller with successful status" msgid "Bytes sent by Ingress controller with successful status"
msgstr "Bytes sent by Ingress controller with successful status" msgstr "Bytes sent by Ingress controller with successful status"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:23 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:25
msgid "Bytes sent, status 2xx" msgid "Bytes sent, status 2xx"
msgstr "Bytes sent, status 2xx" msgstr "Bytes sent, status 2xx"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:30 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:32
msgid "Bytes sent, status 5xx" msgid "Bytes sent, status 5xx"
msgstr "Bytes sent, status 5xx" msgstr "Bytes sent, status 5xx"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:88 #: src/renderer/components/+workloads-pods/pod-charts.tsx:90
msgid "Bytes transmitted from all containers" msgid "Bytes transmitted from all containers"
msgstr "Bytes transmitted from all containers" msgstr "Bytes transmitted from all containers"
@ -282,17 +298,17 @@ msgid "CPU capacity"
msgstr "CPU capacity" msgstr "CPU capacity"
#: src/renderer/components/+nodes/node-charts.tsx:26 #: src/renderer/components/+nodes/node-charts.tsx:26
#: src/renderer/components/+workloads-pods/container-charts.tsx:24 #: src/renderer/components/+workloads-pods/container-charts.tsx:26
msgid "CPU cores usage" msgid "CPU cores usage"
msgstr "CPU cores usage" msgstr "CPU cores usage"
#: src/renderer/components/+workloads-pods/container-charts.tsx:38 #: src/renderer/components/+workloads-pods/container-charts.tsx:40
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47 #: src/renderer/components/+workloads-pods/pod-charts.tsx:49
msgid "CPU limits" msgid "CPU limits"
msgstr "CPU limits" msgstr "CPU limits"
#: src/renderer/components/+nodes/node-charts.tsx:33 #: src/renderer/components/+nodes/node-charts.tsx:33
#: src/renderer/components/+workloads-pods/container-charts.tsx:31 #: src/renderer/components/+workloads-pods/container-charts.tsx:33
msgid "CPU requests" msgid "CPU requests"
msgstr "CPU requests" msgstr "CPU requests"
@ -368,7 +384,7 @@ msgstr "Close (Ctrl+W)"
msgid "Cloud API Token Secret" msgid "Cloud API Token Secret"
msgstr "Cloud API Token Secret" msgstr "Cloud API Token Secret"
#: src/renderer/components/+namespaces/namespace-select.tsx:44 #: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79 #: src/renderer/components/layout/sidebar.tsx:79
msgid "Cluster" msgid "Cluster"
msgstr "Cluster" msgstr "Cluster"
@ -447,23 +463,23 @@ msgstr "Connection"
msgid "Container" msgid "Container"
msgstr "Container" msgstr "Container"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:33 #: src/renderer/components/+workloads-pods/pod-charts.tsx:35
msgid "Container CPU cores usage" msgid "Container CPU cores usage"
msgstr "Container CPU cores usage" msgstr "Container CPU cores usage"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:40 #: src/renderer/components/+workloads-pods/pod-charts.tsx:42
msgid "Container CPU requests" msgid "Container CPU requests"
msgstr "Container CPU requests" msgstr "Container CPU requests"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:71 #: src/renderer/components/+workloads-pods/pod-charts.tsx:73
msgid "Container memory limits" msgid "Container memory limits"
msgstr "Container memory limits" msgstr "Container memory limits"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:64 #: src/renderer/components/+workloads-pods/pod-charts.tsx:66
msgid "Container memory requests" msgid "Container memory requests"
msgstr "Container memory requests" msgstr "Container memory requests"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:57 #: src/renderer/components/+workloads-pods/pod-charts.tsx:59
msgid "Container memory usage" msgid "Container memory usage"
msgstr "Container memory usage" msgstr "Container memory usage"
@ -662,6 +678,10 @@ 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:38
msgid "Disconnect"
msgstr "Disconnect"
#: src/renderer/components/+nodes/node-details.tsx:65 #: src/renderer/components/+nodes/node-details.tsx:65
#: src/renderer/components/+nodes/nodes.tsx:115 #: src/renderer/components/+nodes/nodes.tsx:115
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44 #: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44
@ -1070,10 +1090,10 @@ msgstr "Limited to {0}"
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:72 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:72
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:115 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:115
#: src/renderer/components/+workloads-pods/container-charts.tsx:37 #: src/renderer/components/+workloads-pods/container-charts.tsx:39
#: src/renderer/components/+workloads-pods/container-charts.tsx:61 #: src/renderer/components/+workloads-pods/container-charts.tsx:63
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46 #: src/renderer/components/+workloads-pods/pod-charts.tsx:48
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70 #: src/renderer/components/+workloads-pods/pod-charts.tsx:72
msgid "Limits" msgid "Limits"
msgstr "Limits" msgstr "Limits"
@ -1153,17 +1173,17 @@ msgstr "Memory"
msgid "Memory capacity" msgid "Memory capacity"
msgstr "Memory capacity" msgstr "Memory capacity"
#: src/renderer/components/+workloads-pods/container-charts.tsx:62 #: src/renderer/components/+workloads-pods/container-charts.tsx:64
msgid "Memory limits" msgid "Memory limits"
msgstr "Memory limits" msgstr "Memory limits"
#: src/renderer/components/+nodes/node-charts.tsx:57 #: src/renderer/components/+nodes/node-charts.tsx:57
#: src/renderer/components/+workloads-pods/container-charts.tsx:55 #: src/renderer/components/+workloads-pods/container-charts.tsx:57
msgid "Memory requests" msgid "Memory requests"
msgstr "Memory requests" msgstr "Memory requests"
#: src/renderer/components/+nodes/node-charts.tsx:50 #: src/renderer/components/+nodes/node-charts.tsx:50
#: src/renderer/components/+workloads-pods/container-charts.tsx:48 #: src/renderer/components/+workloads-pods/container-charts.tsx:50
msgid "Memory usage" msgid "Memory usage"
msgstr "Memory usage" msgstr "Memory usage"
@ -1310,17 +1330,16 @@ msgstr "Names"
msgid "Namespace" msgid "Namespace"
msgstr "Namespace" msgstr "Namespace"
#: src/renderer/components/+namespaces/namespace-select.tsx:98 #: src/renderer/components/+namespaces/namespace-select.tsx:97
msgid "Namespace: {0}" 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/app.tsx:36
#: src/renderer/components/layout/sidebar.tsx:85 #: src/renderer/components/layout/sidebar.tsx:85
msgid "Namespaces" msgid "Namespaces"
msgstr "Namespaces" msgstr "Namespaces"
#: src/renderer/components/+namespaces/namespace-select.tsx:100 #: src/renderer/components/+namespaces/namespace-select.tsx:99
msgid "Namespaces: {0}" msgid "Namespaces: {0}"
msgstr "Namespaces: {0}" msgstr "Namespaces: {0}"
@ -1636,7 +1655,7 @@ msgstr "Reason"
msgid "Reason: {0} ({1})" msgid "Reason: {0} ({1})"
msgstr "Reason: {0} ({1})" msgstr "Reason: {0} ({1})"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:80 #: src/renderer/components/+workloads-pods/pod-charts.tsx:82
msgid "Receive" msgid "Receive"
msgstr "Receive" msgstr "Receive"
@ -1727,11 +1746,11 @@ msgstr "Repo/Name"
msgid "Repository" msgid "Repository"
msgstr "Repository" msgstr "Repository"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
msgid "Request" msgid "Request"
msgstr "Request" msgstr "Request"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:41 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:43
msgid "Request duration in seconds" msgid "Request duration in seconds"
msgstr "Request duration in seconds" msgstr "Request duration in seconds"
@ -1739,10 +1758,10 @@ msgstr "Request duration in seconds"
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:114 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:114
#: src/renderer/components/+nodes/node-charts.tsx:32 #: src/renderer/components/+nodes/node-charts.tsx:32
#: src/renderer/components/+nodes/node-charts.tsx:56 #: src/renderer/components/+nodes/node-charts.tsx:56
#: src/renderer/components/+workloads-pods/container-charts.tsx:30 #: src/renderer/components/+workloads-pods/container-charts.tsx:32
#: src/renderer/components/+workloads-pods/container-charts.tsx:54 #: src/renderer/components/+workloads-pods/container-charts.tsx:56
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39 #: src/renderer/components/+workloads-pods/pod-charts.tsx:41
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63 #: src/renderer/components/+workloads-pods/pod-charts.tsx:65
msgid "Requests" msgid "Requests"
msgstr "Requests" msgstr "Requests"
@ -1798,11 +1817,11 @@ msgstr "ResourceQuota name"
msgid "Resources" msgid "Resources"
msgstr "Resources" msgstr "Resources"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
msgid "Response" msgid "Response"
msgstr "Response" msgstr "Response"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:48 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:50
msgid "Response duration in seconds" msgid "Response duration in seconds"
msgstr "Response duration in seconds" msgstr "Response duration in seconds"
@ -2011,13 +2030,17 @@ msgstr "Set"
msgid "Set quota" msgid "Set quota"
msgstr "Set quota" msgstr "Set quota"
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
msgid "Settings"
msgstr "Settings"
#: src/renderer/components/+nodes/node-menu.tsx:48 #: src/renderer/components/+nodes/node-menu.tsx:48
#: src/renderer/components/+workloads-pods/pod-menu.tsx:68 #: src/renderer/components/+workloads-pods/pod-menu.tsx:68
msgid "Shell" msgid "Shell"
msgstr "Shell" msgstr "Shell"
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:97 #: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2181,6 +2204,10 @@ 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:53
msgid "This is the quick launch menu."
msgstr "This is the quick launch menu."
#: src/renderer/components/+network-policies/network-policy-details.tsx:59 #: src/renderer/components/+network-policies/network-policy-details.tsx:59
msgid "To" msgid "To"
msgstr "To" msgstr "To"
@ -2197,7 +2224,7 @@ msgstr "Tokens"
msgid "Tolerations" msgid "Tolerations"
msgstr "Tolerations" msgstr "Tolerations"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87 #: src/renderer/components/+workloads-pods/pod-charts.tsx:89
msgid "Transmit" msgid "Transmit"
msgstr "Transmit" msgstr "Transmit"
@ -2263,12 +2290,12 @@ msgstr "Upgrade version"
#: src/renderer/components/+nodes/node-charts.tsx:73 #: src/renderer/components/+nodes/node-charts.tsx:73
#: src/renderer/components/+nodes/node-charts.tsx:90 #: src/renderer/components/+nodes/node-charts.tsx:90
#: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24 #: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24
#: src/renderer/components/+workloads-pods/container-charts.tsx:23 #: src/renderer/components/+workloads-pods/container-charts.tsx:25
#: src/renderer/components/+workloads-pods/container-charts.tsx:47 #: src/renderer/components/+workloads-pods/container-charts.tsx:49
#: src/renderer/components/+workloads-pods/container-charts.tsx:71 #: src/renderer/components/+workloads-pods/container-charts.tsx:73
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32 #: src/renderer/components/+workloads-pods/pod-charts.tsx:34
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56 #: src/renderer/components/+workloads-pods/pod-charts.tsx:58
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97 #: src/renderer/components/+workloads-pods/pod-charts.tsx:99
msgid "Usage" msgid "Usage"
msgstr "Usage" msgstr "Usage"
@ -2355,6 +2382,10 @@ msgstr "Worker"
msgid "Workloads" msgid "Workloads"
msgstr "Workloads" msgstr "Workloads"
#: src/renderer/components/+workspaces/workspaces.tsx:41
msgid "Workspaces"
msgstr "Workspaces"
#: src/renderer/components/input/input.validators.ts:10 #: src/renderer/components/input/input.validators.ts:10
msgid "Wrong email format" msgid "Wrong email format"
msgstr "Wrong email format" msgstr "Wrong email format"
@ -2421,7 +2452,7 @@ msgstr "plural"
msgid "ready" msgid "ready"
msgstr "ready" msgstr "ready"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
msgid "sec" msgid "sec"
msgstr "sec" msgstr "sec"

View File

@ -13,6 +13,14 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
#~ msgid "'Disconnect'"
#~ msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
#~ msgid "'Settings'"
#~ msgstr ""
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:28 #: src/renderer/components/+config-autoscalers/hpa-details.tsx:28
msgid "(as a percentage of request)" msgid "(as a percentage of request)"
msgstr "" msgstr ""
@ -67,6 +75,10 @@ msgstr ""
msgid "Add bindings to {name}" msgid "Add bindings to {name}"
msgstr "" msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:58
#~ msgid "Add clusters"
#~ msgstr ""
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125
msgid "Add field" msgid "Add field"
msgstr "" msgstr ""
@ -125,7 +137,7 @@ msgstr ""
msgid "All logs" msgid "All logs"
msgstr "" msgstr ""
#: src/renderer/components/+namespaces/namespace-select.tsx:96 #: src/renderer/components/+namespaces/namespace-select.tsx:95
msgid "All namespaces" msgid "All namespaces"
msgstr "" msgstr ""
@ -199,6 +211,10 @@ msgstr ""
msgid "Arguments" msgid "Arguments"
msgstr "" msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:55
msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
msgstr ""
#: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101 #: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101
msgid "Auth App Role" msgid "Auth App Role"
msgstr "" msgstr ""
@ -229,32 +245,32 @@ msgstr ""
msgid "Build version" msgid "Build version"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/container-charts.tsx:72 #: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98 #: src/renderer/components/+workloads-pods/pod-charts.tsx:100
msgid "Bytes consumed on this filesystem" msgid "Bytes consumed on this filesystem"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:81 #: src/renderer/components/+workloads-pods/pod-charts.tsx:83
msgid "Bytes received by all containers" msgid "Bytes received by all containers"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:31 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:33
msgid "Bytes sent by Ingress controller with error status" msgid "Bytes sent by Ingress controller with error status"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:24 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:26
msgid "Bytes sent by Ingress controller with successful status" msgid "Bytes sent by Ingress controller with successful status"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:23 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:25
msgid "Bytes sent, status 2xx" msgid "Bytes sent, status 2xx"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:30 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:32
msgid "Bytes sent, status 5xx" msgid "Bytes sent, status 5xx"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:88 #: src/renderer/components/+workloads-pods/pod-charts.tsx:90
msgid "Bytes transmitted from all containers" msgid "Bytes transmitted from all containers"
msgstr "" msgstr ""
@ -282,17 +298,17 @@ msgid "CPU capacity"
msgstr "" msgstr ""
#: src/renderer/components/+nodes/node-charts.tsx:26 #: src/renderer/components/+nodes/node-charts.tsx:26
#: src/renderer/components/+workloads-pods/container-charts.tsx:24 #: src/renderer/components/+workloads-pods/container-charts.tsx:26
msgid "CPU cores usage" msgid "CPU cores usage"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/container-charts.tsx:38 #: src/renderer/components/+workloads-pods/container-charts.tsx:40
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47 #: src/renderer/components/+workloads-pods/pod-charts.tsx:49
msgid "CPU limits" msgid "CPU limits"
msgstr "" msgstr ""
#: src/renderer/components/+nodes/node-charts.tsx:33 #: src/renderer/components/+nodes/node-charts.tsx:33
#: src/renderer/components/+workloads-pods/container-charts.tsx:31 #: src/renderer/components/+workloads-pods/container-charts.tsx:33
msgid "CPU requests" msgid "CPU requests"
msgstr "" msgstr ""
@ -364,7 +380,7 @@ msgstr ""
msgid "Cloud API Token Secret" msgid "Cloud API Token Secret"
msgstr "" msgstr ""
#: src/renderer/components/+namespaces/namespace-select.tsx:44 #: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79 #: src/renderer/components/layout/sidebar.tsx:79
msgid "Cluster" msgid "Cluster"
msgstr "" msgstr ""
@ -443,23 +459,23 @@ msgstr ""
msgid "Container" msgid "Container"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:33 #: src/renderer/components/+workloads-pods/pod-charts.tsx:35
msgid "Container CPU cores usage" msgid "Container CPU cores usage"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:40 #: src/renderer/components/+workloads-pods/pod-charts.tsx:42
msgid "Container CPU requests" msgid "Container CPU requests"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:71 #: src/renderer/components/+workloads-pods/pod-charts.tsx:73
msgid "Container memory limits" msgid "Container memory limits"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:64 #: src/renderer/components/+workloads-pods/pod-charts.tsx:66
msgid "Container memory requests" msgid "Container memory requests"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:57 #: src/renderer/components/+workloads-pods/pod-charts.tsx:59
msgid "Container memory usage" msgid "Container memory usage"
msgstr "" msgstr ""
@ -658,6 +674,10 @@ msgstr ""
msgid "Desired number of replicas" msgid "Desired number of replicas"
msgstr "" msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
msgid "Disconnect"
msgstr ""
#: src/renderer/components/+nodes/node-details.tsx:65 #: src/renderer/components/+nodes/node-details.tsx:65
#: src/renderer/components/+nodes/nodes.tsx:115 #: src/renderer/components/+nodes/nodes.tsx:115
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44 #: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44
@ -1061,10 +1081,10 @@ msgstr ""
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:72 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:72
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:115 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:115
#: src/renderer/components/+workloads-pods/container-charts.tsx:37 #: src/renderer/components/+workloads-pods/container-charts.tsx:39
#: src/renderer/components/+workloads-pods/container-charts.tsx:61 #: src/renderer/components/+workloads-pods/container-charts.tsx:63
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46 #: src/renderer/components/+workloads-pods/pod-charts.tsx:48
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70 #: src/renderer/components/+workloads-pods/pod-charts.tsx:72
msgid "Limits" msgid "Limits"
msgstr "" msgstr ""
@ -1144,17 +1164,17 @@ msgstr ""
msgid "Memory capacity" msgid "Memory capacity"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/container-charts.tsx:62 #: src/renderer/components/+workloads-pods/container-charts.tsx:64
msgid "Memory limits" msgid "Memory limits"
msgstr "" msgstr ""
#: src/renderer/components/+nodes/node-charts.tsx:57 #: src/renderer/components/+nodes/node-charts.tsx:57
#: src/renderer/components/+workloads-pods/container-charts.tsx:55 #: src/renderer/components/+workloads-pods/container-charts.tsx:57
msgid "Memory requests" msgid "Memory requests"
msgstr "" msgstr ""
#: src/renderer/components/+nodes/node-charts.tsx:50 #: src/renderer/components/+nodes/node-charts.tsx:50
#: src/renderer/components/+workloads-pods/container-charts.tsx:48 #: src/renderer/components/+workloads-pods/container-charts.tsx:50
msgid "Memory usage" msgid "Memory usage"
msgstr "" msgstr ""
@ -1301,17 +1321,16 @@ msgstr ""
msgid "Namespace" msgid "Namespace"
msgstr "" msgstr ""
#: src/renderer/components/+namespaces/namespace-select.tsx:98 #: src/renderer/components/+namespaces/namespace-select.tsx:97
msgid "Namespace: {0}" msgid "Namespace: {0}"
msgstr "" msgstr ""
#: src/renderer/components/+namespaces/namespaces.tsx:30 #: src/renderer/components/+namespaces/namespaces.tsx:30
#: src/renderer/components/app.tsx:36
#: src/renderer/components/layout/sidebar.tsx:85 #: src/renderer/components/layout/sidebar.tsx:85
msgid "Namespaces" msgid "Namespaces"
msgstr "" msgstr ""
#: src/renderer/components/+namespaces/namespace-select.tsx:100 #: src/renderer/components/+namespaces/namespace-select.tsx:99
msgid "Namespaces: {0}" msgid "Namespaces: {0}"
msgstr "" msgstr ""
@ -1619,7 +1638,7 @@ msgstr ""
msgid "Reason: {0} ({1})" msgid "Reason: {0} ({1})"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:80 #: src/renderer/components/+workloads-pods/pod-charts.tsx:82
msgid "Receive" msgid "Receive"
msgstr "" msgstr ""
@ -1710,11 +1729,11 @@ msgstr ""
msgid "Repository" msgid "Repository"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
msgid "Request" msgid "Request"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:41 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:43
msgid "Request duration in seconds" msgid "Request duration in seconds"
msgstr "" msgstr ""
@ -1722,10 +1741,10 @@ msgstr ""
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:114 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:114
#: src/renderer/components/+nodes/node-charts.tsx:32 #: src/renderer/components/+nodes/node-charts.tsx:32
#: src/renderer/components/+nodes/node-charts.tsx:56 #: src/renderer/components/+nodes/node-charts.tsx:56
#: src/renderer/components/+workloads-pods/container-charts.tsx:30 #: src/renderer/components/+workloads-pods/container-charts.tsx:32
#: src/renderer/components/+workloads-pods/container-charts.tsx:54 #: src/renderer/components/+workloads-pods/container-charts.tsx:56
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39 #: src/renderer/components/+workloads-pods/pod-charts.tsx:41
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63 #: src/renderer/components/+workloads-pods/pod-charts.tsx:65
msgid "Requests" msgid "Requests"
msgstr "" msgstr ""
@ -1781,11 +1800,11 @@ msgstr ""
msgid "Resources" msgid "Resources"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
msgid "Response" msgid "Response"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:48 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:50
msgid "Response duration in seconds" msgid "Response duration in seconds"
msgstr "" msgstr ""
@ -1994,13 +2013,17 @@ msgstr ""
msgid "Set quota" msgid "Set quota"
msgstr "" msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
msgid "Settings"
msgstr ""
#: src/renderer/components/+nodes/node-menu.tsx:48 #: src/renderer/components/+nodes/node-menu.tsx:48
#: src/renderer/components/+workloads-pods/pod-menu.tsx:68 #: src/renderer/components/+workloads-pods/pod-menu.tsx:68
msgid "Shell" msgid "Shell"
msgstr "" msgstr ""
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:97 #: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2164,6 +2187,10 @@ 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:53
msgid "This is the quick launch menu."
msgstr ""
#: src/renderer/components/+network-policies/network-policy-details.tsx:59 #: src/renderer/components/+network-policies/network-policy-details.tsx:59
msgid "To" msgid "To"
msgstr "" msgstr ""
@ -2180,7 +2207,7 @@ msgstr ""
msgid "Tolerations" msgid "Tolerations"
msgstr "" msgstr ""
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87 #: src/renderer/components/+workloads-pods/pod-charts.tsx:89
msgid "Transmit" msgid "Transmit"
msgstr "" msgstr ""
@ -2246,12 +2273,12 @@ msgstr ""
#: src/renderer/components/+nodes/node-charts.tsx:73 #: src/renderer/components/+nodes/node-charts.tsx:73
#: src/renderer/components/+nodes/node-charts.tsx:90 #: src/renderer/components/+nodes/node-charts.tsx:90
#: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24 #: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24
#: src/renderer/components/+workloads-pods/container-charts.tsx:23 #: src/renderer/components/+workloads-pods/container-charts.tsx:25
#: src/renderer/components/+workloads-pods/container-charts.tsx:47 #: src/renderer/components/+workloads-pods/container-charts.tsx:49
#: src/renderer/components/+workloads-pods/container-charts.tsx:71 #: src/renderer/components/+workloads-pods/container-charts.tsx:73
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32 #: src/renderer/components/+workloads-pods/pod-charts.tsx:34
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56 #: src/renderer/components/+workloads-pods/pod-charts.tsx:58
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97 #: src/renderer/components/+workloads-pods/pod-charts.tsx:99
msgid "Usage" msgid "Usage"
msgstr "" msgstr ""
@ -2338,6 +2365,10 @@ msgstr ""
msgid "Workloads" msgid "Workloads"
msgstr "" msgstr ""
#: src/renderer/components/+workspaces/workspaces.tsx:41
msgid "Workspaces"
msgstr ""
#: src/renderer/components/input/input.validators.ts:10 #: src/renderer/components/input/input.validators.ts:10
msgid "Wrong email format" msgid "Wrong email format"
msgstr "" msgstr ""
@ -2404,7 +2435,7 @@ msgstr ""
msgid "ready" msgid "ready"
msgstr "" msgstr ""
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
msgid "sec" msgid "sec"
msgstr "" msgstr ""

View File

@ -14,6 +14,14 @@ msgstr ""
"Plural-Forms: \n" "Plural-Forms: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
#~ msgid "'Disconnect'"
#~ msgstr ""
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
#~ msgid "'Settings'"
#~ msgstr ""
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:28 #: src/renderer/components/+config-autoscalers/hpa-details.tsx:28
msgid "(as a percentage of request)" msgid "(as a percentage of request)"
msgstr "" msgstr ""
@ -68,6 +76,10 @@ msgstr "Добавить привязку ролей"
msgid "Add bindings to {name}" msgid "Add bindings to {name}"
msgstr "Добавить привязки к {name}" msgstr "Добавить привязки к {name}"
#: src/renderer/components/+workspaces/clusters-menu.tsx:58
#~ msgid "Add clusters"
#~ msgstr ""
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125 #: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125
msgid "Add field" msgid "Add field"
msgstr "Добавить поле" msgstr "Добавить поле"
@ -126,7 +138,7 @@ msgstr ""
msgid "All logs" msgid "All logs"
msgstr "Все логи" msgstr "Все логи"
#: src/renderer/components/+namespaces/namespace-select.tsx:96 #: src/renderer/components/+namespaces/namespace-select.tsx:95
msgid "All namespaces" msgid "All namespaces"
msgstr "" msgstr ""
@ -200,6 +212,10 @@ msgstr "Выполнить команду drain для ноды <0>{nodeName}</0
msgid "Arguments" msgid "Arguments"
msgstr "Аргументы" msgstr "Аргументы"
#: src/renderer/components/+workspaces/clusters-menu.tsx:55
msgid "Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button."
msgstr ""
#: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101 #: src/renderer/components/+custom-resources/certmanager.k8s.io/issuer-details.tsx:101
msgid "Auth App Role" msgid "Auth App Role"
msgstr "Auth App Role" msgstr "Auth App Role"
@ -230,32 +246,32 @@ msgstr "Привязки"
msgid "Build version" msgid "Build version"
msgstr "Версия билда" msgstr "Версия билда"
#: src/renderer/components/+workloads-pods/container-charts.tsx:72 #: src/renderer/components/+workloads-pods/container-charts.tsx:74
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98 #: src/renderer/components/+workloads-pods/pod-charts.tsx:100
msgid "Bytes consumed on this filesystem" msgid "Bytes consumed on this filesystem"
msgstr "Байты, потребляемые в файловой системе" msgstr "Байты, потребляемые в файловой системе"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:81 #: src/renderer/components/+workloads-pods/pod-charts.tsx:83
msgid "Bytes received by all containers" msgid "Bytes received by all containers"
msgstr "Байты, полученные всеми контейнерами" msgstr "Байты, полученные всеми контейнерами"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:31 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:33
msgid "Bytes sent by Ingress controller with error status" msgid "Bytes sent by Ingress controller with error status"
msgstr "Байты, отправленные контроллером доступа (Ingress) со статусом ошибки" msgstr "Байты, отправленные контроллером доступа (Ingress) со статусом ошибки"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:24 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:26
msgid "Bytes sent by Ingress controller with successful status" msgid "Bytes sent by Ingress controller with successful status"
msgstr "Байты, отправленные контроллером доступа (Ingress) с успешным статусом" msgstr "Байты, отправленные контроллером доступа (Ingress) с успешным статусом"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:23 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:25
msgid "Bytes sent, status 2xx" msgid "Bytes sent, status 2xx"
msgstr "Байты отправлены, статус 2xx" msgstr "Байты отправлены, статус 2xx"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:30 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:32
msgid "Bytes sent, status 5xx" msgid "Bytes sent, status 5xx"
msgstr "Байты отправлены, статус 5xx" msgstr "Байты отправлены, статус 5xx"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:88 #: src/renderer/components/+workloads-pods/pod-charts.tsx:90
msgid "Bytes transmitted from all containers" msgid "Bytes transmitted from all containers"
msgstr "Байты, отправленные всеми контейнерами" msgstr "Байты, отправленные всеми контейнерами"
@ -283,17 +299,17 @@ msgid "CPU capacity"
msgstr "Мощность процессора" msgstr "Мощность процессора"
#: src/renderer/components/+nodes/node-charts.tsx:26 #: src/renderer/components/+nodes/node-charts.tsx:26
#: src/renderer/components/+workloads-pods/container-charts.tsx:24 #: src/renderer/components/+workloads-pods/container-charts.tsx:26
msgid "CPU cores usage" msgid "CPU cores usage"
msgstr "Использование ядер процессора" msgstr "Использование ядер процессора"
#: src/renderer/components/+workloads-pods/container-charts.tsx:38 #: src/renderer/components/+workloads-pods/container-charts.tsx:40
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47 #: src/renderer/components/+workloads-pods/pod-charts.tsx:49
msgid "CPU limits" msgid "CPU limits"
msgstr "Лимиты процессора" msgstr "Лимиты процессора"
#: src/renderer/components/+nodes/node-charts.tsx:33 #: src/renderer/components/+nodes/node-charts.tsx:33
#: src/renderer/components/+workloads-pods/container-charts.tsx:31 #: src/renderer/components/+workloads-pods/container-charts.tsx:33
msgid "CPU requests" msgid "CPU requests"
msgstr "Запросы к процессору" msgstr "Запросы к процессору"
@ -369,7 +385,7 @@ msgstr "Закрыть (Ctrl+W)"
msgid "Cloud API Token Secret" msgid "Cloud API Token Secret"
msgstr "Cloud API Token Secret" msgstr "Cloud API Token Secret"
#: src/renderer/components/+namespaces/namespace-select.tsx:44 #: src/renderer/components/+namespaces/namespace-select.tsx:43
#: src/renderer/components/layout/sidebar.tsx:79 #: src/renderer/components/layout/sidebar.tsx:79
msgid "Cluster" msgid "Cluster"
msgstr "Кластер" msgstr "Кластер"
@ -448,23 +464,23 @@ msgstr "Соединение"
msgid "Container" msgid "Container"
msgstr "Контейнер" msgstr "Контейнер"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:33 #: src/renderer/components/+workloads-pods/pod-charts.tsx:35
msgid "Container CPU cores usage" msgid "Container CPU cores usage"
msgstr "Использование ядер процессора" msgstr "Использование ядер процессора"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:40 #: src/renderer/components/+workloads-pods/pod-charts.tsx:42
msgid "Container CPU requests" msgid "Container CPU requests"
msgstr "Запросы CPU от контейнеров" msgstr "Запросы CPU от контейнеров"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:71 #: src/renderer/components/+workloads-pods/pod-charts.tsx:73
msgid "Container memory limits" msgid "Container memory limits"
msgstr "Лимиты памяти" msgstr "Лимиты памяти"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:64 #: src/renderer/components/+workloads-pods/pod-charts.tsx:66
msgid "Container memory requests" msgid "Container memory requests"
msgstr "Запросы памяти от контейнеров" msgstr "Запросы памяти от контейнеров"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:57 #: src/renderer/components/+workloads-pods/pod-charts.tsx:59
msgid "Container memory usage" msgid "Container memory usage"
msgstr "Использование памяти" msgstr "Использование памяти"
@ -663,6 +679,10 @@ msgstr "Описание"
msgid "Desired number of replicas" msgid "Desired number of replicas"
msgstr "Нужный уровень реплик" msgstr "Нужный уровень реплик"
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
msgid "Disconnect"
msgstr ""
#: src/renderer/components/+nodes/node-details.tsx:65 #: src/renderer/components/+nodes/node-details.tsx:65
#: src/renderer/components/+nodes/nodes.tsx:115 #: src/renderer/components/+nodes/nodes.tsx:115
#: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44 #: src/renderer/components/+storage-volume-claims/volume-claim-details.tsx:44
@ -1071,10 +1091,10 @@ msgstr ""
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:72 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:72
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:115 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:115
#: src/renderer/components/+workloads-pods/container-charts.tsx:37 #: src/renderer/components/+workloads-pods/container-charts.tsx:39
#: src/renderer/components/+workloads-pods/container-charts.tsx:61 #: src/renderer/components/+workloads-pods/container-charts.tsx:63
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46 #: src/renderer/components/+workloads-pods/pod-charts.tsx:48
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70 #: src/renderer/components/+workloads-pods/pod-charts.tsx:72
msgid "Limits" msgid "Limits"
msgstr "Лимиты" msgstr "Лимиты"
@ -1154,17 +1174,17 @@ msgstr "Память"
msgid "Memory capacity" msgid "Memory capacity"
msgstr "Объем памяти" msgstr "Объем памяти"
#: src/renderer/components/+workloads-pods/container-charts.tsx:62 #: src/renderer/components/+workloads-pods/container-charts.tsx:64
msgid "Memory limits" msgid "Memory limits"
msgstr "Лимиты памяти" msgstr "Лимиты памяти"
#: src/renderer/components/+nodes/node-charts.tsx:57 #: src/renderer/components/+nodes/node-charts.tsx:57
#: src/renderer/components/+workloads-pods/container-charts.tsx:55 #: src/renderer/components/+workloads-pods/container-charts.tsx:57
msgid "Memory requests" msgid "Memory requests"
msgstr "Запросы к памяти" msgstr "Запросы к памяти"
#: src/renderer/components/+nodes/node-charts.tsx:50 #: src/renderer/components/+nodes/node-charts.tsx:50
#: src/renderer/components/+workloads-pods/container-charts.tsx:48 #: src/renderer/components/+workloads-pods/container-charts.tsx:50
msgid "Memory usage" msgid "Memory usage"
msgstr "Использование памяти" msgstr "Использование памяти"
@ -1311,17 +1331,16 @@ msgstr ""
msgid "Namespace" msgid "Namespace"
msgstr "Namespace" msgstr "Namespace"
#: src/renderer/components/+namespaces/namespace-select.tsx:98 #: src/renderer/components/+namespaces/namespace-select.tsx:97
msgid "Namespace: {0}" 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/app.tsx:36
#: src/renderer/components/layout/sidebar.tsx:85 #: src/renderer/components/layout/sidebar.tsx:85
msgid "Namespaces" msgid "Namespaces"
msgstr "Namespaces" msgstr "Namespaces"
#: src/renderer/components/+namespaces/namespace-select.tsx:100 #: src/renderer/components/+namespaces/namespace-select.tsx:99
msgid "Namespaces: {0}" msgid "Namespaces: {0}"
msgstr "Namespaces: {0}" msgstr "Namespaces: {0}"
@ -1637,7 +1656,7 @@ msgstr "Причина"
msgid "Reason: {0} ({1})" msgid "Reason: {0} ({1})"
msgstr "Причина: {0} ({1})" msgstr "Причина: {0} ({1})"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:80 #: src/renderer/components/+workloads-pods/pod-charts.tsx:82
msgid "Receive" msgid "Receive"
msgstr "Получение" msgstr "Получение"
@ -1728,11 +1747,11 @@ msgstr "Репозиторий/Имя"
msgid "Repository" msgid "Repository"
msgstr "Репозиторий" msgstr "Репозиторий"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
msgid "Request" msgid "Request"
msgstr "Запрос" msgstr "Запрос"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:41 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:43
msgid "Request duration in seconds" msgid "Request duration in seconds"
msgstr "Продолжительность запроса в секундах" msgstr "Продолжительность запроса в секундах"
@ -1740,10 +1759,10 @@ msgstr "Продолжительность запроса в секундах"
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:114 #: src/renderer/components/+cluster/cluster-pie-charts.tsx:114
#: src/renderer/components/+nodes/node-charts.tsx:32 #: src/renderer/components/+nodes/node-charts.tsx:32
#: src/renderer/components/+nodes/node-charts.tsx:56 #: src/renderer/components/+nodes/node-charts.tsx:56
#: src/renderer/components/+workloads-pods/container-charts.tsx:30 #: src/renderer/components/+workloads-pods/container-charts.tsx:32
#: src/renderer/components/+workloads-pods/container-charts.tsx:54 #: src/renderer/components/+workloads-pods/container-charts.tsx:56
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39 #: src/renderer/components/+workloads-pods/pod-charts.tsx:41
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63 #: src/renderer/components/+workloads-pods/pod-charts.tsx:65
msgid "Requests" msgid "Requests"
msgstr "Запросы" msgstr "Запросы"
@ -1799,11 +1818,11 @@ msgstr "Имя квоты ресурса"
msgid "Resources" msgid "Resources"
msgstr "Ресурсы" msgstr "Ресурсы"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
msgid "Response" msgid "Response"
msgstr "Ответ" msgstr "Ответ"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:48 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:50
msgid "Response duration in seconds" msgid "Response duration in seconds"
msgstr "Продолжительность ответа в секундах" msgstr "Продолжительность ответа в секундах"
@ -2012,13 +2031,17 @@ msgstr "Установлено"
msgid "Set quota" msgid "Set quota"
msgstr "Установить квоту" msgstr "Установить квоту"
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
msgid "Settings"
msgstr ""
#: src/renderer/components/+nodes/node-menu.tsx:48 #: src/renderer/components/+nodes/node-menu.tsx:48
#: src/renderer/components/+workloads-pods/pod-menu.tsx:68 #: src/renderer/components/+workloads-pods/pod-menu.tsx:68
msgid "Shell" msgid "Shell"
msgstr "Командная строка" msgstr "Командная строка"
#: src/renderer/components/+config-secrets/secret-details.tsx:93 #: src/renderer/components/+config-secrets/secret-details.tsx:93
#: src/renderer/components/+workloads-pods/pod-container-env.tsx:97 #: src/renderer/components/+workloads-pods/pod-container-env.tsx:100
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215 #: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:215
#: src/renderer/components/drawer/drawer-param-toggler.tsx:19 #: src/renderer/components/drawer/drawer-param-toggler.tsx:19
msgid "Show" msgid "Show"
@ -2182,6 +2205,10 @@ 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:53
msgid "This is the quick launch menu."
msgstr ""
#: src/renderer/components/+network-policies/network-policy-details.tsx:59 #: src/renderer/components/+network-policies/network-policy-details.tsx:59
msgid "To" msgid "To"
msgstr "Из" msgstr "Из"
@ -2198,7 +2225,7 @@ msgstr "Токены"
msgid "Tolerations" msgid "Tolerations"
msgstr "Толерантности" msgstr "Толерантности"
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87 #: src/renderer/components/+workloads-pods/pod-charts.tsx:89
msgid "Transmit" msgid "Transmit"
msgstr "Транзит" msgstr "Транзит"
@ -2264,12 +2291,12 @@ msgstr "Обновить версию"
#: src/renderer/components/+nodes/node-charts.tsx:73 #: src/renderer/components/+nodes/node-charts.tsx:73
#: src/renderer/components/+nodes/node-charts.tsx:90 #: src/renderer/components/+nodes/node-charts.tsx:90
#: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24 #: src/renderer/components/+storage-volume-claims/volume-claim-disk-chart.tsx:24
#: src/renderer/components/+workloads-pods/container-charts.tsx:23 #: src/renderer/components/+workloads-pods/container-charts.tsx:25
#: src/renderer/components/+workloads-pods/container-charts.tsx:47 #: src/renderer/components/+workloads-pods/container-charts.tsx:49
#: src/renderer/components/+workloads-pods/container-charts.tsx:71 #: src/renderer/components/+workloads-pods/container-charts.tsx:73
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32 #: src/renderer/components/+workloads-pods/pod-charts.tsx:34
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56 #: src/renderer/components/+workloads-pods/pod-charts.tsx:58
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97 #: src/renderer/components/+workloads-pods/pod-charts.tsx:99
msgid "Usage" msgid "Usage"
msgstr "Использование" msgstr "Использование"
@ -2356,6 +2383,10 @@ msgstr "Рабочие"
msgid "Workloads" msgid "Workloads"
msgstr "Ресурсы" msgstr "Ресурсы"
#: src/renderer/components/+workspaces/workspaces.tsx:41
msgid "Workspaces"
msgstr ""
#: src/renderer/components/input/input.validators.ts:10 #: src/renderer/components/input/input.validators.ts:10
msgid "Wrong email format" msgid "Wrong email format"
msgstr "Неверный формат электронной почты" msgstr "Неверный формат электронной почты"
@ -2422,7 +2453,7 @@ msgstr ""
msgid "ready" msgid "ready"
msgstr "готово" msgstr "готово"
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67 #: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
msgid "sec" msgid "sec"
msgstr "сек" msgstr "сек"

View File

@ -5,7 +5,8 @@ import { Cluster } from "../main/cluster";
import migrations from "../migrations/cluster-store" import migrations from "../migrations/cluster-store"
export interface ClusterStoreModel { export interface ClusterStoreModel {
clusters: ClusterModel[] activeCluster?: ClusterId; // last opened cluster
clusters?: ClusterModel[]
} }
export type ClusterId = string; export type ClusterId = string;
@ -37,6 +38,7 @@ export interface ClusterPreferences {
} }
export class ClusterStore extends BaseStore<ClusterStoreModel> { export class ClusterStore extends BaseStore<ClusterStoreModel> {
@observable activeCluster: ClusterId;
@observable clusters = observable.map<ClusterId, Cluster>(); @observable clusters = observable.map<ClusterId, Cluster>();
private constructor() { private constructor() {
@ -69,6 +71,9 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
@action @action
removeById(clusterId: ClusterId): void { removeById(clusterId: ClusterId): void {
if (this.activeCluster === clusterId) {
this.activeCluster = null;
}
this.clusters.delete(clusterId); this.clusters.delete(clusterId);
} }
@ -80,17 +85,21 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
} }
@action @action
protected fromStore({ clusters = [] }: Partial<ClusterStoreModel> = {}) { protected fromStore({ activeCluster, clusters = [] }: ClusterStoreModel = {}) {
const clustersMap = new Map<ClusterId, Cluster>(); const clustersMap = new Map<ClusterId, Cluster>();
clusters.forEach(clusterModel => { clusters.forEach(clusterModel => {
clustersMap.set(clusterModel.id, new Cluster(clusterModel)); clustersMap.set(clusterModel.id, new Cluster(clusterModel));
}); });
this.activeCluster = clustersMap.has(activeCluster) ? activeCluster : null;
this.clusters.replace(clustersMap); this.clusters.replace(clustersMap);
} }
toJSON(): ClusterStoreModel { toJSON(): ClusterStoreModel {
const clusters = Array.from(this.clusters).map(([id, cluster]) => cluster.toJSON()); const clusters = Array.from(this.clusters).map(([id, cluster]) => cluster.toJSON());
return toJS({ clusters }, { return toJS({
activeCluster: this.activeCluster,
clusters: clusters,
}, {
recurseEverything: true recurseEverything: true
}) })
} }

View File

@ -51,7 +51,7 @@ export class Cluster implements ClusterModel {
@observable version: string; @observable version: string;
@observable distribution: string; @observable distribution: string;
@observable isAdmin: boolean; @observable isAdmin: boolean;
@observable eventCount: number; @observable eventCount: number; // todo: auto-fetch every 3s and push updates to client (?)
@observable preferences: ClusterPreferences = {}; @observable preferences: ClusterPreferences = {};
@observable features: FeatureStatusMap = {}; @observable features: FeatureStatusMap = {};

View File

@ -39,7 +39,6 @@ if (app.commandLine.getSwitchValue("proxy-server") !== "") {
async function main() { async function main() {
shellSync(app.getLocale()); shellSync(app.getLocale());
// todo: check other usages .getPath("userData") and enable "lazy-evaluation"
const workingDir = path.join(app.getPath("appData"), appName); const workingDir = path.join(app.getPath("appData"), appName);
app.setName(appName); app.setName(appName);
app.setPath("userData", workingDir); app.setPath("userData", workingDir);
@ -83,7 +82,7 @@ async function main() {
} }
// manage lens windows // manage lens windows
windowManager = new WindowManager(); windowManager = new WindowManager({showSplash: true});
windowManager.showMain(vmURL) windowManager.showMain(vmURL)
} }
@ -98,13 +97,13 @@ app.on('window-all-closed', function () {
if (clusterManager) clusterManager.stop() if (clusterManager) clusterManager.stop()
} }
}) })
app.on("activate", () => { // app.on("activate", () => {
if (!windowManager) { // if (!windowManager) {
logger.debug("activate main window") // logger.debug("activate main window")
windowManager = new WindowManager({ showSplash: false }) // windowManager = new WindowManager({ showSplash: false })
windowManager.showMain(vmURL) // windowManager.showMain(vmURL)
} // }
}) // })
app.on("will-quit", async (event) => { app.on("will-quit", async (event) => {
event.preventDefault(); // To allow mixpanel sending to be executed event.preventDefault(); // To allow mixpanel sending to be executed
if (clusterManager) clusterManager.stop() if (clusterManager) clusterManager.stop()

View File

@ -6,6 +6,10 @@ interface Props {
export class AddCluster extends React.Component { export class AddCluster extends React.Component {
render() { render() {
return "AddCluster"; return (
<div className="AddCluster">
AddCluster
</div>
)
} }
} }

View File

@ -0,0 +1 @@
export * from "./add-cluster"

View File

@ -0,0 +1,9 @@
.ClusterIcon {
position: relative;
.Badge {
position: absolute;
right: 0;
bottom: 0;
}
}

View File

@ -0,0 +1,46 @@
import "./cluster-icon.scss"
import React, { DOMAttributes } from "react";
import { observer } from "mobx-react";
import { Hashicon, HashiconProps } from "@emeraldpay/hashicon-react";
import { Cluster } from "../../../main/cluster";
import { cssNames, IClassName } from "../../utils";
import { Badge } from "../badge";
interface Props extends DOMAttributes<HTMLElement>, Omit<HashiconProps, "value"> {
className?: IClassName;
showBadge?: boolean;
cluster: Cluster;
}
const defaultProps: Partial<Props> = {
size: 38,
showBadge: true,
};
@observer
export class ClusterIcon extends React.Component<Props> {
static defaultProps = defaultProps as object;
render() {
const { className, cluster, showBadge, options, size, ...elemProps } = this.props;
const { isAdmin, eventCount, preferences } = cluster;
const { clusterName, icon } = preferences;
const eventsCount = eventCount >= 1000 ? Math.ceil(eventCount / 1000) * 1000 + "+" : eventCount;
return (
<div className={cssNames("ClusterIcon flex inline", className)} {...elemProps}>
{icon && <img src={icon} width={size} height={size} alt={clusterName}/>}
{!icon && (
<Hashicon
value={clusterName}
size={size}
options={options}
/>
)}
{showBadge && isAdmin && eventsCount && (
<Badge label={eventsCount} className="events-count"/>
)}
</div>
);
}
}

View File

@ -0,0 +1 @@
export * from "./cluster-settings"

View File

@ -1,3 +0,0 @@
.ClustersMenu {
}

View File

@ -1,15 +0,0 @@
import "./clusters-menu.scss"
import React from "react";
interface Props {
}
export class ClustersMenu extends React.Component {
render() {
return (
<div className="ClustersMenu">
ClustersMenu
</div>
);
}
}

View File

@ -1,3 +0,0 @@
.Clusters {
}

View File

@ -1,15 +0,0 @@
import "./clusters.scss"
import React from "react";
interface Props {
}
export class Clusters extends React.Component {
render() {
return (
<div className="Clusters">
Clusters
</div>
);
}
}

View File

@ -1 +0,0 @@
export * from "./clusters"

View File

@ -0,0 +1,15 @@
.ClustersMenu {
@include hidden-scrollbar;
padding: $padding;
background: #252729;
.add-cluster {
cursor: pointer;
opacity: 0.4;
&:hover {
opacity: .75;
}
}
}

View File

@ -0,0 +1,93 @@
import type { Cluster } from "../../../main/cluster";
import "./clusters-menu.scss"
import { remote } from "electron"
import React from "react";
import { observer } from "mobx-react";
import { _i18n } from "../../i18n";
import { t, Trans } from "@lingui/macro";
import { ClusterId, clusterStore } from "../../../common/cluster-store";
import { WorkspaceId } from "../../../common/workspace-store";
import { ClusterIcon } from "../+cluster-settings/cluster-icon";
import { Icon } from "../icon";
import { cssNames, IClassName } from "../../utils";
interface Props {
className?: IClassName;
workspaceId?: WorkspaceId;
}
@observer
export class ClustersMenu extends React.Component<Props> {
selectCluster = (cluster: Cluster) => {
clusterStore.activeCluster = cluster.id;
console.log('load lens for cluster:', cluster)
}
addCluster = () => {
console.log('navigate: /add-cluster')
}
showContextMenu = (clusterId: ClusterId) => {
const { Menu, MenuItem } = remote
const menu = new Menu();
menu.append(new MenuItem({
label: _i18n._(t`Settings`),
click: () => {
console.log(`navigate to cluster=${clusterId} settings`)
}
}))
// fixme: don't show item if cluster wasn't active during runtime
menu.append(new MenuItem({
label: _i18n._(t`Disconnect`),
click: () => {
console.log(`disconnect cluster=${clusterId} and navigate to landing-page`)
}
}))
menu.popup({
window: remote.getCurrentWindow()
})
}
// fixme: allow to rearrange clusters with drag&drop
render() {
const { workspaceId, className } = this.props;
const clusters = clusterStore.getByWorkspaceId(workspaceId);
const addClusterTooltip = (
<div className="flex column gaps">
<p><Trans>This is the quick launch menu.</Trans></p>
<p>
<Trans>
Associate clusters and choose the ones you want to access via quick launch menu by clicking the + button.
</Trans>
</p>
</div>
)
return (
<div className={cssNames("ClustersMenu flex gaps column", className)}>
{clusters.map(cluster => {
const isActive = cluster.id === clusterStore.activeCluster;
return (
<ClusterIcon
key={cluster.id}
cluster={cluster}
className={cssNames({ active: isActive })}
onClick={() => this.selectCluster(cluster)}
onContextMenu={() => this.showContextMenu(cluster.id)}
/>
)
})}
{/* todo: add badge for "newContexts" since last visit */}
{/* fixme: make tooltip visible on init + remove following to mouse pos */}
<Icon
big material="add"
className="add-cluster"
tooltip={{ children: addClusterTooltip }}
onClick={this.addCluster}
/>
</div>
);
}
}

View File

@ -1,3 +1,41 @@
.Workspaces { .Workspaces {
height: 100%;
display: grid;
grid-template-areas: "draggable draggable" "menu lens-view" "bottom-bar bottom-bar";
grid-template-rows: 20px 1fr min-content;
grid-template-columns: min-content 1fr;
> .draggable-top {
@include set-draggable;
grid-area: draggable;
}
> .ClusterMenu {
grid-area: menu;
}
> .lens-container {
grid-area: lens-view;
}
> .bottom-bar {
grid-area: bottom-bar;
font-size: $font-size-small;
background-color: #3d90ce;
padding: $padding / 2 $padding;
color: white;
#workspace {
cursor: pointer;
}
}
}
.WorkspacesMenu {
border-radius: $radius;
.workspaces-title {
padding: $padding;
}
} }

View File

@ -1,14 +1,61 @@
import "./workspaces.scss" import "./workspaces.scss"
import React from "react"; import React from "react";
import { observer } from "mobx-react";
import { Link } from "react-router-dom";
import { Trans } from "@lingui/macro";
import { workspaceStore } from "../../../common/workspace-store";
import { Icon } from "../icon";
import { ClustersMenu } from "./clusters-menu";
import { Menu, MenuItem } from "../menu";
import { prevDefault } from "../../utils";
import { observable } from "mobx";
interface Props { // todo: support `workspaceId` in URL
}
@observer
export class Workspaces extends React.Component { export class Workspaces extends React.Component {
@observable menuVisible = false;
render() { render() {
const { currentWorkspace, workspaces } = workspaceStore;
return ( return (
<div className="Workspaces"> <div className="Workspaces">
Workspaces <div className="draggable-top"/>
<ClustersMenu/>
<div className="lens-container">
{/*todo: replace with BrowserView */}
</div>
<div className="bottom-bar flex justify-flex-end">
<div id="workspace" className="workspace flex align-center">
<Icon small material="layers"/> {currentWorkspace}
</div>
<Menu
usePortal
htmlFor="workspace"
className="WorkspacesMenu"
isOpen={this.menuVisible}
open={() => this.menuVisible = true}
close={() => this.menuVisible = false}
>
<Link
to="/workspaces"
className="workspaces-title"
onClick={prevDefault(() => console.log('/navigate: workspaces page'))}>
<Trans>Workspaces</Trans>
</Link>
{Array.from(workspaces.values()).map(workspace => {
const { id, name, description } = workspace;
return (
<MenuItem key={id} onClick={() => console.log(`navigate: /workspaces/${id}`)} title={description}>
<Icon small material="layers"/> {name}
</MenuItem>
)
})}
</Menu>
</div>
</div> </div>
) )
} }

View File

@ -12,6 +12,11 @@
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
} }
:root {
--mainBackground: #1e2124;
--textColorPrimary: #87909c;
}
::selection { ::selection {
background: $primary; background: $primary;
color: white; color: white;

View File

@ -1,2 +1,2 @@
export * from './menu' export * from './menu'
export * from './menu-picker' export * from './menu-actions'

View File

@ -1,74 +0,0 @@
.MenuPicker {
&.waiting {
.MenuItem {
pointer-events: none;
opacity: .75;
}
}
> .Button {
padding: $padding /2 $padding * 2;
}
.menu-header {
background: var(--bgc-active);
padding: $padding;
display: flex;
align-items: center;
color: $textColorAccent;
font-weight: bold;
&:hover {
background: var(--bgc-active) !important;
}
}
.Menu {
@include custom-scrollbar;
border-radius: $radius;
box-shadow: -$unit / 2 $unit / 2 22px $boxShadow;
margin-top: ceil($margin / 1.33);
overflow: hidden;
min-width: 150px;
max-height: $unit * 35;
}
.MenuItem {
align-items: center;
display: flex;
padding-right: $padding;
white-space: normal;
&:before {
min-width: 20px;
font-family: "Material Icons";
font-weight: bold;
content: ' '
}
&:hover {
background: $colorInfo;
}
&.active {
font-weight: bold;
&:not(:hover) {
background: inherit;
}
&:before {
content: 'check';
}
}
&:focus {
outline: none
}
&:not(:last-child) {
border-bottom: 1px solid $borderColor;
}
}
}

View File

@ -1,42 +0,0 @@
import './menu-picker.scss'
import React, { useRef, useState } from "react";
import { cssNames } from "../../utils";
import { Menu, MenuProps } from "./menu";
import { Icon } from "../icon";
import { Button } from "../button";
import uniqueId from "lodash/uniqueId";
interface Props extends Partial<MenuProps> {
title: React.ReactNode;
waiting?: boolean;
}
export function MenuPicker(props: Props) {
const id = useRef(uniqueId("menu_picker_")).current;
const { className, title, waiting, children, ...menuProps } = props;
const [isOpen, setOpen] = useState(false);
const toggle = () => setOpen(!isOpen);
return (
<div className={cssNames("MenuPicker", className, { waiting })}>
<Button primary id={id}>
{title}
<Icon material="arrow_drop_down"/>
</Button>
<Menu
htmlFor={id}
isOpen={isOpen} open={toggle} close={toggle}
closeOnClickItem={false}
{...menuProps}
>
<div className="menu-header flex gaps">
<span className="box grow">{title}</span>
<Icon small material="close" onClick={toggle}/>
</div>
{children}
</Menu>
</div>
)
}

View File

@ -90,8 +90,9 @@
cursor: pointer; cursor: pointer;
} }
@mixin set-draggable($isDraggable: true) { @mixin set-draggable($is-draggable: true) {
@if ($isDraggable) { @if ($is-draggable) {
cursor: move;
-webkit-user-drag: auto; -webkit-user-drag: auto;
-webkit-app-region: drag; -webkit-app-region: drag;
} @else { } @else {

View File

@ -7,6 +7,9 @@ import { createPortal } from "react-dom"
import { autobind, cssNames } from "../../utils"; import { autobind, cssNames } from "../../utils";
import { Animate } from "../animate"; import { Animate } from "../animate";
// fixme: better positioning + remove "flying effect"
// todo: add flag to show visible tooltip by default (until mouse-over the target)
export interface TooltipProps { export interface TooltipProps {
htmlFor: string; htmlFor: string;
className?: string; className?: string;

View File

@ -1,11 +1,6 @@
@import "colors", "media"; @import "colors", "media";
@import "../themes/theme-vars"; @import "../themes/theme-vars";
:root {
--mainBackground: #1e2124;
--textColorPrimary: #87909c;
}
// Dimensions // Dimensions
$unit: 8px; $unit: 8px;
$padding: $unit; $padding: $unit;

View File

@ -1,18 +1,38 @@
// todo: remove when app.tsx re-used
import "./components/app.scss"
import "./theme.store";
import "../common/system-ca"
import React from "react"; import React from "react";
import ReactDOM from "react-dom"; import ReactDOM from "react-dom";
import "../common/system-ca" import { Router } from "react-router";
import { userStore } from "../common/user-store"; import { userStore } from "../common/user-store";
import { workspaceStore } from "../common/workspace-store"; import { workspaceStore } from "../common/workspace-store";
import { clusterStore } from "../common/cluster-store"; import { clusterStore } from "../common/cluster-store";
import { Workspaces } from "./components/+workspaces/workspaces"; import { Workspaces } from "./components/+workspaces/workspaces";
import { I18nProvider } from "@lingui/react";
import { _i18n } from "./i18n";
import { browserHistory } from "./navigation";
async function render() { class App extends React.Component {
await Promise.all([ static async init() {
userStore.load(), await Promise.all([
workspaceStore.load(), userStore.load(),
clusterStore.load(), workspaceStore.load(),
]); clusterStore.load(),
ReactDOM.render(<Workspaces/>, document.getElementById("app"),) ]);
ReactDOM.render(<App/>, document.getElementById("app"),)
}
render() {
return (
<I18nProvider i18n={_i18n}>
<Router history={browserHistory}>
<Workspaces/>
</Router>
</I18nProvider>
)
}
} }
window.addEventListener("load", render); window.addEventListener("load", App.init);