diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-27 21:11:32 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-09-27 21:11:32 +0300 |
commit | e53dd98899f27b4ba30632b8de062addb62466e8 (patch) | |
tree | 3b8b6fedd33d9040526bdd2a0f308cf4b127ea86 /app/assets/javascripts/ci | |
parent | 57ae76cdb503afd6c0821de3a03b4387af6b59eb (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/ci')
3 files changed, 76 insertions, 4 deletions
diff --git a/app/assets/javascripts/ci/admin/jobs_table/components/cells/runner_cell.vue b/app/assets/javascripts/ci/admin/jobs_table/components/cells/runner_cell.vue index 33b18c35347..e44f756a5c5 100644 --- a/app/assets/javascripts/ci/admin/jobs_table/components/cells/runner_cell.vue +++ b/app/assets/javascripts/ci/admin/jobs_table/components/cells/runner_cell.vue @@ -1,5 +1,6 @@ <script> -import { GlLink } from '@gitlab/ui'; +import { GlLink, GlTooltipDirective } from '@gitlab/ui'; +import RunnerTypeIcon from '~/ci/runner/components/runner_type_icon.vue'; import { RUNNER_EMPTY_TEXT, RUNNER_NO_DESCRIPTION } from '../../constants'; export default { @@ -9,6 +10,10 @@ export default { }, components: { GlLink, + RunnerTypeIcon, + }, + directives: { + GlTooltip: GlTooltipDirective, }, props: { job: { @@ -25,15 +30,19 @@ export default { ? this.job.runner.description : this.$options.i18n.noRunnerDescription; }, + runnerType() { + return this.job.runner?.runnerType; + }, }, }; </script> <template> <div class="gl-text-truncate"> - <gl-link v-if="adminUrl" :href="adminUrl" data-testid="job-runner-link"> - {{ description }} - </gl-link> + <span v-if="adminUrl"> + <runner-type-icon :type="runnerType" class="gl-vertical-align-middle" /> + <gl-link :href="adminUrl" data-testid="job-runner-link"> {{ description }} </gl-link> + </span> <span v-else data-testid="empty-runner-text"> {{ $options.i18n.emptyRunnerText }}</span> </div> </template> diff --git a/app/assets/javascripts/ci/admin/jobs_table/graphql/queries/get_all_jobs.query.graphql b/app/assets/javascripts/ci/admin/jobs_table/graphql/queries/get_all_jobs.query.graphql index 89fb1782e46..2e77f4db907 100644 --- a/app/assets/javascripts/ci/admin/jobs_table/graphql/queries/get_all_jobs.query.graphql +++ b/app/assets/javascripts/ci/admin/jobs_table/graphql/queries/get_all_jobs.query.graphql @@ -16,6 +16,7 @@ query getAllJobs( id description adminUrl + runnerType } artifacts { nodes { diff --git a/app/assets/javascripts/ci/runner/components/runner_type_icon.vue b/app/assets/javascripts/ci/runner/components/runner_type_icon.vue new file mode 100644 index 00000000000..c56f28e10a3 --- /dev/null +++ b/app/assets/javascripts/ci/runner/components/runner_type_icon.vue @@ -0,0 +1,62 @@ +<script> +import { GlIcon, GlTooltipDirective } from '@gitlab/ui'; +import { + INSTANCE_TYPE, + GROUP_TYPE, + PROJECT_TYPE, + I18N_INSTANCE_TYPE, + I18N_INSTANCE_RUNNER_DESCRIPTION, + I18N_GROUP_TYPE, + I18N_GROUP_RUNNER_DESCRIPTION, + I18N_PROJECT_TYPE, + I18N_PROJECT_RUNNER_DESCRIPTION, +} from '../constants'; + +const ICON_DATA = { + [INSTANCE_TYPE]: { + name: 'users', + tooltip: `${I18N_INSTANCE_TYPE}: ${I18N_INSTANCE_RUNNER_DESCRIPTION}`, + }, + [GROUP_TYPE]: { + name: 'group', + tooltip: `${I18N_GROUP_TYPE}: ${I18N_GROUP_RUNNER_DESCRIPTION}`, + }, + [PROJECT_TYPE]: { + name: 'project', + tooltip: `${I18N_PROJECT_TYPE}: ${I18N_PROJECT_RUNNER_DESCRIPTION}`, + }, +}; + +export default { + components: { + GlIcon, + }, + directives: { + GlTooltip: GlTooltipDirective, + }, + props: { + type: { + type: String, + required: false, + default: null, + validator(type) { + return Boolean(ICON_DATA[type]); + }, + }, + }, + computed: { + icon() { + return ICON_DATA[this.type]; + }, + }, +}; +</script> +<template> + <gl-icon + v-if="icon" + v-gl-tooltip="icon.tooltip" + :aria-label="icon.tooltip" + :name="icon.name" + v-bind="$attrs" + /> +</template> |