From 2859ddde48709afe32c66726ac811b8b717f3798 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Tue, 6 Mar 2018 03:38:42 -0600 Subject: [PATCH] coerce hasMetrics to a boolean value before instantiating the Vue component --- .../javascripts/monitoring/components/dashboard.vue | 8 ++++---- app/assets/javascripts/monitoring/monitoring_bundle.js | 6 +++++- spec/javascripts/monitoring/dashboard_spec.js | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/monitoring/components/dashboard.vue b/app/assets/javascripts/monitoring/components/dashboard.vue index 04374d2e1db..8ca94ef3e2a 100644 --- a/app/assets/javascripts/monitoring/components/dashboard.vue +++ b/app/assets/javascripts/monitoring/components/dashboard.vue @@ -7,7 +7,6 @@ import EmptyState from './empty_state.vue'; import MonitoringStore from '../stores/monitoring_store'; import eventHub from '../event_hub'; - import { convertPermissionToBoolean } from '../../lib/utils/common_utils'; export default { components: { @@ -18,8 +17,9 @@ props: { hasMetrics: { - type: String, - required: true, + type: Boolean, + required: false, + default: true, }, showLegend: { type: Boolean, @@ -108,7 +108,7 @@ mounted() { this.resizeThrottled = _.throttle(this.resize, 600); - if (!convertPermissionToBoolean(this.hasMetrics)) { + if (!this.hasMetrics) { this.state = 'gettingStarted'; } else { this.getGraphsData(); diff --git a/app/assets/javascripts/monitoring/monitoring_bundle.js b/app/assets/javascripts/monitoring/monitoring_bundle.js index f881a3954b9..41270e015d4 100644 --- a/app/assets/javascripts/monitoring/monitoring_bundle.js +++ b/app/assets/javascripts/monitoring/monitoring_bundle.js @@ -1,4 +1,5 @@ import Vue from 'vue'; +import { convertPermissionToBoolean } from '~/lib/utils/common_utils'; import Dashboard from './components/dashboard.vue'; export default () => { @@ -10,7 +11,10 @@ export default () => { el, render(createElement) { return createElement(Dashboard, { - props: el.dataset, + props: { + ...el.dataset, + hasMetrics: convertPermissionToBoolean(el.dataset.hasMetrics), + }, }); }, }); diff --git a/spec/javascripts/monitoring/dashboard_spec.js b/spec/javascripts/monitoring/dashboard_spec.js index 79924a5f3a8..c5733ef95cf 100644 --- a/spec/javascripts/monitoring/dashboard_spec.js +++ b/spec/javascripts/monitoring/dashboard_spec.js @@ -9,7 +9,7 @@ describe('Dashboard', () => { let DashboardComponent; let component; const propsData = { - hasMetrics: 'false', + hasMetrics: false, documentationPath: '/path/to/docs', settingsPath: '/path/to/settings', clustersPath: '/path/to/clusters', @@ -58,7 +58,7 @@ describe('Dashboard', () => { it('shows up a loading state', (done) => { component = new DashboardComponent({ el: document.querySelector('#prometheus-graphs'), - propsData: { ...propsData, hasMetrics: 'true' }, + propsData: { ...propsData, hasMetrics: true }, }); component.$mount(); Vue.nextTick(() => { -- GitLab