mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
add toggle button to show/add remote and ranges for each user in calendar
This commit is contained in:
parent
2b770036a5
commit
461fc1c41f
@ -1,5 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<span class="badge" :style="style">{{ user.text }}</span>
|
<span class="badge" :style="style">
|
||||||
|
{{ user.text }}
|
||||||
|
<span class="form-check form-switch">
|
||||||
|
<input class="form-check-input" type="checkbox" id="flexSwitchCheckDefault" v-model="rangeShow">
|
||||||
|
<label class="form-check-label" for="flexSwitchCheckDefault">Disponibilité</label>
|
||||||
|
</span>
|
||||||
|
<span class="form-check form-switch">
|
||||||
|
<input class="form-check-input" type="checkbox" id="flexSwitchCheckDefault" v-model="remoteShow">
|
||||||
|
<label class="form-check-label" for="flexSwitchCheckDefault">Agenda</label>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -14,17 +24,22 @@ export default {
|
|||||||
backgroundColor: this.$store.getters.getUserData(this.user).mainColor,
|
backgroundColor: this.$store.getters.getUserData(this.user).mainColor,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mainColor() {
|
rangeShow: {
|
||||||
return 'blue';
|
set (value) {
|
||||||
console.log('mainColor userId', this.userId);
|
this.$store.commit('showUserOnCalendar', {user: this.user, ranges: value});
|
||||||
console.log(this.$store.state.usersData);
|
},
|
||||||
|
get() {
|
||||||
if (!this.$store.getters.hasUserDataById(this.userId)) {
|
return this.$store.getters.isRangeShownOnCalendarForUser(this.user);
|
||||||
return 'blue';
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
return this.$store.getters.getUserDataById(this.userId).mainColor;
|
remoteShow: {
|
||||||
|
set (value) {
|
||||||
|
this.$store.commit('showUserOnCalendar', {user: this.user, remote: value});
|
||||||
|
},
|
||||||
|
get() {
|
||||||
|
return this.$store.getters.isRemoteShownOnCalendarForUser(this.user);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -37,7 +37,7 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addPersonsInvolved({ commit }, payload) {
|
addPersonsInvolved({ commit, dispatch }, payload) {
|
||||||
console.log('### action addPersonsInvolved', payload.result.type);
|
console.log('### action addPersonsInvolved', payload.result.type);
|
||||||
switch (payload.result.type) {
|
switch (payload.result.type) {
|
||||||
case 'person':
|
case 'person':
|
||||||
@ -49,8 +49,10 @@ export default {
|
|||||||
aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id);
|
aThirdParties.value = addIdToValue(aThirdParties.value, payload.result.id);
|
||||||
break;
|
break;
|
||||||
case 'user':
|
case 'user':
|
||||||
let aUsers = document.getElementById("chill_activitybundle_activity_invites");
|
let aUsers = document.getElementById("chill_activitybundle_activity_users");
|
||||||
aUsers.value = addIdToValue(aUsers.value, payload.result.id);
|
aUsers.value = addIdToValue(aUsers.value, payload.result.id);
|
||||||
|
commit('showUserOnCalendar', {user: payload.result, ranges: false, remote: true});
|
||||||
|
dispatch('fetchCalendarEvents');
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
commit('addPersonsInvolved', payload);
|
commit('addPersonsInvolved', payload);
|
||||||
|
@ -45,10 +45,10 @@ export default {
|
|||||||
|
|
||||||
console.log('userData', userData);
|
console.log('userData', userData);
|
||||||
|
|
||||||
if (kinds.includes(USER_CALENDAR_SHOW_RANGES) && userData.calendarRanges.length > 0) {
|
if (kinds.ranges && userData.calendarRanges.length > 0) {
|
||||||
console.log('adding ranges for user', userId);
|
console.log('adding ranges for user', userId);
|
||||||
const s = {
|
const s = {
|
||||||
//'id': `ranges_${userId}`,
|
'id': `ranges_${userId}`,
|
||||||
events: userData.calendarRanges,
|
events: userData.calendarRanges,
|
||||||
color: userData.mainColor,
|
color: userData.mainColor,
|
||||||
backgroundColor: 'white',
|
backgroundColor: 'white',
|
||||||
@ -113,7 +113,38 @@ export default {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* return true if the user ranges are shown on calendar
|
||||||
|
*
|
||||||
|
* @param state
|
||||||
|
* @returns boolean
|
||||||
|
*/
|
||||||
|
isRangeShownOnCalendarForUser: (state) => (user) => {
|
||||||
|
console.log(user);
|
||||||
|
const k = state.currentView.users.get(user.id);
|
||||||
|
if (typeof k === 'undefined') {
|
||||||
|
console.error('try to determinate if calendar range is shown and user is not in currentView');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
console.log('k', k);
|
||||||
|
|
||||||
|
return k.ranges;
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* return true if the user remote is shown on calendar
|
||||||
|
* @param state
|
||||||
|
* @returns boolean
|
||||||
|
*/
|
||||||
|
isRemoteShownOnCalendarForUser: (state) => (user) => {
|
||||||
|
const k = state.currentView.users.get(user.id);
|
||||||
|
if (typeof k === 'undefined') {
|
||||||
|
console.error('try to determinate if calendar range is shown and user is not in currentView');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return k.remote;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
suggestedEntities(state, getters) {
|
suggestedEntities(state, getters) {
|
||||||
|
@ -55,7 +55,7 @@ whoami().then(me => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (null !== store.getters.getMainUser) {
|
if (null !== store.getters.getMainUser) {
|
||||||
store.commit('showUserOnCalendar', {what: [USER_CALENDAR_SHOW_RANGES], user: store.getters.getMainUser});
|
store.commit('showUserOnCalendar', {ranges: true, remote: true, user: store.getters.getMainUser});
|
||||||
}
|
}
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
@ -8,13 +8,20 @@ export default {
|
|||||||
state.currentView.start = start;
|
state.currentView.start = start;
|
||||||
state.currentView.end = end;
|
state.currentView.end = end;
|
||||||
},
|
},
|
||||||
showUserOnCalendar(state, {user, what}) {
|
showUserOnCalendar(state, {user, ranges, remote}) {
|
||||||
console.log('showUserOnCalendar', {user: user.id, what});
|
|
||||||
if (!state.usersData.has(user.id)) {
|
if (!state.usersData.has(user.id)) {
|
||||||
state.usersData.set(user.id, createUserData(user, state.usersData.size));
|
state.usersData.set(user.id, createUserData(user, state.usersData.size));
|
||||||
}
|
}
|
||||||
state.currentView.users.set(user.id, what);
|
|
||||||
console.log('state at end', state);
|
const cur = state.currentView.users.get(user.id);
|
||||||
|
|
||||||
|
state.currentView.users.set(
|
||||||
|
user.id,
|
||||||
|
{
|
||||||
|
ranges: typeof ranges !== 'undefined' ? ranges : cur.ranges,
|
||||||
|
remote: typeof remote !== 'undefined' ? remote : cur.remote,
|
||||||
|
}
|
||||||
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
// ConcernedGroups
|
// ConcernedGroups
|
||||||
|
Loading…
x
Reference in New Issue
Block a user