mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
import "es6-promise/auto";
|
|
import { createStore } from "vuex";
|
|
|
|
import prepareLocations from "ChillActivityAssets/vuejs/Activity/store.locations";
|
|
import {whoami} from "ChillMainAssets/lib/api/user";
|
|
import {mapEntity} from "ChillCalendarAssets/vuejs/Calendar/store/utils";
|
|
import {postLocation} from "ChillActivityAssets/vuejs/Activity/api";
|
|
|
|
const debug = process.env.NODE_ENV !== "production";
|
|
|
|
const store = createStore({
|
|
strict: debug,
|
|
state: {
|
|
activity: window.entity, // activity is the event entity in this case (re-using component from activity bundle)
|
|
currentEvent: null,
|
|
availableLocations: [],
|
|
me: null,
|
|
},
|
|
getters: {
|
|
|
|
},
|
|
actions: {
|
|
addAvailableLocationGroup({ commit }, payload) {
|
|
commit("addAvailableLocationGroup", payload);
|
|
},
|
|
updateLocation({ commit }, value) {
|
|
// console.log("### action: updateLocation", value);
|
|
let hiddenLocation = document.getElementById(
|
|
"chill_activitybundle_activity_location",
|
|
);
|
|
if (value.onthefly) {
|
|
const body = {
|
|
type: "location",
|
|
name:
|
|
value.name === "__AccompanyingCourseLocation__" ? null : value.name,
|
|
locationType: {
|
|
id: value.locationType.id,
|
|
type: "location-type",
|
|
},
|
|
};
|
|
if (value.address.id) {
|
|
Object.assign(body, {
|
|
address: {
|
|
id: value.address.id,
|
|
},
|
|
});
|
|
}
|
|
postLocation(body)
|
|
.then((location) => (hiddenLocation.value = location.id))
|
|
.catch((err) => {
|
|
console.log(err.message);
|
|
});
|
|
} else {
|
|
hiddenLocation.value = value.id;
|
|
}
|
|
commit("updateLocation", value);
|
|
},
|
|
},
|
|
mutations: {
|
|
setWhoAmiI(state, me) {
|
|
state.me = me;
|
|
},
|
|
addAvailableLocationGroup(state, group) {
|
|
state.availableLocations.push(group);
|
|
},
|
|
updateLocation(state, value) {
|
|
// console.log("### mutation: updateLocation", value);
|
|
state.activity.location = value;
|
|
},
|
|
}
|
|
});
|
|
|
|
whoami().then((me) => {
|
|
store.commit("setWhoAmiI", me);
|
|
});
|
|
|
|
prepareLocations(store);
|
|
|
|
export default store;
|