diff options
Diffstat (limited to 'app/assets/javascripts/deploy_freeze/store/mutations.js')
-rw-r--r-- | app/assets/javascripts/deploy_freeze/store/mutations.js | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/app/assets/javascripts/deploy_freeze/store/mutations.js b/app/assets/javascripts/deploy_freeze/store/mutations.js index fdd1ea6e32e..151f7f39f5a 100644 --- a/app/assets/javascripts/deploy_freeze/store/mutations.js +++ b/app/assets/javascripts/deploy_freeze/store/mutations.js @@ -1,15 +1,28 @@ +import Vue from 'vue'; import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; +import { secondsToHours } from '~/lib/utils/datetime_utility'; import * as types from './mutation_types'; -const formatTimezoneName = (freezePeriod, timezoneList) => - convertObjectPropsToCamelCase({ +const formatTimezoneName = (freezePeriod, timezoneList) => { + const tz = timezoneList.find((timezone) => timezone.identifier === freezePeriod.cron_timezone); + return convertObjectPropsToCamelCase({ ...freezePeriod, cron_timezone: { - formattedTimezone: timezoneList.find((tz) => tz.identifier === freezePeriod.cron_timezone) - ?.name, + formattedTimezone: tz && `[UTC ${secondsToHours(tz.offset)}] ${tz.name}`, identifier: freezePeriod.cron_timezone, }, }); +}; + +const setFreezePeriodIsDeleting = (state, id, isDeleting) => { + const freezePeriod = state.freezePeriods.find((f) => f.id === id); + + if (!freezePeriod) { + return; + } + + Vue.set(freezePeriod, 'isDeleting', isDeleting); +}; export default { [types.REQUEST_FREEZE_PERIODS](state) { @@ -53,6 +66,18 @@ export default { state.selectedId = id; }, + [types.REQUEST_DELETE_FREEZE_PERIOD](state, id) { + setFreezePeriodIsDeleting(state, id, true); + }, + + [types.RECEIVE_DELETE_FREEZE_PERIOD_SUCCESS](state, id) { + state.freezePeriods = state.freezePeriods.filter((f) => f.id !== id); + }, + + [types.RECEIVE_DELETE_FREEZE_PERIOD_ERROR](state, id) { + setFreezePeriodIsDeleting(state, id, false); + }, + [types.RESET_MODAL](state) { state.freezeStartCron = ''; state.freezeEndCron = ''; |