diff --git a/locales/en/messages.po b/locales/en/messages.po index ad8798db04..01ac5a96d5 100644 --- a/locales/en/messages.po +++ b/locales/en/messages.po @@ -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: {itemsCount} / {allItemsCount}" msgstr "<0>Filtered: {itemsCount} / {allItemsCount}" @@ -45,10 +49,14 @@ msgstr "<0>Your browser does not support all Lens features. Please consider msgid "<0>{0} successfully created" msgstr "<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://
:)" msgstr "A HTTP proxy server URL (format: http://
:)" +#: 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}?" +msgstr "Are you sure you want remove workspace <0>{0}?" + #: src/renderer/components/+nodes/node-menu.tsx:41 msgid "Are you sure you want to drain <0>{nodeName}?" msgstr "Are you sure you want to drain <0>{nodeName}?" @@ -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}?" msgstr "Remove <0>{releaseNames}?" +#: 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}?" 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} more" msgstr "and <0>{tailCount} 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} updated." msgstr "{resourceType} <0>{resourceName} 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}?} other {<2>Remove <3>{selectedCount} items <4>{selectedNames} {tail}?}}" msgstr "{selectedCount, plural, one {<0>Remove item <1>{selectedNames}?} other {<2>Remove <3>{selectedCount} items <4>{selectedNames} {tail}?}}" diff --git a/locales/fi/messages.po b/locales/fi/messages.po index 4fba45271a..6892f5bed8 100644 --- a/locales/fi/messages.po +++ b/locales/fi/messages.po @@ -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: {itemsCount} / {allItemsCount}" msgstr "" @@ -45,10 +49,14 @@ msgstr "" msgid "<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://
:)" 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}?" +msgstr "" + #: src/renderer/components/+nodes/node-menu.tsx:41 msgid "Are you sure you want to drain <0>{nodeName}?" 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}?" 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} 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} 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}?} other {<2>Remove <3>{selectedCount} items <4>{selectedNames} {tail}?}}" msgstr "" diff --git a/locales/ru/messages.po b/locales/ru/messages.po index d77d9d92d7..6048ee8c5a 100644 --- a/locales/ru/messages.po +++ b/locales/ru/messages.po @@ -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: {itemsCount} / {allItemsCount}" msgstr "<0>Отфильтровано: {itemsCount} / {allItemsCount}" @@ -46,10 +50,14 @@ msgstr "<0>Ваш браузер не поддерживает все возмо msgid "<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://
:)" 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}?" +msgstr "" + #: src/renderer/components/+nodes/node-menu.tsx:41 msgid "Are you sure you want to drain <0>{nodeName}?" msgstr "Выполнить команду drain для ноды <0>{nodeName}?" @@ -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}?" msgstr "Удалить <0>{releaseNames}?" +#: 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}?" 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} more" msgstr "и <0>{tailCount} ещё" @@ -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} updated." msgstr "{resourceType} <0>{resourceName} обновлен." -#: 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}?} other {<2>Remove <3>{selectedCount} items <4>{selectedNames} {tail}?}}" msgstr "" "{\n" diff --git a/src/common/workspace-store.ts b/src/common/workspace-store.ts index 7d67bd4d35..3935dda02e 100644 --- a/src/common/workspace-store.ts +++ b/src/common/workspace-store.ts @@ -55,7 +55,7 @@ export class WorkspaceStore extends BaseStore { } @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 { } @action - public removeWorkspace(id: WorkspaceId) { + removeWorkspace(id: WorkspaceId) { const workspace = this.getById(id); if (!workspace) return; if (this.isDefault(id)) { diff --git a/src/renderer/_vue/components/AddWorkspacePage.vue b/src/renderer/_vue/components/AddWorkspacePage.vue deleted file mode 100644 index c3794b934a..0000000000 --- a/src/renderer/_vue/components/AddWorkspacePage.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/src/renderer/_vue/components/EditWorkspacePage.vue b/src/renderer/_vue/components/EditWorkspacePage.vue deleted file mode 100644 index 8fc40c93d6..0000000000 --- a/src/renderer/_vue/components/EditWorkspacePage.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/src/renderer/_vue/components/WorkspacesPage.vue b/src/renderer/_vue/components/WorkspacesPage.vue deleted file mode 100644 index d8311c7020..0000000000 --- a/src/renderer/_vue/components/WorkspacesPage.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - - diff --git a/src/renderer/components/+workspaces/workspaces.scss b/src/renderer/components/+workspaces/workspaces.scss index 7b636036db..95c036c304 100644 --- a/src/renderer/components/+workspaces/workspaces.scss +++ b/src/renderer/components/+workspaces/workspaces.scss @@ -1,3 +1,14 @@ .Workspaces { + .workspace { + --flex-gap: #{$padding}; + padding: $padding / 2; + &.default { + font-style: italic; + } + + > .description { + flex: 1; + } + } } \ No newline at end of file diff --git a/src/renderer/components/+workspaces/workspaces.tsx b/src/renderer/components/+workspaces/workspaces.tsx index 5e7dc3089d..5e6b8cf72b 100644 --- a/src/renderer/components/+workspaces/workspaces.tsx +++ b/src/renderer/components/+workspaces/workspaces.tsx @@ -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(); + + @computed get workspaces(): Workspace[] { + const allWorkspaces = new Map([ + ...workspaceStore.workspaces, + ...this.editingWorkspaces, + ]); + return Array.from(allWorkspaces.values()); + } + renderInfo() { return (

What is a Workspace?

-

Workspaces are used to organize number of clusters into logical groups.

-

A single workspaces contains a list of clusters and their full configuration.

+

+ Workspaces are used to organize number of clusters into logical groups. +

+

+ A single workspaces contains a list of clusters and their full configuration. +

) } + 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: ( +
+

+ Are you sure you want remove workspace {workspace.name}? +

+

+ All clusters within workspace will be cleared as well +

+
+ ), + }) } render() { - const { workspacesList, currentWorkspace } = workspaceStore; return (

Workspaces

-
- {workspacesList.map(({ id: workspaceId, name, description }) => { +
+ {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 ( -
- {name} - {description} +
+ {!isEditing && ( + + + workspaceStore.setActive(workspaceId))}>{name} + {isActive && (current)} + + {description} + {!isDefault && ( + + Edit} + onClick={() => this.editWorkspace(workspaceId)} + /> + Delete} + onClick={() => this.removeWorkspace(workspaceId)} + /> + + )} + + )} + {isEditing && ( + + editingWorkspace.name = v} + /> + editingWorkspace.description = v} + /> + Cancel} + onClick={() => this.clearEditing(workspaceId)} + /> + Save} + onClick={() => this.saveWorkspace(workspaceId)} + /> + + )}
) })}
+