mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
workspaces -- part 2
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
c70ed87da9
commit
117ad584d3
@ -25,15 +25,19 @@ msgstr ""
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr "(as a percentage of request)"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:108
|
||||
msgid "(current)"
|
||||
msgstr "(current)"
|
||||
|
||||
#: src/renderer/components/+network-policies/network-policy-details.tsx:88
|
||||
msgid "(empty) (Allowing the specific traffic to all pods in this namespace)"
|
||||
msgstr "(empty) (Allowing the specific traffic to all pods in this namespace)"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:104
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:105
|
||||
msgid "(new)"
|
||||
msgstr "(new)"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:224
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:226
|
||||
msgid "<0>Filtered</0>: {itemsCount} / {allItemsCount}"
|
||||
msgstr "<0>Filtered</0>: {itemsCount} / {allItemsCount}"
|
||||
|
||||
@ -45,10 +49,14 @@ msgstr "<0>Your browser does not support all Lens features. </0> Please consider
|
||||
msgid "<0>{0}</0> successfully created"
|
||||
msgstr "<0>{0}</0> successfully created"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:126
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
|
||||
msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
|
||||
msgstr "A HTTP proxy server URL (format: http://<address>:<port>)"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:84
|
||||
msgid "A single workspaces contains a list of clusters and their full configuration."
|
||||
msgstr "A single workspaces contains a list of clusters and their full configuration."
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:80
|
||||
msgid "API Group"
|
||||
msgstr "API Group"
|
||||
@ -71,7 +79,7 @@ msgstr "Account Name"
|
||||
msgid "Active"
|
||||
msgstr "Active"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:118
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:168
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:99
|
||||
msgid "Add Cluster"
|
||||
msgstr "Add Cluster"
|
||||
@ -84,11 +92,15 @@ msgstr "Add Namespace"
|
||||
msgid "Add RoleBinding"
|
||||
msgstr "Add RoleBinding"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:125
|
||||
msgid "Add Workspace"
|
||||
msgstr "Add Workspace"
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:111
|
||||
msgid "Add bindings to {name}"
|
||||
msgstr "Add bindings to {name}"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:137
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:187
|
||||
msgid "Add cluster"
|
||||
msgstr "Add cluster"
|
||||
|
||||
@ -146,6 +158,14 @@ msgstr "Affinities"
|
||||
msgid "Age"
|
||||
msgstr "Age"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
msgid "All clusters within workspace will be cleared as well"
|
||||
msgstr "All clusters within workspace will be cleared as well"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
#~ msgid "All clusters within workspace will be cleared as well."
|
||||
#~ msgstr "All clusters within workspace will be cleared as well."
|
||||
|
||||
#: src/renderer/components/+custom-resources/crd-list.tsx:56
|
||||
msgid "All groups"
|
||||
msgstr "All groups"
|
||||
@ -220,6 +240,10 @@ msgstr "Applying.."
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:61
|
||||
msgid "Are you sure you want remove workspace <0>{0}</0>?"
|
||||
msgstr "Are you sure you want remove workspace <0>{0}</0>?"
|
||||
|
||||
#: src/renderer/components/+nodes/node-menu.tsx:41
|
||||
msgid "Are you sure you want to drain <0>{nodeName}</0>?"
|
||||
msgstr "Are you sure you want to drain <0>{nodeName}</0>?"
|
||||
@ -333,6 +357,7 @@ msgstr "CPU requests"
|
||||
msgid "CPU:"
|
||||
msgstr "CPU:"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:119
|
||||
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
|
||||
#: src/renderer/components/dock/info-panel.tsx:97
|
||||
#: src/renderer/components/wizard/wizard.tsx:130
|
||||
@ -639,7 +664,7 @@ msgstr "Currently applied filters:"
|
||||
msgid "Custom Resources"
|
||||
msgstr "Custom Resources"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:110
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:111
|
||||
msgid "Custom.."
|
||||
msgstr "Custom.."
|
||||
|
||||
@ -681,6 +706,7 @@ msgstr "Default Runtime Class Name"
|
||||
msgid "Definitions"
|
||||
msgstr "Definitions"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:113
|
||||
#: src/renderer/components/menu/menu-actions.tsx:84
|
||||
msgid "Delete"
|
||||
msgstr "Delete"
|
||||
@ -696,6 +722,7 @@ msgid "Deployments"
|
||||
msgstr "Deployments"
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:65
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:118
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
@ -747,6 +774,7 @@ msgstr "Duration"
|
||||
msgid "E-mail"
|
||||
msgstr "E-mail"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:112
|
||||
#: src/renderer/components/menu/menu-actions.tsx:80
|
||||
#: src/renderer/components/menu/menu-actions.tsx:81
|
||||
msgid "Edit"
|
||||
@ -887,7 +915,7 @@ msgstr "Groups"
|
||||
msgid "HPA"
|
||||
msgstr "HPA"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:128
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:178
|
||||
msgid "HTTP Proxy server. Used for communicating with Kubernetes API."
|
||||
msgstr "HTTP Proxy server. Used for communicating with Kubernetes API."
|
||||
|
||||
@ -1268,6 +1296,10 @@ msgstr "Mountable secrets"
|
||||
msgid "Mounts"
|
||||
msgstr "Mounts"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:36
|
||||
msgid "My Workspace"
|
||||
msgstr "My Workspace"
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:64
|
||||
#: src/renderer/components/+apps-releases/releases.tsx:87
|
||||
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:49
|
||||
@ -1310,6 +1342,7 @@ msgstr "Mounts"
|
||||
#: src/renderer/components/+workloads-pods/pods.tsx:73
|
||||
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
|
||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:117
|
||||
#: src/renderer/components/dock/edit-resource.tsx:90
|
||||
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
|
||||
msgid "Name"
|
||||
@ -1436,7 +1469,7 @@ msgstr "No filters available."
|
||||
msgid "No issues found"
|
||||
msgstr "No issues found"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:196
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:198
|
||||
msgid "No items found."
|
||||
msgstr "No items found."
|
||||
|
||||
@ -1575,7 +1608,7 @@ msgstr "Persistent Volume Claims"
|
||||
msgid "Persistent Volumes"
|
||||
msgstr "Persistent Volumes"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:51
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
|
||||
msgid "Please select kubeconfig"
|
||||
msgstr "Please select kubeconfig"
|
||||
|
||||
@ -1660,7 +1693,7 @@ msgstr "Privileged"
|
||||
msgid "Provisioner"
|
||||
msgstr "Provisioner"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:122
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:172
|
||||
msgid "Proxy settings"
|
||||
msgstr "Proxy settings"
|
||||
|
||||
@ -1743,7 +1776,7 @@ msgstr "Releases"
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:64
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
#: src/renderer/components/menu/menu-actions.tsx:49
|
||||
#: src/renderer/components/menu/menu-actions.tsx:85
|
||||
msgid "Remove"
|
||||
@ -1753,6 +1786,10 @@ msgstr "Remove"
|
||||
msgid "Remove <0>{releaseNames}</0>?"
|
||||
msgstr "Remove <0>{releaseNames}</0>?"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:51
|
||||
msgid "Remove Workspace"
|
||||
msgstr "Remove Workspace"
|
||||
|
||||
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:133
|
||||
msgid "Remove field"
|
||||
msgstr "Remove field"
|
||||
@ -1769,7 +1806,7 @@ msgstr "Remove selected bindings for <0>{0}</0>?"
|
||||
msgid "Remove selected bindings from ${name}"
|
||||
msgstr "Remove selected bindings from ${name}"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:275
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:277
|
||||
msgid "Remove selected items ({0})"
|
||||
msgstr "Remove selected items ({0})"
|
||||
|
||||
@ -1828,7 +1865,7 @@ msgstr "Required field"
|
||||
msgid "Reset"
|
||||
msgstr "Reset"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:199
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:201
|
||||
msgid "Reset filters?"
|
||||
msgstr "Reset filters?"
|
||||
|
||||
@ -1954,6 +1991,7 @@ msgstr "Runtime Class"
|
||||
#: src/renderer/components/+config-maps/config-map-details.tsx:78
|
||||
#: src/renderer/components/+config-secrets/secret-details.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:120
|
||||
#: src/renderer/components/dock/edit-resource.tsx:88
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
@ -2030,7 +2068,7 @@ msgstr "Secrets"
|
||||
msgid "Select a quota.."
|
||||
msgstr "Select a quota.."
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:119
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:169
|
||||
msgid "Select kubeconfig"
|
||||
msgstr "Select kubeconfig"
|
||||
|
||||
@ -2433,6 +2471,10 @@ msgstr "Warnings: {0}"
|
||||
msgid "Welcome!"
|
||||
msgstr "Welcome!"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:79
|
||||
msgid "What is a Workspace?"
|
||||
msgstr "What is a Workspace?"
|
||||
|
||||
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
|
||||
msgid "Worker"
|
||||
msgstr "Worker"
|
||||
@ -2441,10 +2483,15 @@ msgstr "Worker"
|
||||
msgid "Workloads"
|
||||
msgstr "Workloads"
|
||||
|
||||
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
|
||||
#: src/renderer/components/+workspaces/workspace-menu.tsx:39
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:91
|
||||
msgid "Workspaces"
|
||||
msgstr "Workspaces"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:81
|
||||
msgid "Workspaces are used to organize number of clusters into logical groups."
|
||||
msgstr "Workspaces are used to organize number of clusters into logical groups."
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr "Wrong email format"
|
||||
@ -2478,7 +2525,7 @@ msgstr "Zone"
|
||||
msgid "ago"
|
||||
msgstr "ago"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:178
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:180
|
||||
msgid "and <0>{tailCount}</0> more"
|
||||
msgstr "and <0>{tailCount}</0> more"
|
||||
|
||||
@ -2555,7 +2602,7 @@ msgstr "{0} unavailable"
|
||||
msgid "{accountName} kubeconfig"
|
||||
msgstr "{accountName} kubeconfig"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:228
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:230
|
||||
msgid "{allItemsCount, plural, one {# item} other {# items}}"
|
||||
msgstr "{allItemsCount, plural, one {# item} other {# items}}"
|
||||
|
||||
@ -2571,7 +2618,7 @@ msgstr "{podName} Logs"
|
||||
msgid "{resourceType} <0>{resourceName}</0> updated."
|
||||
msgstr "{resourceType} <0>{resourceName}</0> updated."
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
|
||||
msgstr "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
|
||||
|
||||
|
||||
@ -25,15 +25,19 @@ msgstr ""
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:108
|
||||
msgid "(current)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-policies/network-policy-details.tsx:88
|
||||
msgid "(empty) (Allowing the specific traffic to all pods in this namespace)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:104
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:105
|
||||
msgid "(new)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:224
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:226
|
||||
msgid "<0>Filtered</0>: {itemsCount} / {allItemsCount}"
|
||||
msgstr ""
|
||||
|
||||
@ -45,10 +49,14 @@ msgstr ""
|
||||
msgid "<0>{0}</0> successfully created"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:126
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
|
||||
msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:84
|
||||
msgid "A single workspaces contains a list of clusters and their full configuration."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:80
|
||||
msgid "API Group"
|
||||
msgstr ""
|
||||
@ -71,7 +79,7 @@ msgstr ""
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:118
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:168
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:99
|
||||
msgid "Add Cluster"
|
||||
msgstr ""
|
||||
@ -84,11 +92,15 @@ msgstr ""
|
||||
msgid "Add RoleBinding"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:125
|
||||
msgid "Add Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:111
|
||||
msgid "Add bindings to {name}"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:137
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:187
|
||||
msgid "Add cluster"
|
||||
msgstr ""
|
||||
|
||||
@ -146,6 +158,14 @@ msgstr ""
|
||||
msgid "Age"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
msgid "All clusters within workspace will be cleared as well"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
#~ msgid "All clusters within workspace will be cleared as well."
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/renderer/components/+custom-resources/crd-list.tsx:56
|
||||
msgid "All groups"
|
||||
msgstr ""
|
||||
@ -220,6 +240,10 @@ msgstr ""
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:61
|
||||
msgid "Are you sure you want remove workspace <0>{0}</0>?"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-menu.tsx:41
|
||||
msgid "Are you sure you want to drain <0>{nodeName}</0>?"
|
||||
msgstr ""
|
||||
@ -333,6 +357,7 @@ msgstr ""
|
||||
msgid "CPU:"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:119
|
||||
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
|
||||
#: src/renderer/components/dock/info-panel.tsx:97
|
||||
#: src/renderer/components/wizard/wizard.tsx:130
|
||||
@ -635,7 +660,7 @@ msgstr ""
|
||||
msgid "Custom Resources"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:110
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:111
|
||||
msgid "Custom.."
|
||||
msgstr ""
|
||||
|
||||
@ -677,6 +702,7 @@ msgstr ""
|
||||
msgid "Definitions"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:113
|
||||
#: src/renderer/components/menu/menu-actions.tsx:84
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
@ -692,6 +718,7 @@ msgid "Deployments"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:65
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:118
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
@ -743,6 +770,7 @@ msgstr ""
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:112
|
||||
#: src/renderer/components/menu/menu-actions.tsx:80
|
||||
#: src/renderer/components/menu/menu-actions.tsx:81
|
||||
msgid "Edit"
|
||||
@ -878,7 +906,7 @@ msgstr ""
|
||||
msgid "HPA"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:128
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:178
|
||||
msgid "HTTP Proxy server. Used for communicating with Kubernetes API."
|
||||
msgstr ""
|
||||
|
||||
@ -1259,6 +1287,10 @@ msgstr ""
|
||||
msgid "Mounts"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:36
|
||||
msgid "My Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:64
|
||||
#: src/renderer/components/+apps-releases/releases.tsx:87
|
||||
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:49
|
||||
@ -1301,6 +1333,7 @@ msgstr ""
|
||||
#: src/renderer/components/+workloads-pods/pods.tsx:73
|
||||
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
|
||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:117
|
||||
#: src/renderer/components/dock/edit-resource.tsx:90
|
||||
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
|
||||
msgid "Name"
|
||||
@ -1419,7 +1452,7 @@ msgstr ""
|
||||
msgid "No issues found"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:196
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:198
|
||||
msgid "No items found."
|
||||
msgstr ""
|
||||
|
||||
@ -1558,7 +1591,7 @@ msgstr ""
|
||||
msgid "Persistent Volumes"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:51
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
|
||||
msgid "Please select kubeconfig"
|
||||
msgstr ""
|
||||
|
||||
@ -1643,7 +1676,7 @@ msgstr ""
|
||||
msgid "Provisioner"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:122
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:172
|
||||
msgid "Proxy settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1726,7 +1759,7 @@ msgstr ""
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:64
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
#: src/renderer/components/menu/menu-actions.tsx:49
|
||||
#: src/renderer/components/menu/menu-actions.tsx:85
|
||||
msgid "Remove"
|
||||
@ -1736,6 +1769,10 @@ msgstr ""
|
||||
msgid "Remove <0>{releaseNames}</0>?"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:51
|
||||
msgid "Remove Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:133
|
||||
msgid "Remove field"
|
||||
msgstr ""
|
||||
@ -1752,7 +1789,7 @@ msgstr ""
|
||||
msgid "Remove selected bindings from ${name}"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:275
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:277
|
||||
msgid "Remove selected items ({0})"
|
||||
msgstr ""
|
||||
|
||||
@ -1811,7 +1848,7 @@ msgstr ""
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:199
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:201
|
||||
msgid "Reset filters?"
|
||||
msgstr ""
|
||||
|
||||
@ -1937,6 +1974,7 @@ msgstr ""
|
||||
#: src/renderer/components/+config-maps/config-map-details.tsx:78
|
||||
#: src/renderer/components/+config-secrets/secret-details.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:120
|
||||
#: src/renderer/components/dock/edit-resource.tsx:88
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
@ -2013,7 +2051,7 @@ msgstr ""
|
||||
msgid "Select a quota.."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:119
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:169
|
||||
msgid "Select kubeconfig"
|
||||
msgstr ""
|
||||
|
||||
@ -2416,6 +2454,10 @@ msgstr ""
|
||||
msgid "Welcome!"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:79
|
||||
msgid "What is a Workspace?"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
|
||||
msgid "Worker"
|
||||
msgstr ""
|
||||
@ -2424,10 +2466,15 @@ msgstr ""
|
||||
msgid "Workloads"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
|
||||
#: src/renderer/components/+workspaces/workspace-menu.tsx:39
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:91
|
||||
msgid "Workspaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:81
|
||||
msgid "Workspaces are used to organize number of clusters into logical groups."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr ""
|
||||
@ -2461,7 +2508,7 @@ msgstr ""
|
||||
msgid "ago"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:178
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:180
|
||||
msgid "and <0>{tailCount}</0> more"
|
||||
msgstr ""
|
||||
|
||||
@ -2538,7 +2585,7 @@ msgstr ""
|
||||
msgid "{accountName} kubeconfig"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:228
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:230
|
||||
msgid "{allItemsCount, plural, one {# item} other {# items}}"
|
||||
msgstr ""
|
||||
|
||||
@ -2554,7 +2601,7 @@ msgstr ""
|
||||
msgid "{resourceType} <0>{resourceName}</0> updated."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -26,15 +26,19 @@ msgstr ""
|
||||
msgid "(as a percentage of request)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:108
|
||||
msgid "(current)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+network-policies/network-policy-details.tsx:88
|
||||
msgid "(empty) (Allowing the specific traffic to all pods in this namespace)"
|
||||
msgstr "(Пусто) (Допускается трафик ко всем подам в данной области имен)"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:104
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:105
|
||||
msgid "(new)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:224
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:226
|
||||
msgid "<0>Filtered</0>: {itemsCount} / {allItemsCount}"
|
||||
msgstr "<0>Отфильтровано</0>: {itemsCount} / {allItemsCount}"
|
||||
|
||||
@ -46,10 +50,14 @@ msgstr "<0>Ваш браузер не поддерживает все возмо
|
||||
msgid "<0>{0}</0> successfully created"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:126
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:176
|
||||
msgid "A HTTP proxy server URL (format: http://<address>:<port>)"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:84
|
||||
msgid "A single workspaces contains a list of clusters and their full configuration."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:80
|
||||
msgid "API Group"
|
||||
msgstr ""
|
||||
@ -72,7 +80,7 @@ msgstr "Название аккаунта"
|
||||
msgid "Active"
|
||||
msgstr "Активный"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:118
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:168
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:99
|
||||
msgid "Add Cluster"
|
||||
msgstr ""
|
||||
@ -85,11 +93,15 @@ msgstr "Добавить Namespace"
|
||||
msgid "Add RoleBinding"
|
||||
msgstr "Добавить привязку ролей"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:125
|
||||
msgid "Add Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:111
|
||||
msgid "Add bindings to {name}"
|
||||
msgstr "Добавить привязки к {name}"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:137
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:187
|
||||
msgid "Add cluster"
|
||||
msgstr ""
|
||||
|
||||
@ -147,6 +159,14 @@ msgstr "Аффинитеты"
|
||||
msgid "Age"
|
||||
msgstr "Возраст"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
msgid "All clusters within workspace will be cleared as well"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:64
|
||||
#~ msgid "All clusters within workspace will be cleared as well."
|
||||
#~ msgstr ""
|
||||
|
||||
#: src/renderer/components/+custom-resources/crd-list.tsx:56
|
||||
msgid "All groups"
|
||||
msgstr ""
|
||||
@ -221,6 +241,10 @@ msgstr "Применение.."
|
||||
msgid "Apps"
|
||||
msgstr "Приложения"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:61
|
||||
msgid "Are you sure you want remove workspace <0>{0}</0>?"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+nodes/node-menu.tsx:41
|
||||
msgid "Are you sure you want to drain <0>{nodeName}</0>?"
|
||||
msgstr "Выполнить команду drain для ноды <0>{nodeName}</0>?"
|
||||
@ -334,6 +358,7 @@ msgstr "Запросы к процессору"
|
||||
msgid "CPU:"
|
||||
msgstr "CPU:"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:119
|
||||
#: src/renderer/components/confirm-dialog/confirm-dialog.tsx:44
|
||||
#: src/renderer/components/dock/info-panel.tsx:97
|
||||
#: src/renderer/components/wizard/wizard.tsx:130
|
||||
@ -640,7 +665,7 @@ msgstr "Текущие фильтры:"
|
||||
msgid "Custom Resources"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:110
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:111
|
||||
msgid "Custom.."
|
||||
msgstr ""
|
||||
|
||||
@ -682,6 +707,7 @@ msgstr ""
|
||||
msgid "Definitions"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:113
|
||||
#: src/renderer/components/menu/menu-actions.tsx:84
|
||||
msgid "Delete"
|
||||
msgstr "Удалить"
|
||||
@ -697,6 +723,7 @@ msgid "Deployments"
|
||||
msgstr "Deployments"
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:65
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:118
|
||||
msgid "Description"
|
||||
msgstr "Описание"
|
||||
|
||||
@ -748,6 +775,7 @@ msgstr "Продолжительность"
|
||||
msgid "E-mail"
|
||||
msgstr "Эл. почта"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:112
|
||||
#: src/renderer/components/menu/menu-actions.tsx:80
|
||||
#: src/renderer/components/menu/menu-actions.tsx:81
|
||||
msgid "Edit"
|
||||
@ -888,7 +916,7 @@ msgstr "Группы"
|
||||
msgid "HPA"
|
||||
msgstr "HPA"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:128
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:178
|
||||
msgid "HTTP Proxy server. Used for communicating with Kubernetes API."
|
||||
msgstr ""
|
||||
|
||||
@ -1269,6 +1297,10 @@ msgstr "Монтируемые секреты"
|
||||
msgid "Mounts"
|
||||
msgstr "Установки"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:36
|
||||
msgid "My Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+apps-helm-charts/helm-charts.tsx:64
|
||||
#: src/renderer/components/+apps-releases/releases.tsx:87
|
||||
#: src/renderer/components/+config-autoscalers/hpa-details.tsx:49
|
||||
@ -1311,6 +1343,7 @@ msgstr "Установки"
|
||||
#: src/renderer/components/+workloads-pods/pods.tsx:73
|
||||
#: src/renderer/components/+workloads-replicasets/replicasets.tsx:50
|
||||
#: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:40
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:117
|
||||
#: src/renderer/components/dock/edit-resource.tsx:90
|
||||
#: src/renderer/components/kube-object/kube-object-meta.tsx:20
|
||||
msgid "Name"
|
||||
@ -1437,7 +1470,7 @@ msgstr "Нет доступных фильтров."
|
||||
msgid "No issues found"
|
||||
msgstr "Проблемы не обнаружены"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:196
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:198
|
||||
msgid "No items found."
|
||||
msgstr "Ничего не найдено."
|
||||
|
||||
@ -1576,7 +1609,7 @@ msgstr "Persistent Volume Claims"
|
||||
msgid "Persistent Volumes"
|
||||
msgstr "Persistent Volumes"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:51
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:52
|
||||
msgid "Please select kubeconfig"
|
||||
msgstr ""
|
||||
|
||||
@ -1661,7 +1694,7 @@ msgstr ""
|
||||
msgid "Provisioner"
|
||||
msgstr "Комиссия"
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:122
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:172
|
||||
msgid "Proxy settings"
|
||||
msgstr ""
|
||||
|
||||
@ -1744,7 +1777,7 @@ msgstr "Релизы"
|
||||
#: src/renderer/components/+user-management-roles-bindings/role-binding-details.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:60
|
||||
#: src/renderer/components/cluster-manager/clusters-menu.tsx:64
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
#: src/renderer/components/menu/menu-actions.tsx:49
|
||||
#: src/renderer/components/menu/menu-actions.tsx:85
|
||||
msgid "Remove"
|
||||
@ -1754,6 +1787,10 @@ msgstr "Удалить"
|
||||
msgid "Remove <0>{releaseNames}</0>?"
|
||||
msgstr "Удалить <0>{releaseNames}</0>?"
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:51
|
||||
msgid "Remove Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+config-secrets/add-secret-dialog.tsx:133
|
||||
msgid "Remove field"
|
||||
msgstr "Удалить поле"
|
||||
@ -1770,7 +1807,7 @@ msgstr "Удалить выбранные связки <0>{0}</0>?"
|
||||
msgid "Remove selected bindings from ${name}"
|
||||
msgstr "Удалить выбранные связки из ${name}"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:275
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:277
|
||||
msgid "Remove selected items ({0})"
|
||||
msgstr "Удалить выбранные элементы ({0})"
|
||||
|
||||
@ -1829,7 +1866,7 @@ msgstr "Обязательное поле"
|
||||
msgid "Reset"
|
||||
msgstr "Сбросить"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:199
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:201
|
||||
msgid "Reset filters?"
|
||||
msgstr "Сбросить фильтры?"
|
||||
|
||||
@ -1955,6 +1992,7 @@ msgstr ""
|
||||
#: src/renderer/components/+config-maps/config-map-details.tsx:78
|
||||
#: src/renderer/components/+config-secrets/secret-details.tsx:97
|
||||
#: src/renderer/components/+workloads-pods/pod-logs-dialog.tsx:216
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:120
|
||||
#: src/renderer/components/dock/edit-resource.tsx:88
|
||||
msgid "Save"
|
||||
msgstr "Сохранить"
|
||||
@ -2031,7 +2069,7 @@ msgstr "Secrets"
|
||||
msgid "Select a quota.."
|
||||
msgstr "Выберите квоту..."
|
||||
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:119
|
||||
#: src/renderer/components/+add-cluster/add-cluster.tsx:169
|
||||
msgid "Select kubeconfig"
|
||||
msgstr ""
|
||||
|
||||
@ -2434,6 +2472,10 @@ msgstr "Предупреждения: {0}"
|
||||
msgid "Welcome!"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:79
|
||||
msgid "What is a Workspace?"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+cluster/cluster-metric-switchers.tsx:19
|
||||
msgid "Worker"
|
||||
msgstr "Рабочие"
|
||||
@ -2442,10 +2484,15 @@ msgstr "Рабочие"
|
||||
msgid "Workloads"
|
||||
msgstr "Ресурсы"
|
||||
|
||||
#: src/renderer/components/cluster-manager/bottom-bar.tsx:35
|
||||
#: src/renderer/components/+workspaces/workspace-menu.tsx:39
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:91
|
||||
msgid "Workspaces"
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/+workspaces/workspaces.tsx:81
|
||||
msgid "Workspaces are used to organize number of clusters into logical groups."
|
||||
msgstr ""
|
||||
|
||||
#: src/renderer/components/input/input.validators.ts:10
|
||||
msgid "Wrong email format"
|
||||
msgstr "Неверный формат электронной почты"
|
||||
@ -2479,7 +2526,7 @@ msgstr "Зона"
|
||||
msgid "ago"
|
||||
msgstr "тому назад"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:178
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:180
|
||||
msgid "and <0>{tailCount}</0> more"
|
||||
msgstr "и <0>{tailCount}</0> ещё"
|
||||
|
||||
@ -2556,7 +2603,7 @@ msgstr "{0} недоступно"
|
||||
msgid "{accountName} kubeconfig"
|
||||
msgstr "{accountName} конфигурация"
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:228
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:230
|
||||
msgid "{allItemsCount, plural, one {# item} other {# items}}"
|
||||
msgstr "{allItemsCount, plural, one {# элемент} few {# элемента} many {# элементов} other {# элементов}}"
|
||||
|
||||
@ -2572,7 +2619,7 @@ msgstr "{podName} логи"
|
||||
msgid "{resourceType} <0>{resourceName}</0> updated."
|
||||
msgstr "{resourceType} <0>{resourceName}</0> обновлен."
|
||||
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:179
|
||||
#: src/renderer/components/item-object-list/item-list-layout.tsx:181
|
||||
msgid "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}</1>?</0>} other {<2>Remove <3>{selectedCount}</3> items <4>{selectedNames}</4> {tail}?</2>}}"
|
||||
msgstr ""
|
||||
"{\n"
|
||||
|
||||
@ -55,7 +55,7 @@ export class WorkspaceStore extends BaseStore<WorkspaceStoreModel> {
|
||||
}
|
||||
|
||||
@action
|
||||
public saveWorkspace(workspace: Workspace) {
|
||||
saveWorkspace(workspace: Workspace) {
|
||||
const id = workspace.id;
|
||||
const existingWorkspace = this.getById(id);
|
||||
if (existingWorkspace) {
|
||||
@ -66,7 +66,7 @@ export class WorkspaceStore extends BaseStore<WorkspaceStoreModel> {
|
||||
}
|
||||
|
||||
@action
|
||||
public removeWorkspace(id: WorkspaceId) {
|
||||
removeWorkspace(id: WorkspaceId) {
|
||||
const workspace = this.getById(id);
|
||||
if (!workspace) return;
|
||||
if (this.isDefault(id)) {
|
||||
|
||||
@ -1,115 +0,0 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<ClosePageButton />
|
||||
<div class="container-fluid lens-workspaces">
|
||||
<div class="header sticky-top">
|
||||
<h2><i class="material-icons">layers</i> Workspaces</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-3" />
|
||||
<div class="col-6">
|
||||
<h2>New Workspace</h2>
|
||||
|
||||
<b-form @submit.prevent="createWorkspace">
|
||||
<b-form-group
|
||||
label="Name:"
|
||||
label-for="input-name"
|
||||
>
|
||||
<b-form-input
|
||||
id="input-name"
|
||||
v-model="workspace.name"
|
||||
trim
|
||||
/>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group
|
||||
label="Description:"
|
||||
label-for="input-description"
|
||||
>
|
||||
<b-form-input
|
||||
id="input-description"
|
||||
v-model="workspace.description"
|
||||
trim
|
||||
/>
|
||||
</b-form-group>
|
||||
<b-form-row>
|
||||
<b-col>
|
||||
<b-button variant="primary" type="submit">
|
||||
Create Workspace
|
||||
</b-button>
|
||||
</b-col>
|
||||
</b-form-row>
|
||||
</b-form>
|
||||
</div>
|
||||
<div class="col-3" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { v4 as uuid } from "uuid";
|
||||
import ClosePageButton from "@/_vue/components/common/ClosePageButton";
|
||||
|
||||
export default {
|
||||
name: 'AddWorkspacePage',
|
||||
components: {
|
||||
ClosePageButton
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
workspace: {
|
||||
id: uuid(),
|
||||
name: "",
|
||||
description: ""
|
||||
},
|
||||
errors: {
|
||||
name: null,
|
||||
description: null
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
methods: {
|
||||
createWorkspace: function() {
|
||||
this.$store.commit("addWorkspace", this.workspace)
|
||||
this.$router.push({
|
||||
name: "workspaces-page"
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
this.$store.commit("hideMenu");
|
||||
},
|
||||
destroyed: function() {
|
||||
this.$store.commit("showMenu");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#app > .main-view > .content {
|
||||
left: 70px;
|
||||
right: 70px;
|
||||
}
|
||||
h2 {
|
||||
i {
|
||||
position: relative;
|
||||
top: 6px;
|
||||
}
|
||||
}
|
||||
.lens-workspaces {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
& input {
|
||||
background-color: #252729 !important;
|
||||
border: 0px !important;
|
||||
color: #87909c !important;
|
||||
}
|
||||
.header {
|
||||
padding-top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -1,125 +0,0 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<ClosePageButton />
|
||||
<div class="container-fluid lens-workspaces">
|
||||
<div class="header sticky-top">
|
||||
<h2><i class="material-icons">layers</i> Workspaces</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-3" />
|
||||
<div class="col-6">
|
||||
<h2>Edit Workspace</h2>
|
||||
|
||||
<b-form @submit.prevent="updateWorkspace">
|
||||
<b-form-group
|
||||
label="Name:"
|
||||
label-for="input-name"
|
||||
>
|
||||
<b-form-input
|
||||
id="input-name"
|
||||
v-model="workspace.name"
|
||||
trim
|
||||
/>
|
||||
</b-form-group>
|
||||
|
||||
<b-form-group
|
||||
label="Description:"
|
||||
label-for="input-description"
|
||||
>
|
||||
<b-form-input
|
||||
id="input-description"
|
||||
v-model="workspace.description"
|
||||
trim
|
||||
/>
|
||||
</b-form-group>
|
||||
<b-form-row>
|
||||
<b-col>
|
||||
<b-button variant="primary" type="submit">
|
||||
Save
|
||||
</b-button>
|
||||
<b-button v-if="workspace.id !== 'default'" v-b-modal.bv-modal-confirm>
|
||||
Delete
|
||||
</b-button>
|
||||
<b-modal id="bv-modal-confirm" @ok="deleteWorkspace" ok-title="Delete" ok-variant="danger" title-class="confirm-header" hide-backdrop title="Confirm workspace delete">
|
||||
<p>Are you sure you want to delete <strong>{{ workspace.name }}</strong> workspace from Lens?</p>
|
||||
</b-modal>
|
||||
</b-col>
|
||||
</b-form-row>
|
||||
</b-form>
|
||||
</div>
|
||||
<div class="col-3" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ClosePageButton from "@/_vue/components/common/ClosePageButton";
|
||||
import { workspaceStore } from "../../../common/workspace-store"
|
||||
|
||||
export default {
|
||||
name: 'EditWorkspacePage',
|
||||
components: {
|
||||
ClosePageButton
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
errors: {
|
||||
name: null,
|
||||
description: null
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
workspace: function() {
|
||||
return workspaceStore.getById(this.$route.params.id)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateWorkspace: function() {
|
||||
this.$store.commit("updateWorkspace", this.workspace)
|
||||
this.$router.push({
|
||||
name: "workspaces-page"
|
||||
})
|
||||
},
|
||||
deleteWorkspace: async function() {
|
||||
await this.$store.commit("removeWorkspace", this.workspace)
|
||||
this.$router.push({
|
||||
name: "workspaces-page"
|
||||
})
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
this.$store.commit("hideMenu");
|
||||
},
|
||||
destroyed: function() {
|
||||
this.$store.commit("showMenu");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#app > .main-view > .content {
|
||||
left: 70px;
|
||||
right: 70px;
|
||||
}
|
||||
h2 {
|
||||
i {
|
||||
position: relative;
|
||||
top: 6px;
|
||||
}
|
||||
}
|
||||
.lens-workspaces {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
& input {
|
||||
background-color: #252729 !important;
|
||||
border: 0px !important;
|
||||
color: #87909c !important;
|
||||
}
|
||||
.header {
|
||||
padding-top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -1,156 +0,0 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<ClosePageButton />
|
||||
<div class="container-fluid lens-workspaces">
|
||||
<div class="header sticky-top">
|
||||
<h2><i class="material-icons">layers</i> Workspaces</h2>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-9 main-content">
|
||||
<b-list-group>
|
||||
<b-list-group-item @click="editWorkspace(workspace)" href="#" v-for="workspace in workspaces" :key="workspace.id" :workspace="workspace">
|
||||
<div class="d-flex w-100 justify-content-between">
|
||||
<h5>{{ workspace.name }}</h5>
|
||||
<small v-if="workspace.id !== 'default'">
|
||||
<a href="#" title="Switch to workspace" v-b-tooltip.hover.right @click.prevent.stop="switchWorkspace(workspace)"><i class="material-icons">keyboard_arrow_right</i></a>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<p class="mb-1">
|
||||
{{ workspace.description }}
|
||||
</p>
|
||||
</b-list-group-item>
|
||||
</b-list-group>
|
||||
|
||||
<b-button variant="primary" href="#" @click.prevent="goAdd">
|
||||
Add Workspace
|
||||
</b-button>
|
||||
</div>
|
||||
<div class="col-3 help">
|
||||
<h3>What is a Workspace?</h3>
|
||||
<p>
|
||||
Workspaces are used to organize number of clusters into logical groups. A single workspaces contains a list of clusters and their full configuration.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ClosePageButton from "@/_vue/components/common/ClosePageButton";
|
||||
export default {
|
||||
name: 'WorkspacesPage',
|
||||
components: {
|
||||
ClosePageButton
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
fields: [
|
||||
{
|
||||
key: "name",
|
||||
label: "Name"
|
||||
},
|
||||
{
|
||||
key: "description",
|
||||
label: "Description"
|
||||
}
|
||||
],
|
||||
errors: {
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
workspaces: function() {
|
||||
return this.$store.getters.workspaces;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
switchWorkspace: function(workspace) {
|
||||
this.$store.commit("setCurrentWorkspace", workspace);
|
||||
this.$store.dispatch("clearClusters");
|
||||
this.$store.dispatch("refreshClusters", workspace);
|
||||
this.$router.push({
|
||||
name: "landing-page"
|
||||
});
|
||||
},
|
||||
editWorkspace: function(workspace) {
|
||||
this.$router.push({
|
||||
name: "edit-workspace-page",
|
||||
params: {
|
||||
id: workspace.id
|
||||
}
|
||||
});
|
||||
},
|
||||
goAdd: function() {
|
||||
this.$router.push({
|
||||
name: "add-workspace-page"
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
this.$store.commit("hideMenu");
|
||||
},
|
||||
destroyed: function() {
|
||||
this.$store.commit("showMenu");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
#app > .main-view > .content {
|
||||
left: 70px;
|
||||
right: 70px;
|
||||
}
|
||||
h2 {
|
||||
i {
|
||||
position: relative;
|
||||
top: 6px;
|
||||
}
|
||||
}
|
||||
.main-content {
|
||||
padding-left: 40px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
.lens-workspaces {
|
||||
height: 100%;
|
||||
overflow-y: scroll;
|
||||
& input {
|
||||
background-color: #252729 !important;
|
||||
border: 0px !important;
|
||||
color: #87909c !important;
|
||||
}
|
||||
.header {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.list-group {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.list-group-item {
|
||||
background-color: inherit;
|
||||
color: var(--lens-text-color-light);
|
||||
border: 0;
|
||||
border-bottom: 1px solid var(--lens-pane-bg);
|
||||
padding-left: 0;
|
||||
h5 {
|
||||
color: var(--lens-primary)
|
||||
}
|
||||
h5:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
small {
|
||||
a {
|
||||
color: var(--lens-text-color-light);
|
||||
z-index: 100;
|
||||
}
|
||||
i {
|
||||
opacity: 0.3;
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -1,3 +1,14 @@
|
||||
.Workspaces {
|
||||
.workspace {
|
||||
--flex-gap: #{$padding};
|
||||
padding: $padding / 2;
|
||||
|
||||
&.default {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
> .description {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,43 +1,173 @@
|
||||
import "./workspaces.scss"
|
||||
import React, { Fragment } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { Trans } from "@lingui/macro";
|
||||
import { computed, observable, toJS } from "mobx";
|
||||
import { t, Trans } from "@lingui/macro";
|
||||
import { WizardLayout } from "../layout/wizard-layout";
|
||||
import { workspaceStore } from "../../../common/workspace-store";
|
||||
import { Workspace, WorkspaceId, workspaceStore } from "../../../common/workspace-store";
|
||||
import { v4 as uuid } from "uuid"
|
||||
import { _i18n } from "../../i18n";
|
||||
import { ConfirmDialog } from "../confirm-dialog";
|
||||
import { Icon } from "../icon";
|
||||
import { Input } from "../input";
|
||||
import { cssNames, prevDefault } from "../../utils";
|
||||
import { Button } from "../button";
|
||||
|
||||
@observer
|
||||
export class Workspaces extends React.Component {
|
||||
@observable editingWorkspaces = observable.map<WorkspaceId, Workspace>();
|
||||
|
||||
@computed get workspaces(): Workspace[] {
|
||||
const allWorkspaces = new Map([
|
||||
...workspaceStore.workspaces,
|
||||
...this.editingWorkspaces,
|
||||
]);
|
||||
return Array.from(allWorkspaces.values());
|
||||
}
|
||||
|
||||
renderInfo() {
|
||||
return (
|
||||
<Fragment>
|
||||
<h2><Trans>What is a Workspace?</Trans></h2>
|
||||
<p><Trans>Workspaces are used to organize number of clusters into logical groups.</Trans></p>
|
||||
<p><Trans>A single workspaces contains a list of clusters and their full configuration.</Trans></p>
|
||||
<p className="info">
|
||||
<Trans>Workspaces are used to organize number of clusters into logical groups.</Trans>
|
||||
</p>
|
||||
<p>
|
||||
<Trans>A single workspaces contains a list of clusters and their full configuration.</Trans>
|
||||
</p>
|
||||
</Fragment>
|
||||
)
|
||||
}
|
||||
|
||||
saveWorkspace = (id: WorkspaceId) => {
|
||||
const draft = toJS(this.editingWorkspaces.get(id));
|
||||
if (draft) {
|
||||
this.clearEditing(id);
|
||||
workspaceStore.saveWorkspace(draft);
|
||||
}
|
||||
}
|
||||
|
||||
addWorkspace = () => {
|
||||
console.log('add workspace')
|
||||
const workspaceId = uuid();
|
||||
this.editingWorkspaces.set(workspaceId, {
|
||||
id: workspaceId,
|
||||
name: _i18n._(t`My Workspace`),
|
||||
description: "",
|
||||
})
|
||||
}
|
||||
|
||||
editWorkspace = (id: WorkspaceId) => {
|
||||
const workspace = workspaceStore.getById(id);
|
||||
this.editingWorkspaces.set(id, toJS(workspace));
|
||||
}
|
||||
|
||||
clearEditing = (id: WorkspaceId) => {
|
||||
this.editingWorkspaces.delete(id);
|
||||
}
|
||||
|
||||
removeWorkspace = (id: WorkspaceId) => {
|
||||
const workspace = workspaceStore.getById(id);
|
||||
ConfirmDialog.open({
|
||||
okButtonProps: {
|
||||
label: _i18n._(t`Remove Workspace`),
|
||||
primary: false,
|
||||
accent: true,
|
||||
},
|
||||
ok: () => {
|
||||
this.clearEditing(id);
|
||||
workspaceStore.removeWorkspace(id);
|
||||
},
|
||||
message: (
|
||||
<div className="confirm flex column gaps">
|
||||
<p>
|
||||
<Trans>Are you sure you want remove workspace <b>{workspace.name}</b>?</Trans>
|
||||
</p>
|
||||
<p className="info">
|
||||
<Trans>All clusters within workspace will be cleared as well</Trans>
|
||||
</p>
|
||||
</div>
|
||||
),
|
||||
})
|
||||
}
|
||||
|
||||
render() {
|
||||
const { workspacesList, currentWorkspace } = workspaceStore;
|
||||
return (
|
||||
<WizardLayout className="Workspaces" infoPanel={this.renderInfo()}>
|
||||
<h2>
|
||||
<Trans>Workspaces</Trans>
|
||||
</h2>
|
||||
<div className="workspaces">
|
||||
{workspacesList.map(({ id: workspaceId, name, description }) => {
|
||||
<div className="items flex column gaps">
|
||||
{this.workspaces.map(({ id: workspaceId, name, description }) => {
|
||||
const isActive = workspaceStore.currentWorkspaceId === workspaceId;
|
||||
const isDefault = workspaceStore.isDefault(workspaceId);
|
||||
const isEditing = this.editingWorkspaces.has(workspaceId);
|
||||
const editingWorkspace = this.editingWorkspaces.get(workspaceId);
|
||||
const className = cssNames("workspace flex gaps align-center", {
|
||||
active: isActive,
|
||||
editing: isEditing,
|
||||
default: isDefault,
|
||||
});
|
||||
return (
|
||||
<div key={workspaceId} className="workspace flex gaps">
|
||||
<span className="name">{name}</span>
|
||||
<span className="description">{description}</span>
|
||||
<div key={workspaceId} className={className}>
|
||||
{!isEditing && (
|
||||
<Fragment>
|
||||
<span className="name flex gaps align-center">
|
||||
<a href="#" onClick={prevDefault(() => workspaceStore.setActive(workspaceId))}>{name}</a>
|
||||
{isActive && <span> <Trans>(current)</Trans></span>}
|
||||
</span>
|
||||
<span className="description">{description}</span>
|
||||
{!isDefault && (
|
||||
<Fragment>
|
||||
<Icon
|
||||
material="edit"
|
||||
tooltip={<Trans>Edit</Trans>}
|
||||
onClick={() => this.editWorkspace(workspaceId)}
|
||||
/>
|
||||
<Icon
|
||||
material="delete"
|
||||
tooltip={<Trans>Delete</Trans>}
|
||||
onClick={() => this.removeWorkspace(workspaceId)}
|
||||
/>
|
||||
</Fragment>
|
||||
)}
|
||||
</Fragment>
|
||||
)}
|
||||
{isEditing && (
|
||||
<Fragment>
|
||||
<Input
|
||||
className="name"
|
||||
placeholder={_i18n._(t`Name`)}
|
||||
value={editingWorkspace.name}
|
||||
onChange={v => editingWorkspace.name = v}
|
||||
/>
|
||||
<Input
|
||||
className="description"
|
||||
placeholder={_i18n._(t`Description`)}
|
||||
value={editingWorkspace.description}
|
||||
onChange={v => editingWorkspace.description = v}
|
||||
/>
|
||||
<Icon
|
||||
material="cancel"
|
||||
tooltip={<Trans>Cancel</Trans>}
|
||||
onClick={() => this.clearEditing(workspaceId)}
|
||||
/>
|
||||
<Icon
|
||||
material="save"
|
||||
tooltip={<Trans>Save</Trans>}
|
||||
onClick={() => this.saveWorkspace(workspaceId)}
|
||||
/>
|
||||
</Fragment>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
<Button
|
||||
primary
|
||||
className="box left"
|
||||
label={<Trans>Add Workspace</Trans>}
|
||||
onClick={this.addWorkspace}
|
||||
/>
|
||||
</WizardLayout>
|
||||
);
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ import { observable } from "mobx";
|
||||
import { observer } from "mobx-react";
|
||||
import { Trans } from "@lingui/macro";
|
||||
import { cssNames, noop, prevDefault } from "../../utils";
|
||||
import { Button } from "../button";
|
||||
import { Button, ButtonProps } from "../button";
|
||||
import { Dialog, DialogProps } from "../dialog";
|
||||
import { Icon } from "../icon";
|
||||
|
||||
@ -14,7 +14,9 @@ export interface IConfirmDialogParams {
|
||||
labelOk?: ReactNode;
|
||||
labelCancel?: ReactNode;
|
||||
message?: ReactNode;
|
||||
icon?: string;
|
||||
icon?: ReactNode;
|
||||
okButtonProps?: Partial<ButtonProps>
|
||||
cancelButtonProps?: Partial<ButtonProps>
|
||||
}
|
||||
|
||||
interface Props extends Partial<DialogProps> {
|
||||
@ -40,7 +42,7 @@ export class ConfirmDialog extends React.Component<Props> {
|
||||
ok: noop,
|
||||
labelOk: <Trans>Ok</Trans>,
|
||||
labelCancel: <Trans>Cancel</Trans>,
|
||||
icon: "warning",
|
||||
icon: <Icon big material="warning"/>,
|
||||
};
|
||||
|
||||
get params(): IConfirmDialogParams {
|
||||
@ -67,18 +69,21 @@ export class ConfirmDialog extends React.Component<Props> {
|
||||
|
||||
render() {
|
||||
const { className, ...dialogProps } = this.props;
|
||||
const { icon, labelOk, labelCancel, message } = this.params;
|
||||
const {
|
||||
icon, labelOk, labelCancel, message,
|
||||
okButtonProps = {},
|
||||
cancelButtonProps = {},
|
||||
} = this.params;
|
||||
return (
|
||||
<Dialog
|
||||
{...dialogProps}
|
||||
className={cssNames("ConfirmDialog", className, icon)}
|
||||
className={cssNames("ConfirmDialog", className)}
|
||||
isOpen={ConfirmDialog.isOpen}
|
||||
onClose={this.onClose}
|
||||
close={this.close}
|
||||
>
|
||||
<div className="confirm-content">
|
||||
<Icon big material={icon}/>
|
||||
{message}
|
||||
{icon} {message}
|
||||
</div>
|
||||
<div className="confirm-buttons">
|
||||
<Button
|
||||
@ -86,6 +91,7 @@ export class ConfirmDialog extends React.Component<Props> {
|
||||
className="cancel"
|
||||
label={labelCancel}
|
||||
onClick={prevDefault(this.close)}
|
||||
{...cancelButtonProps}
|
||||
/>
|
||||
<Button
|
||||
autoFocus primary
|
||||
@ -93,6 +99,7 @@ export class ConfirmDialog extends React.Component<Props> {
|
||||
label={labelOk}
|
||||
onClick={prevDefault(this.ok)}
|
||||
waiting={this.isSaving}
|
||||
{...okButtonProps}
|
||||
/>
|
||||
</div>
|
||||
</Dialog>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user