Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/monitoring/stores/mutations.js')
-rw-r--r--app/assets/javascripts/monitoring/stores/mutations.js56
1 files changed, 15 insertions, 41 deletions
diff --git a/app/assets/javascripts/monitoring/stores/mutations.js b/app/assets/javascripts/monitoring/stores/mutations.js
index 0a7bb47d533..38c1524d904 100644
--- a/app/assets/javascripts/monitoring/stores/mutations.js
+++ b/app/assets/javascripts/monitoring/stores/mutations.js
@@ -1,4 +1,3 @@
-import Vue from 'vue';
import pick from 'lodash/pick';
import * as types from './mutation_types';
import { mapToDashboardViewModel, normalizeQueryResult } from './utils';
@@ -27,24 +26,6 @@ const findMetricInDashboard = (metricId, dashboard) => {
};
/**
- * Set a new state for a metric.
- *
- * Initally metric data is not populated, so `Vue.set` is
- * used to add new properties to the metric.
- *
- * @param {Object} metric - Metric object as defined in the dashboard
- * @param {Object} state - New state
- * @param {Array|null} state.result - Array of results
- * @param {String} state.error - Error code from metricStates
- * @param {Boolean} state.loading - True if the metric is loading
- */
-const setMetricState = (metric, { result = null, loading = false, state = null }) => {
- Vue.set(metric, 'result', result);
- Vue.set(metric, 'loading', loading);
- Vue.set(metric, 'state', state);
-};
-
-/**
* Maps a backened error state to a `metricStates` constant
* @param {Object} error - Error from backend response
*/
@@ -116,39 +97,32 @@ export default {
*/
[types.REQUEST_METRIC_RESULT](state, { metricId }) {
const metric = findMetricInDashboard(metricId, state.dashboard);
- setMetricState(metric, {
- loading: true,
- state: metricStates.LOADING,
- });
+ metric.loading = true;
+ if (!metric.result) {
+ metric.state = metricStates.LOADING;
+ }
},
[types.RECEIVE_METRIC_RESULT_SUCCESS](state, { metricId, result }) {
- if (!metricId) {
- return;
- }
-
+ const metric = findMetricInDashboard(metricId, state.dashboard);
+ metric.loading = false;
state.showEmptyState = false;
- const metric = findMetricInDashboard(metricId, state.dashboard);
if (!result || result.length === 0) {
- setMetricState(metric, {
- state: metricStates.NO_DATA,
- });
+ metric.state = metricStates.NO_DATA;
+ metric.result = null;
} else {
const normalizedResults = result.map(normalizeQueryResult);
- setMetricState(metric, {
- result: Object.freeze(normalizedResults),
- state: metricStates.OK,
- });
+
+ metric.state = metricStates.OK;
+ metric.result = Object.freeze(normalizedResults);
}
},
[types.RECEIVE_METRIC_RESULT_FAILURE](state, { metricId, error }) {
- if (!metricId) {
- return;
- }
const metric = findMetricInDashboard(metricId, state.dashboard);
- setMetricState(metric, {
- state: emptyStateFromError(error),
- });
+
+ metric.state = emptyStateFromError(error);
+ metric.loading = false;
+ metric.result = null;
},
[types.SET_INITIAL_STATE](state, initialState = {}) {
Object.assign(state, pick(initialState, initialStateKeys));