summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/monitoring/monitoring_app.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/monitoring/monitoring_app.js')
-rw-r--r--app/assets/javascripts/monitoring/monitoring_app.js35
1 files changed, 4 insertions, 31 deletions
diff --git a/app/assets/javascripts/monitoring/monitoring_app.js b/app/assets/javascripts/monitoring/monitoring_app.js
index 08543fa6eb3..307154c9a84 100644
--- a/app/assets/javascripts/monitoring/monitoring_app.js
+++ b/app/assets/javascripts/monitoring/monitoring_app.js
@@ -1,9 +1,8 @@
import Vue from 'vue';
import { GlToast } from '@gitlab/ui';
-import { parseBoolean } from '~/lib/utils/common_utils';
-import { getParameterValues } from '~/lib/utils/url_utility';
import { createStore } from './stores';
import createRouter from './router';
+import { stateAndPropsFromDataset } from './utils';
Vue.use(GlToast);
@@ -11,36 +10,10 @@ export default (props = {}) => {
const el = document.getElementById('prometheus-graphs');
if (el && el.dataset) {
- const [currentDashboard] = getParameterValues('dashboard');
-
- const {
- deploymentsEndpoint,
- dashboardEndpoint,
- dashboardsEndpoint,
- projectPath,
- logsPath,
- currentEnvironmentName,
- dashboardTimezone,
- metricsDashboardBasePath,
- ...dataProps
- } = el.dataset;
-
- const store = createStore({
- currentDashboard,
- deploymentsEndpoint,
- dashboardEndpoint,
- dashboardsEndpoint,
- dashboardTimezone,
- projectPath,
- logsPath,
- currentEnvironmentName,
- });
-
- // HTML attributes are always strings, parse other types.
- dataProps.hasMetrics = parseBoolean(dataProps.hasMetrics);
- dataProps.customMetricsAvailable = parseBoolean(dataProps.customMetricsAvailable);
- dataProps.prometheusAlertsAvailable = parseBoolean(dataProps.prometheusAlertsAvailable);
+ const { metricsDashboardBasePath, ...dataset } = el.dataset;
+ const { initState, dataProps } = stateAndPropsFromDataset(dataset);
+ const store = createStore(initState);
const router = createRouter(metricsDashboardBasePath);
// eslint-disable-next-line no-new