mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 13:24:25 +00:00
start copy dates
This commit is contained in:
parent
f8a9cafacb
commit
5ceddc747d
@ -374,7 +374,7 @@ class CalendarController extends AbstractController
|
|||||||
'professionalsId' => $professionalsId,
|
'professionalsId' => $professionalsId,
|
||||||
'date' => $entity->getStartDate()->format('Y-m-d'),
|
'date' => $entity->getStartDate()->format('Y-m-d'),
|
||||||
'durationTime' => $durationTimeInMinutes,
|
'durationTime' => $durationTimeInMinutes,
|
||||||
'location' => $entity->getLocation()->getId(),
|
'location' => $entity->getLocation() ? $entity->getLocation()->getId() : null,
|
||||||
'comment' => $entity->getComment()->getComment(),
|
'comment' => $entity->getComment()->getComment(),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -48,11 +48,19 @@ class CalendarRangeAPIController extends ApiController
|
|||||||
->setParameter('endDate', $endDate)
|
->setParameter('endDate', $endDate)
|
||||||
->setParameter('user', $user);
|
->setParameter('user', $user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($request->query->has('start') && !$request->query->has('end')) {
|
||||||
|
$startDate = $request->query->get('start');
|
||||||
|
$sql = $sql . ' AND c.startDate > :startDate + INTERVAL "1 DAY"';
|
||||||
|
dump($sql);
|
||||||
|
$query = $em ->createQuery($sql)
|
||||||
|
->setParameter('startDate', $startDate)
|
||||||
|
->setParameter('user', $user);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$query = $em->createQuery($sql);
|
$query = $em->createQuery($sql);
|
||||||
}
|
}
|
||||||
$results = $query->getResult();
|
$results = $query->getResult();
|
||||||
dump($results);
|
|
||||||
|
|
||||||
return $this->json(['count' => count($results), 'results' => $results], Response::HTTP_OK, [], ['groups' => ['read']]);
|
return $this->json(['count' => count($results), 'results' => $results], Response::HTTP_OK, [], ['groups' => ['read']]);
|
||||||
//TODO use also the paginator, eg return $this->serializeCollection('get', $request, $_format, $paginator, $results);
|
//TODO use also the paginator, eg return $this->serializeCollection('get', $request, $_format, $paginator, $results);
|
||||||
|
@ -24,71 +24,24 @@
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</FullCalendar>
|
</FullCalendar>
|
||||||
|
|
||||||
<div id="copy-widget">
|
<div id="copy-widget">
|
||||||
<h4 class="chill-red" style="margin-top: 2rem;">{{ $t('copy_range_from_to') }}</h4>
|
<h4 class="chill-red" style="margin-top: 2rem;">{{ $t('copy_range_from_to') }}</h4>
|
||||||
<div style="display: flex; justify-content: space-between; margin-top: 1rem;">
|
<div style="display: flex; justify-content: space-between; margin-top: 1rem;">
|
||||||
<label class="col-form-label">{{ $t('dateFrom') }}</label>
|
<label class="col-form-label">{{ $t('dateFrom') }}</label>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<input class="form-control" type="date" />
|
<input class="form-control" type="date" v-model="copyFrom" />
|
||||||
</div>
|
</div>
|
||||||
<label class="col-form-label">{{ $t('dateTo') }}</label>
|
<label class="col-form-label">{{ $t('dateTo') }}</label>
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
<input class="form-control" type="date" />
|
<input class="form-control" type="date" v-model="copyTo" />
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-action">
|
<button class="btn btn-action" @click="copyDay">
|
||||||
{{ $t('copy_range')}}
|
{{ $t('copy_range')}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div>
|
|
||||||
<ul class="record_actions">
|
|
||||||
<li>
|
|
||||||
<button class="btn btn-save" :disabled="!dirty"
|
|
||||||
@click.prevent="onClickSave">
|
|
||||||
{{ $t('action.save')}}
|
|
||||||
</button>
|
|
||||||
<span v-if="flag.loading" class="loading">
|
|
||||||
<i class="fa fa-circle-o-notch fa-spin fa-fw"></i>
|
|
||||||
<span class="sr-only">{{ $t('loading') }}</span>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<button v-if="disableCopyDayButton" class="btn btn-action" disabled>
|
|
||||||
{{ $t('copy_range_to_next_day')}}
|
|
||||||
</button>
|
|
||||||
<button v-else class="btn btn-action"
|
|
||||||
@click.prevent="copyDay">
|
|
||||||
{{ $t('copy_range_from_day')}} {{this.lastNewDate.toLocaleDateString()}} {{ $t('to_the_next_day')}}
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div> -->
|
|
||||||
<!-- <div>
|
|
||||||
<div v-if="newCalendarRanges.length > 0">
|
|
||||||
<h4>{{ $t('new_range_to_save') }}</h4>
|
|
||||||
<ul>
|
|
||||||
<li v-for="i in newCalendarRanges" :key="i.start">
|
|
||||||
{{ i.start.toLocaleString() }} - {{ i.end.toLocaleString() }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div v-if="updateCalendarRanges.length > 0">
|
|
||||||
<h4>{{ $t('update_range_to_save') }}</h4>
|
|
||||||
<ul>
|
|
||||||
<li v-for="i in updateCalendarRanges" :key="i.start">
|
|
||||||
{{ i.start.toLocaleString() }} - {{ i.end.toLocaleString() }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div v-if="deleteCalendarRanges.length > 0">
|
|
||||||
<h4>{{ $t('delete_range_to_save') }}</h4>
|
|
||||||
<ul>
|
|
||||||
<li v-for="i in deleteCalendarRanges" :key="i.start">
|
|
||||||
{{ i.start.toLocaleString() }} - {{ i.end.toLocaleString() }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<teleport to="body">
|
<teleport to="body">
|
||||||
@ -154,6 +107,8 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
errorMsg: [],
|
errorMsg: [],
|
||||||
|
copyFrom: null,
|
||||||
|
copyTo: null,
|
||||||
modal: {
|
modal: {
|
||||||
showModal: false,
|
showModal: false,
|
||||||
modalDialogClass: "modal-dialog-scrollable modal-m"
|
modalDialogClass: "modal-dialog-scrollable modal-m"
|
||||||
@ -295,10 +250,7 @@ export default {
|
|||||||
const startDate = this.$refs.fullCalendar.getApi().view.currentStart.toISOString()
|
const startDate = this.$refs.fullCalendar.getApi().view.currentStart.toISOString()
|
||||||
const endDate = this.$refs.fullCalendar.getApi().view.currentEnd.toISOString()
|
const endDate = this.$refs.fullCalendar.getApi().view.currentEnd.toISOString()
|
||||||
|
|
||||||
console.log('startDate', startDate, 'endDate', endDate)
|
|
||||||
fetchCalendarRangesByUser(this.userId, startDate, endDate).then(calendarRanges => new Promise((resolve, reject) => {
|
fetchCalendarRangesByUser(this.userId, startDate, endDate).then(calendarRanges => new Promise((resolve, reject) => {
|
||||||
console.log('calendarRanges', calendarRanges.results);
|
|
||||||
|
|
||||||
let events = calendarRanges.results.map(i =>
|
let events = calendarRanges.results.map(i =>
|
||||||
({
|
({
|
||||||
start: i.startDate.datetime,
|
start: i.startDate.datetime,
|
||||||
@ -404,7 +356,6 @@ export default {
|
|||||||
}).then((_r) => this.resetCalendar());
|
}).then((_r) => this.resetCalendar());
|
||||||
},
|
},
|
||||||
onEventClick(payload) {
|
onEventClick(payload) {
|
||||||
// console.log(payload);
|
|
||||||
if (payload.event.extendedProps.myCalendar) {
|
if (payload.event.extendedProps.myCalendar) {
|
||||||
this.myCalendarClickedEvent = {
|
this.myCalendarClickedEvent = {
|
||||||
id: payload.event.extendedProps.calendarId,
|
id: payload.event.extendedProps.calendarId,
|
||||||
@ -448,52 +399,60 @@ export default {
|
|||||||
isFriday(date) {
|
isFriday(date) {
|
||||||
return date.getDay() === 5
|
return date.getDay() === 5
|
||||||
},
|
},
|
||||||
copyDay(_payload) {
|
copyDay() {
|
||||||
// console.log(this.calendarEvents.new);
|
const fromDate = new Date(this.copyFrom).toISOString();
|
||||||
if (this.calendarEvents.new.events.length > 0) {
|
const toDate = new Date(this.copyTo).toISOString();
|
||||||
// Create the copied events
|
|
||||||
let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000;
|
fetchCalendarRangesByUser(this.userId, fromDate)
|
||||||
let events = this.calendarEvents.new.events.filter(
|
.then((ranges) => {
|
||||||
i => this.isSameDay(new Date(i.start), this.lastNewDate)).map(
|
console.log(ranges.results);
|
||||||
i => {
|
// ranges.results.foreach()
|
||||||
let startDate = new Date(new Date(i.start).getTime() + increment);
|
|
||||||
let endDate = new Date(new Date(i.end).getTime() + increment);
|
|
||||||
return ({
|
|
||||||
start: startDate.toISOString(),
|
|
||||||
end: endDate.toISOString()
|
|
||||||
})
|
})
|
||||||
}
|
|
||||||
);
|
|
||||||
let copiedEvents = {
|
|
||||||
events: events,
|
|
||||||
color: "#3788d8"
|
|
||||||
};
|
|
||||||
// console.log(copiedEvents);
|
|
||||||
|
|
||||||
// Add to the calendar
|
// if (this.calendarEvents.new.events.length > 0) {
|
||||||
let newEvents = this.calendarEvents.new.events;
|
// // Create the copied events
|
||||||
newEvents.push(...copiedEvents.events);
|
// let increment = !this.calendarOptions.weekends && this.isFriday(this.lastNewDate) ? 24*60*60*1000*3 : 24*60*60*1000;
|
||||||
this.calendarEvents.new = {
|
// let events = this.calendarEvents.new.events.filter(
|
||||||
events: newEvents,
|
// i => this.isSameDay(new Date(i.start), this.lastNewDate)).map(
|
||||||
color: "#3788d8"
|
// i => {
|
||||||
};
|
// let startDate = new Date(new Date(i.start).getTime() + increment);
|
||||||
this.updateEventsSource();
|
// let endDate = new Date(new Date(i.end).getTime() + increment);
|
||||||
|
// return ({
|
||||||
|
// start: startDate.toISOString(),
|
||||||
|
// end: endDate.toISOString()
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
// let copiedEvents = {
|
||||||
|
// events: events,
|
||||||
|
// color: "#3788d8"
|
||||||
|
// };
|
||||||
|
// // console.log(copiedEvents);
|
||||||
|
|
||||||
// Set the last new date
|
// // Add to the calendar
|
||||||
this.lastNewDate = new Date(copiedEvents.events[copiedEvents.events.length - 1].start);
|
// let newEvents = this.calendarEvents.new.events;
|
||||||
|
// newEvents.push(...copiedEvents.events);
|
||||||
|
// this.calendarEvents.new = {
|
||||||
|
// events: newEvents,
|
||||||
|
// color: "#3788d8"
|
||||||
|
// };
|
||||||
|
// this.updateEventsSource();
|
||||||
|
|
||||||
// Dispatch in store for saving
|
// // Set the last new date
|
||||||
for (let i = 0; i < copiedEvents.events.length; i++) {
|
// this.lastNewDate = new Date(copiedEvents.events[copiedEvents.events.length - 1].start);
|
||||||
let eventObj = {
|
|
||||||
start: new Date(copiedEvents.events[i].start),
|
|
||||||
end: new Date(copiedEvents.events[i].end)
|
|
||||||
}
|
|
||||||
this.$store.dispatch('createRange', eventObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
// // Dispatch in store for saving
|
||||||
console.log('no new events to copy-paste!')
|
// for (let i = 0; i < copiedEvents.events.length; i++) {
|
||||||
}
|
// let eventObj = {
|
||||||
|
// start: new Date(copiedEvents.events[i].start),
|
||||||
|
// end: new Date(copiedEvents.events[i].end)
|
||||||
|
// }
|
||||||
|
// this.$store.dispatch('createRange', eventObj);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// } else {
|
||||||
|
// console.log('no new events to copy-paste!')
|
||||||
|
// }
|
||||||
},
|
},
|
||||||
renderEventDate() {
|
renderEventDate() {
|
||||||
let start = this.myCalendarClickedEvent.start;
|
let start = this.myCalendarClickedEvent.start;
|
||||||
|
@ -20,6 +20,7 @@ const appMessages = {
|
|||||||
day: "Jour",
|
day: "Jour",
|
||||||
week: "Semaine",
|
week: "Semaine",
|
||||||
month: "Mois",
|
month: "Mois",
|
||||||
|
today: "Aujourd'hui",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,103 +7,103 @@ const debug = process.env.NODE_ENV !== 'production';
|
|||||||
const store = createStore({
|
const store = createStore({
|
||||||
strict: debug,
|
strict: debug,
|
||||||
state: {
|
state: {
|
||||||
newCalendarRanges: [],
|
// newCalendarRanges: [],
|
||||||
updateCalendarRanges: [],
|
// updateCalendarRanges: [],
|
||||||
deleteCalendarRanges: [],
|
// deleteCalendarRanges: [],
|
||||||
currentCalendarRanges: [],
|
// currentCalendarRanges: [],
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setCurrentCalendarRanges(state, payload) {
|
// setCurrentCalendarRanges(state, payload) {
|
||||||
state.currentCalendarRanges = payload
|
// state.currentCalendarRanges = payload
|
||||||
},
|
// },
|
||||||
updateRange(state, payload) {
|
// updateRange(state, payload) {
|
||||||
state.updateCalendarRanges.push({
|
// state.updateCalendarRanges.push({
|
||||||
id: payload.event.extendedProps.calendarRangeId,
|
// id: payload.event.extendedProps.calendarRangeId,
|
||||||
start: payload.event.start,
|
// start: payload.event.start,
|
||||||
end: payload.event.end
|
// end: payload.event.end
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
addRange(state, payload) {
|
// addRange(state, payload) {
|
||||||
state.newCalendarRanges.push({
|
// state.newCalendarRanges.push({
|
||||||
start: payload.start,
|
// start: payload.start,
|
||||||
end: payload.end
|
// end: payload.end
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
deleteRange(state, payload) {
|
// deleteRange(state, payload) {
|
||||||
state.deleteCalendarRanges.push({
|
// state.deleteCalendarRanges.push({
|
||||||
id: payload.extendedProps.calendarRangeId,
|
// id: payload.extendedProps.calendarRangeId,
|
||||||
start: payload.start,
|
// start: payload.start,
|
||||||
end: payload.end
|
// end: payload.end
|
||||||
});
|
// });
|
||||||
},
|
// },
|
||||||
clearNewCalendarRanges(state) {
|
// clearNewCalendarRanges(state) {
|
||||||
state.newCalendarRanges = [];
|
// state.newCalendarRanges = [];
|
||||||
},
|
// },
|
||||||
clearUpdateCalendarRanges(state) {
|
// clearUpdateCalendarRanges(state) {
|
||||||
state.updateCalendarRanges = [];
|
// state.updateCalendarRanges = [];
|
||||||
},
|
// },
|
||||||
clearDeleteCalendarRanges(state) {
|
// clearDeleteCalendarRanges(state) {
|
||||||
state.deleteCalendarRanges = [];
|
// state.deleteCalendarRanges = [];
|
||||||
},
|
// },
|
||||||
removeNewCalendarRanges(state, payload) {
|
// removeNewCalendarRanges(state, payload) {
|
||||||
let filteredCollection = state.newCalendarRanges.filter(
|
// let filteredCollection = state.newCalendarRanges.filter(
|
||||||
(e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString()
|
// (e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString()
|
||||||
)
|
// )
|
||||||
state.newCalendarRanges = filteredCollection;
|
// state.newCalendarRanges = filteredCollection;
|
||||||
},
|
// },
|
||||||
removeFromDeleteRange(state, payload) {
|
// removeFromDeleteRange(state, payload) {
|
||||||
let filteredCollection = state.deleteCalendarRanges.filter(
|
// let filteredCollection = state.deleteCalendarRanges.filter(
|
||||||
(e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString()
|
// (e) => e.start.toString() !== payload.start.toString() && e.end.toString() !== payload.end.toString()
|
||||||
)
|
// )
|
||||||
state.deleteCalendarRanges = filteredCollection;
|
// state.deleteCalendarRanges = filteredCollection;
|
||||||
},
|
// },
|
||||||
addCalendarRange(state, payload) {
|
// addCalendarRange(state, payload) {
|
||||||
state.currentCalendarRanges.push(payload);
|
// state.currentCalendarRanges.push(payload);
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
setCurrentCalendarRanges({ commit }) {
|
// setCurrentCalendarRanges({ commit }) {
|
||||||
// console.log('userId', window.userId);
|
// // console.log('userId', window.userId);
|
||||||
fetchCalendarRangesByUser(window.userId)
|
// fetchCalendarRangesByUser(window.userId)
|
||||||
.then((ranges) => {
|
// .then((ranges) => {
|
||||||
// console.log('ranges', ranges.results);
|
// // console.log('ranges', ranges.results);
|
||||||
commit('setCurrentCalendarRanges', ranges.results);
|
// commit('setCurrentCalendarRanges', ranges.results);
|
||||||
})
|
// })
|
||||||
},
|
// },
|
||||||
addCalendarRange({ commit }, payload) {
|
// addCalendarRange({ commit }, payload) {
|
||||||
commit('addCalendarRange', payload)
|
// commit('addCalendarRange', payload)
|
||||||
},
|
// },
|
||||||
createRange({ commit }, payload) {
|
// createRange({ commit }, payload) {
|
||||||
// console.log('### action createRange', payload);
|
// // console.log('### action createRange', payload);
|
||||||
commit('addRange', payload);
|
// commit('addRange', payload);
|
||||||
},
|
// },
|
||||||
updateRange({ commit }, payload) {
|
// updateRange({ commit }, payload) {
|
||||||
// console.log('### action updateRange', payload);
|
// // console.log('### action updateRange', payload);
|
||||||
commit('updateRange', payload);
|
// commit('updateRange', payload);
|
||||||
},
|
// },
|
||||||
deleteRange({ commit }, payload) {
|
// deleteRange({ commit }, payload) {
|
||||||
// console.log('### action deleteRange', payload);
|
// // console.log('### action deleteRange', payload);
|
||||||
commit('deleteRange', payload);
|
// commit('deleteRange', payload);
|
||||||
},
|
// },
|
||||||
clearNewCalendarRanges({ commit }, payload) {
|
// clearNewCalendarRanges({ commit }, payload) {
|
||||||
commit('clearNewCalendarRanges', payload);
|
// commit('clearNewCalendarRanges', payload);
|
||||||
},
|
// },
|
||||||
clearUpdateCalendarRanges({ commit }, payload) {
|
// clearUpdateCalendarRanges({ commit }, payload) {
|
||||||
commit('clearUpdateCalendarRanges', payload);
|
// commit('clearUpdateCalendarRanges', payload);
|
||||||
},
|
// },
|
||||||
clearDeleteCalendarRanges({ commit }, payload) {
|
// clearDeleteCalendarRanges({ commit }, payload) {
|
||||||
commit('clearDeleteCalendarRanges', payload);
|
// commit('clearDeleteCalendarRanges', payload);
|
||||||
},
|
// },
|
||||||
removeNewCalendarRanges({ commit }, payload) {
|
// removeNewCalendarRanges({ commit }, payload) {
|
||||||
commit('removeNewCalendarRanges', payload);
|
// commit('removeNewCalendarRanges', payload);
|
||||||
},
|
// },
|
||||||
removeFromDeleteRange({ commit }, payload) {
|
// removeFromDeleteRange({ commit }, payload) {
|
||||||
commit('removeFromDeleteRange', payload);
|
// commit('removeFromDeleteRange', payload);
|
||||||
},
|
// },
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
store.dispatch('setCurrentCalendarRanges');
|
// store.dispatch('setCurrentCalendarRanges');
|
||||||
|
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user