summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/runner/components/runner_status_badge.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/runner/components/runner_status_badge.vue')
-rw-r--r--app/assets/javascripts/runner/components/runner_status_badge.vue31
1 files changed, 18 insertions, 13 deletions
diff --git a/app/assets/javascripts/runner/components/runner_status_badge.vue b/app/assets/javascripts/runner/components/runner_status_badge.vue
index 6d0445ecb7a..073d0a49f59 100644
--- a/app/assets/javascripts/runner/components/runner_status_badge.vue
+++ b/app/assets/javascripts/runner/components/runner_status_badge.vue
@@ -3,10 +3,11 @@ import { GlBadge, GlTooltipDirective } from '@gitlab/ui';
import { __, s__, sprintf } from '~/locale';
import { getTimeago } from '~/lib/utils/datetime_utility';
import {
- I18N_ONLINE_RUNNER_TIMEAGO_DESCRIPTION,
- I18N_NEVER_CONTACTED_RUNNER_DESCRIPTION,
- I18N_OFFLINE_RUNNER_TIMEAGO_DESCRIPTION,
- I18N_STALE_RUNNER_DESCRIPTION,
+ I18N_ONLINE_TIMEAGO_TOOLTIP,
+ I18N_NEVER_CONTACTED_TOOLTIP,
+ I18N_OFFLINE_TIMEAGO_TOOLTIP,
+ I18N_STALE_TIMEAGO_TOOLTIP,
+ I18N_STALE_NEVER_CONTACTED_TOOLTIP,
STATUS_ONLINE,
STATUS_NEVER_CONTACTED,
STATUS_OFFLINE,
@@ -32,7 +33,7 @@ export default {
return getTimeago().format(this.runner.contactedAt);
}
// Prevent "just now" from being rendered, in case data is missing.
- return __('n/a');
+ return __('never');
},
badge() {
switch (this.runner?.status) {
@@ -40,35 +41,39 @@ export default {
return {
variant: 'success',
label: s__('Runners|online'),
- tooltip: sprintf(I18N_ONLINE_RUNNER_TIMEAGO_DESCRIPTION, {
- timeAgo: this.contactedAtTimeAgo,
- }),
+ tooltip: this.timeAgoTooltip(I18N_ONLINE_TIMEAGO_TOOLTIP),
};
case STATUS_NEVER_CONTACTED:
return {
variant: 'muted',
label: s__('Runners|never contacted'),
- tooltip: I18N_NEVER_CONTACTED_RUNNER_DESCRIPTION,
+ tooltip: I18N_NEVER_CONTACTED_TOOLTIP,
};
case STATUS_OFFLINE:
return {
variant: 'muted',
label: s__('Runners|offline'),
- tooltip: sprintf(I18N_OFFLINE_RUNNER_TIMEAGO_DESCRIPTION, {
- timeAgo: this.contactedAtTimeAgo,
- }),
+ tooltip: this.timeAgoTooltip(I18N_OFFLINE_TIMEAGO_TOOLTIP),
};
case STATUS_STALE:
return {
variant: 'warning',
label: s__('Runners|stale'),
- tooltip: I18N_STALE_RUNNER_DESCRIPTION,
+ // runner may have contacted (or not) and be stale: consider both cases.
+ tooltip: this.runner.contactedAt
+ ? this.timeAgoTooltip(I18N_STALE_TIMEAGO_TOOLTIP)
+ : I18N_STALE_NEVER_CONTACTED_TOOLTIP,
};
default:
return null;
}
},
},
+ methods: {
+ timeAgoTooltip(text) {
+ return sprintf(text, { timeAgo: this.contactedAtTimeAgo });
+ },
+ },
};
</script>
<template>