summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/deploy_freeze/store
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/deploy_freeze/store')
-rw-r--r--app/assets/javascripts/deploy_freeze/store/actions.js47
-rw-r--r--app/assets/javascripts/deploy_freeze/store/mutation_types.js1
-rw-r--r--app/assets/javascripts/deploy_freeze/store/mutations.js11
-rw-r--r--app/assets/javascripts/deploy_freeze/store/state.js2
4 files changed, 48 insertions, 13 deletions
diff --git a/app/assets/javascripts/deploy_freeze/store/actions.js b/app/assets/javascripts/deploy_freeze/store/actions.js
index 62045d2517d..56e45595dc5 100644
--- a/app/assets/javascripts/deploy_freeze/store/actions.js
+++ b/app/assets/javascripts/deploy_freeze/store/actions.js
@@ -3,37 +3,53 @@ import { deprecatedCreateFlash as createFlash } from '~/flash';
import { __ } from '~/locale';
import * as types from './mutation_types';
-export const requestAddFreezePeriod = ({ commit }) => {
+export const requestFreezePeriod = ({ commit }) => {
commit(types.REQUEST_ADD_FREEZE_PERIOD);
};
-export const receiveAddFreezePeriodSuccess = ({ commit }) => {
+export const receiveFreezePeriodSuccess = ({ commit }) => {
commit(types.RECEIVE_ADD_FREEZE_PERIOD_SUCCESS);
};
-export const receiveAddFreezePeriodError = ({ commit }, error) => {
+export const receiveFreezePeriodError = ({ commit }, error) => {
commit(types.RECEIVE_ADD_FREEZE_PERIOD_ERROR, error);
};
-export const addFreezePeriod = ({ state, dispatch, commit }) => {
- dispatch('requestAddFreezePeriod');
+const receiveFreezePeriod = (store, request) => {
+ const { dispatch, commit } = store;
+ dispatch('requestFreezePeriod');
- return Api.createFreezePeriod(state.projectId, {
- freeze_start: state.freezeStartCron,
- freeze_end: state.freezeEndCron,
- cron_timezone: state.selectedTimezoneIdentifier,
- })
+ request(store)
.then(() => {
- dispatch('receiveAddFreezePeriodSuccess');
+ dispatch('receiveFreezePeriodSuccess');
commit(types.RESET_MODAL);
dispatch('fetchFreezePeriods');
})
.catch((error) => {
createFlash(__('Error: Unable to create deploy freeze'));
- dispatch('receiveAddFreezePeriodError', error);
+ dispatch('receiveFreezePeriodError', error);
});
};
+export const addFreezePeriod = (store) =>
+ receiveFreezePeriod(store, ({ state }) =>
+ Api.createFreezePeriod(state.projectId, {
+ freeze_start: state.freezeStartCron,
+ freeze_end: state.freezeEndCron,
+ cron_timezone: state.selectedTimezoneIdentifier,
+ }),
+ );
+
+export const updateFreezePeriod = (store) =>
+ receiveFreezePeriod(store, ({ state }) =>
+ Api.updateFreezePeriod(state.projectId, {
+ id: state.selectedId,
+ freeze_start: state.freezeStartCron,
+ freeze_end: state.freezeEndCron,
+ cron_timezone: state.selectedTimezoneIdentifier,
+ }),
+ );
+
export const fetchFreezePeriods = ({ commit, state }) => {
commit(types.REQUEST_FREEZE_PERIODS);
@@ -46,6 +62,13 @@ export const fetchFreezePeriods = ({ commit, state }) => {
});
};
+export const setFreezePeriod = ({ commit }, freezePeriod) => {
+ commit(types.SET_SELECTED_ID, freezePeriod.id);
+ commit(types.SET_SELECTED_TIMEZONE, freezePeriod.cronTimezone);
+ commit(types.SET_FREEZE_START_CRON, freezePeriod.freezeStart);
+ commit(types.SET_FREEZE_END_CRON, freezePeriod.freezeEnd);
+};
+
export const setSelectedTimezone = ({ commit }, timezone) => {
commit(types.SET_SELECTED_TIMEZONE, timezone);
};
diff --git a/app/assets/javascripts/deploy_freeze/store/mutation_types.js b/app/assets/javascripts/deploy_freeze/store/mutation_types.js
index 47a4874a5cf..8e6fdfd4443 100644
--- a/app/assets/javascripts/deploy_freeze/store/mutation_types.js
+++ b/app/assets/javascripts/deploy_freeze/store/mutation_types.js
@@ -6,6 +6,7 @@ export const RECEIVE_ADD_FREEZE_PERIOD_SUCCESS = 'RECEIVE_ADD_FREEZE_PERIOD_SUCC
export const RECEIVE_ADD_FREEZE_PERIOD_ERROR = 'RECEIVE_ADD_FREEZE_PERIOD_ERROR';
export const SET_SELECTED_TIMEZONE = 'SET_SELECTED_TIMEZONE';
+export const SET_SELECTED_ID = 'SET_SELECTED_ID';
export const SET_FREEZE_START_CRON = 'SET_FREEZE_START_CRON';
export const SET_FREEZE_END_CRON = 'SET_FREEZE_END_CRON';
diff --git a/app/assets/javascripts/deploy_freeze/store/mutations.js b/app/assets/javascripts/deploy_freeze/store/mutations.js
index 3b34f3950e6..e62000c007c 100644
--- a/app/assets/javascripts/deploy_freeze/store/mutations.js
+++ b/app/assets/javascripts/deploy_freeze/store/mutations.js
@@ -4,7 +4,11 @@ import * as types from './mutation_types';
const formatTimezoneName = (freezePeriod, timezoneList) =>
convertObjectPropsToCamelCase({
...freezePeriod,
- cron_timezone: timezoneList.find((tz) => tz.identifier === freezePeriod.cron_timezone)?.name,
+ cron_timezone: {
+ formattedTimezone: timezoneList.find((tz) => tz.identifier === freezePeriod.cron_timezone)
+ ?.name,
+ identifier: freezePeriod.cronTimezone,
+ },
});
export default {
@@ -45,10 +49,15 @@ export default {
state.freezeEndCron = freezeEndCron;
},
+ [types.SET_SELECTED_ID](state, id) {
+ state.selectedId = id;
+ },
+
[types.RESET_MODAL](state) {
state.freezeStartCron = '';
state.freezeEndCron = '';
state.selectedTimezone = '';
state.selectedTimezoneIdentifier = '';
+ state.selectedId = '';
},
};
diff --git a/app/assets/javascripts/deploy_freeze/store/state.js b/app/assets/javascripts/deploy_freeze/store/state.js
index 4cc38c097b6..1b16b4c645b 100644
--- a/app/assets/javascripts/deploy_freeze/store/state.js
+++ b/app/assets/javascripts/deploy_freeze/store/state.js
@@ -6,6 +6,7 @@ export default ({
selectedTimezoneIdentifier = '',
freezeStartCron = '',
freezeEndCron = '',
+ selectedId = '',
}) => ({
projectId,
freezePeriods,
@@ -14,4 +15,5 @@ export default ({
selectedTimezoneIdentifier,
freezeStartCron,
freezeEndCron,
+ selectedId,
});