summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ci_variable_list/store
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/ci_variable_list/store')
-rw-r--r--app/assets/javascripts/ci_variable_list/store/actions.js19
-rw-r--r--app/assets/javascripts/ci_variable_list/store/getters.js9
-rw-r--r--app/assets/javascripts/ci_variable_list/store/index.js2
-rw-r--r--app/assets/javascripts/ci_variable_list/store/mutation_types.js4
-rw-r--r--app/assets/javascripts/ci_variable_list/store/mutations.js21
-rw-r--r--app/assets/javascripts/ci_variable_list/store/state.js1
6 files changed, 56 insertions, 0 deletions
diff --git a/app/assets/javascripts/ci_variable_list/store/actions.js b/app/assets/javascripts/ci_variable_list/store/actions.js
index f3a629b84ee..a22fa03e16d 100644
--- a/app/assets/javascripts/ci_variable_list/store/actions.js
+++ b/app/assets/javascripts/ci_variable_list/store/actions.js
@@ -153,3 +153,22 @@ export const fetchEnvironments = ({ dispatch, state }) => {
createFlash(__('There was an error fetching the environments information.'));
});
};
+
+export const setEnvironmentScope = ({ commit, dispatch }, environment) => {
+ commit(types.SET_ENVIRONMENT_SCOPE, environment);
+ dispatch('setSelectedEnvironment', environment);
+};
+
+export const addWildCardScope = ({ commit, dispatch }, environment) => {
+ commit(types.ADD_WILD_CARD_SCOPE, environment);
+ commit(types.SET_ENVIRONMENT_SCOPE, environment);
+ dispatch('setSelectedEnvironment', environment);
+};
+
+export const resetSelectedEnvironment = ({ commit }) => {
+ commit(types.RESET_SELECTED_ENVIRONMENT);
+};
+
+export const setSelectedEnvironment = ({ commit }, environment) => {
+ commit(types.SET_SELECTED_ENVIRONMENT, environment);
+};
diff --git a/app/assets/javascripts/ci_variable_list/store/getters.js b/app/assets/javascripts/ci_variable_list/store/getters.js
new file mode 100644
index 00000000000..14b728302f9
--- /dev/null
+++ b/app/assets/javascripts/ci_variable_list/store/getters.js
@@ -0,0 +1,9 @@
+/* eslint-disable import/prefer-default-export */
+// Disabling import/prefer-default-export can be
+// removed once a second getter is added to this file
+import { uniq } from 'lodash';
+
+export const joinedEnvironments = state => {
+ const scopesFromVariables = (state.variables || []).map(variable => variable.environment_scope);
+ return uniq(state.environments.concat(scopesFromVariables)).sort();
+};
diff --git a/app/assets/javascripts/ci_variable_list/store/index.js b/app/assets/javascripts/ci_variable_list/store/index.js
index db4ba95b3c2..83802f6a36f 100644
--- a/app/assets/javascripts/ci_variable_list/store/index.js
+++ b/app/assets/javascripts/ci_variable_list/store/index.js
@@ -1,6 +1,7 @@
import Vue from 'vue';
import Vuex from 'vuex';
import * as actions from './actions';
+import * as getters from './getters';
import mutations from './mutations';
import state from './state';
@@ -10,6 +11,7 @@ export default (initialState = {}) =>
new Vuex.Store({
actions,
mutations,
+ getters,
state: {
...state(),
...initialState,
diff --git a/app/assets/javascripts/ci_variable_list/store/mutation_types.js b/app/assets/javascripts/ci_variable_list/store/mutation_types.js
index 240066d0f22..0b41c20bce7 100644
--- a/app/assets/javascripts/ci_variable_list/store/mutation_types.js
+++ b/app/assets/javascripts/ci_variable_list/store/mutation_types.js
@@ -20,3 +20,7 @@ export const RECEIVE_UPDATE_VARIABLE_ERROR = 'RECEIVE_UPDATE_VARIABLE_ERROR';
export const REQUEST_ENVIRONMENTS = 'REQUEST_ENVIRONMENTS';
export const RECEIVE_ENVIRONMENTS_SUCCESS = 'RECEIVE_ENVIRONMENTS_SUCCESS';
+export const SET_ENVIRONMENT_SCOPE = 'SET_ENVIRONMENT_SCOPE';
+export const ADD_WILD_CARD_SCOPE = 'ADD_WILD_CARD_SCOPE';
+export const RESET_SELECTED_ENVIRONMENT = 'RESET_SELECTED_ENVIRONMENT';
+export const SET_SELECTED_ENVIRONMENT = 'SET_SELECTED_ENVIRONMENT';
diff --git a/app/assets/javascripts/ci_variable_list/store/mutations.js b/app/assets/javascripts/ci_variable_list/store/mutations.js
index c75eb4a91fd..7ee7d7bdc26 100644
--- a/app/assets/javascripts/ci_variable_list/store/mutations.js
+++ b/app/assets/javascripts/ci_variable_list/store/mutations.js
@@ -83,4 +83,25 @@ export default {
state.variableBeingEdited = null;
state.showInputValue = false;
},
+
+ [types.SET_ENVIRONMENT_SCOPE](state, environment) {
+ if (state.variableBeingEdited) {
+ state.variableBeingEdited.environment_scope = environment;
+ } else {
+ state.variable.environment_scope = environment;
+ }
+ },
+
+ [types.ADD_WILD_CARD_SCOPE](state, environment) {
+ state.environments.push(environment);
+ state.environments.sort();
+ },
+
+ [types.RESET_SELECTED_ENVIRONMENT](state) {
+ state.selectedEnvironment = '';
+ },
+
+ [types.SET_SELECTED_ENVIRONMENT](state, environment) {
+ state.selectedEnvironment = environment;
+ },
};
diff --git a/app/assets/javascripts/ci_variable_list/store/state.js b/app/assets/javascripts/ci_variable_list/store/state.js
index 5166321d6a7..8c0b9c6966f 100644
--- a/app/assets/javascripts/ci_variable_list/store/state.js
+++ b/app/assets/javascripts/ci_variable_list/store/state.js
@@ -21,4 +21,5 @@ export default () => ({
environments: [],
typeOptions: [displayText.variableText, displayText.fileText],
variableBeingEdited: null,
+ selectedEnvironment: '',
});