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:
parent
b9089a7c5e
commit
4a06f65cb8
@ -13,6 +13,14 @@ msgstr ""
|
||||
"Language-Team: \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
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr "(as a percentage of request)"
|
||||
@ -67,6 +75,10 @@ msgstr "Add RoleBinding"
|
||||
msgid "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
|
||||
msgid "Add field"
|
||||
msgstr "Add field"
|
||||
@ -125,7 +137,7 @@ msgstr "All groups"
|
||||
msgid "All logs"
|
||||
msgstr "All logs"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:96
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:95
|
||||
msgid "All namespaces"
|
||||
msgstr "All namespaces"
|
||||
|
||||
@ -199,6 +211,10 @@ msgstr "Are you sure you want to drain <0>{nodeName}</0>?"
|
||||
msgid "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
|
||||
msgid "Auth App Role"
|
||||
msgstr "Auth App Role"
|
||||
@ -229,32 +245,32 @@ msgstr "Bindings"
|
||||
msgid "Build version"
|
||||
msgstr "Build version"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:72
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
|
||||
msgid "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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Bytes transmitted from all containers"
|
||||
|
||||
@ -282,17 +298,17 @@ msgid "CPU capacity"
|
||||
msgstr "CPU capacity"
|
||||
|
||||
#: 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"
|
||||
msgstr "CPU cores usage"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:38
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:40
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:49
|
||||
msgid "CPU limits"
|
||||
msgstr "CPU limits"
|
||||
|
||||
#: 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"
|
||||
msgstr "CPU requests"
|
||||
|
||||
@ -368,7 +384,7 @@ msgstr "Close (Ctrl+W)"
|
||||
msgid "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
|
||||
msgid "Cluster"
|
||||
msgstr "Cluster"
|
||||
@ -447,23 +463,23 @@ msgstr "Connection"
|
||||
msgid "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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Container memory usage"
|
||||
|
||||
@ -662,6 +678,10 @@ msgstr "Description"
|
||||
msgid "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/nodes.tsx:115
|
||||
#: 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:115
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:37
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:61
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:48
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:72
|
||||
msgid "Limits"
|
||||
msgstr "Limits"
|
||||
|
||||
@ -1153,17 +1173,17 @@ msgstr "Memory"
|
||||
msgid "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"
|
||||
msgstr "Memory limits"
|
||||
|
||||
#: 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"
|
||||
msgstr "Memory requests"
|
||||
|
||||
#: 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"
|
||||
msgstr "Memory usage"
|
||||
|
||||
@ -1310,17 +1330,16 @@ msgstr "Names"
|
||||
msgid "Namespace"
|
||||
msgstr "Namespace"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:98
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:97
|
||||
msgid "Namespace: {0}"
|
||||
msgstr "Namespace: {0}"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespaces.tsx:30
|
||||
#: src/renderer/components/app.tsx:36
|
||||
#: src/renderer/components/layout/sidebar.tsx:85
|
||||
msgid "Namespaces"
|
||||
msgstr "Namespaces"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:100
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:99
|
||||
msgid "Namespaces: {0}"
|
||||
msgstr "Namespaces: {0}"
|
||||
|
||||
@ -1636,7 +1655,7 @@ msgstr "Reason"
|
||||
msgid "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"
|
||||
msgstr "Receive"
|
||||
|
||||
@ -1727,11 +1746,11 @@ msgstr "Repo/Name"
|
||||
msgid "Repository"
|
||||
msgstr "Repository"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
|
||||
msgid "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"
|
||||
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/+nodes/node-charts.tsx:32
|
||||
#: 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:54
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:41
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:65
|
||||
msgid "Requests"
|
||||
msgstr "Requests"
|
||||
|
||||
@ -1798,11 +1817,11 @@ msgstr "ResourceQuota name"
|
||||
msgid "Resources"
|
||||
msgstr "Resources"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
|
||||
msgid "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"
|
||||
msgstr "Response duration in seconds"
|
||||
|
||||
@ -2011,13 +2030,17 @@ msgstr "Set"
|
||||
msgid "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/+workloads-pods/pod-menu.tsx:68
|
||||
msgid "Shell"
|
||||
msgstr "Shell"
|
||||
|
||||
#: 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/drawer/drawer-param-toggler.tsx:19
|
||||
msgid "Show"
|
||||
@ -2181,6 +2204,10 @@ msgstr "This field is required"
|
||||
msgid "This field must contain only lowercase latin characters, numbers and dash."
|
||||
msgstr "This field must contain only lowercase latin characters, numbers and dash."
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx: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
|
||||
msgid "To"
|
||||
msgstr "To"
|
||||
@ -2197,7 +2224,7 @@ msgstr "Tokens"
|
||||
msgid "Tolerations"
|
||||
msgstr "Tolerations"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:89
|
||||
msgid "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:90
|
||||
#: 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:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:71
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:25
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:49
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:73
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:34
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:58
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:99
|
||||
msgid "Usage"
|
||||
msgstr "Usage"
|
||||
|
||||
@ -2355,6 +2382,10 @@ msgstr "Worker"
|
||||
msgid "Workloads"
|
||||
msgstr "Workloads"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:41
|
||||
msgid "Workspaces"
|
||||
msgstr "Workspaces"
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr "Wrong email format"
|
||||
@ -2421,7 +2452,7 @@ msgstr "plural"
|
||||
msgid "ready"
|
||||
msgstr "ready"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
|
||||
msgid "sec"
|
||||
msgstr "sec"
|
||||
|
||||
|
||||
@ -13,6 +13,14 @@ msgstr ""
|
||||
"Language-Team: \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
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr ""
|
||||
@ -67,6 +75,10 @@ msgstr ""
|
||||
msgid "Add bindings to {name}"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx:58
|
||||
#~ msgid "Add clusters"
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:125
|
||||
msgid "Add field"
|
||||
msgstr ""
|
||||
@ -125,7 +137,7 @@ msgstr ""
|
||||
msgid "All logs"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:96
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:95
|
||||
msgid "All namespaces"
|
||||
msgstr ""
|
||||
|
||||
@ -199,6 +211,10 @@ msgstr ""
|
||||
msgid "Arguments"
|
||||
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
|
||||
msgid "Auth App Role"
|
||||
msgstr ""
|
||||
@ -229,32 +245,32 @@ msgstr ""
|
||||
msgid "Build version"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:72
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
|
||||
msgid "Bytes consumed on this filesystem"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:23
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:25
|
||||
msgid "Bytes sent, status 2xx"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:30
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:32
|
||||
msgid "Bytes sent, status 5xx"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -282,17 +298,17 @@ msgid "CPU capacity"
|
||||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:38
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:40
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:49
|
||||
msgid "CPU limits"
|
||||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
@ -364,7 +380,7 @@ msgstr ""
|
||||
msgid "Cloud API Token Secret"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:44
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:43
|
||||
#: src/renderer/components/layout/sidebar.tsx:79
|
||||
msgid "Cluster"
|
||||
msgstr ""
|
||||
@ -443,23 +459,23 @@ msgstr ""
|
||||
msgid "Container"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:33
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:35
|
||||
msgid "Container CPU cores usage"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:40
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:42
|
||||
msgid "Container CPU requests"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:71
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:73
|
||||
msgid "Container memory limits"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:64
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:66
|
||||
msgid "Container memory requests"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:57
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:59
|
||||
msgid "Container memory usage"
|
||||
msgstr ""
|
||||
|
||||
@ -658,6 +674,10 @@ msgstr ""
|
||||
msgid "Desired number of replicas"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-details.tsx:65
|
||||
#: src/renderer/components/+nodes/nodes.tsx:115
|
||||
#: 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:115
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:37
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:61
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:48
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:72
|
||||
msgid "Limits"
|
||||
msgstr ""
|
||||
|
||||
@ -1144,17 +1164,17 @@ msgstr ""
|
||||
msgid "Memory capacity"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:62
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:64
|
||||
msgid "Memory limits"
|
||||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
@ -1301,17 +1321,16 @@ msgstr ""
|
||||
msgid "Namespace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:98
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:97
|
||||
msgid "Namespace: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+namespaces/namespaces.tsx:30
|
||||
#: src/renderer/components/app.tsx:36
|
||||
#: src/renderer/components/layout/sidebar.tsx:85
|
||||
msgid "Namespaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:100
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:99
|
||||
msgid "Namespaces: {0}"
|
||||
msgstr ""
|
||||
|
||||
@ -1619,7 +1638,7 @@ msgstr ""
|
||||
msgid "Reason: {0} ({1})"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:80
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:82
|
||||
msgid "Receive"
|
||||
msgstr ""
|
||||
|
||||
@ -1710,11 +1729,11 @@ msgstr ""
|
||||
msgid "Repository"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
|
||||
msgid "Request"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:41
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:43
|
||||
msgid "Request duration in seconds"
|
||||
msgstr ""
|
||||
|
||||
@ -1722,10 +1741,10 @@ msgstr ""
|
||||
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:114
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:32
|
||||
#: 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:54
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:41
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:65
|
||||
msgid "Requests"
|
||||
msgstr ""
|
||||
|
||||
@ -1781,11 +1800,11 @@ msgstr ""
|
||||
msgid "Resources"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
|
||||
msgid "Response"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:48
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:50
|
||||
msgid "Response duration in seconds"
|
||||
msgstr ""
|
||||
|
||||
@ -1994,13 +2013,17 @@ msgstr ""
|
||||
msgid "Set quota"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-menu.tsx:48
|
||||
#: src/renderer/components/+workloads-pods/pod-menu.tsx:68
|
||||
msgid "Shell"
|
||||
msgstr ""
|
||||
|
||||
#: 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/drawer/drawer-param-toggler.tsx:19
|
||||
msgid "Show"
|
||||
@ -2164,6 +2187,10 @@ msgstr ""
|
||||
msgid "This field must contain only lowercase latin characters, numbers and dash."
|
||||
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
|
||||
msgid "To"
|
||||
msgstr ""
|
||||
@ -2180,7 +2207,7 @@ msgstr ""
|
||||
msgid "Tolerations"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:89
|
||||
msgid "Transmit"
|
||||
msgstr ""
|
||||
|
||||
@ -2246,12 +2273,12 @@ msgstr ""
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:73
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:90
|
||||
#: 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:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:71
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:25
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:49
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:73
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:34
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:58
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:99
|
||||
msgid "Usage"
|
||||
msgstr ""
|
||||
|
||||
@ -2338,6 +2365,10 @@ msgstr ""
|
||||
msgid "Workloads"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:41
|
||||
msgid "Workspaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr ""
|
||||
@ -2404,7 +2435,7 @@ msgstr ""
|
||||
msgid "ready"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
|
||||
msgid "sec"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -14,6 +14,14 @@ msgstr ""
|
||||
"Plural-Forms: \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
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr ""
|
||||
@ -68,6 +76,10 @@ msgstr "Добавить привязку ролей"
|
||||
msgid "Add bindings to {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
|
||||
msgid "Add field"
|
||||
msgstr "Добавить поле"
|
||||
@ -126,7 +138,7 @@ msgstr ""
|
||||
msgid "All logs"
|
||||
msgstr "Все логи"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:96
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:95
|
||||
msgid "All namespaces"
|
||||
msgstr ""
|
||||
|
||||
@ -200,6 +212,10 @@ msgstr "Выполнить команду drain для ноды <0>{nodeName}</0
|
||||
msgid "Arguments"
|
||||
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
|
||||
msgid "Auth App Role"
|
||||
msgstr "Auth App Role"
|
||||
@ -230,32 +246,32 @@ msgstr "Привязки"
|
||||
msgid "Build version"
|
||||
msgstr "Версия билда"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:72
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:98
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:74
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:100
|
||||
msgid "Bytes consumed on this filesystem"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
msgstr "Байты, отправленные всеми контейнерами"
|
||||
|
||||
@ -283,17 +299,17 @@ msgid "CPU capacity"
|
||||
msgstr "Мощность процессора"
|
||||
|
||||
#: 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"
|
||||
msgstr "Использование ядер процессора"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:38
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:40
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:49
|
||||
msgid "CPU limits"
|
||||
msgstr "Лимиты процессора"
|
||||
|
||||
#: 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"
|
||||
msgstr "Запросы к процессору"
|
||||
|
||||
@ -369,7 +385,7 @@ msgstr "Закрыть (Ctrl+W)"
|
||||
msgid "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
|
||||
msgid "Cluster"
|
||||
msgstr "Кластер"
|
||||
@ -448,23 +464,23 @@ msgstr "Соединение"
|
||||
msgid "Container"
|
||||
msgstr "Контейнер"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:33
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:35
|
||||
msgid "Container CPU cores usage"
|
||||
msgstr "Использование ядер процессора"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:40
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:42
|
||||
msgid "Container CPU requests"
|
||||
msgstr "Запросы CPU от контейнеров"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:71
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:73
|
||||
msgid "Container memory limits"
|
||||
msgstr "Лимиты памяти"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:64
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:66
|
||||
msgid "Container memory requests"
|
||||
msgstr "Запросы памяти от контейнеров"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:57
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:59
|
||||
msgid "Container memory usage"
|
||||
msgstr "Использование памяти"
|
||||
|
||||
@ -663,6 +679,10 @@ msgstr "Описание"
|
||||
msgid "Desired number of replicas"
|
||||
msgstr "Нужный уровень реплик"
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx:38
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-details.tsx:65
|
||||
#: src/renderer/components/+nodes/nodes.tsx:115
|
||||
#: 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:115
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:37
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:61
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:46
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:70
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:48
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:72
|
||||
msgid "Limits"
|
||||
msgstr "Лимиты"
|
||||
|
||||
@ -1154,17 +1174,17 @@ msgstr "Память"
|
||||
msgid "Memory capacity"
|
||||
msgstr "Объем памяти"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:62
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:64
|
||||
msgid "Memory limits"
|
||||
msgstr "Лимиты памяти"
|
||||
|
||||
#: 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"
|
||||
msgstr "Запросы к памяти"
|
||||
|
||||
#: 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"
|
||||
msgstr "Использование памяти"
|
||||
|
||||
@ -1311,17 +1331,16 @@ msgstr ""
|
||||
msgid "Namespace"
|
||||
msgstr "Namespace"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:98
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:97
|
||||
msgid "Namespace: {0}"
|
||||
msgstr "Namespace: {0}"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespaces.tsx:30
|
||||
#: src/renderer/components/app.tsx:36
|
||||
#: src/renderer/components/layout/sidebar.tsx:85
|
||||
msgid "Namespaces"
|
||||
msgstr "Namespaces"
|
||||
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:100
|
||||
#: src/renderer/components/+namespaces/namespace-select.tsx:99
|
||||
msgid "Namespaces: {0}"
|
||||
msgstr "Namespaces: {0}"
|
||||
|
||||
@ -1637,7 +1656,7 @@ msgstr "Причина"
|
||||
msgid "Reason: {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"
|
||||
msgstr "Получение"
|
||||
|
||||
@ -1728,11 +1747,11 @@ msgstr "Репозиторий/Имя"
|
||||
msgid "Repository"
|
||||
msgstr "Репозиторий"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:40
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:42
|
||||
msgid "Request"
|
||||
msgstr "Запрос"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:41
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:43
|
||||
msgid "Request duration in seconds"
|
||||
msgstr "Продолжительность запроса в секундах"
|
||||
|
||||
@ -1740,10 +1759,10 @@ msgstr "Продолжительность запроса в секундах"
|
||||
#: src/renderer/components/+cluster/cluster-pie-charts.tsx:114
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:32
|
||||
#: 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:54
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:39
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:63
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:41
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:65
|
||||
msgid "Requests"
|
||||
msgstr "Запросы"
|
||||
|
||||
@ -1799,11 +1818,11 @@ msgstr "Имя квоты ресурса"
|
||||
msgid "Resources"
|
||||
msgstr "Ресурсы"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:47
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:49
|
||||
msgid "Response"
|
||||
msgstr "Ответ"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:48
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:50
|
||||
msgid "Response duration in seconds"
|
||||
msgstr "Продолжительность ответа в секундах"
|
||||
|
||||
@ -2012,13 +2031,17 @@ msgstr "Установлено"
|
||||
msgid "Set quota"
|
||||
msgstr "Установить квоту"
|
||||
|
||||
#: src/renderer/components/+workspaces/clusters-menu.tsx:31
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-menu.tsx:48
|
||||
#: src/renderer/components/+workloads-pods/pod-menu.tsx:68
|
||||
msgid "Shell"
|
||||
msgstr "Командная строка"
|
||||
|
||||
#: 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/drawer/drawer-param-toggler.tsx:19
|
||||
msgid "Show"
|
||||
@ -2182,6 +2205,10 @@ msgstr "Это обязательное поле"
|
||||
msgid "This field must contain only lowercase latin characters, numbers and dash."
|
||||
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
|
||||
msgid "To"
|
||||
msgstr "Из"
|
||||
@ -2198,7 +2225,7 @@ msgstr "Токены"
|
||||
msgid "Tolerations"
|
||||
msgstr "Толерантности"
|
||||
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:87
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:89
|
||||
msgid "Transmit"
|
||||
msgstr "Транзит"
|
||||
|
||||
@ -2264,12 +2291,12 @@ msgstr "Обновить версию"
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:73
|
||||
#: src/renderer/components/+nodes/node-charts.tsx:90
|
||||
#: 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:47
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:71
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:32
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:56
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:25
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:49
|
||||
#: src/renderer/components/+workloads-pods/container-charts.tsx:73
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:34
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:58
|
||||
#: src/renderer/components/+workloads-pods/pod-charts.tsx:99
|
||||
msgid "Usage"
|
||||
msgstr "Использование"
|
||||
|
||||
@ -2356,6 +2383,10 @@ msgstr "Рабочие"
|
||||
msgid "Workloads"
|
||||
msgstr "Ресурсы"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:41
|
||||
msgid "Workspaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr "Неверный формат электронной почты"
|
||||
@ -2422,7 +2453,7 @@ msgstr ""
|
||||
msgid "ready"
|
||||
msgstr "готово"
|
||||
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:67
|
||||
#: src/renderer/components/+network-ingresses/ingress-charts.tsx:69
|
||||
msgid "sec"
|
||||
msgstr "сек"
|
||||
|
||||
|
||||
@ -5,7 +5,8 @@ import { Cluster } from "../main/cluster";
|
||||
import migrations from "../migrations/cluster-store"
|
||||
|
||||
export interface ClusterStoreModel {
|
||||
clusters: ClusterModel[]
|
||||
activeCluster?: ClusterId; // last opened cluster
|
||||
clusters?: ClusterModel[]
|
||||
}
|
||||
|
||||
export type ClusterId = string;
|
||||
@ -37,6 +38,7 @@ export interface ClusterPreferences {
|
||||
}
|
||||
|
||||
export class ClusterStore extends BaseStore<ClusterStoreModel> {
|
||||
@observable activeCluster: ClusterId;
|
||||
@observable clusters = observable.map<ClusterId, Cluster>();
|
||||
|
||||
private constructor() {
|
||||
@ -69,6 +71,9 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
|
||||
|
||||
@action
|
||||
removeById(clusterId: ClusterId): void {
|
||||
if (this.activeCluster === clusterId) {
|
||||
this.activeCluster = null;
|
||||
}
|
||||
this.clusters.delete(clusterId);
|
||||
}
|
||||
|
||||
@ -80,17 +85,21 @@ export class ClusterStore extends BaseStore<ClusterStoreModel> {
|
||||
}
|
||||
|
||||
@action
|
||||
protected fromStore({ clusters = [] }: Partial<ClusterStoreModel> = {}) {
|
||||
protected fromStore({ activeCluster, clusters = [] }: ClusterStoreModel = {}) {
|
||||
const clustersMap = new Map<ClusterId, Cluster>();
|
||||
clusters.forEach(clusterModel => {
|
||||
clustersMap.set(clusterModel.id, new Cluster(clusterModel));
|
||||
});
|
||||
this.activeCluster = clustersMap.has(activeCluster) ? activeCluster : null;
|
||||
this.clusters.replace(clustersMap);
|
||||
}
|
||||
|
||||
toJSON(): ClusterStoreModel {
|
||||
const clusters = Array.from(this.clusters).map(([id, cluster]) => cluster.toJSON());
|
||||
return toJS({ clusters }, {
|
||||
return toJS({
|
||||
activeCluster: this.activeCluster,
|
||||
clusters: clusters,
|
||||
}, {
|
||||
recurseEverything: true
|
||||
})
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ export class Cluster implements ClusterModel {
|
||||
@observable version: string;
|
||||
@observable distribution: string;
|
||||
@observable isAdmin: boolean;
|
||||
@observable eventCount: number;
|
||||
@observable eventCount: number; // todo: auto-fetch every 3s and push updates to client (?)
|
||||
@observable preferences: ClusterPreferences = {};
|
||||
@observable features: FeatureStatusMap = {};
|
||||
|
||||
|
||||
@ -39,7 +39,6 @@ if (app.commandLine.getSwitchValue("proxy-server") !== "") {
|
||||
async function main() {
|
||||
shellSync(app.getLocale());
|
||||
|
||||
// todo: check other usages .getPath("userData") and enable "lazy-evaluation"
|
||||
const workingDir = path.join(app.getPath("appData"), appName);
|
||||
app.setName(appName);
|
||||
app.setPath("userData", workingDir);
|
||||
@ -83,7 +82,7 @@ async function main() {
|
||||
}
|
||||
|
||||
// manage lens windows
|
||||
windowManager = new WindowManager();
|
||||
windowManager = new WindowManager({showSplash: true});
|
||||
windowManager.showMain(vmURL)
|
||||
}
|
||||
|
||||
@ -98,13 +97,13 @@ app.on('window-all-closed', function () {
|
||||
if (clusterManager) clusterManager.stop()
|
||||
}
|
||||
})
|
||||
app.on("activate", () => {
|
||||
if (!windowManager) {
|
||||
logger.debug("activate main window")
|
||||
windowManager = new WindowManager({ showSplash: false })
|
||||
windowManager.showMain(vmURL)
|
||||
}
|
||||
})
|
||||
// app.on("activate", () => {
|
||||
// if (!windowManager) {
|
||||
// logger.debug("activate main window")
|
||||
// windowManager = new WindowManager({ showSplash: false })
|
||||
// windowManager.showMain(vmURL)
|
||||
// }
|
||||
// })
|
||||
app.on("will-quit", async (event) => {
|
||||
event.preventDefault(); // To allow mixpanel sending to be executed
|
||||
if (clusterManager) clusterManager.stop()
|
||||
|
||||
@ -6,6 +6,10 @@ interface Props {
|
||||
|
||||
export class AddCluster extends React.Component {
|
||||
render() {
|
||||
return "AddCluster";
|
||||
return (
|
||||
<div className="AddCluster">
|
||||
AddCluster
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
1
src/renderer/components/+add-cluster/index.ts
Normal file
1
src/renderer/components/+add-cluster/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from "./add-cluster"
|
||||
@ -0,0 +1,9 @@
|
||||
.ClusterIcon {
|
||||
position: relative;
|
||||
|
||||
.Badge {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
46
src/renderer/components/+cluster-settings/cluster-icon.tsx
Normal file
46
src/renderer/components/+cluster-settings/cluster-icon.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
}
|
||||
1
src/renderer/components/+cluster-settings/index.ts
Normal file
1
src/renderer/components/+cluster-settings/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from "./cluster-settings"
|
||||
@ -1,3 +0,0 @@
|
||||
.ClustersMenu {
|
||||
|
||||
}
|
||||
@ -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>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,3 +0,0 @@
|
||||
.Clusters {
|
||||
|
||||
}
|
||||
@ -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>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
export * from "./clusters"
|
||||
15
src/renderer/components/+workspaces/clusters-menu.scss
Normal file
15
src/renderer/components/+workspaces/clusters-menu.scss
Normal file
@ -0,0 +1,15 @@
|
||||
.ClustersMenu {
|
||||
@include hidden-scrollbar;
|
||||
|
||||
padding: $padding;
|
||||
background: #252729;
|
||||
|
||||
.add-cluster {
|
||||
cursor: pointer;
|
||||
opacity: 0.4;
|
||||
|
||||
&:hover {
|
||||
opacity: .75;
|
||||
}
|
||||
}
|
||||
}
|
||||
93
src/renderer/components/+workspaces/clusters-menu.tsx
Normal file
93
src/renderer/components/+workspaces/clusters-menu.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,3 +1,41 @@
|
||||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,14 +1,61 @@
|
||||
import "./workspaces.scss"
|
||||
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 {
|
||||
@observable menuVisible = false;
|
||||
|
||||
render() {
|
||||
const { currentWorkspace, workspaces } = workspaceStore;
|
||||
return (
|
||||
<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>
|
||||
)
|
||||
}
|
||||
|
||||
@ -12,6 +12,11 @@
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
:root {
|
||||
--mainBackground: #1e2124;
|
||||
--textColorPrimary: #87909c;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: $primary;
|
||||
color: white;
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
export * from './menu'
|
||||
export * from './menu-picker'
|
||||
export * from './menu-actions'
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
)
|
||||
}
|
||||
@ -90,8 +90,9 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@mixin set-draggable($isDraggable: true) {
|
||||
@if ($isDraggable) {
|
||||
@mixin set-draggable($is-draggable: true) {
|
||||
@if ($is-draggable) {
|
||||
cursor: move;
|
||||
-webkit-user-drag: auto;
|
||||
-webkit-app-region: drag;
|
||||
} @else {
|
||||
|
||||
@ -7,6 +7,9 @@ import { createPortal } from "react-dom"
|
||||
import { autobind, cssNames } from "../../utils";
|
||||
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 {
|
||||
htmlFor: string;
|
||||
className?: string;
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
@import "colors", "media";
|
||||
@import "../themes/theme-vars";
|
||||
|
||||
:root {
|
||||
--mainBackground: #1e2124;
|
||||
--textColorPrimary: #87909c;
|
||||
}
|
||||
|
||||
// Dimensions
|
||||
$unit: 8px;
|
||||
$padding: $unit;
|
||||
|
||||
@ -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 ReactDOM from "react-dom";
|
||||
import "../common/system-ca"
|
||||
import { Router } from "react-router";
|
||||
import { userStore } from "../common/user-store";
|
||||
import { workspaceStore } from "../common/workspace-store";
|
||||
import { clusterStore } from "../common/cluster-store";
|
||||
import { Workspaces } from "./components/+workspaces/workspaces";
|
||||
import { I18nProvider } from "@lingui/react";
|
||||
import { _i18n } from "./i18n";
|
||||
import { browserHistory } from "./navigation";
|
||||
|
||||
async function render() {
|
||||
await Promise.all([
|
||||
userStore.load(),
|
||||
workspaceStore.load(),
|
||||
clusterStore.load(),
|
||||
]);
|
||||
ReactDOM.render(<Workspaces/>, document.getElementById("app"),)
|
||||
class App extends React.Component {
|
||||
static async init() {
|
||||
await Promise.all([
|
||||
userStore.load(),
|
||||
workspaceStore.load(),
|
||||
clusterStore.load(),
|
||||
]);
|
||||
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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user