You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
462 lines
21 KiB
462 lines
21 KiB
let eventDetails={}
|
|
const onlineEvent = {
|
|
prepareBtns : (event_sched_btn, page/* page=1, homepage, page=2, event detailed page*/, event) => {
|
|
const bostatus = parseInt(event.back_office_status);
|
|
const fav = (parseInt(event.is_favorite) == 1) ? 'btn-favorite': '';
|
|
const redirectOfflineUser = !event.is_user_active ? 'subscribe-btn-redirect': '';
|
|
let btnClass = 'btn btn-block btn-default-style event-btn btn-online-event';
|
|
let btnText = '';
|
|
let btnDisabled = true;
|
|
|
|
// Event is Coming soon
|
|
if (event.is_coming_soon == 'coming_soon' && event.event_status === 'AVAILABLE' && (bostatus == 2 || bostatus == 1 )) {
|
|
btnClass = `${fav} ${btnClass} disabled`;
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn.coming_soon;
|
|
}
|
|
// Event is AVAILABLE
|
|
else if (event.is_coming_soon == '' && event.event_status === 'AVAILABLE' && bostatus == 2 ) {
|
|
btnClass = `${fav} ${btnClass} ${redirectOfflineUser}`;
|
|
btnDisabled = false;
|
|
btnText = app.get_vars()._app.btn._book_online_event;
|
|
}
|
|
// Event is FULL || COMPLETE
|
|
else if (event.event_status === 'FULL' && (bostatus == 2 || bostatus == 3)) {
|
|
btnClass = `${btnClass} disabled`
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn._full;
|
|
}
|
|
// Event is Cancelled
|
|
else if (event.event_status === 'CANCEL' && event.is_passed !== '1') {
|
|
btnClass = `${fav} ${btnClass} cancelled_event disabled`
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
}
|
|
// Event is Closed
|
|
else if (bostatus == 4 || (event.event_status === 'CANCEL' && event.is_passed === '1')) {
|
|
btnClass = `${btnClass} disabled`
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
}
|
|
// Event is Terminee
|
|
else if (bostatus == 7) {
|
|
btnClass = `${btnClass} disabled`
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn._terminee;
|
|
}
|
|
// Event is Archived
|
|
else {
|
|
btnClass = `${btnClass} disabled`
|
|
btnDisabled = true;
|
|
btnText = app.get_vars()._app.btn._archive;
|
|
}
|
|
|
|
if (page == 1) { // Buttons in Homepage
|
|
event_sched_btn.append(`<button
|
|
data-event-id="${event.event_id}"
|
|
class='${btnClass}'
|
|
role='button'
|
|
${btnDisabled ? 'disabled = "disabled"': ''}
|
|
data-page='home'>
|
|
${btnText}
|
|
</button>`);
|
|
}
|
|
},
|
|
getEventDetails: function (url) {
|
|
$.ajax({
|
|
url : url,
|
|
type : "POST",
|
|
data : {},
|
|
success : function(result) {
|
|
if(result) {
|
|
$('.hide-div').show()
|
|
eventDetails = result
|
|
/* For Course Online Event */
|
|
if(result.workshop_session === 'ENLIGNE' || result.workshop_session === 'DISTANCE-PRESENTIEL') {
|
|
$('#video_workshop_modal_content').show()
|
|
$('#regular_workshop_modal_content').hide()
|
|
$(".totalVideos").text(result.event_videos.length);
|
|
var learning_outcome = result.learning_outcome.split('\"');
|
|
var htmlOutcome = ''
|
|
for (let i = 0; i < learning_outcome.length; i++) {
|
|
if(learning_outcome[i] !== '[' && learning_outcome[i] !== ',' && learning_outcome[i] !== ']') {
|
|
htmlOutcome += `<div class="appendre-item">
|
|
<img class="mc-icon" src="${app.get_vars().baseurl}resources/images/frontoffice/icons/fleche-open.svg" />
|
|
<div class="ml-2">${learning_outcome[i]}</div>
|
|
</div>`
|
|
}
|
|
}
|
|
$("div.appendre-lists").html(htmlOutcome);
|
|
} else {
|
|
$('#video_workshop_modal_content').hide()
|
|
$('#regular_workshop_modal_content').show()
|
|
}
|
|
|
|
if(result.location) {
|
|
const mapLoc = JSON.parse(eventDetails.location);
|
|
// $('#gmap_canvas').attr('src', 'https://maps.google.com/maps?q='+ mapLoc.address +'&t=&z=10&ie=UTF8&iwloc=&output=embed');
|
|
$('#gmap_canvas')[0].src = 'https://maps.google.com/maps?q='+ mapLoc.address +'&t=&z=10&ie=UTF8&iwloc=&output=embed&z=13';
|
|
$('.event-address').text(mapLoc.address);
|
|
$('.event-venue').text(eventDetails.event_address);
|
|
}
|
|
if(result.location === "") {
|
|
$('.event-map').addClass('d-none')
|
|
}
|
|
|
|
if(result.workshop_author_awards == 0) {
|
|
$('.mc-author-awards').css('display', 'none')
|
|
}
|
|
if(result.works == 0) {
|
|
$('.mc-author-works').css('display', 'none')
|
|
}
|
|
/** setup buttons and labels rules */
|
|
|
|
// $('input[type=radio][name=soir-type][value=soir-presentiel]').click()
|
|
// $('input[type=radio][name=mobile-soir-type][value=soir-presentiel]').click()
|
|
onlineEvent.setup_details_rules(result, 'soir-presentiel')
|
|
if (result.workshop_session === 'DISTANCE-PRESENTIEL') {
|
|
$('.mc-btn-group button').prop('disabled', true)
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getEventSchedules: function (url) {
|
|
$.ajax({
|
|
url : url,
|
|
type : "POST",
|
|
data : {},
|
|
success : function(result) {
|
|
if(result) {
|
|
moment.locale('fr')
|
|
let html = ""
|
|
result.forEach((d) => {
|
|
const ms = moment.duration(moment(d.end_date_time).diff(moment(d.start_date_time)))
|
|
//:${ms.minutes()}
|
|
html += `<div class="mc-event-sched">
|
|
<span class="event-date">${(moment(d.start_date_time).format('dddd DD MMM YYYY')).replace(".", '')}</span>
|
|
<span class="event-time"> — ${d.start_date_hour} à ${d.end_date_hour}</span>
|
|
<div class="event-duration">Durée ${ms.hours()}h${ms.minutes()>0?(ms.minutes().toString()+'0').slice(0,2):''}</div>
|
|
</div>`;
|
|
})
|
|
$("div#otherSched").append(html)
|
|
$("#w-startTime").text(result[0]?result[0].start_date_hour:'00h00')
|
|
}
|
|
}
|
|
})
|
|
},
|
|
"setup_details_rules": function(result, session_type) {
|
|
let remaining_seats = 0
|
|
$('.percent-discount').show()
|
|
if(result.workshop_session === 'DISTANCE-PRESENTIEL') {
|
|
$('.percent-discount').hide()
|
|
$('.mc-btn-group button').prop('disabled', false)
|
|
if(session_type=== 'soir-presentiel') {
|
|
remaining_seats = result.presentiel['p_remaining_combined_seat']
|
|
} else {
|
|
remaining_seats = result.distance['d_remaining_combined_seat']
|
|
}
|
|
} else {
|
|
remaining_seats = result.remaining_combined_seat
|
|
}
|
|
|
|
$("span#remaining_seat").text(remaining_seats);
|
|
// $(".subscribe-btn").attr('', result.remaining_combined_seat == 0)
|
|
|
|
if(remaining_seats > 1) {
|
|
$('span.plural').text('s');
|
|
} else {
|
|
$('span.plural').text('');
|
|
}
|
|
|
|
let reserveBtnLabel = ''
|
|
if(moment().isBetween(result.reservation_start_date, result.reservation_end_date, null ,'[]')) {
|
|
reserveBtnLabel = "Réserver"
|
|
// $("div#nombre-places").css('display', 'block')
|
|
} else if(moment(result.reservation_start_date).isAfter(moment())) {
|
|
reserveBtnLabel = "Prochainement"
|
|
// $(".btn-reserve").attr('disabled', true)
|
|
if(result.workshop_session !== 'ENLIGNE' && result.workshop_session !== 'DISTANCE'){
|
|
$(".offer-btn").attr('disabled', true)
|
|
}
|
|
$('a.mc-btn-status.btn-reserve').addClass('mc-btn-scroll')
|
|
$("#nombre-places").css('display', 'none')
|
|
} else if (moment().isAfter(moment(result.reservation_end_date))) {
|
|
reserveBtnLabel = 'Fermé'
|
|
$(".btn-reserve").attr('disabled', true)
|
|
$("div#nombre-places").css('display', 'none')
|
|
if(result.workshop_session !== 'ENLIGNE') {
|
|
$(".offer-btn").attr('disabled', true)
|
|
}
|
|
// $(".offer-btn").attr('disabled', true)
|
|
// if(result.workshop_session !== 'ENLIGNE' && result.workshop_session !== 'DISTANCE' &&
|
|
// result.workshop_session === 'DISTANCE-PRESENTIEL' && session_type === 'soir-presentiel' ){
|
|
// $(".offer-btn").attr('disabled', true)
|
|
// }
|
|
}
|
|
|
|
if(result.event_status === 'CANCEL') {
|
|
reserveBtnLabel = 'Annule'
|
|
$(".show-prompt-login-reserver, .subscribe-btn").attr('disabled', true)
|
|
$(".btn-reserve").attr('disabled', true)
|
|
$(".offer-btn").attr('disabled', true)
|
|
$(".show-prompt-login-reserver, .subscribe-btn").text(reserveBtnLabel)
|
|
$('.cancel-overlay').removeClass('d-none');
|
|
$('div#nombre-places, .nombre-places').addClass('d-none');
|
|
$('.show-prompt-login-reserver, .btn-reserve, .subscribe-btn').addClass('cancelled-btn');
|
|
}
|
|
/* Show details block based on event status FO */
|
|
// if($('.btn-reserve').text().indexOf('Prochainement') >= 0) {
|
|
if(result.event_status === 'SOON') {
|
|
reserveBtnLabel = 'Prochainement'
|
|
$('.available').addClass('d-none');
|
|
$('.unavailable').removeClass('d-none');
|
|
} else {
|
|
$('.unavailable').addClass('d-none');
|
|
$('.available').removeClass('d-none');
|
|
}
|
|
|
|
let remaining_combined_seat = result.remaining_combined_seat
|
|
if(result.workshop_session === 'DISTANCE-PRESENTIEL') {
|
|
if(session_type == 'soir-presentiel') {
|
|
remaining_combined_seat = result.presentiel.p_remaining_combined_seat
|
|
} else {
|
|
remaining_combined_seat = result.distance.d_remaining_combined_seat
|
|
}
|
|
}
|
|
|
|
if(remaining_combined_seat == 0 && result.workshop_session != 'ENLIGNE') {
|
|
reserveBtnLabel = "Atelier complet"
|
|
$(".btn-reserve").attr('disabled', false)
|
|
$("div#nombre-places").css('display', 'none')
|
|
$(".mc-price").css('display', 'none')
|
|
$(".mc-price-mention").css('display', 'none')
|
|
$(".mc-btn-group").css('display', 'none')
|
|
$('div.mc-complet').css('display', 'block')
|
|
$('.contact-block').css('margin-top','0')
|
|
$('.mobile-event-details .date-duration').css('display', 'none')
|
|
$('.mobile-event .available').addClass('d-none');
|
|
$('.mc-atelier-complet').removeClass('d-none');
|
|
} else {
|
|
$('.mc-atelier-complet').addClass('d-none');
|
|
}
|
|
|
|
$(".btn-reserve").text(reserveBtnLabel)
|
|
$(".btn-mobile-event").text(reserveBtnLabel)
|
|
$(".subscribe-btn").text(reserveBtnLabel)
|
|
|
|
moment.locale('fr')
|
|
var s_date = moment(result.start_date_time).format('DD MMM');
|
|
var e_date = moment(result.end_date_time).format('DD MMM YYYY');
|
|
|
|
if(result.number_of_sessions > 1) {
|
|
$(".date-duration").text('Du ' + moment(result.start_date_time).format('DD MMMM') + ' au ' + moment(result.end_date_time).format('DD MMMM YYYY'));
|
|
$(".mc-date-duration").text(s_date.replace('.','') + ' - ' + e_date.replace('.','') );
|
|
} else {
|
|
$(".date-duration").text('Le ' + moment(result.start_date_time).format('DD MMMM YYYY'));
|
|
$(".mc-date-duration").text(e_date.replace('.',''));
|
|
}
|
|
//for a specific event
|
|
$("#w-date").text('Le ' + moment(result.start_date_time).format('DD MMMM') + ' à ')
|
|
|
|
// Convert decimal to time format
|
|
let minute = 0
|
|
let hour = 0
|
|
if(result.workshop_session === 'ENLIGNE' || result.workshop_session === 'DISTANCE' || result.workshop_session === 'DISTANCE-PRESENTIEL') {
|
|
// $("div#otherSched").hide()
|
|
$("#w-startTime").hide()
|
|
if(result.event_videos.length) {
|
|
let videos = result.event_videos
|
|
let h = 0
|
|
let m = 0
|
|
let s = 0
|
|
for(let i=0; i<videos.length; i++) {
|
|
let hms = null
|
|
hms = videos[i].duration.split(':')
|
|
h += parseInt(hms[0])
|
|
m += parseInt(hms[1])
|
|
s += parseInt(hms[2])
|
|
}
|
|
m = m + Math.floor(s/60)
|
|
hour = h + Math.floor(m/60)
|
|
minute = m % 60
|
|
}
|
|
} else {
|
|
// $("div#otherSched").show()
|
|
$("#w-startTime").show()
|
|
let totalH = Math.round((result.hours_per_session) * 100) / 100;
|
|
hour = Math.floor(totalH);
|
|
var decimal = totalH - hour;
|
|
var min = 1 / 60;
|
|
// Round to nearest minute
|
|
decimal = min * Math.round(decimal / min);
|
|
minute = Math.floor(decimal * 60);
|
|
}
|
|
|
|
$("span#time-hr").text(hour)
|
|
if(minute === 0){
|
|
return ' '
|
|
} else if(minute < 10){
|
|
return $("span#time-min").text('0'+ minute)
|
|
} else {
|
|
return $("span#time-min").text(minute)
|
|
}
|
|
},
|
|
"on_change_session_type": function (_this) {
|
|
let num_seats = ''
|
|
let rs = 0
|
|
subscribe.set_vars({session_type: $(_this).val()})
|
|
if($(_this).val()== 'soir-presentiel') {
|
|
rs = eventDetails.presentiel.p_remaining_combined_seat
|
|
num_seats = rs + ' place' + (rs>1?'s':'') + ' maximum'
|
|
onlineEvent.setup_details_rules(eventDetails, 'soir-presentiel')
|
|
|
|
} else {
|
|
rs = eventDetails.distance.d_remaining_combined_seat
|
|
num_seats = rs + ' place' + (rs>1?'s':'') + ' maximum'
|
|
$(".btn-reserve").removeAttr('disabled')
|
|
$("div#nombre-places").css('display', 'block')
|
|
$(".mc-price").css('display', 'block')
|
|
$(".mc-price-mention").css('display', 'block')
|
|
$(".mc-btn-group").css('display', 'block')
|
|
$('div.mc-complet').css('display', 'block')
|
|
$('.contact-block').css('margin-top','0')
|
|
$('.mobile-event-details .date-duration').css('display', 'block')
|
|
$('.mobile-event .available').removeClass('d-none');
|
|
$('.mc-atelier-complet').removeClass('d-none');
|
|
onlineEvent.setup_details_rules(eventDetails, 'soir-distance')
|
|
|
|
}
|
|
$('.num_seats').text(num_seats)
|
|
$('#remaining_seat').text(rs)
|
|
|
|
$('#number_of_seat_reserved').empty()
|
|
$('#number_of_seat_reserved').append('<option disabled selected value="">- sélectionner -</option>')
|
|
$('#number_of_seat_reserved_mobile').empty()
|
|
$('#number_of_seat_reserved_mobile').append('<option disabled selected value="">- sélectionner -</option>')
|
|
for(let i=1; i<=rs; i++) {
|
|
if(i==1) {
|
|
$('#number_of_seat_reserved').append('<option value="1">1 place</option>');
|
|
$('#number_of_seat_reserved_mobile').append('<option value="1">1 place</option>');
|
|
} else {
|
|
$('#number_of_seat_reserved').append('<option value="'+i+'">'+i+' places</option>');
|
|
$('#number_of_seat_reserved_mobile').append('<option value="'+i+'">'+i+' places</option>');
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
$(function(){
|
|
$('input[type=radio][name=soir-type], input[type=radio][name=mobile-soir-type]').on('change', function(){
|
|
onlineEvent.on_change_session_type(this)
|
|
});
|
|
// $('input[type=radio][name=mobile-soir-type]').on('change', function(){
|
|
// onlineEvent.on_change_session_type()
|
|
// });
|
|
//$(document).ready(function() {
|
|
/* Format comment rate */
|
|
let rate = $("#comment-rate").text();
|
|
if(rate.length > 4) {
|
|
let avg = parseFloat(rate)
|
|
if(Number.isInteger(avg)) {
|
|
$("#comment-rate").text(avg + '/10');
|
|
$("progress").attr("value", avg);
|
|
} else {
|
|
$("#comment-rate").text(avg.toFixed(1) + '/10');
|
|
$("progress").attr("value", avg);
|
|
}
|
|
} else {
|
|
$("#comment-rate").text(rate) + '/10';
|
|
}
|
|
if(typeof moment !== 'undefined') {
|
|
const eventId = $('#event-details').data('event-id')
|
|
onlineEvent.getEventDetails(app.get_vars().baseurl+'events/homepage/get_event_details/'+ eventId)
|
|
onlineEvent.getEventSchedules(app.get_vars().baseurl+'events/homepage/get_event_schedules/'+ eventId)
|
|
}
|
|
$(document).on('click','button[data-page^="details"].btn-online-event:not(.subscribe-btn-redirect, .not-premium)', (event) => {
|
|
const event_url = $(event.target).data('event_url');
|
|
if (event_url) {
|
|
window.open(event_url, "_blank");
|
|
}
|
|
});
|
|
|
|
$(document).on('click','button[data-page^="home"].btn-online-event:not(.subscribe-btn-redirect)', (event) => {
|
|
const target = $(event.target);
|
|
const event_id = target.data('event-id');
|
|
if (event_id) {
|
|
window.location=`${app.get_vars().baseurl}event_details?event_id=${event_id}`;
|
|
}
|
|
});
|
|
$("select#number_of_seat_reserved").on('change', function() {
|
|
let combined_seat = eventDetails.remaining_combined_seat
|
|
if(eventDetails.workshop_session == 'DISTANCE-PRESENTIEL') {
|
|
if(subscribe.get_vars().session_type == 'soir-presentiel')
|
|
combined_seat = eventDetails.presentiel.p_remaining_combined_seat
|
|
else
|
|
combined_seat = eventDetails.distance.d_remaining_combined_seat
|
|
}
|
|
$("span#remaining_seat").text(combined_seat - $(this).val());
|
|
if((combined_seat - $(this).val()) >= 2) {
|
|
$('span.plural').text('s');
|
|
}
|
|
if ((combined_seat - $(this).val()) <= 1) {
|
|
$('span.plural').text('');
|
|
}
|
|
});
|
|
$("#number_of_seat_reserved_mobile").on('change', function() {
|
|
let combined_seat = eventDetails.remaining_combined_seat
|
|
if(eventDetails.workshop_session == 'DISTANCE-PRESENTIEL') {
|
|
if(subscribe.get_vars().session_type == 'soir-presentiel')
|
|
combined_seat = eventDetails.presentiel.p_remaining_combined_seat
|
|
else
|
|
combined_seat = eventDetails.distance.d_remaining_combined_seat
|
|
}
|
|
$("span#remaining_seat").text(combined_seat - $(this).val());
|
|
if((combined_seat - $(this).val()) >= 2) {
|
|
$('span.plural').text('s');
|
|
}
|
|
if ((combined_seat - $(this).val()) <= 1) {
|
|
$('span.plural').text('');
|
|
}
|
|
});
|
|
// ONLINE COURSE VIDEO LISTS VOIR PLUS
|
|
$(window).on('resize', function(){
|
|
var win = $(this);
|
|
if ($(window).width() <= 767) {
|
|
$("#more-less-btn").removeClass('d-none')
|
|
$('.video-part-item.video-more').addClass('collapse')
|
|
$("#more-less-btn").click(function(){
|
|
$(".video-more").collapse('show');
|
|
});
|
|
$(".video-more").on('show.bs.collapse', function(){
|
|
$("#more-less-btn").css('display', 'none')
|
|
});
|
|
} else {
|
|
$('.video-part-item.video-more').removeClass('collapse')
|
|
$("#more-less-btn").addClass('d-none')
|
|
}
|
|
});
|
|
|
|
$('.mc-banner-img iframe').attr('id', 'v-item')
|
|
|
|
// Call the API when a button is pressed
|
|
var iframe = $('iframe#v-item');
|
|
var player = new Vimeo.Player(iframe);
|
|
$('.overlay-video ').on('click', function() {
|
|
$(".img-video-overlay").hide();
|
|
player.play();
|
|
});
|
|
player.on('play', function() {
|
|
$('.overlay-video').css('display', 'none')
|
|
$('iframe').removeClass('darken');
|
|
$('iframe').css('background', 'black');
|
|
$('iframe').css('border-radius', '8px');
|
|
});
|
|
player.on('pause', function() {
|
|
$('.overlay-video').css('display', 'block')
|
|
$('iframe').addClass('darken');
|
|
});
|
|
})
|
|
|
|
|