summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js')
-rw-r--r--app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js b/app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js
new file mode 100644
index 00000000000..117a630719e
--- /dev/null
+++ b/app/assets/javascripts/ci/runner/components/search_tokens/status_token_config.js
@@ -0,0 +1,42 @@
+import {
+ OPERATOR_IS_ONLY,
+ TOKEN_TITLE_STATUS,
+} from '~/vue_shared/components/filtered_search_bar/constants';
+import BaseToken from '~/vue_shared/components/filtered_search_bar/tokens/base_token.vue';
+import {
+ I18N_STATUS_ONLINE,
+ I18N_STATUS_NEVER_CONTACTED,
+ I18N_STATUS_OFFLINE,
+ I18N_STATUS_STALE,
+ STATUS_ONLINE,
+ STATUS_OFFLINE,
+ STATUS_NEVER_CONTACTED,
+ STATUS_STALE,
+ PARAM_KEY_STATUS,
+} from '../../constants';
+
+const options = [
+ { value: STATUS_ONLINE, title: I18N_STATUS_ONLINE },
+ { value: STATUS_OFFLINE, title: I18N_STATUS_OFFLINE },
+ { value: STATUS_NEVER_CONTACTED, title: I18N_STATUS_NEVER_CONTACTED },
+ { value: STATUS_STALE, title: I18N_STATUS_STALE },
+];
+
+export const statusTokenConfig = {
+ icon: 'status',
+ title: TOKEN_TITLE_STATUS,
+ type: PARAM_KEY_STATUS,
+ token: BaseToken,
+ unique: true,
+ options: options.map(({ value, title }) => ({
+ value,
+ // Replace whitespace with a special character to avoid
+ // splitting this value.
+ // Replacing in each option, as translations may also
+ // contain spaces!
+ // see: https://gitlab.com/gitlab-org/gitlab/-/issues/344142
+ // see: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1438
+ title: title.replace(/\s/g, '\u00a0'),
+ })),
+ operators: OPERATOR_IS_ONLY,
+};