debian-mirror-gitlab/app/assets/javascripts/deploy_freeze/store/mutations.js

89 lines
2.4 KiB
JavaScript
Raw Normal View History

2021-11-11 11:23:49 +05:30
import Vue from 'vue';
2020-10-24 23:57:45 +05:30
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
2021-11-11 11:23:49 +05:30
import { secondsToHours } from '~/lib/utils/datetime_utility';
2020-10-24 23:57:45 +05:30
import * as types from './mutation_types';
2021-11-11 11:23:49 +05:30
const formatTimezoneName = (freezePeriod, timezoneList) => {
const tz = timezoneList.find((timezone) => timezone.identifier === freezePeriod.cron_timezone);
return convertObjectPropsToCamelCase({
2020-10-24 23:57:45 +05:30
...freezePeriod,
2021-04-29 21:17:54 +05:30
cron_timezone: {
2021-11-11 11:23:49 +05:30
formattedTimezone: tz && `[UTC ${secondsToHours(tz.offset)}] ${tz.name}`,
2021-06-08 01:23:25 +05:30
identifier: freezePeriod.cron_timezone,
2021-04-29 21:17:54 +05:30
},
2020-10-24 23:57:45 +05:30
});
2021-11-11 11:23:49 +05:30
};
const setFreezePeriodIsDeleting = (state, id, isDeleting) => {
const freezePeriod = state.freezePeriods.find((f) => f.id === id);
if (!freezePeriod) {
return;
}
Vue.set(freezePeriod, 'isDeleting', isDeleting);
};
2020-10-24 23:57:45 +05:30
export default {
[types.REQUEST_FREEZE_PERIODS](state) {
state.isLoading = true;
},
[types.RECEIVE_FREEZE_PERIODS_SUCCESS](state, freezePeriods) {
state.isLoading = false;
2021-03-08 18:12:59 +05:30
state.freezePeriods = freezePeriods.map((freezePeriod) =>
2020-10-24 23:57:45 +05:30
formatTimezoneName(freezePeriod, state.timezoneData),
);
},
[types.REQUEST_ADD_FREEZE_PERIOD](state) {
state.isLoading = true;
},
[types.RECEIVE_ADD_FREEZE_PERIOD_SUCCESS](state) {
state.isLoading = false;
},
[types.RECEIVE_ADD_FREEZE_PERIOD_ERROR](state, error) {
state.isLoading = false;
state.error = error;
},
[types.SET_SELECTED_TIMEZONE](state, timezone) {
state.selectedTimezone = timezone.formattedTimezone;
state.selectedTimezoneIdentifier = timezone.identifier;
},
[types.SET_FREEZE_START_CRON](state, freezeStartCron) {
state.freezeStartCron = freezeStartCron;
},
[types.SET_FREEZE_END_CRON](state, freezeEndCron) {
state.freezeEndCron = freezeEndCron;
},
2021-04-29 21:17:54 +05:30
[types.SET_SELECTED_ID](state, id) {
state.selectedId = id;
},
2021-11-11 11:23:49 +05:30
[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);
},
2020-10-24 23:57:45 +05:30
[types.RESET_MODAL](state) {
state.freezeStartCron = '';
state.freezeEndCron = '';
state.selectedTimezone = '';
state.selectedTimezoneIdentifier = '';
2021-04-29 21:17:54 +05:30
state.selectedId = '';
2020-10-24 23:57:45 +05:30
},
};