summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/runner/components/runner_type_tabs.vue
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-02-18 09:45:46 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-02-18 09:45:46 +0000
commita7b3560714b4d9cc4ab32dffcd1f74a284b93580 (patch)
tree7452bd5c3545c2fa67a28aa013835fb4fa071baf /app/assets/javascripts/runner/components/runner_type_tabs.vue
parentee9173579ae56a3dbfe5afe9f9410c65bb327ca7 (diff)
downloadgitlab-ce-a7b3560714b4d9cc4ab32dffcd1f74a284b93580.tar.gz
Add latest changes from gitlab-org/gitlab@14-8-stable-eev14.8.0-rc42
Diffstat (limited to 'app/assets/javascripts/runner/components/runner_type_tabs.vue')
-rw-r--r--app/assets/javascripts/runner/components/runner_type_tabs.vue59
1 files changed, 37 insertions, 22 deletions
diff --git a/app/assets/javascripts/runner/components/runner_type_tabs.vue b/app/assets/javascripts/runner/components/runner_type_tabs.vue
index b767dafaccf..25ed6600dc9 100644
--- a/app/assets/javascripts/runner/components/runner_type_tabs.vue
+++ b/app/assets/javascripts/runner/components/runner_type_tabs.vue
@@ -1,27 +1,21 @@
<script>
import { GlTabs, GlTab } from '@gitlab/ui';
-import { s__ } from '~/locale';
import { searchValidator } from '~/runner/runner_search_utils';
-import { INSTANCE_TYPE, GROUP_TYPE, PROJECT_TYPE } from '../constants';
+import {
+ INSTANCE_TYPE,
+ GROUP_TYPE,
+ PROJECT_TYPE,
+ I18N_ALL_TYPES,
+ I18N_INSTANCE_TYPE,
+ I18N_GROUP_TYPE,
+ I18N_PROJECT_TYPE,
+} from '../constants';
-const tabs = [
- {
- title: s__('Runners|All'),
- runnerType: null,
- },
- {
- title: s__('Runners|Instance'),
- runnerType: INSTANCE_TYPE,
- },
- {
- title: s__('Runners|Group'),
- runnerType: GROUP_TYPE,
- },
- {
- title: s__('Runners|Project'),
- runnerType: PROJECT_TYPE,
- },
-];
+const I18N_TAB_TITLES = {
+ [INSTANCE_TYPE]: I18N_INSTANCE_TYPE,
+ [GROUP_TYPE]: I18N_GROUP_TYPE,
+ [PROJECT_TYPE]: I18N_PROJECT_TYPE,
+};
export default {
components: {
@@ -29,12 +23,34 @@ export default {
GlTab,
},
props: {
+ runnerTypes: {
+ type: Array,
+ required: false,
+ default: () => [INSTANCE_TYPE, GROUP_TYPE, PROJECT_TYPE],
+ },
value: {
type: Object,
required: true,
validator: searchValidator,
},
},
+ computed: {
+ tabs() {
+ const tabs = this.runnerTypes.map((runnerType) => ({
+ title: I18N_TAB_TITLES[runnerType],
+ runnerType,
+ }));
+
+ // Always add a "All" tab that resets filters
+ return [
+ {
+ title: I18N_ALL_TYPES,
+ runnerType: null,
+ },
+ ...tabs,
+ ];
+ },
+ },
methods: {
onTabSelected({ runnerType }) {
this.$emit('input', {
@@ -47,13 +63,12 @@ export default {
return runnerType === this.value.runnerType;
},
},
- tabs,
};
</script>
<template>
<gl-tabs v-bind="$attrs" data-testid="runner-type-tabs">
<gl-tab
- v-for="tab in $options.tabs"
+ v-for="tab in tabs"
:key="`${tab.runnerType}`"
:active="isTabActive(tab)"
@click="onTabSelected(tab)"