diff --git a/app/assets/javascripts/clusters/agents/components/show.vue b/app/assets/javascripts/clusters/agents/components/show.vue index 9d7d68ee31c42857eccabe052926d74d0289e8dc..c1a6f7e0800503c5294aa76e012d2ee2163d9eec 100644 --- a/app/assets/javascripts/clusters/agents/components/show.vue +++ b/app/assets/javascripts/clusters/agents/components/show.vue @@ -161,6 +161,8 @@ export default { + + diff --git a/ee/app/assets/javascripts/clusters/agents/components/show.vue b/ee/app/assets/javascripts/clusters/agents/components/show.vue index fe31d0f50251684851ba57cdf55e17e062749cf1..87724c037e63f47d5a46990c5a60429c769f7ffa 100644 --- a/ee/app/assets/javascripts/clusters/agents/components/show.vue +++ b/ee/app/assets/javascripts/clusters/agents/components/show.vue @@ -5,21 +5,27 @@ import { s__ } from '~/locale'; import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import AgentShowPage from '~/clusters/agents/components/show.vue'; import AgentVulnerabilityReport from 'ee/security_dashboard/components/agent/agent_vulnerability_report.vue'; +import AgentWorkspacesList from 'ee/remote_development/components/agent_admin_ui/agent_workspaces_list.vue'; export default { i18n: { securityTabTitle: s__('ClusterAgents|Security'), + workspacesTabTitle: s__('RemoteDevelopment|Workspaces'), }, components: { AgentShowPage, GlTab, AgentVulnerabilityReport, + AgentWorkspacesList, }, mixins: [glFeatureFlagMixin()], computed: { showSecurityTab() { return this.glFeatures.kubernetesClusterVulnerabilities; }, + showAgentWorkspacesTab() { + return this.glFeatures.remoteDevelopment; + }, }, }; @@ -31,5 +37,10 @@ export default { + diff --git a/ee/app/assets/javascripts/remote_development/components/agent_admin_ui/agent_workspaces_list.vue b/ee/app/assets/javascripts/remote_development/components/agent_admin_ui/agent_workspaces_list.vue new file mode 100644 index 0000000000000000000000000000000000000000..4d272408b7bc365624cafd2fd70576ae951bd260 --- /dev/null +++ b/ee/app/assets/javascripts/remote_development/components/agent_admin_ui/agent_workspaces_list.vue @@ -0,0 +1,110 @@ + + + diff --git a/ee/app/assets/javascripts/remote_development/components/common/workspaces_list.vue b/ee/app/assets/javascripts/remote_development/components/common/workspaces_list.vue new file mode 100644 index 0000000000000000000000000000000000000000..b4625f0feea00fa2e27de7702ca741b1ae32d45d --- /dev/null +++ b/ee/app/assets/javascripts/remote_development/components/common/workspaces_list.vue @@ -0,0 +1,103 @@ + + + diff --git a/ee/app/assets/javascripts/remote_development/constants.js b/ee/app/assets/javascripts/remote_development/constants.js index 4d15df1a89fb482240757d2c9ccdb3f0eab9c00f..4608a479f842368ad91dabecdf2b205af2a55f9d 100644 --- a/ee/app/assets/javascripts/remote_development/constants.js +++ b/ee/app/assets/javascripts/remote_development/constants.js @@ -1,4 +1,5 @@ import { pick } from 'lodash'; +import { s__ } from '~/locale'; export const DEFAULT_DEVFILE_PATH = '.devfile.yaml'; export const DEFAULT_EDITOR = 'webide'; @@ -44,3 +45,7 @@ export const PROJECT_VISIBILITY = { export const EXCLUDED_WORKSPACE_AGE_IN_DAYS = 5; export const WORKSPACES_LIST_PAGE_SIZE = 10; export const WORKSPACES_DROPDOWN_GROUP_PAGE_SIZE = 20; + +export const I18N_LOADING_WORKSPACES_FAILED = s__( + 'Workspaces|Unable to load current Workspaces. Please try again or contact an administrator.', +); diff --git a/ee/app/assets/javascripts/remote_development/graphql/queries/agent_workspaces_list.query.graphql b/ee/app/assets/javascripts/remote_development/graphql/queries/agent_workspaces_list.query.graphql new file mode 100644 index 0000000000000000000000000000000000000000..423fefc75b8726afe3ba9c384a9c97466db9b8f6 --- /dev/null +++ b/ee/app/assets/javascripts/remote_development/graphql/queries/agent_workspaces_list.query.graphql @@ -0,0 +1,33 @@ +#import "~/graphql_shared/fragments/page_info.fragment.graphql" + +query agentWorkspaces( + $first: Int + $before: String + $after: String + $agentName: String! + $projectPath: ID! +) { + project(fullPath: $projectPath) { + id + clusterAgent(name: $agentName) { + id + workspaces(first: $first, before: $before, after: $after) { + nodes { + id + name + namespace + projectId + desiredState + actualState + url + devfileRef + devfilePath + createdAt + } + pageInfo { + ...PageInfo + } + } + } + } +} diff --git a/ee/app/assets/javascripts/remote_development/pages/list.vue b/ee/app/assets/javascripts/remote_development/pages/list.vue index c562aed91954626c6170cd8edc466f1d3ae7395e..9f30f0c5a5f7bf106d192ab92cef21d779b9c16f 100644 --- a/ee/app/assets/javascripts/remote_development/pages/list.vue +++ b/ee/app/assets/javascripts/remote_development/pages/list.vue @@ -1,38 +1,27 @@