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.
3473 lines
178 KiB
3473 lines
178 KiB
process_request = null;
|
|
cached_process_id = null;
|
|
|
|
var subscribe = (function($, window, jQuery) {
|
|
var sched;
|
|
var _vars_ = {};
|
|
return {
|
|
|
|
"set_vars": function(options) {
|
|
$.extend(_vars_, options || {});
|
|
},
|
|
|
|
"get_vars": function() {
|
|
return _vars_;
|
|
},
|
|
|
|
"getCookie": function(name) {
|
|
var value = "; " + document.cookie;
|
|
var parts = value.split("; " + name + "=");
|
|
if (parts.length == 2)
|
|
return parts.pop().split(";").shift();
|
|
},
|
|
|
|
"prevent_page_load": function(btn, event_id, event_schedule_id, reg_type, action, process_type) {
|
|
var _cookie_data = decodeURIComponent(subscribe.getCookie("sdllmea"));
|
|
var _cookie_data_1 = decodeURIComponent(subscribe.getCookie("sdllmea"));
|
|
|
|
if ((_cookie_data.indexOf("logged_in") != -1 && _cookie_data.indexOf("LeMondeFO") != -1) || _cookie_data_1 != "undefined") {
|
|
// subscribe.check_closed_event(btn, event_id, event_schedule_id, reg_type, action, process_type); reg_type booking - 1, waitlist - 2
|
|
} else {
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "events/subscribe/save_link_to_cookie",
|
|
type: "POST",
|
|
data: {
|
|
event_id: event_id,
|
|
event_schedule_id: event_schedule_id
|
|
},
|
|
success: function(result) {
|
|
app._notify("error", app.get_vars()._app.notif.not_connected);
|
|
window.setTimeout(function() {
|
|
window.location.href = app.get_vars().baseurl + "login"
|
|
}, 2000);
|
|
}
|
|
});
|
|
/* enable button */
|
|
$(btn).prop("disabled", false);
|
|
}
|
|
},
|
|
|
|
"registration": {
|
|
|
|
"add_or_modify": {
|
|
"reservation": function(eventDetails, seat_feature, action, process_type) {
|
|
const reg_type = 1
|
|
const bp = false
|
|
var serverData = {
|
|
event_id: eventDetails.event_id,
|
|
//event_schedule_id: event_schedule_id,
|
|
action: action, //1-register, 2-modify, 3- cancel
|
|
seat_feature: seat_feature,
|
|
//check_subscription: check_subscription,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
event_category: eventDetails.event_category,
|
|
workshop_session: eventDetails.workshop_session,
|
|
bp: bp,
|
|
//is_user_moderated: is_user_moderated,
|
|
};
|
|
/* This solution fixed the bug #24568 */
|
|
if (cached_process_id) {
|
|
serverData.process_id = cached_process_id;
|
|
cached_process_id = null;
|
|
}
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/subscribe/validate',
|
|
type: "POST",
|
|
data: serverData,
|
|
success: function(result) {
|
|
if(result.mtype === 'info') {
|
|
app._notify(result.mtype, result.message);
|
|
}
|
|
if (result.logged_out) {
|
|
window.location.replace('https://sdllmea-dev.wylog.com/login');
|
|
}
|
|
if (app.isalive(result)) {
|
|
if (result.mtype == "success")
|
|
{
|
|
/**
|
|
* Catch PAID event regular reservation
|
|
*/
|
|
if ( serverData.event_category === 'PAID_EVENT' && reg_type == 1 ) {
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
$(btn).prop("disabled", false);
|
|
$(btn).data('event_url') && window.open($(btn).data('event_url'), "_blank");
|
|
} else { // Regular event
|
|
let label, confBtnClass;
|
|
se = result.mdata.reservations ? result.mdata.reservations.seats_reserved : 0;
|
|
if (se > 0) {
|
|
confBtnClass = ((reg_type == 1) ? 'normal-ress' : 'reserve');
|
|
label = (reg_type == 1) ?
|
|
"Ajouter des places à ma réservation" :
|
|
app.get_vars()._app.btn._updatewaitlist;
|
|
} else {
|
|
confBtnClass = 'reserve';
|
|
label = (reg_type == 1) ?
|
|
app.get_vars()._app.btn._book :
|
|
app.get_vars()._app.btn._updatewaitlist;
|
|
}
|
|
|
|
$('#seats_reserved_text').text(seat_feature + (seat_feature>1?' places':' place'))
|
|
$('#address_text').text(eventDetails.event_address)
|
|
|
|
if(eventDetails.workshop_session== 'DISTANCE-PRESENTIEL' && subscribe.get_vars().session_type == 'soir-presentiel') {
|
|
$('#video_workshop_modal_content').hide()
|
|
$('#regular_workshop_modal_content').show()
|
|
} else if((eventDetails.workshop_session== 'DISTANCE-PRESENTIEL' && subscribe.get_vars().session_type == 'soir-distance') || eventDetails.workshop_session== 'DISTANCE') {
|
|
$('#video_workshop_modal_content').show()
|
|
$('#regular_workshop_modal_content').hide()
|
|
}
|
|
var form = $("#register-event-form");
|
|
/* Done waiting reserve */
|
|
$(".reserve-spinner").addClass("d-none");
|
|
$('.btn-reserve').removeAttr('disabled', true);
|
|
$('.btn-offer').removeAttr('disabled', true);
|
|
/* end */
|
|
bootbox.dialog({
|
|
// "title": subscribe.registration.options.title(reg_type, action, process_type),
|
|
"title": eventDetails.workshop_session == 'ENLIGNE' ?'Acheter le cours' : (eventDetails.workshop_session == 'DISTANCE-PRESENTIEL' ? 'Réserver le cours':subscribe.registration.options.title(reg_type, action, process_type)),
|
|
"className": "my-modal-with-sm event-normal-registration-modal custom-modal-ui table",
|
|
"message": form,
|
|
"cache": false,
|
|
"show": false,
|
|
/* We will show it manually later */
|
|
"buttons": [{
|
|
"label": app.get_vars()._app.btn._close,
|
|
"className": "btn btn-default-style2 btn-unlock-process",
|
|
"callback": function() {
|
|
//remove unbefore unload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
$('#chkbox-error').hide();
|
|
}
|
|
}, {
|
|
// "label": label,
|
|
"label": eventDetails.workshop_session == 'ENLIGNE' ?'Acheter' : label,
|
|
"className": "btn btn-default-style mc-btn " + confBtnClass,
|
|
"callback": function() {
|
|
var seats_reserved = seat_feature //$('#number_of_seat_reserved').val();
|
|
var event_schedule = $('#schedule_id').val();
|
|
var seats_reserved_orig = parseInt($("#seats_reserved_info").data("seats_reserved"));
|
|
seats_reserved_orig = seats_reserved_orig ? seats_reserved_orig : 0;
|
|
|
|
if (parseInt(seats_reserved) >= 1 || eventDetails.workshop_session === 'ENLIGNE' || eventDetails.workshop_session === 'DISTANCE') {
|
|
$(".event-normal-registration-modal").modal('hide');
|
|
$("#chkbox-error").hide();
|
|
|
|
let validatedData = {
|
|
event_id: eventDetails.event_id,
|
|
action: action,
|
|
seat_feature: seat_feature ?? 1,
|
|
event_category: eventDetails.event_category,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
seats_reserved: seats_reserved ?? 1,
|
|
process_id: result.process_id,
|
|
workshop_session: eventDetails.workshop_session,
|
|
bp: bp
|
|
}
|
|
const paymentData = {
|
|
event_id: eventDetails.event_id,
|
|
seats_reserved: seats_reserved ?? 1,
|
|
booking: validatedData
|
|
}
|
|
subscribe.registration.add_or_modify.proceed_to_payment(paymentData)
|
|
//commented this to bypass saving booking before payment
|
|
//subscribe.registration.add_or_modify.confirm(eventDetails, reg_type, action, process_type, seat_feature, seats_reserved, result.process_id, bp);
|
|
|
|
} else {
|
|
$("#chkbox-error").show();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}]
|
|
}).on('shown.bs.modal', function() {
|
|
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
|
|
$('#numberofplaces').focus();
|
|
// $(this).off('shown.bs.modal');
|
|
}).on('hide.bs.modal', function(e) {
|
|
$('#chkbox-error').hide();
|
|
$(".event-normal-registration-cont-modal").modal("hide");
|
|
$('.event-normal-registration-modal').not(':last').remove();
|
|
$('.event-normal-registration-cont-modal').not(':last').remove();
|
|
|
|
$(this).off('hidden.bs.modal');
|
|
}).modal('show').init(function() {
|
|
$("#seats_reserved_info").hide().removeData("seats_reserved");
|
|
$("#numberofplaces").html('<option disabled="disabled" selected>' + (
|
|
(action == 'register') ?
|
|
"- Choisir le nombre de places -" :
|
|
"- Choisir le nombre de places à ajouter -") + '</option>');
|
|
//$(btn).prop("disabled", false);
|
|
|
|
//add event when browser/tab is closed or reloaded
|
|
subscribe.button.exitp.agent_closing({
|
|
process_id: result.process_id,
|
|
event_id: eventDetails.event_id,
|
|
action: 2,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type
|
|
});
|
|
|
|
$(this).find(".bootbox-close-button").addClass("btn-unlock-process");
|
|
$(".btn-unlock-process").off("click").on("click", function() {
|
|
if (bp) {
|
|
$('.event-moderation-modal').modal("show");
|
|
}
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
subscribe.button.lock_unlock({
|
|
data: {
|
|
process_id: result.process_id,
|
|
event_id: eventDetails.event_id,
|
|
action: 2,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type
|
|
}
|
|
});
|
|
});
|
|
|
|
//start the timer
|
|
subscribe.button.exitp.start(eventDetails.event_id, process_type, result.process_id);
|
|
|
|
subscribe.registration.options.seats(reg_type, action, process_type, result.mdata);
|
|
});
|
|
|
|
}
|
|
} else {
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
bootbox.hideAll();
|
|
app._notify(result.mtype, result.message);
|
|
//update buttons
|
|
subscribe.button.change(eventDetails.event_id, 2, null);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
"proceed_to_payment":function(data) {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/homepage/proceed_to_payment',
|
|
type: "POST",
|
|
data: data,
|
|
success: function(res){
|
|
window.location.href = app.get_vars().baseurl+'payment'
|
|
}
|
|
});
|
|
|
|
},
|
|
"confirm": function(eventDetails, reg_type, action, process_type, seat_feature, seats_reserved, process_id, bp = false, is_user_moderated = 0) {
|
|
$('span.send_reservation_data').click();
|
|
|
|
var event_title = eventDetails.title;
|
|
var confirm_message = "Voulez-vous réserver " + seats_reserved + (
|
|
(seats_reserved[0] <= 1) ?
|
|
' place ' :
|
|
' places ') + ((event_title == null) ? ' ' : 'pour ' + event_title ) + " ?";
|
|
// if (parseInt($("#event_cancel_registration" + event_schedule_id).data("seat-feature")) == 2) {
|
|
// confirm_message = '<div id="cancel-modal" style="margin-top:6px;"><p id="cancel-msg"><i>Voulez-vous réserver ' + seats_reserved + (
|
|
// (seats_reserved[0] <= 1) ?
|
|
// ' place ' :
|
|
// ' places ') + "pour " + event_title + " ? </i></p>";
|
|
// confirm_message += '<br/><table width="100%">' + '<tr>' + '<td>' + '<label for="cancel-event-place" style="cursor:pointer;" id="cancel-event-place" > ' + $("#accordion-heading-es" + event_schedule_id).text() + ' </label>' + '</td>' + '</tr>' + '<tr>' + '<td>' + '<span> <b>Nombre de places réservées : </b> <b> <i>' + seats_reserved + (
|
|
// (seats_reserved[0] <= 1) ?
|
|
// ' place ' :
|
|
// ' places ') + '</i> </b> </span>' + '</td>' + '</tr>' + '</table><br/>';
|
|
// confirm_message += '</div><br/><br/>';
|
|
// }
|
|
|
|
app.modal.confirm_box({
|
|
title: app.get_vars()._app.modal.book_title,
|
|
className: 'my-modal-with-sm event-normal-registration-cont-modal',
|
|
message: confirm_message,
|
|
buttons: {
|
|
confirm: {
|
|
label: app.get_vars()._app.btn._confirm,
|
|
className: "btn-default-style"
|
|
},
|
|
cancel: {
|
|
label: app.get_vars()._app.btn._close,
|
|
className: "btn-default-style2"
|
|
}
|
|
},
|
|
_continue: function() {
|
|
var dialog;
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/subscribe/validate',
|
|
type: "POST",
|
|
data: {
|
|
event_id: eventDetails.event_id,
|
|
//event_schedule_id: event_schedule_id,
|
|
action: action,
|
|
seat_feature: seat_feature,
|
|
//check_subscription: check_subscription,
|
|
event_category: eventDetails.event_category,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
seats_reserved: seats_reserved,
|
|
//seats_reserved_orig: seats_reserved_orig,
|
|
process_id: process_id,
|
|
bp: bp,
|
|
//is_user_moderated: is_user_moderated,
|
|
},
|
|
beforeSend: function() {
|
|
var dialog = bootbox.dialog({
|
|
className: "waiting-modal",
|
|
message: '<p class="text-center"><i class="fa fa-fw fa-spin fa-spinner"/>' + app.get_vars()._app.notif.loading + '</p>',
|
|
closeButton: false,
|
|
onEscape: function() {}
|
|
});
|
|
//prevent page from reloading when reserving
|
|
$(window).on('beforeunload unload', function(event) {
|
|
event.preventDefault();
|
|
/* Act on the event */
|
|
subscribe.button.prevent_reload();
|
|
});
|
|
},
|
|
success: function(result) {
|
|
//remove unbefore unload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
|
|
bootbox.hideAll();
|
|
$("div.waiting-modal:visible, div.modal-backdrop:visible").hide();
|
|
|
|
if (app.isalive(result)) {
|
|
//refresh buttons
|
|
subscribe.button.change(eventDetails.event_id, 2, null);
|
|
// app._notify(result.mtype, result.message);
|
|
if (result.mtype == 'error') {
|
|
|
|
if (typeof(result.mdata) != "undefined" && result.mdata == 1) {
|
|
if (reg_type == 1) {
|
|
// subscribe.registration.add_or_modify.redirect_to_waitlist(btn, event_id, event_schedule_id, 2, action, 3, seat_feature, check_subscription, seats_reserved_orig);
|
|
}
|
|
}
|
|
} else if(result.mtype == 'success') {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/homepage/proceed_to_payment',
|
|
type: "POST",
|
|
data: {
|
|
event_id: eventDetails.event_id,
|
|
seats_reserved: seats_reserved
|
|
},
|
|
success: function(res){
|
|
window.location.href = app.get_vars().baseurl+'payment'
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
_close: function() {
|
|
|
|
var this_modal = $(".event-normal-registration-cont-modal");
|
|
this_modal.modal('hide');
|
|
this_modal.not(':last').remove();
|
|
$('.event-normal-registration-modal').modal("show");
|
|
}
|
|
});
|
|
},
|
|
|
|
"redirect_to_waitlist": function(btn, event_id, event_schedule_id, reg_type, action, process_type, seat_feature, check_subscription, seats_reserved_orig) {
|
|
app.modal.confirm_box({
|
|
title: app.get_vars()._app.modal.book_title,
|
|
message: app.get_vars()._app.modal.msg.confirm_register_waitlist,
|
|
buttons: {
|
|
confirm: {
|
|
label: app.get_vars()._app.btn._confirm,
|
|
className: "btn-default-style"
|
|
},
|
|
cancel: {
|
|
label: app.get_vars()._app.btn._close,
|
|
className: "btn-default-style2"
|
|
}
|
|
},
|
|
_continue: function() {
|
|
// subscribe.check_closed_event(btn, event_id, event_schedule_id, reg_type, action, process_type, seat_feature, check_subscription, seats_reserved_orig);
|
|
}
|
|
});
|
|
}
|
|
},
|
|
"add_or_modify_offrir": {
|
|
"reservation": function(eventDetails, seat_feature, action, process_type) {
|
|
const reg_type = 1
|
|
const bp = false
|
|
var serverData = {
|
|
event_id: eventDetails.event_id,
|
|
//event_schedule_id: event_schedule_id,
|
|
action: action, //1-register, 2-modify, 3- cancel
|
|
seat_feature: seat_feature,
|
|
//check_subscription: check_subscription,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
event_category: eventDetails.event_category,
|
|
workshop_session: eventDetails.workshop_session,
|
|
bp: bp,
|
|
//is_user_moderated: is_user_moderated,
|
|
};
|
|
/* This solution fixed the bug #24568 */
|
|
if (cached_process_id) {
|
|
serverData.process_id = cached_process_id;
|
|
cached_process_id = null;
|
|
}
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/subscribe/validate',
|
|
type: "POST",
|
|
data: serverData,
|
|
success: function(result) {
|
|
if(result.mtype === 'info') {
|
|
app._notify(result.mtype, result.message);
|
|
}
|
|
if (result.logged_out) {
|
|
window.location.replace('https://sdllmea-dev.wylog.com/login');
|
|
}
|
|
if (app.isalive(result)) {
|
|
if (result.mtype == "success")
|
|
{
|
|
/**
|
|
* Catch PAID event regular reservation
|
|
*/
|
|
if ( serverData.event_category === 'PAID_EVENT' && reg_type == 1 ) {
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
$(btn).prop("disabled", false);
|
|
$(btn).data('event_url') && window.open($(btn).data('event_url'), "_blank");
|
|
} else { // Regular event
|
|
let label, confBtnClass;
|
|
se = result.mdata.reservations ? result.mdata.reservations.seats_reserved : 0;
|
|
if (se > 0) {
|
|
confBtnClass = ((reg_type == 1) ? 'normal-ress' : 'reserve');
|
|
label = (reg_type == 1) ?
|
|
"Ajouter des places à ma réservation" :
|
|
app.get_vars()._app.btn._updatewaitlist;
|
|
} else {
|
|
confBtnClass = 'reserve';
|
|
label = (reg_type == 1) ?
|
|
app.get_vars()._app.btn._book :
|
|
app.get_vars()._app.btn._updatewaitlist;
|
|
}
|
|
|
|
$('#seats_reserved_text').text(seat_feature + (seat_feature>1?' places':' place'))
|
|
$('#address_text').text(eventDetails.event_address)
|
|
|
|
if(eventDetails.workshop_session== 'DISTANCE-PRESENTIEL' && subscribe.get_vars().session_type == 'soir-presentiel') {
|
|
$('#video_workshop_modal_content').hide()
|
|
$('#regular_workshop_modal_content').show()
|
|
} else if((eventDetails.workshop_session== 'DISTANCE-PRESENTIEL' && subscribe.get_vars().session_type == 'soir-distance') || eventDetails.workshop_session== 'DISTANCE') {
|
|
$('#video_workshop_modal_content').show()
|
|
$('#regular_workshop_modal_content').hide()
|
|
}
|
|
|
|
var form = $("#register-event-form");
|
|
/* Done waiting reserve */
|
|
$(".reserve-spinner").addClass("d-none");
|
|
$('.btn-reserve').removeAttr('disabled', true);
|
|
$('.btn-offer').removeAttr('disabled', true);
|
|
/* end */
|
|
bootbox.dialog({
|
|
// "title": subscribe.registration.options.title(reg_type, action, process_type),
|
|
"title": eventDetails.workshop_session == 'ENLIGNE' ?'Acheter le cours' : (eventDetails.workshop_session == 'DISTANCE-PRESENTIEL' ? 'Réserver le cours':subscribe.registration.options.title(reg_type, action, process_type)),
|
|
"className": "my-modal-with-sm event-normal-registration-modal custom-modal-ui table",
|
|
"message": form,
|
|
"cache": false,
|
|
"show": false,
|
|
/* We will show it manually later */
|
|
"buttons": [{
|
|
"label": app.get_vars()._app.btn._close,
|
|
"className": "btn btn-default-style2 btn-unlock-process",
|
|
"callback": function() {
|
|
//remove unbefore unload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
$('#chkbox-error').hide();
|
|
}
|
|
}, {
|
|
// "label": label,
|
|
"label": "Offrir",
|
|
"className": "btn btn-default-style mc-btn " + confBtnClass,
|
|
"callback": function() {
|
|
var seats_reserved = seat_feature //$('#number_of_seat_reserved').val();
|
|
var event_schedule = $('#schedule_id').val();
|
|
var seats_reserved_orig = parseInt($("#seats_reserved_info").data("seats_reserved"));
|
|
seats_reserved_orig = seats_reserved_orig ? seats_reserved_orig : 0;
|
|
|
|
if (parseInt(seats_reserved) >= 1 || eventDetails.workshop_session === 'ENLIGNE' || eventDetails.workshop_session === 'DISTANCE') {
|
|
$(".event-normal-registration-modal").modal('hide');
|
|
$("#chkbox-error").hide();
|
|
|
|
let validatedData = {
|
|
event_id: eventDetails.event_id,
|
|
action: action,
|
|
seat_feature: seat_feature ?? 1,
|
|
event_category: eventDetails.event_category,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
seats_reserved: seats_reserved ?? 1,
|
|
process_id: result.process_id,
|
|
workshop_session: eventDetails.workshop_session,
|
|
bp: bp
|
|
}
|
|
const paymentData = {
|
|
event_id: eventDetails.event_id,
|
|
seats_reserved: seats_reserved ?? 1,
|
|
booking: validatedData
|
|
}
|
|
subscribe.registration.add_or_modify.proceed_to_payment(paymentData)
|
|
//commented this to bypass saving booking before payment
|
|
//subscribe.registration.add_or_modify.confirm(eventDetails, reg_type, action, process_type, seat_feature, seats_reserved, result.process_id, bp);
|
|
|
|
} else {
|
|
$("#chkbox-error").show();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}]
|
|
}).on('shown.bs.modal', function() {
|
|
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
|
|
$('#numberofplaces').focus();
|
|
// $(this).off('shown.bs.modal');
|
|
}).on('hide.bs.modal', function(e) {
|
|
$('#chkbox-error').hide();
|
|
$(".event-normal-registration-cont-modal").modal("hide");
|
|
$('.event-normal-registration-modal').not(':last').remove();
|
|
$('.event-normal-registration-cont-modal').not(':last').remove();
|
|
|
|
$(this).off('hidden.bs.modal');
|
|
}).modal('show').init(function() {
|
|
$("#seats_reserved_info").hide().removeData("seats_reserved");
|
|
$("#numberofplaces").html('<option disabled="disabled" selected>' + (
|
|
(action == 'register') ?
|
|
"- Choisir le nombre de places -" :
|
|
"- Choisir le nombre de places à ajouter -") + '</option>');
|
|
//$(btn).prop("disabled", false);
|
|
|
|
//add event when browser/tab is closed or reloaded
|
|
subscribe.button.exitp.agent_closing({
|
|
process_id: result.process_id,
|
|
event_id: eventDetails.event_id,
|
|
action: 2,
|
|
process_type: process_type
|
|
});
|
|
|
|
$(this).find(".bootbox-close-button").addClass("btn-unlock-process");
|
|
$(".btn-unlock-process").off("click").on("click", function() {
|
|
if (bp) {
|
|
$('.event-moderation-modal').modal("show");
|
|
}
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
subscribe.button.lock_unlock({
|
|
data: {
|
|
process_id: result.process_id,
|
|
event_id: eventDetails.event_id,
|
|
action: 2,
|
|
process_type: process_type
|
|
}
|
|
});
|
|
});
|
|
|
|
//start the timer
|
|
subscribe.button.exitp.start(eventDetails.event_id, process_type, result.process_id);
|
|
|
|
subscribe.registration.options.seats(reg_type, action, process_type, result.mdata);
|
|
});
|
|
|
|
}
|
|
} else {
|
|
//remove the loading when modal shows up
|
|
//$('#waiting' + event_schedule_id).remove();
|
|
bootbox.hideAll();
|
|
app._notify(result.mtype, result.message);
|
|
//update buttons
|
|
subscribe.button.change(eventDetails.event_id, 2, null);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
"proceed_to_payment":function(data) {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/homepage/proceed_to_payment',
|
|
type: "POST",
|
|
data: data,
|
|
success: function(res){
|
|
window.location.href = app.get_vars().baseurl+'payment'
|
|
}
|
|
});
|
|
|
|
},
|
|
"confirm": function(eventDetails, reg_type, action, process_type, seat_feature, seats_reserved, process_id, bp = false, is_user_moderated = 0) {
|
|
$('span.send_reservation_data').click();
|
|
|
|
var event_title = eventDetails.title;
|
|
var confirm_message = "Voulez-vous réserver " + seats_reserved + (
|
|
(seats_reserved[0] <= 1) ?
|
|
' place ' :
|
|
' places ') + ((event_title == null) ? ' ' : 'pour ' + event_title ) + " ?";
|
|
// if (parseInt($("#event_cancel_registration" + event_schedule_id).data("seat-feature")) == 2) {
|
|
// confirm_message = '<div id="cancel-modal" style="margin-top:6px;"><p id="cancel-msg"><i>Voulez-vous réserver ' + seats_reserved + (
|
|
// (seats_reserved[0] <= 1) ?
|
|
// ' place ' :
|
|
// ' places ') + "pour " + event_title + " ? </i></p>";
|
|
// confirm_message += '<br/><table width="100%">' + '<tr>' + '<td>' + '<label for="cancel-event-place" style="cursor:pointer;" id="cancel-event-place" > ' + $("#accordion-heading-es" + event_schedule_id).text() + ' </label>' + '</td>' + '</tr>' + '<tr>' + '<td>' + '<span> <b>Nombre de places réservées : </b> <b> <i>' + seats_reserved + (
|
|
// (seats_reserved[0] <= 1) ?
|
|
// ' place ' :
|
|
// ' places ') + '</i> </b> </span>' + '</td>' + '</tr>' + '</table><br/>';
|
|
// confirm_message += '</div><br/><br/>';
|
|
// }
|
|
|
|
app.modal.confirm_box({
|
|
title: app.get_vars()._app.modal.book_title,
|
|
className: 'my-modal-with-sm event-normal-registration-cont-modal',
|
|
message: confirm_message,
|
|
buttons: {
|
|
confirm: {
|
|
label: app.get_vars()._app.btn._confirm,
|
|
className: "btn-default-style"
|
|
},
|
|
cancel: {
|
|
label: app.get_vars()._app.btn._close,
|
|
className: "btn-default-style2"
|
|
}
|
|
},
|
|
_continue: function() {
|
|
var dialog;
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/subscribe/validate',
|
|
type: "POST",
|
|
data: {
|
|
event_id: eventDetails.event_id,
|
|
//event_schedule_id: event_schedule_id,
|
|
action: action,
|
|
seat_feature: seat_feature,
|
|
//check_subscription: check_subscription,
|
|
event_category: eventDetails.event_category,
|
|
process_type: process_type,
|
|
session_type: subscribe.get_vars().session_type,
|
|
reg_type: reg_type,
|
|
request_type: 0,
|
|
seats_reserved: seats_reserved,
|
|
//seats_reserved_orig: seats_reserved_orig,
|
|
process_id: process_id,
|
|
bp: bp,
|
|
//is_user_moderated: is_user_moderated,
|
|
},
|
|
beforeSend: function() {
|
|
var dialog = bootbox.dialog({
|
|
className: "waiting-modal",
|
|
message: '<p class="text-center"><i class="fa fa-fw fa-spin fa-spinner"/>' + app.get_vars()._app.notif.loading + '</p>',
|
|
closeButton: false,
|
|
onEscape: function() {}
|
|
});
|
|
//prevent page from reloading when reserving
|
|
$(window).on('beforeunload unload', function(event) {
|
|
event.preventDefault();
|
|
/* Act on the event */
|
|
subscribe.button.prevent_reload();
|
|
});
|
|
},
|
|
success: function(result) {
|
|
//remove unbefore unload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
|
|
bootbox.hideAll();
|
|
$("div.waiting-modal:visible, div.modal-backdrop:visible").hide();
|
|
|
|
if (app.isalive(result)) {
|
|
//refresh buttons
|
|
subscribe.button.change(eventDetails.event_id, 2, null);
|
|
// app._notify(result.mtype, result.message);
|
|
if (result.mtype == 'error') {
|
|
|
|
if (typeof(result.mdata) != "undefined" && result.mdata == 1) {
|
|
if (reg_type == 1) {
|
|
// subscribe.registration.add_or_modify.redirect_to_waitlist(btn, event_id, event_schedule_id, 2, action, 3, seat_feature, check_subscription, seats_reserved_orig);
|
|
}
|
|
}
|
|
} else if(result.mtype == 'success') {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + 'events/homepage/proceed_to_payment',
|
|
type: "POST",
|
|
data: {
|
|
event_id: eventDetails.event_id,
|
|
seats_reserved: seats_reserved
|
|
},
|
|
success: function(res){
|
|
window.location.href = app.get_vars().baseurl+'payment'
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
_close: function() {
|
|
|
|
var this_modal = $(".event-normal-registration-cont-modal");
|
|
this_modal.modal('hide');
|
|
this_modal.not(':last').remove();
|
|
$('.event-normal-registration-modal').modal("show");
|
|
}
|
|
});
|
|
},
|
|
|
|
"redirect_to_waitlist": function(btn, event_id, event_schedule_id, reg_type, action, process_type, seat_feature, check_subscription, seats_reserved_orig) {
|
|
app.modal.confirm_box({
|
|
title: app.get_vars()._app.modal.book_title,
|
|
message: app.get_vars()._app.modal.msg.confirm_register_waitlist,
|
|
buttons: {
|
|
confirm: {
|
|
label: app.get_vars()._app.btn._confirm,
|
|
className: "btn-default-style"
|
|
},
|
|
cancel: {
|
|
label: app.get_vars()._app.btn._close,
|
|
className: "btn-default-style2"
|
|
}
|
|
},
|
|
_continue: function() {
|
|
// subscribe.check_closed_event(btn, event_id, event_schedule_id, reg_type, action, process_type, seat_feature, check_subscription, seats_reserved_orig);
|
|
}
|
|
});
|
|
}
|
|
},
|
|
|
|
options: {
|
|
|
|
"title": function(reg_type, action) {
|
|
if (reg_type == 1 && action == "register") {
|
|
return app.get_vars()._app.modal.title.register_title;
|
|
} else if (reg_type == 2 && action == "register") {
|
|
return app.get_vars()._app.modal.title.register_waitlist_title;
|
|
} else if (reg_type == 1 && action == "modify") {
|
|
return "Ajouter des places à ma réservation";
|
|
} else if (reg_type == 2 && action == "modify") {
|
|
return "Ajouter des places sur liste d'attente";
|
|
}
|
|
},
|
|
|
|
"validate_quota": function(reg_type, quota_seats, seats_reserved, remaining_seats) {
|
|
|
|
var seats_available = 0;
|
|
|
|
if (reg_type == 1) {
|
|
|
|
//check if seats per subscriber caters the remaining seats
|
|
if (quota_seats >= seats_reserved && remaining_seats > 0) {
|
|
if (quota_seats == seats_reserved) {
|
|
seats_available = 0;
|
|
} else {
|
|
seats_available = (quota_seats > seats_reserved) ?
|
|
quota_seats - seats_reserved :
|
|
quota_seats;
|
|
seats_available = (remaining_seats >= seats_available) ?
|
|
seats_available :
|
|
remaining_seats;
|
|
}
|
|
}
|
|
} else if (reg_type == 2) {
|
|
|
|
//check if quota_waiting_list_seat caters the seats_reserved
|
|
/* !note remaining seat here means as seat_per_subscriber */
|
|
var seats_per_subscriber = remaining_seats;
|
|
|
|
if (seats_per_subscriber >= seats_reserved && seats_per_subscriber > 0 && quota_seats > 0) {
|
|
|
|
if (seats_per_subscriber == seats_reserved) {
|
|
seats_available = 0;
|
|
} else {
|
|
seats_available = (seats_per_subscriber > seats_reserved) ?
|
|
seats_per_subscriber - seats_reserved :
|
|
(
|
|
(seats_per_subscriber > quota_seats) ?
|
|
quota_seats :
|
|
seats_per_subscriber);
|
|
seats_available = (quota_seats >= seats_available) ?
|
|
seats_available :
|
|
quota_seats;
|
|
}
|
|
}
|
|
}
|
|
return seats_available;
|
|
},
|
|
|
|
"datesFR": function() {
|
|
return {
|
|
"Monday": {
|
|
fr: "lundi"
|
|
},
|
|
"Tuesday": {
|
|
fr: "mardi"
|
|
},
|
|
"Wednesday": {
|
|
fr: "mercredi"
|
|
},
|
|
"Thursday": {
|
|
fr: "jeudi"
|
|
},
|
|
"Friday": {
|
|
fr: "vendredi"
|
|
},
|
|
"Saturday": {
|
|
fr: "samedi"
|
|
},
|
|
"Sunday": {
|
|
fr: "dimanche"
|
|
},
|
|
"January": {
|
|
fr: "janvier"
|
|
},
|
|
"February": {
|
|
fr: "février"
|
|
},
|
|
"March": {
|
|
fr: "mars"
|
|
},
|
|
"April": {
|
|
fr: "avril"
|
|
},
|
|
"May": {
|
|
fr: "mai"
|
|
},
|
|
"June": {
|
|
fr: "juin"
|
|
},
|
|
"July": {
|
|
fr: "juillet"
|
|
},
|
|
"August": {
|
|
fr: "août"
|
|
},
|
|
"September": {
|
|
fr: "septembre"
|
|
},
|
|
"October": {
|
|
fr: "octobre"
|
|
},
|
|
"November": {
|
|
fr: "novembre"
|
|
},
|
|
"December": {
|
|
fr: "décembre"
|
|
}
|
|
};
|
|
},
|
|
"use_diff_address": function(data) {
|
|
//translator
|
|
var translator = $('#event-box').translate({
|
|
lang: "fr",
|
|
t: subscribe.registration.options.datesFR()
|
|
});
|
|
|
|
if (data.reservation_end_date != null && data.reservation_end_date != "") {
|
|
|
|
//display end reservation date
|
|
var endresrvationdate = data.reservation_end_date;
|
|
var monthendreservationdate = data.end_reservation_month;
|
|
|
|
var startdate = data.start_date_time;
|
|
var enddate = data.end_date_time;
|
|
var startmonth = translator.get(data.event_start_month_name);
|
|
var endmonth = translator.get(data.end_month);
|
|
|
|
if (enddate == null) {
|
|
$("#event-date-modify").text($("#accordion-heading-es" + data.event_schedule_id).text());
|
|
} else {
|
|
$('#event-date-modify').html(Helper.event_date(startdate, enddate, startmonth, endmonth));
|
|
}
|
|
|
|
$("#event-end-reservation-date").show().html("<b>Date limite de réservation</b> <br/>" + Helper.start_date(endresrvationdate, startmonth.toLowerCase(), endmonth.toLowerCase()));
|
|
|
|
} else {
|
|
$("#event-end-reservation-date").hide();
|
|
}
|
|
//display address if there is
|
|
if (parseInt(data.use_different_address_per_date) == 1) {
|
|
|
|
var placename = data.event_place_name;
|
|
if (placename == '') {
|
|
$("#event-date-address").show().html("<b>Adresse :</b><br> " + data.event_address + ", " + data.city);
|
|
} else {
|
|
$("#event-date-address").show().html("<b>Adresse :</b><br> " + placename + ", " + data.event_address + ", " + data.city);
|
|
}
|
|
} else {
|
|
var placename = data.event_place_name;
|
|
if (placename == '') {
|
|
$("#event-date-address").show().html("<b>Adresse :</b><br> " + data.event_address + ", " + data.city);
|
|
} else {
|
|
$("#event-date-address").show().html("<b>Adresse :</b><br> " + placename + ", " + data.event_address + ", " + data.city);
|
|
}
|
|
}
|
|
},
|
|
|
|
"seats": function(reg_type, action, process_type, data) {
|
|
//Places checkboxes
|
|
var seats_available = 0;
|
|
|
|
if (action == "register") {
|
|
// Title
|
|
$('#register-event-title').html(data.title);
|
|
//Event Details
|
|
$('#schedule_id').val(data.event_schedule_id);
|
|
//$("#event-date-modify").text($("#accordion-heading-es" + data.event_schedule_id.toLowerCase()).text());
|
|
|
|
subscribe.registration.options.use_diff_address(data);
|
|
|
|
if (reg_type == 1) { //regular registration
|
|
var seats_per_subscriber = parseInt(data.seats_per_subscriber);
|
|
var remaining_seats = parseInt(data.remaining_seat);
|
|
//check if seats per subscriber caters the remaining seats
|
|
seats_available = (seats_per_subscriber > remaining_seats) ?
|
|
remaining_seats :
|
|
seats_per_subscriber;
|
|
} else if (reg_type == 2) { // waiting list registration
|
|
var seats_per_subscriber = parseInt(data.seats_per_subscriber);
|
|
var quota_waiting_list_seat = parseInt(data.quota_waiting_list_seat);
|
|
|
|
seats_available = (seats_per_subscriber > quota_waiting_list_seat) ?
|
|
quota_waiting_list_seat :
|
|
seats_per_subscriber;
|
|
}
|
|
|
|
} else if (action == "modify") {
|
|
|
|
var seats_reserved = parseInt(data.reservations.seats_reserved);
|
|
if (reg_type == 1) {
|
|
seats_available = subscribe.registration.options.validate_quota(reg_type, parseInt(data.event_schedule.seats_per_subscriber), parseInt(data.reservations.seats_reserved), parseInt(data.event_schedule.remaining_seat));
|
|
} else if (reg_type == 2) {
|
|
//check if quota_waiting_list_seat caters the seats_reserved
|
|
seats_available = subscribe.registration.options.validate_quota(reg_type, parseInt(data.event_schedule.quota_waiting_list_seat), parseInt(data.reservations.seats_reserved), parseInt(data.event_schedule.seats_per_subscriber));
|
|
}
|
|
|
|
// Title
|
|
$('#register-event-title').html(data.event_schedule.title);
|
|
//Event Details
|
|
$("#event-date-modify").text($("#accordion-heading-es" + data.event_schedule.event_schedule_id).text());
|
|
$('#schedule_id').val(data.event_schedule.event_schedule_id);
|
|
subscribe.registration.options.use_diff_address(data.event_schedule);
|
|
$("tr#seats_reserved_info").data("seats_reserved", seats_reserved).show();
|
|
$("span#seats_reserved_text").html(`<span class="seats">${seats_reserved}</span>` + (
|
|
(seats_reserved <= 1)
|
|
? ' place '
|
|
: ' places '));
|
|
}
|
|
|
|
var numberofplaces = $('#numberofplaces');
|
|
numberofplaces.on("change", function() {
|
|
$('#chkbox-error').hide();
|
|
});
|
|
|
|
for (var x = 1; x <= seats_available; x++) {
|
|
numberofplaces.append('<option value="' + x + '">' + x + (
|
|
(x <= 1)
|
|
? ' place '
|
|
: ' places ') + '</option>');
|
|
}
|
|
},
|
|
|
|
"translate_date": {
|
|
"getscheds": function(event_id, isEventOpen) {
|
|
sched = $.ajax({
|
|
url: app.get_vars().baseurl + "events/homepage/check_all_sched",
|
|
type: "GET",
|
|
async: false,
|
|
data: {
|
|
event_id: event_id,
|
|
isEventOpen: isEventOpen
|
|
},
|
|
success: function(result) {
|
|
return result;
|
|
}
|
|
});
|
|
},
|
|
"init": function(event_schedule) {
|
|
|
|
//translator
|
|
var translator = $('#event-box').translate({
|
|
lang: "fr",
|
|
t: subscribe.registration.options.datesFR()
|
|
});
|
|
|
|
var date_in_french = "",
|
|
event_start_hour = "",
|
|
event_end_hour = "",
|
|
event_end_day = "";
|
|
|
|
// check if 12am
|
|
var patt = new RegExp("00h00");
|
|
|
|
// This is for Multidate Event
|
|
if (parseInt(event_schedule.date_feature) == 2) {
|
|
|
|
let isEventOpen = (parseInt(event_schedule.back_office_status) >= 4) ? false:true;
|
|
subscribe.registration.options.translate_date.getscheds(event_schedule.event_id, isEventOpen);
|
|
var diffyear = '';
|
|
let event_end_date = JSON.parse("["+sched.responseJSON[0].event_end_date+"]");
|
|
|
|
/**
|
|
* check: event id 727 for bug
|
|
* if there's an end date,
|
|
* meaning the start date is not equal to the end date
|
|
*/
|
|
if (event_end_date[0].end_date) {
|
|
if (sched.responseJSON[0].min_date_year != event_end_date[0].max_mdate_year) {
|
|
diffyear = sched.responseJSON[0].min_date_year;
|
|
}
|
|
|
|
evdate_start = "Du " + translator.get(sched.responseJSON[0].min_start_day) + ' ' + sched.responseJSON[0].min_start_date + ' ' + translator.get(sched.responseJSON[0].min_start_date_month).toLowerCase() + ' ' + diffyear + ' ' + sched.responseJSON[0].min_start_date_hour;
|
|
evdate_end = "au " + translator.get(event_end_date[0].max_end_date_day) + ' ' + event_end_date[0].max_mdate_date + ' ' + translator.get(event_end_date[0].max_mdate_month).toLowerCase() + ' ' + event_end_date[0].max_mdate_year + ' ' + event_end_date[0].end_mdate_hour;
|
|
date_in_french = evdate_start + ' ' + evdate_end;
|
|
|
|
} else { // same month, day and year
|
|
evdate_start = "Le " + translator.get(sched.responseJSON[0].min_start_day) + ' ' + sched.responseJSON[0].min_start_date + ' ' + translator.get(sched.responseJSON[0].min_start_date_month).toLowerCase() + ' ' + sched.responseJSON[0].min_date_year + ' ' + sched.responseJSON[0].start_date_hour;
|
|
evdate_end = ' ' + event_end_date[0].end_mdate_hour;
|
|
date_in_french = evdate_start + ' ' + evdate_end;
|
|
}
|
|
|
|
} else { //this for single date event
|
|
// console.log('Single Event',event_schedule.event_id);
|
|
if ((event_schedule.start_date_hour == "" || event_schedule.start_date_hour == null || patt.test(event_schedule.start_date_hour) == true) && (event_schedule.end_date_hour == "" || event_schedule.end_date_hour == null || patt.test(event_schedule.end_date_hour) == true)) {
|
|
event_start_hour = ' ';
|
|
} else if ((event_schedule.start_date_hour != "" || event_schedule.start_date_hour != null || patt.test(event_schedule.start_date_hour) == false) && (event_schedule.end_date_hour == "" || event_schedule.end_date_hour == null || patt.test(event_schedule.end_date_hour) == true)) {
|
|
event_start_hour = " à " + (
|
|
(event_schedule.start_date_hour != null && event_schedule.start_date_hour != "") ?
|
|
" " + event_schedule.start_date_hour :
|
|
' ');
|
|
} else if ((event_schedule.start_date_hour == "" || event_schedule.start_date_hour == null || patt.test(event_schedule.start_date_hour) == true) && (event_schedule.end_date_hour != "" || event_schedule.end_date_hour != null || patt.test(event_schedule.end_date_hour) == false)) {
|
|
event_end_hour = " à " + (
|
|
(event_schedule.end_date_hour != null && event_schedule.end_date_hour != "") ?
|
|
event_schedule.end_date_hour :
|
|
' ');
|
|
} else if ((event_schedule.start_date_hour != "" || event_schedule.start_date_hour != null || patt.test(event_schedule.start_date_hour) == false) && (event_schedule.end_date_hour != "" || event_schedule.end_date_hour != null || patt.test(event_schedule.end_date_hour) == false)) {
|
|
|
|
if (event_schedule.start_date != event_schedule.end_date) {
|
|
event_start_hour = " à " + (
|
|
(event_schedule.start_date_hour != null && event_schedule.start_date_hour != "") ?
|
|
" " + event_schedule.start_date_hour :
|
|
' ');
|
|
event_end_hour = " à " + (
|
|
(event_schedule.end_date_hour != null && event_schedule.end_date_hour != "") ?
|
|
event_schedule.end_date_hour :
|
|
' ');
|
|
|
|
} else {
|
|
event_start_hour = " de " + (
|
|
(event_schedule.start_date_hour != null && event_schedule.start_date_hour != "") ?
|
|
" " + event_schedule.start_date_hour :
|
|
' ');
|
|
event_end_hour = " à " + (
|
|
(event_schedule.end_date_hour != null && event_schedule.end_date_hour != "") ?
|
|
event_schedule.end_date_hour :
|
|
' ');
|
|
}
|
|
}
|
|
|
|
var evdate_start = '';
|
|
var evdate_end = '';
|
|
|
|
if (event_schedule.end_day != "" && event_schedule.end_day != null && parseInt(event_schedule.end_day) != 0) {
|
|
event_end_day = " au " + (
|
|
(event_schedule.end_day != null && event_schedule.end_day != "") ?
|
|
event_schedule.end_day + " " :
|
|
" ") + " ";
|
|
} else {
|
|
event_end_day = ' ';
|
|
}
|
|
|
|
if (event_schedule.start_date == event_schedule.end_date || parseInt(event_schedule.end_date) == 0) {
|
|
// Le XX Septembre XXXX 8h00 jusq'au XX October XXXX 12h00
|
|
// Du 28 octobre au 29 octobre 2016 de 20h30 Ã 23h00
|
|
date_in_french += "Le " + translator.get(event_schedule.day) + " ";
|
|
date_in_french += translator.get(event_schedule.start_day) + ' ';
|
|
date_in_french += translator.get(event_schedule.event_start_month_name).toLowerCase() + ' ' + event_schedule.end_year + ' ' + event_start_hour + ' ' + event_end_hour;
|
|
} else {
|
|
// Le 28 Septembre 1995 de 8h00 a 12h00
|
|
// Du 28 octobre 2016 de 20h30 Ã 22h30
|
|
if (event_schedule.start_month == event_schedule.end_month) {
|
|
date_in_french += " " + event_schedule.start_day + " " + event_end_day + " ";
|
|
date_in_french += translator.get(event_schedule.end_month).toLowerCase();
|
|
date_in_french += " " + event_schedule.end_year;
|
|
// ." de ".$event_schedule->start_date_hour." Ã ".$event_schedule->end_date_hour;
|
|
|
|
} else if (event_schedule.start_year != event_schedule.end_year && event_schedule.end_year == '') {
|
|
date_in_french += "Le " + translator.get(event_schedule.day) + " ";
|
|
date_in_french += event_schedule.start_day + ' ' + translator.get(event_schedule.event_start_month_name).toLowerCase();
|
|
date_in_french += " " + event_schedule.start_year + " " + event_end_day;
|
|
date_in_french += translator.get(event_schedule.end_month).toLowerCase();
|
|
date_in_french += " " + event_schedule.end_year; //." de ".$event_schedule->start_date_hour." Ã ".$event_schedule->end_date_hour;
|
|
date_in_french += " " + event_start_hour;
|
|
} else if (event_schedule.end_year != null && event_schedule.start_year != event_schedule.end_year) {
|
|
date_in_french += "Du " + translator.get(event_schedule.day) + " ";
|
|
date_in_french += event_schedule.start_day + ' ' + translator.get(event_schedule.event_start_month_name).toLowerCase();
|
|
date_in_french += " " + event_schedule.start_year;
|
|
date_in_french += " " + event_start_hour;
|
|
date_in_french += " au " + translator.get(event_schedule.endday) + " ";
|
|
date_in_french += event_schedule.end_day + ' ' + translator.get(event_schedule.end_month).toLowerCase();
|
|
date_in_french += " " + event_schedule.end_year; //." de ".$event_schedule->start_date_hour." Ã ".$event_schedule->end_date_hour;
|
|
date_in_french += " " + event_end_hour;
|
|
} else {
|
|
|
|
evdate_start = "Du " + translator.get(event_schedule.day) + ' ' + event_schedule.start_day + ' ' + translator.get(event_schedule.event_start_month_name).toLowerCase();
|
|
|
|
evdate_end = "au " + translator.get(event_schedule.endday) + ' ' + event_schedule.end_day + ' ' + translator.get(event_schedule.end_month).toLowerCase() + ' ' + event_schedule.end_year;
|
|
|
|
if (evdate_start != '' && evdate_end != '') {
|
|
date_in_french = evdate_start + ' ' + (
|
|
event_start_hour != '' ?
|
|
event_start_hour :
|
|
'') + ' ' + (
|
|
evdate_end != '' ?
|
|
evdate_end :
|
|
'') + ' ' + event_end_hour;
|
|
} else {
|
|
date_in_french += (
|
|
(event_start_hour != null && event_start_hour != "") ?
|
|
event_start_hour :
|
|
" ") + " " + (
|
|
(event_end_hour != null && event_end_hour != "") ?
|
|
event_end_hour :
|
|
" ");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return date_in_french;
|
|
},
|
|
|
|
french: function(date) {
|
|
var eng = [
|
|
'January',
|
|
'February',
|
|
'March',
|
|
'April',
|
|
'May',
|
|
'June',
|
|
'July',
|
|
'August',
|
|
'September',
|
|
'October',
|
|
'November',
|
|
'December',
|
|
'/'
|
|
];
|
|
var fr = [
|
|
'janvier',
|
|
'février',
|
|
'mars',
|
|
'avril',
|
|
'mai',
|
|
'juin',
|
|
'juillet',
|
|
'août',
|
|
'septembre',
|
|
'octobre',
|
|
'novembre',
|
|
'décembre',
|
|
' '
|
|
];
|
|
|
|
return (date != null && date != "") ?
|
|
date.replace(eng, fr) + " " :
|
|
" ";
|
|
}
|
|
},
|
|
|
|
"create_list": {
|
|
"check_uncheck": function(e, event_schedule_id, index) {
|
|
|
|
var checked = $("#invitee" + event_schedule_id + '-' + index);
|
|
if (checked.prop("checked")) { //unchecked
|
|
if (index == 1) {
|
|
$(".invitee" + event_schedule_id).prop("checked", false);
|
|
} else {
|
|
$("#invitee" + event_schedule_id + '-' + 1).prop("checked", false);
|
|
checked.prop("checked", false);
|
|
}
|
|
//when nothing is clicked
|
|
if ($(".invitee" + event_schedule_id + ":checked").length <= 0) {
|
|
$("#cancel-event-message").html("<span id='cancel-event-ermsg' style='color:red;'>Vérifiez le nombre de places que vous souhaitez annuler.</span>");
|
|
}
|
|
} else { //checked
|
|
$("#cancel-event-ermsg").remove();
|
|
if (index == 1) {
|
|
$(".invitee" + event_schedule_id).prop("checked", true);
|
|
} else {
|
|
$("#invitee" + event_schedule_id + '-' + 1).prop("checked", false);
|
|
checked.prop("checked", true);
|
|
}
|
|
}
|
|
},
|
|
"seats_reserved": function(reservation) {
|
|
if (reservation.seats_reserved > 0) {
|
|
var labelText = (parseInt(reservation.reg_type) == 1) ?
|
|
"Ma réservation complète" :
|
|
"Mon inscription complète",
|
|
html = "";
|
|
for (var x = 1; x <= reservation.seats_reserved; x++) {
|
|
if (x > 1) {
|
|
labelText = (parseInt(reservation.reg_type) == 1) ?
|
|
"La réservation de mon invité " + (
|
|
x - 1) :
|
|
"L’inscription de mon invité " + (
|
|
x - 1);
|
|
}
|
|
html += '<li class="subscribe-check-uncheck has-child-checkbox" data-event-schedule-id ="' + reservation.event_schedule_id + '" data-index="' + x + '">' +
|
|
'<input data-event-schedule-id ="' + reservation.event_schedule_id +
|
|
'" data-index="' + x + '" ' + 'style="cursor:pointer;" data-seats_reserved="' + reservation.seats_reserved +
|
|
'" data-reg_type="' + reservation.reg_type +
|
|
'" id="invitee' + reservation.event_schedule_id + '-' + x + '" ' +
|
|
'type="checkbox" name="reservation_' + reservation.event_schedule_id + '[]" ' +
|
|
'class="subscribe-check-uncheck has-child-checkbox cb radio-btn reg-invitee invitee' + reservation.event_schedule_id +
|
|
'" value="' + x + '"/>' +
|
|
' ' +
|
|
labelText +
|
|
'</li>';
|
|
}
|
|
return html;
|
|
}
|
|
}
|
|
},
|
|
|
|
"refresh_buttons": function(result) {
|
|
var shown_dates = [];
|
|
$.each($("#event-desc").find("a.accordion-toggle"), function(index, value) {
|
|
var _this = $(this);
|
|
if (!_this.hasClass("collapsed")) {
|
|
shown_dates.push(_this.parent().parent().prop("id"));
|
|
}
|
|
});
|
|
localStorage.setItem("collapsed-dates", JSON.stringify(shown_dates));
|
|
localStorage.setItem("result", JSON.stringify(result));
|
|
window.setTimeout(function() {
|
|
location.reload();
|
|
}, 250);
|
|
// location.reload();
|
|
}
|
|
},
|
|
|
|
"cancel": {
|
|
"event": function(btn, event_id, event_schedule_id, reg_type, process_type, action, seat_feature, bp = false) {
|
|
var serverData = {
|
|
event_id: event_id,
|
|
event_schedule_id: event_schedule_id,
|
|
reg_type: reg_type,
|
|
event_category: $(btn).data('event-cat'),
|
|
action: action,
|
|
process_type: process_type,
|
|
bp: bp
|
|
};
|
|
/* This solution fixed the bug #24568 */
|
|
if (cached_process_id)
|
|
serverData.process_id = cached_process_id;
|
|
cached_process_id = null;
|
|
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "events/subscribe/validate",
|
|
type: "POST",
|
|
data: serverData,
|
|
success: function(result) {
|
|
if (app.isalive(result)) {
|
|
|
|
if (result.mtype == "success") {
|
|
|
|
if (typeof(result.mdata.seats_reserved) != "undefined") {
|
|
|
|
/**
|
|
* Catch PAID event cancel regular reservation
|
|
* process_type: 2 = cancel regular reservation
|
|
*/
|
|
if ( serverData.event_category === 'PAID_EVENT' && process_type == 2 ) {
|
|
|
|
//remove the loading when modal shows up
|
|
$('#waiting' + event_schedule_id).remove();
|
|
$(".cancel-registration-modal").modal("hide");
|
|
$(btn).prop("disabled", false);
|
|
$(btn).data('event_url') && window.open($(btn).data('event_url'), "_blank");
|
|
|
|
} else { // Regular event
|
|
|
|
bootbox.dialog({
|
|
"title": (reg_type == 1) ?
|
|
"MODIFIER OU ANNULER MA RÉSERVATION" :
|
|
"Modifier ou annuler mon inscription sur liste d'attente",
|
|
// ? "ANNULER VOTRE RÉSERVATION"
|
|
// : "ANNULER MON INSCRIPTION SUR LISTE D’ATTENTE",
|
|
"className": "my-modal-with-sm cancel-registration-modal",
|
|
"message": $("#cancel-registration-form"),
|
|
"show": false,
|
|
/* We will show it manually later */
|
|
"buttons": [{
|
|
"label": app.get_vars()._app.btn._close,
|
|
"className": "btn btn-default-style2 btn-unlock-process",
|
|
"callback": function() {
|
|
//remove prevent page reload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
$('#cancel-guest-list').empty();
|
|
$('#cancel-guest-checkboxes').empty();
|
|
}
|
|
}, {
|
|
"label": app.get_vars()._app.btn._confirm,
|
|
"className": "btn btn-default-style",
|
|
"callback": function() {
|
|
var cancellation_info = {
|
|
"event_schedule_id": event_schedule_id,
|
|
"process_type": process_type,
|
|
"seats_reserved": result.mdata.seats_reserved,
|
|
"action": action,
|
|
"seats_cancelled": $('.invitee' + event_schedule_id + ':checked').length,
|
|
"event_id": event_id,
|
|
"seat_feature": seat_feature,
|
|
"event_category": $(btn).data('event-cat'),
|
|
"process_id": result.process_id,
|
|
"reg_type": reg_type //3=cancellation
|
|
};
|
|
|
|
$("#cancel-event-message").html("");
|
|
if (cancellation_info.seats_cancelled > 0) {
|
|
|
|
$(this).modal('hide');
|
|
subscribe.registration.cancel.confirm(btn, cancellation_info);
|
|
} else {
|
|
$("#cancel-event-message").html("<span id='cancel-event-ermsg' style='color:red;'>Vérifiez le nombre de places que vous souhaitez annuler.</span>");
|
|
}
|
|
return false;
|
|
}
|
|
}]
|
|
}).on('shown.bs.modal', function() {
|
|
//remove the loading when modal shows up
|
|
$('#waiting' + event_schedule_id).remove();
|
|
$(this).off('shown.bs.modal');
|
|
}).on('hide.bs.modal', function(e) {
|
|
$('#cancel-event-message').html("");
|
|
var cont_modal = $(".cancel-registration-cont-modal");
|
|
cont_modal.modal("hide");
|
|
$('.cancel-registration-modal').not(':last').remove();
|
|
cont_modal.not(':last').remove();
|
|
app.modal.focusout_solution("off");
|
|
$(this).data('bs.modal', null);
|
|
$(this).off('hidden.bs.modal');
|
|
}).modal('show').init(function() {
|
|
$("#accordion_cancel_event_list").empty();
|
|
app.modal.focusout_solution("on");
|
|
$(btn).prop("disabled", false);
|
|
$(this).find(".bootbox-close-button").addClass("btn-unlock-process");
|
|
$(".btn-unlock-process").off("click").on("click", function() {
|
|
//if by pass is active
|
|
if (bp) {
|
|
$('.event-moderation-modal').modal("show");
|
|
}
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
subscribe.button.lock_unlock({
|
|
data: {
|
|
process_id: result.process_id,
|
|
event_id: event_id,
|
|
action: 2,
|
|
process_type: process_type
|
|
}
|
|
});
|
|
});
|
|
|
|
//add event when browser/tab is closed or reloaded
|
|
subscribe.button.exitp.agent_closing({
|
|
process_id: result.process_id,
|
|
event_id: event_id,
|
|
action: 2,
|
|
process_type: process_type
|
|
});
|
|
|
|
//start the timer
|
|
subscribe.button.exitp.start(event_id, process_type, result.process_id);
|
|
|
|
$('#cancel-event-title').html($("#event-title").text());
|
|
//display reservations
|
|
$('#accordion_cancel_event_list').html('<div class="eventdatemodal">' + '<strong id="cancel-event-place' + event_schedule_id + '">' + ' ' + $("#accordion-heading-es" + event_schedule_id).text() + ' </strong>' + '</div>' + '<hr>' + '<div class="col-md-12">' + '<p> Je souhaite annuler :</p>' + '</div>' + '<div class="col-md-12">' + '<ul id="cancel-reservation-checkboxes" class="list-unstyled">' + subscribe.registration.options.create_list.seats_reserved(result.mdata) + '</ul>' + '</div>');
|
|
});
|
|
}
|
|
|
|
} else {
|
|
|
|
$(btn).prop("disabled", false);
|
|
//remove the loading when modal shows up
|
|
$('#waiting' + event_schedule_id).remove();
|
|
|
|
$(".cancel-registration-modal").modal("hide");
|
|
//update button status
|
|
subscribe.button.change(event_id, 2, null);
|
|
}
|
|
|
|
} else {
|
|
$(btn).prop("disabled", false);
|
|
//remove the loading when modal shows up
|
|
$('#waiting' + event_schedule_id).remove();
|
|
|
|
app._notify(result.mtype, result.message);
|
|
//update button status
|
|
subscribe.button.change(event_id, 2, null);
|
|
}
|
|
} //is alive
|
|
} //end of success
|
|
});
|
|
},
|
|
|
|
"confirm": function(btn, cancellation_info) {
|
|
var confirm_message = "";
|
|
//reload grid
|
|
if (typeof cancellation_info.seats_cancelled == 'undefined') {
|
|
confirm_message = "Vous êtes sur le point d'annuler votre réservation sur l'événement " + $("#event-title").text();
|
|
} else {
|
|
confirm_message = "Souhaitez-vous confirmer l’annulation de " + cancellation_info.seats_cancelled + (
|
|
(cancellation_info.seats_cancelled <= 1) ?
|
|
' place ' :
|
|
' places ') + "pour " + $("#event-title").text() + "?";
|
|
}
|
|
|
|
app.modal.confirm_box({
|
|
title: app.get_vars()._app.modal.title.cancellation_title,
|
|
message: confirm_message,
|
|
className: ' my-modal-with-sm cancel-registration-cont-modal',
|
|
buttons: {
|
|
confirm: {
|
|
label: app.get_vars()._app.btn._confirm,
|
|
className: "btn-default-style"
|
|
},
|
|
cancel: {
|
|
label: app.get_vars()._app.btn._close,
|
|
className: "btn-default-style2"
|
|
}
|
|
},
|
|
_continue: function() {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "events/subscribe/validate",
|
|
type: "POST",
|
|
data: cancellation_info,
|
|
beforeSend: function() {
|
|
var dialog = bootbox.dialog({
|
|
className: 'waiting-modal',
|
|
message: '<p class="text-center"><i class="fa fa-spin fa-fw fa-spinner"/> ' + app.get_vars()._app.notif.loading + '</p>',
|
|
closeButton: false
|
|
});
|
|
|
|
//prevent page from reloading when reserving
|
|
$(window).on('beforeunload unload', function(event) {
|
|
event.preventDefault();
|
|
/* Act on the event */
|
|
subscribe.button.prevent_reload();
|
|
});
|
|
},
|
|
success: function(result) {
|
|
//remove unbefore unload
|
|
$(window).off("beforeunload").off("unload");
|
|
//reset the timer when everything goes well
|
|
subscribe.button.exitp.clear({});
|
|
// clearTimeout(process_request);
|
|
|
|
bootbox.hideAll();
|
|
$("div.waiting-modal:visible, div.modal-backdrop:visible").hide();
|
|
|
|
if (app.isalive(result)) {
|
|
//update button status
|
|
subscribe.button.change(cancellation_info.event_id, 2, null);
|
|
app._notify(result.mtype, result.message);
|
|
|
|
if (result.mtype == "success") {
|
|
$("#event_cancel_registration").remove();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
_close: function() {
|
|
var cont_modal = $(".cancel-registration-cont-modal");
|
|
cont_modal.modal("hide");
|
|
cont_modal.not(':last').remove();
|
|
$('.cancel-registration-modal').modal("show");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
"button": {
|
|
|
|
"prevent_reload": function() {
|
|
// console.log('prevent reload executed...');
|
|
return "Still processing...";
|
|
},
|
|
|
|
"exitp": {
|
|
agent_closing: function(data) { //basically, browser closing
|
|
// console.log('agent closing executed....pr => ' + process_request);
|
|
var onBeforeUnLoadEvent = false;
|
|
window.onunload = window.onbeforeunload = function() {
|
|
if (!onBeforeUnLoadEvent) {
|
|
onBeforeUnLoadEvent = true;
|
|
//your code here
|
|
subscribe.button.lock_unlock({
|
|
data: data,
|
|
async: false,
|
|
success: function() {
|
|
// console.log('closing user agent instance...');
|
|
}
|
|
});
|
|
} //end of if
|
|
};
|
|
},
|
|
|
|
init: function(event_id, process_type, process_id) {
|
|
// console.log('init executed....pr => ' + process_request);
|
|
if (typeof process_id != "undefined") {
|
|
cached_process_id = process_id;
|
|
}
|
|
$.ajax({
|
|
async: true,
|
|
type: "POST",
|
|
url: app.get_vars().baseurl + 'events/subscribe/exitp',
|
|
data: {
|
|
event_id: event_id,
|
|
process_type: process_type,
|
|
process_id: process_id
|
|
},
|
|
error: function() {
|
|
// console.log('Close notification error');
|
|
},
|
|
success: function(data) {
|
|
if (data)
|
|
subscribe.button.exitp.start(event_id, process_type, process_id);
|
|
else
|
|
clearTimeout(process_request);
|
|
}
|
|
});
|
|
},
|
|
start: function(event_id, process_type, process_id) {
|
|
// console.log('start executed...pr => ' + process_request);
|
|
clearTimeout(process_request);
|
|
// check time every after 1mins
|
|
process_request = setTimeout(function() {
|
|
subscribe.button.exitp.init(event_id, process_type, process_id);
|
|
}, 1 * 60 * 1000);
|
|
},
|
|
clear: function() {
|
|
// clears the unload and onbeforeunload event
|
|
// resolves Dev # 15880 issue regarding prevent page load because data will not be saved
|
|
window.onunload = window.onbeforeunload = null;
|
|
window.clearTimeout(process_request);
|
|
}
|
|
},
|
|
|
|
"not_allowed_to_book": function() {
|
|
app._notify("warning", "Les réservations pour cet événement sont limitées à une seule date par abonné. Si vous souhaitez changer de date de réservation, vous devez annuler votre réservation en cours puis effectuer une nouvelle réservation sur la date désirée.")
|
|
},
|
|
|
|
"register_or_modify": function(e, reg_type, action, process_type, seat_feature, check_subscription) {
|
|
// action def : 1=register, 2=modify
|
|
var btn_action = (parseInt(action) == 1) ?
|
|
"register" :
|
|
(
|
|
(parseInt(action) == 2) ?
|
|
"modify" :
|
|
"cancel"),
|
|
_this = $(e.target),
|
|
event_id = _this.data('event-id'),
|
|
event_schedule_id = _this.data('event-schedule-id');
|
|
const eventCat = $(e.target).data('event-cat');
|
|
|
|
if (eventCat && EVENT_CAT.includes(eventCat)) {
|
|
|
|
// Add waiting text and disable button to avoid click bubbling
|
|
_this.html('<i class="fa fa-spin fa-fw fa-spinner" id="waiting' + event_schedule_id + '"/>' + _this.text()).prop("disabled", true);
|
|
|
|
// register
|
|
if (parseInt(action) == 1) {
|
|
// Check if reservation is possible
|
|
if (eventCat && eventCat === 'PAID_EVENT') {
|
|
subscribe.registration.add_or_modify.reservation(e.target, event_id, event_schedule_id, reg_type, btn_action, process_type, seat_feature, check_subscription, false);
|
|
} else {
|
|
subscribe.button.moderation.check(event_id, event_schedule_id).done(function(jsondata) {
|
|
if (jsondata.allowed) {
|
|
subscribe.registration.add_or_modify.reservation(e.target, event_id, event_schedule_id, reg_type, btn_action, process_type, seat_feature, check_subscription, false, jsondata.is_user_moderated);
|
|
} else {
|
|
_this.prop("disabled", false);
|
|
$("#waiting" + event_schedule_id).remove();
|
|
subscribe.button.moderation.message(jsondata);
|
|
}
|
|
});
|
|
}
|
|
|
|
} else {
|
|
//modify reservation
|
|
if (eventCat && eventCat === 'PAID_EVENT') {
|
|
subscribe.registration.add_or_modify.reservation(e.target, event_id, event_schedule_id, reg_type, btn_action, process_type, seat_feature, check_subscription, false);
|
|
} else {
|
|
subscribe.button.moderation.check(event_id, event_schedule_id).done(function(jsondata) {
|
|
subscribe.registration.add_or_modify.reservation(e.target, event_id, event_schedule_id, reg_type, btn_action, process_type, seat_feature, check_subscription, false, jsondata.is_user_moderated);
|
|
});
|
|
}
|
|
}
|
|
} else {
|
|
app._notify("error", "Cannot process request, unknown event category.")
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Moderation Object
|
|
*/
|
|
"moderation": {
|
|
/**
|
|
* Check if reservation is to be moderated
|
|
*
|
|
* @param {*} event_id
|
|
* @param {*} event_schedule_id
|
|
* @param {*} subscribe
|
|
*
|
|
* access private member
|
|
*/
|
|
"check": function(event_id, event_schedule_id) {
|
|
return $.ajax({
|
|
url: app.get_vars().baseurl + `checking_moderation/${event_id}/${event_schedule_id}`,
|
|
type: "GET",
|
|
async: false
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Display dialog box when reservation is moderated
|
|
*
|
|
* @param {*} jsondata
|
|
*/
|
|
"message": function(jsondata) {
|
|
var msg = `<p>You can not reserve any seats for this event since this one have been moderated and you reach the quota of reservation or of noshow </p>
|
|
<p>You can have access to all your moderation information in clicking on the button "my reservation". </p>
|
|
<p>However you can at least reserve in the waiting list without warranty that some seats will be vacant in last minutes.</p>
|
|
<p>Thank you for your understanding</p>`;
|
|
if (jsondata.nr_exceeded) {
|
|
/*Set the data for the dynamic fields*/
|
|
|
|
/*Name of user*/
|
|
// $('.first_name').html(app.get_vars()._app.msg.first_name);
|
|
|
|
/*Set dynamic data*/
|
|
$('span.mod_nr_count').html(jsondata.mod_nr_count);
|
|
$('span.res_period2').html(jsondata.res_period2);
|
|
$('span.max_res').html(jsondata.max_res);
|
|
$('span.res_period').html(jsondata.res_period);
|
|
$('span.when_can_reserve').html(jsondata.when_can_reserve);
|
|
|
|
msg = $('#moderated_msg').html();
|
|
|
|
} else if (jsondata.ns_exceeded) {
|
|
/*Name of user*/
|
|
$('.noshow-subscriber-firstname').html(app.get_vars()._app.msg.first_name);
|
|
|
|
/*Set dynamic data*/
|
|
$('span.mod_max_noshow').html(jsondata.max_ns);
|
|
$('span.mod_noshow_period').html(jsondata.ns_period);
|
|
$('span.mod_noshow_when_can_reserve').html(Helper.moderation_date(jsondata.ns_period2.resumeReservationOn, jsondata.ns_period2.event_start_month_name));
|
|
|
|
msg = $('#noshow_moderated_msg').html();
|
|
}
|
|
|
|
bootbox.dialog({
|
|
"title": "Réservation non autorisée",
|
|
"className": "my-modal-with-sm event-moderation-modal",
|
|
"message": msg,
|
|
"show": true,
|
|
buttons: subscribe.button.moderation.buttons.create(jsondata)
|
|
}).on('hide.bs.modal', function(e) {
|
|
$(".event-normal-registration-modal").modal("hide");
|
|
$('.event-moderation-modal').not(':last').remove();
|
|
$('.event-normal-registration-modal').not(':last').remove();
|
|
$(this).off('hidden.bs.modal');
|
|
});
|
|
|
|
/**
|
|
* Make sure to disable modify WL res once there is no remaining seat in WL
|
|
*/
|
|
if (jsondata.wldata == null || !jsondata.wldata.canReserveInWL) {
|
|
$("button.wl-custom-btn").prop("disabled", true);
|
|
}
|
|
},
|
|
/**
|
|
* Create buttons depending on the status of the action [cancel,modify,register] for Waiting list
|
|
* @type {Object}
|
|
*/
|
|
"buttons": {
|
|
/**
|
|
* Create buttons for the modal
|
|
* @param {Object} jsondata Json returned from the server
|
|
* @return {Object}
|
|
*/
|
|
create: function(jsondata) {
|
|
var btns = [{
|
|
"label": "RETOUR",
|
|
"className": "btn myreservation-btn2 btn-default-style2",
|
|
"callback": function() {
|
|
window.location.href = app.get_vars().baseurl;
|
|
}
|
|
}];
|
|
|
|
var my_resBtn = [{
|
|
"label": "RETOUR",
|
|
"className": "btn myreservation-btn btn-default-style2",
|
|
"callback": function() {
|
|
window.location.href = app.get_vars().baseurl;
|
|
}
|
|
}];
|
|
/**
|
|
* Check if subscriber can still reserve to Waiting list (if seats are avaible for WL) or not
|
|
*/
|
|
if (jsondata.wldata == null || !jsondata.wldata.canReserveInWL && jsondata.wldata.ps.action == 'full') {
|
|
return btns;
|
|
}else if(jsondata.wldata == null || jsondata.wldata.canReserveInWL && jsondata.wldata.ps.action == 'cancel'){
|
|
return subscribe.button.moderation.buttons.defineBtns(jsondata, my_resBtn);
|
|
}
|
|
else {
|
|
return subscribe.button.moderation.buttons.defineBtns(jsondata, btns);
|
|
}
|
|
},
|
|
|
|
"defineBtns": function(jsondata, btns) {
|
|
|
|
var action = "",
|
|
label = "",
|
|
process_type = "",
|
|
classN;
|
|
if (jsondata.wldata.ps.action == "register") {
|
|
action = "register";
|
|
label = "S'INSCRIRE SUR LISTE D'ATTENTE";
|
|
process_type = 3;
|
|
classN = "moderationWL-btn";
|
|
} else if (jsondata.wldata.ps.action == "modify" || jsondata.wldata.ps.action == "cancel") {
|
|
label = "Ajouter des places sur liste d'attente";
|
|
classN = "moderation-btn";
|
|
if (jsondata.wldata.data.number_of_places == jsondata.wldata.data.seats_per_subscriber) {
|
|
classN = "moderation-btn disabled full-wl-btn-mod-modal";
|
|
label = "INSCRIT SUR LISTE D'ATTENTE";
|
|
}
|
|
action = "modify";
|
|
process_type = 7;
|
|
}
|
|
|
|
btns.push({
|
|
"label": label,
|
|
"className": "btn " + classN + " btn btn-default-style reserve wl-custom-btn",
|
|
"callback": function() {
|
|
if (jsondata.wldata.data.length != 0 && (jsondata.wldata.data.number_of_places == jsondata.wldata.data.seats_per_subscriber)) {
|
|
return false
|
|
}
|
|
subscribe.registration.add_or_modify.reservation(null, jsondata.wldata.ps.event_id, jsondata.wldata.ps.event_schedule_id, jsondata.wldata.ps.reg_type, action, process_type, 1, 1, true, 1);
|
|
}
|
|
});
|
|
|
|
if (jsondata.wldata.ps.action == "cancel") {
|
|
btns.push({
|
|
"label": "MODIFIER OU ANNULER MON INSCRIPTION SUR LISTE D'ATTENTE",
|
|
// "label": "ANNULER MON INSCRIPTION SUR LISTE D’ATTENTE",
|
|
"className": "btn moderation-btn btn-default-style2 btn-block btn-cancel-wl-registration cancel-btn-mod-modal",
|
|
"callback": function() {
|
|
subscribe.registration.cancel.event(null, jsondata.wldata.ps.event_id, jsondata.wldata.ps.event_schedule_id, jsondata.wldata.ps.reg_type, (parseInt(jsondata.wldata.ps.reg_type) == 1 ? 2 : 4), "cancel", 1, true, 1);
|
|
}
|
|
});
|
|
}
|
|
|
|
return btns;
|
|
}
|
|
}
|
|
},
|
|
|
|
"cancel_reservation": function(e, event_id, event_schedule_id, reg_type) {
|
|
|
|
var _this = $(e.target),
|
|
button_page = _this.data('page');
|
|
_this.html('<i class="fa fa-spin fa-fw fa-spinner" id="waiting' + event_schedule_id + '"/>' + _this.text()).prop("disabled", true);
|
|
//reg_type = 3 means cancellaltion
|
|
const eventCat = _this.data('event-cat');
|
|
|
|
if (eventCat && EVENT_CAT.includes(eventCat)) {
|
|
if (eventCat === 'PAID_EVENT' && _this.hasClass('cancel-reservation') && !_this.hasClass('btn-cancel-wl-registration')) {
|
|
subscribe.button.pe_cancellation();
|
|
$('#waiting' + event_schedule_id).remove();
|
|
_this.prop("disabled", false);
|
|
} else {
|
|
subscribe.registration.cancel.event(e.target, event_id, event_schedule_id, reg_type, (
|
|
parseInt(reg_type) == 1 ?
|
|
2 :
|
|
4), "cancel", parseInt(_this.data("seat-feature")));
|
|
}
|
|
} else {
|
|
app._notify("error", "Cannot process request, unknown event category.")
|
|
}
|
|
},
|
|
|
|
"lock_unlock": function(options) {
|
|
var opt = {
|
|
url: app.get_vars().baseurl + "events/subscribe/revalidate",
|
|
type: "POST",
|
|
data: {},
|
|
success: function(result) {
|
|
// console.log(result);
|
|
}
|
|
};
|
|
|
|
if (typeof options != "undefined" && options != null) {
|
|
if (typeof options.data.process_id != "undefined") {
|
|
cached_process_id = options.data.process_id;
|
|
}
|
|
|
|
$.extend(true, opt, options);
|
|
}
|
|
$.ajax(opt);
|
|
},
|
|
|
|
"redirect": function(event_id, redirect) {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "events/subscribe/save_link_to_cookie",
|
|
type: "POST",
|
|
data: {
|
|
event_id,
|
|
redirect
|
|
},
|
|
success: function(result) {
|
|
app._notify("error", "Vous n'êtes pas connecté");
|
|
window.setTimeout(function() {
|
|
window.location.href = redirect;
|
|
}, 1000);
|
|
}
|
|
}).fail(function(jqXHR, textStatus, errorThrown) {
|
|
app._notify("error", "Vous n'êtes pas connecté");
|
|
window.setTimeout(function() {
|
|
window.location.href = redirect;
|
|
}, 1000);
|
|
});
|
|
},
|
|
|
|
"setButtonStatus": function(id, page, target, eventDetails) {
|
|
var displayCancelButton = 0,
|
|
disbledbtns = {
|
|
"bos1": app.get_vars()._app.btn.coming_soon,
|
|
"bos3": app.get_vars()._app.btn._full,
|
|
"bos4": app.get_vars()._app.btn._closed,
|
|
"bos7": app.get_vars()._app.btn._terminee,
|
|
"bos8": app.get_vars()._app.btn._cancelled
|
|
};
|
|
|
|
$.map(eventDetails.event_status, function(value, key) {
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
|
|
var event_sched_btn = target;
|
|
//set date
|
|
$("#hp-event-date" + value.event_schedule_id).text(subscribe.registration.options.translate_date.init(value));
|
|
//get city
|
|
var eventtype_and_city = $("#hp-event-type-city" + value.event_schedule_id);
|
|
|
|
if (value.date_feature == '2' && value.use_different_address_per_date == '1') {
|
|
eventtype_and_city.html("<div id='event" + value.event_schedule_id + "' title='" + eventtype_and_city.html() + "'><span class='fittxt'>" + eventtype_and_city.html() + " " + (
|
|
(value.event_venue != null && value.event_venue != "") ?
|
|
" </span></div>" :
|
|
""));
|
|
} else if (value.date_feature == '2' && value.use_different_address_per_date == '0') {
|
|
eventtype_and_city.html("<div id='event" + value.event_schedule_id + "' title='" + eventtype_and_city.html() + " - " + value.event_venue.toUpperCase() + "'><span class='fittxt'>" + eventtype_and_city.html() + " " + (
|
|
(value.event_venue != null && value.event_venue != "") ?
|
|
" - " + value.event_venue.toUpperCase() + "</span></div>" :
|
|
""));
|
|
} else {
|
|
eventtype_and_city.html("<div id='event" + value.event_schedule_id + "' title='" + eventtype_and_city.html() + " - " + value.event_venue.toUpperCase() + "'><span class='fittxt'>" + eventtype_and_city.html() + " " + (
|
|
(value.event_venue != null && value.event_venue != "") ?
|
|
" - " + value.event_venue.toUpperCase() + "</span></div>" :
|
|
""));
|
|
}
|
|
|
|
$('#event' + value.event_schedule_id).mouseover(function() {
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
$('#event' + value.event_schedule_id).tooltip('show');
|
|
});
|
|
|
|
$('#event' + value.event_schedule_id).mouseleave(function() {
|
|
$('#event' + value.event_schedule_id).not('.in');
|
|
$('#event' + value.event_schedule_id).tooltip('hide');
|
|
$('#event' + value.event_schedule_id).tooltip('dispose');
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
});
|
|
|
|
var booking_type = parseInt(value.booking_type),
|
|
back_office_status = parseInt(value.back_office_status);
|
|
displayCancelButton += booking_type;
|
|
seat_feature = value.seat_feature;
|
|
is_multiple_reservation = value.is_multiple_reservation;
|
|
is_multiple_waitlist_reservation = value.is_multiple_waitlist_reservation;
|
|
var can_still_book = 0,
|
|
showCancelBtn = 1,
|
|
cancelBtnWithModify = "Date limite d'annulation de la réservation",
|
|
fav;
|
|
|
|
if (value.event_category === 'ONLINE_EVENT') {
|
|
onlineEvent.prepareBtns(event_sched_btn, page, value);
|
|
} else {
|
|
//remove event from the list once it is deleted in the backoffice
|
|
if ((typeof disbledbtns["bos" + back_office_status] != "undefined" && disbledbtns["bos" + back_office_status] != "") && parseInt(value.book_waiting_list) == 0) {
|
|
if (page == 1 && value.is_user_active) {
|
|
|
|
/* check if there are reservations */
|
|
var btnText = disbledbtns["bos" + back_office_status],
|
|
disabled = "disabled",
|
|
href = "",
|
|
// btnClass = 'modify-reservation disabled',
|
|
btnClass = 'disabled',
|
|
btnSubText = "";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' ';
|
|
}
|
|
|
|
//Cancel & Locked - Homepage Button
|
|
if (
|
|
(value.event_status == 'CANCEL' && back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
|
|
if (value.is_passed !== '1') {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = 'disabled';
|
|
}
|
|
} else {
|
|
cancelledClass = ' ';
|
|
}
|
|
|
|
if (booking_type > 0) {
|
|
if (booking_type == 1) {
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Modifier ou annuler ma réservation",
|
|
disabled = " ";
|
|
btnSubText = (
|
|
(back_office_status != 1 && typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de modification de la réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"");
|
|
} else {
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Modifier ou annuler mon inscription sur liste d'attente",
|
|
disabled = " ";
|
|
btnSubText = (
|
|
(back_office_status != 1 && typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de modification de l'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"");
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
|
|
href = `href="${app.get_vars().baseurl}event_details?event_id=${value.event_id}"`;
|
|
}
|
|
|
|
event_sched_btn.append("<a " + href + " class='btn btn-block btn-default-style btn-closed event-btn " + cancelledClass + " " + btnClass + " " + fav + " ' " + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='disabled' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disabled + ">" + btnText + "</a>" + btnSubText);
|
|
} else {
|
|
//Cancel & Locked - Homepage Button
|
|
if (
|
|
(value.event_status == 'CANCEL' && back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
|
|
if (value.is_passed !== '1') {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = 'disabled';
|
|
}
|
|
} else {
|
|
btnText = disbledbtns["bos" + back_office_status];
|
|
cancelledClass = 'disabled';
|
|
}
|
|
event_sched_btn.append("<a id='event_schedule_id" + value.event_schedule_id + "' class='btn btn-block btn-default-style btn-closed event-btn " + cancelledClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='disabled' data-bostatus='" + back_office_status + "' role='button' data-page='details' disabled>" + btnText + "</a>");
|
|
}
|
|
//user can reserve if there is/are still places available
|
|
} else if ((back_office_status == 2 && parseInt(value.book_waiting_list) == 0 && parseInt(value.remaining_seat) > 0) || booking_type == 1) {
|
|
|
|
showCancelBtn = (value.is_user_active) ?
|
|
subscribe.button.show_cancel_btn_or_not(booking_type, value.event_status, value.remaining_seat) :
|
|
1;
|
|
var disableBtn = "",
|
|
btnText = app.get_vars()._app.btn._book,
|
|
btnType = "",
|
|
onClick = "",
|
|
btnClass = "";
|
|
|
|
if (booking_type == 1 && value.is_user_active) { //subscriber is registered
|
|
|
|
can_still_book = subscribe.registration.options.validate_quota(booking_type, parseInt(value.seats_per_subscriber), parseInt(value.seats_reserved), parseInt(value.remaining_seat));
|
|
|
|
if (can_still_book > 0 && value.event_status != 'FULL') {
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
var btnclosed = ' ';
|
|
disableBtn = "";
|
|
btnText = "Ajouter des places à ma réservation";
|
|
btnType = "reg-modify";
|
|
data_attrib = `data-reg-type="${REG_TYPE.normal_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.modify}"` +
|
|
` data-process-type="${PROCESS_TYPE.modify_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
onClick = "";
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
} else {
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' ';
|
|
}
|
|
var btnclosed = 'btnclosed ';
|
|
disableBtn = "disabled";
|
|
btnText = (typeof disbledbtns["bos" + back_office_status] != "undefined") ?
|
|
disbledbtns["bos" + back_office_status] :
|
|
"RÉSERVÉ";
|
|
btnType = "disabled";
|
|
cancelBtnWithModify = "Date limite d'annulation de la réservation ";
|
|
}
|
|
var style;
|
|
if (btnType == 'reg-book') {
|
|
style = 'style="letter-spacing:4px;"';
|
|
} else {
|
|
style = '';
|
|
}
|
|
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
if (
|
|
(value.event_status == 'CANCEL' && back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
btnText = 'Modifier ou annuler ma réservation';
|
|
cancelledClass = '';
|
|
// cancelledClass = 'disabled';
|
|
}
|
|
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
event_sched_btn.append("<a class=\"btn btn-default-style btn-block btn-closed event-btn modify-reservation " + cancelledClass + " " + fav + "\" href='" + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + "' role='button' data-page='home'>" + btnText + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""))
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
} else {
|
|
if (value.is_user_active) {
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for more than 1 per event or not
|
|
*/
|
|
data_attrib = `data-reg-type="${REG_TYPE.normal_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.register}"` +
|
|
` data-process-type="${PROCESS_TYPE.event_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
|
|
onClick = "";
|
|
if (!eventDetails.allowed_to_book) {
|
|
event_listener_class = "not-allowed-to-book";
|
|
onClick = "";
|
|
btnClass = "btn-disabled";
|
|
} else {
|
|
disableBtn = "";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
}
|
|
|
|
/* END of code fragment */
|
|
|
|
var cancelledClass ="";
|
|
cancelBtnWithModify = booking_type ? "Date limite de modification de la réservation" : "Date limite de réservation";
|
|
|
|
var fav = (value.is_favorite == '1') ? ' btn-favorite' : ' ';
|
|
|
|
if (booking_type == 1) {
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Ajouter des places à ma réservation";
|
|
} else if (booking_type == 2) {
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
}
|
|
|
|
if (
|
|
(value.event_status == 'CANCEL' && back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
disableBtn = 'disabled="disabled"';
|
|
var hreflink = ''
|
|
} else {
|
|
cancelledClass = "";
|
|
hreflink = ' href = " ' + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + ' " ';
|
|
}
|
|
|
|
var eventRate ="";
|
|
var paidEvent = "";
|
|
|
|
if( value.event_category == 'PAID_EVENT'){
|
|
let amount = parseFloat(value.rate);
|
|
paidEvent='paid_btn';
|
|
eventRate= amount ? amount.toFixed(2).replace(".", ",") + "€" : "";
|
|
}
|
|
if(subscription=='disabled'){
|
|
btnClass = "btn-disabled";
|
|
hreflink = "";
|
|
}
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-closed event-btn " + btnClass + " " + fav + " " + cancelledClass + " " + paidEvent + "' " + hreflink + " role='button' data-page='home' " + disableBtn + ">" + btnText + " " + eventRate+"</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
} else {
|
|
//when user not active redirect to login page
|
|
|
|
if (value.is_favorite == '1') {
|
|
var buttonText = "";
|
|
var cancelledClass = "";
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
buttonText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
var disabledbtn = 'disabled';
|
|
} else {
|
|
buttonText = app.get_vars()._app.btn._book;
|
|
}
|
|
|
|
var eventRate ="";
|
|
var paidEvent = "";
|
|
|
|
if( value.event_category == 'PAID_EVENT'){
|
|
let amount = parseFloat(value.rate);
|
|
paidEvent='paid_btn';
|
|
eventRate= amount ? amount.toFixed(2).replace(".", ",") + "€" : "";
|
|
}
|
|
|
|
event_sched_btn.append("<button class='btn btn-default-style btn-block btn-closed event-btn btn-favorite subscribe-btn-redirect " + cancelledClass + " " + paidEvent + "' data-event-id='" + value.event_id + "' role='button' data-page='home' " + disabledbtn + "> " + buttonText + " " + eventRate + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
} else {
|
|
var buttonText, paidEvent = "", eventRate = "" ,amount;
|
|
var cancelledClass = "";
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
buttonText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
var buttonType = 'disabled="disabled"';
|
|
} else {
|
|
buttonType = '';
|
|
buttonText = app.get_vars()._app.btn._book;
|
|
}
|
|
|
|
var eventRate ="";
|
|
var paidEvent = "";
|
|
|
|
if( value.event_category == 'PAID_EVENT'){
|
|
let amount = parseFloat(value.rate);
|
|
paidEvent='paid_btn';
|
|
eventRate= amount ? amount.toFixed(2).replace(".", ",") + "€" : "";
|
|
}
|
|
|
|
event_sched_btn.append("<button class='btn btn-default-style btn-block btn-closed event-btn subscribe-btn-redirect " + cancelledClass +" "+paidEvent +"' data-event-id='" + value.event_id + "' role='button' data-page='home' " + buttonType + ">" + buttonText +" "+ eventRate +"</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")) + "</div>";
|
|
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//when event is locked yet,..
|
|
} else if (back_office_status == 3 || parseInt(value.book_waiting_list) > 0 || booking_type == 2) {
|
|
var disableBtn = "",
|
|
btnText = app.get_vars()._app.btn._bookwaitlist,
|
|
btnType = "",
|
|
onClick = "",
|
|
btnClass = "";
|
|
|
|
if (booking_type == 2 && value.is_user_active) { //subscriber is booked in the waiting list
|
|
|
|
can_still_book = subscribe.registration.options.validate_quota(booking_type, parseInt(value.quota_waiting_list_seat), parseInt(value.seats_reserved), parseInt(value.seats_per_subscriber));
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
if (can_still_book > 0) {
|
|
btnClass = ' modify-waitlistreservation ';
|
|
disableBtn = "";
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
btnType = "wl-modify";
|
|
|
|
data_attrib = `data-reg-type="${REG_TYPE.waitlist_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.modify}"` +
|
|
` data-process-type="${PROCESS_TYPE.modify_wl_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
onClick = "";
|
|
cancelBtnWithModify = "Date limite de modification de l'inscription sur liste d'attente";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
} else {
|
|
btnClass = 'modify-reservation';
|
|
disableBtn = "disabled";
|
|
btnText = (typeof disbledbtns["bos" + back_office_status] != "undefined") ?
|
|
disbledbtns["bos" + back_office_status] :
|
|
"INSCRIT SUR LISTE D'ATTENTE";
|
|
btnType = "disabled";
|
|
cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' ';
|
|
}
|
|
}
|
|
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
cancelBtnWithModify = "Date limite de modification de l'inscription sur liste d'attente";
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-closed event-btn modify-waitlistreservation " + fav + "' href='" + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + "' role='button' data-page='home'>Modifier ou annuler mon inscription sur liste d'attente</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
} else {
|
|
|
|
if (value.is_user_active) { //if user is active
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for more than 1 per event or not
|
|
*/
|
|
data_attrib = `data-reg-type="${REG_TYPE.waitlist_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.register}"` +
|
|
` data-process-type="${PROCESS_TYPE.waitlist_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
|
|
onClick = "";
|
|
if (!eventDetails.allowed_to_book_for_wl) {
|
|
event_listener_class = "not-allowed-to-book";
|
|
onClick = "";
|
|
btnClass = "btn-disabled modify-reservation btn-reg-waitlist_detailsp";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' ';
|
|
}
|
|
} else {
|
|
disableBtn = "";
|
|
if (page == 1) {
|
|
btnClass = 'btn-reg-waitlist';
|
|
} else {
|
|
btnClass = 'btn-reg-waitlist_detailsp modify-reservation';
|
|
}
|
|
// btnClass = 'modify-reservation';
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
}
|
|
|
|
/* END of code fragment */
|
|
if (booking_type > 0) {
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
} else {
|
|
cancelBtnWithModify = "Date limite d'inscription sur liste d'attente";
|
|
}
|
|
|
|
if (booking_type == 1) {
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Ajouter des places à ma réservation";
|
|
} else if (booking_type == 2) {
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
}
|
|
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
cancelledClass = '';
|
|
// cancelledClass = 'disabled';
|
|
}
|
|
hrefLink = 'href='+ app.get_vars().baseurl + "event_details?event_id=" + value.event_id
|
|
if(subscription=='disabled'){
|
|
btnClass = 'btn-disabled modify-reservation';
|
|
disableBtn = 'disabled="disabled"'
|
|
hreflink = "";
|
|
}
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block event-btn " + btnClass + " " + cancelledClass + " " + fav + " " + hreflink + "' role='button' data-page='home' " + disableBtn + "> " + btnText + " </a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
//when user not active redirect to login page
|
|
if (value.is_favorite == '1') {
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-reg-waitlist event-btn btn-favorite subscribe-btn-redirect' data-event-id='" + value.event_id + "' role='button' data-page='home'> " + app.get_vars()._app.btn._bookwaitlist + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite d'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-reg-waitlist event-btn subscribe-btn-redirect' data-event-id='" + value.event_id + "' role='button' data-page='home'> " + app.get_vars()._app.btn._bookwaitlist + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite d'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if ((value.event_status == 'CANCEL' && back_office_status != 4) && (value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.replaceWith($("<button class='btn btn-block btn-default-style btn-register btn-book2 event-btn " + cancelledClass + " " + btnClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='reg-book' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else if (value.event_status == 'CANCEL' && back_office_status == 4 && value.date_feature == 2) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block event-btn " + btnClass + " " + cancelledClass + " " + fav + " ' role='button' data-page='home' " + disableBtn + "> " + btnText + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.append($("<button class='btn btn-block btn-default-style btn-register btn-book2 event-btn " + cancelledClass + " " + btnClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='reg-book' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")));
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
}
|
|
if (page == 1 && back_office_status == 1) {
|
|
if (typeof value.reservation_start_date != "undefined" && value.reservation_start_date != null && value.reservation_start_date != "") {
|
|
event_sched_btn.append("<center class='start_date_text px-1'>Ouverture des réservations : <br>" + Helper.start_date(value.reservation_start_date, value.reservation_start_month) + "</center>");
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
event_sched_btn.append("<center class='start_date_text px-1'>Ouverture des réservations : <br>" + Helper.start_date(value.reservation_start_date, value.end_reservation_month) + "</center>");
|
|
if (value.event_status == 'CANCEL' && back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
"change": function(id, page, target, updateBtn) {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "events/homepage/check_bo_status",
|
|
type: 'GET',
|
|
data: {
|
|
query_id: id,
|
|
page: page
|
|
},
|
|
/* query_id can be the event_id or the event_schedule_id */
|
|
success: function(result) {
|
|
|
|
// if(app.isalive(result)) {
|
|
var displayCancelButton = 0,
|
|
event_sched = "",
|
|
disbledbtns = {
|
|
"bos1": app.get_vars()._app.btn.coming_soon,
|
|
"bos3": app.get_vars()._app.btn._full,
|
|
"bos4": app.get_vars()._app.btn._closed,
|
|
"bos7": app.get_vars()._app.btn._terminee,
|
|
"bos8": app.get_vars()._app.btn._cancelled
|
|
},
|
|
seat_feature = 1,
|
|
is_multiple_reservation = 0,
|
|
is_multiple_waitlist_reservation = 0,
|
|
data_attrib = '',
|
|
event_listener_class = '';
|
|
|
|
$.map(result.event_status, function(value, key) {
|
|
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
|
|
if (page == 2) { //event detailed page
|
|
var event_sched_date = $("#accordion-heading-es" + value.event_schedule_id);
|
|
var event_sched_btn = $("#event_schedule_id" + value.event_schedule_id);
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
} else { // Home page
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
|
|
var event_sched_btn = target;
|
|
//set date
|
|
$("#hp-event-date" + value.event_schedule_id).text(subscribe.registration.options.translate_date.init(value));
|
|
//get city
|
|
var eventtype_and_city = $("#hp-event-type-city" + value.event_schedule_id);
|
|
if (value.date_feature == '2') {
|
|
eventtype_and_city.html("<div id='event" + value.event_schedule_id + "' title='" + eventtype_and_city.html() + "'><span class='fittxt'>" + eventtype_and_city.html() + " " + (
|
|
(value.event_venue != null && value.event_venue != "") ?
|
|
" </span></div>" :
|
|
""));
|
|
} else {
|
|
eventtype_and_city.html("<div id='event" + value.event_schedule_id + "' title='" + eventtype_and_city.html() + " - " + value.event_venue.toUpperCase() + "'><span class='fittxt'>" + eventtype_and_city.html() + " " + (
|
|
(value.event_venue != null && value.event_venue != "") ?
|
|
" - " + value.event_venue.toUpperCase() + "</span></div>" :
|
|
""));
|
|
}
|
|
|
|
$('#event' + value.event_schedule_id).mouseover(function() {
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
$('#event' + value.event_schedule_id).tooltip('show');
|
|
});
|
|
|
|
$('#event' + value.event_schedule_id).mouseleave(function() {
|
|
$('#event' + value.event_schedule_id).not('.in');
|
|
$('#event' + value.event_schedule_id).tooltip('hide');
|
|
$('#event' + value.event_schedule_id).tooltip('dispose');
|
|
$('.tooltip').remove();
|
|
$('.arrow').remove();
|
|
$('.tooltip-inner').remove();
|
|
});
|
|
|
|
}
|
|
|
|
var booking_type = parseInt(value.booking_type),
|
|
back_office_status = parseInt(value.back_office_status);
|
|
displayCancelButton += booking_type;
|
|
seat_feature = value.seat_feature;
|
|
is_multiple_reservation = value.is_multiple_reservation;
|
|
is_multiple_waitlist_reservation = value.is_multiple_waitlist_reservation;
|
|
var can_still_book = 0,
|
|
showCancelBtn = 1,
|
|
cancelBtnWithModify = "Date limite d'annulation de la réservation",
|
|
fav,
|
|
cancelledClass= '';
|
|
|
|
//remove event from the list once it is deleted in the backoffice
|
|
if (parseInt(value.status) == 0 || (back_office_status == 6 || back_office_status == 0)) {
|
|
|
|
if (page == 2) {
|
|
$("#accordion-group-es" + value.event_schedule_id).remove();
|
|
}
|
|
} else if ((typeof disbledbtns["bos" + back_office_status] != "undefined" && disbledbtns["bos" + back_office_status] != "") && parseInt(value.book_waiting_list) == 0) {
|
|
var fav = '';
|
|
var btnTextt = '';
|
|
if (page == 2 && value.is_user_active) { //event detailed page
|
|
if (booking_type == 2) {
|
|
cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
}
|
|
if (value.is_favorite == '1') {
|
|
fav = '';
|
|
}
|
|
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnTextt = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
}
|
|
|
|
//event sched is 1= Published, 3=Lokced/Complete, 7=Terminee, 4 = Closed/Passed
|
|
event_sched_btn.replaceWith($("<button id='event_schedule_id" + value.event_schedule_id + "' class='btn btn-block btn-default-style btn-closed event-btn disabled " + cancelledClass + ' ' + fav + "' data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='disabled' data-bostatus='" + back_office_status + "' role='button' data-page='details' disabled>" + (btnTextt == app.get_vars()._app.btn._cancelled ? app.get_vars()._app.btn._cancelled : disbledbtns["bos" + back_office_status]) + "</button>"));
|
|
|
|
} else { // HP
|
|
|
|
if (page == 1 && value.is_user_active) {
|
|
|
|
/* check if there are reservations */
|
|
var btnText = disbledbtns["bos" + back_office_status],
|
|
disabled = "disabled",
|
|
href = "",
|
|
btnClass = 'modify-reservation disabled',
|
|
btnSubText = "",
|
|
fav = ' ';
|
|
if (value.is_favorite == '1') {
|
|
fav = ' ';
|
|
}
|
|
|
|
//Cancel & Locked - Homepage Button
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
var cur_date = new Date();
|
|
var start_date_time = (value.start_date_hour) ? value.start_date_hour.split("h") : '';
|
|
var end_date_time = (value.end_date_hour) ? value.end_date_hour.split("h") : '';
|
|
var start_date_time_h = '',
|
|
start_date_time_m = '',
|
|
end_date_time_h = '',
|
|
end_date_time_m = '';
|
|
if (start_date_time) {
|
|
start_date_time_h = start_date_time[0];
|
|
start_date_time_m = start_date_time[1];
|
|
}
|
|
if (end_date_time) {
|
|
end_date_time_h = end_date_time[0];
|
|
end_date_time_m = end_date_time[1];
|
|
}
|
|
var start_date = new Date(value.start_year + ', ' + value.start_month + ', ' + value.start_day + ', ' + start_date_time_h + ', ' + start_date_time_m);
|
|
var end_date = new Date(value.end_year + ', ' + value.end_month + ', ' + value.end_day + ', ' + end_date_time_h + ', ' + end_date_time_m);
|
|
// console.log(new Date(end_date));
|
|
if (!end_date) {
|
|
if (cur_date > end_date) {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = '';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
}
|
|
} else {
|
|
if (cur_date > start_date) {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = '';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
}
|
|
}
|
|
} else {
|
|
cancelledClass = ' ';
|
|
}
|
|
|
|
if (booking_type > 0) {
|
|
if (booking_type == 1) {
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Ajouter des places à ma réservation",
|
|
disabled = " ";
|
|
btnSubText = (
|
|
(back_office_status != 1 && typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de modification de la réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"");
|
|
} else {
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Ajouter des places sur liste d'attente",
|
|
disabled = " ";
|
|
btnSubText = (
|
|
(back_office_status != 1 && typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de modification de l'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"");
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
|
|
href = `href="${app.get_vars().baseurl}event_details?event_id=${value.event_id}`;
|
|
href = app.get_vars().baseurl + "event_details?event_id=" + value.event_id;
|
|
}
|
|
|
|
event_sched_btn.append("<a " + href + " class='btn btn-block btn-default-style btn-closed event-btn disabled " + cancelledClass + " " + btnClass + " " + fav + " ' " + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='disabled' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disabled + ">" + btnText + "</a>" + btnSubText);
|
|
} else {
|
|
//Cancel & Locked - Homepage Button
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
var cur_date = new Date();
|
|
var start_date_time = (value.start_date_hour) ? value.start_date_hour.split("h") : '';
|
|
var end_date_time = (value.end_date_hour) ? value.end_date_hour.split("h") : '';
|
|
var start_date_time_h = '',
|
|
start_date_time_m = '',
|
|
end_date_time_h = '',
|
|
end_date_time_m = '';
|
|
|
|
if (start_date_time) {
|
|
start_date_time_h = start_date_time[0];
|
|
start_date_time_m = start_date_time[1];
|
|
}
|
|
if (end_date_time) {
|
|
end_date_time_h = end_date_time[0];
|
|
end_date_time_m = end_date_time[1];
|
|
}
|
|
var start_date = new Date(value.start_year + ', ' + value.start_month + ', ' + value.start_day + ', ' + start_date_time_h + ', ' + start_date_time_m);
|
|
var end_date = new Date(value.end_year + ', ' + value.end_month + ', ' + value.end_day + ', ' + end_date_time_h + ', ' + end_date_time_m);
|
|
// console.log(new Date(end_date));
|
|
if (!end_date) {
|
|
if (cur_date > end_date) {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = 'disabled';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
}
|
|
} else {
|
|
if (cur_date > start_date) {
|
|
btnText = app.get_vars()._app.btn._closed;
|
|
cancelledClass = 'disabled';
|
|
} else {
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
}
|
|
}
|
|
} else {
|
|
btnText = disbledbtns["bos" + back_office_status];
|
|
cancelledClass = 'disabled';
|
|
}
|
|
event_sched_btn.append("<a id='event_schedule_id" + value.event_schedule_id + "' class='btn btn-block btn-default-style btn-closed event-btn " + cancelledClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='disabled' data-bostatus='" + back_office_status + "' role='button' data-page='details' disabled>" + btnText + "</a>");
|
|
}
|
|
}
|
|
|
|
//user can reserve if there is/are still places available
|
|
} else if ((back_office_status == 2 && parseInt(value.book_waiting_list) == 0 && parseInt(value.remaining_seat) > 0) || booking_type == 1) {
|
|
showCancelBtn = (value.is_user_active) ?
|
|
subscribe.button.show_cancel_btn_or_not(booking_type, value.event_status, value.remaining_seat) :
|
|
1;
|
|
var disableBtn = "",
|
|
btnText = app.get_vars()._app.btn._book,
|
|
btnType = "",
|
|
onClick = "",
|
|
btnClass = "",
|
|
fav = "";
|
|
|
|
if (booking_type == 1 && value.is_user_active) { //subscriber is registered
|
|
|
|
can_still_book = subscribe.registration.options.validate_quota(booking_type, parseInt(value.seats_per_subscriber), parseInt(value.seats_reserved), parseInt(value.remaining_seat));
|
|
|
|
if (can_still_book > 0 && value.event_status != 'FULL') {
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
var btnclosed = ' ';
|
|
disableBtn = "";
|
|
btnText = "Ajouter des places à ma réservation";
|
|
btnType = "reg-modify";
|
|
|
|
data_attrib = `data-reg-type="${REG_TYPE.normal_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.modify}"` +
|
|
` data-process-type="${PROCESS_TYPE.modify_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
onClick = "";
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
} else {
|
|
if (value.is_favorite == '1') {
|
|
fav = ' ';
|
|
}
|
|
var btnclosed = 'btnclosed ';
|
|
disableBtn = "disabled";
|
|
btnText = (typeof disbledbtns["bos" + back_office_status] != "undefined") ?
|
|
disbledbtns["bos" + back_office_status] :
|
|
"RÉSERVÉ";
|
|
btnType = "disabled";
|
|
cancelBtnWithModify = "Date limite d'annulation de la réservation ";
|
|
}
|
|
var style;
|
|
if (btnType == 'reg-book') {
|
|
style = 'style="letter-spacing:4px;"';
|
|
} else {
|
|
style = '';
|
|
}
|
|
|
|
if (page == 2) { //event detailed page
|
|
event_sched_btn.replaceWith($("<button " + style + " " + onClick + " " + data_attrib + " id='event_schedule_id" + value.event_schedule_id + "' class='"+(disableBtn ? "disabled " : "" ) + event_listener_class + " btn btn-block btn-default-style btn-closed " + btnclosed + " event-btn modify-reservation " + fav + "' data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-bostatus='" + back_office_status + "' data-btntype='" + btnType + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>").prop("disabled", (
|
|
(disableBtn != "") ?
|
|
true :
|
|
false)));
|
|
|
|
} else { //HP
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
btnText = 'Ajouter des places à ma réservation';
|
|
cancelledClass = '';
|
|
// cancelledClass = 'disabled';
|
|
}
|
|
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
event_sched_btn.append("<a class=\"btn btn-default-style btn-block btn-closed event-btn modify-reservation " + cancelledClass + " " + fav + "\" href='" + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + "' role='button' data-page='home'>" + btnText + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""))
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
|
|
} else {
|
|
|
|
if (value.is_user_active) {
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for more than 1 per event or not
|
|
*/
|
|
data_attrib = `data-reg-type="${REG_TYPE.normal_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.register}"` +
|
|
` data-process-type="${PROCESS_TYPE.event_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
|
|
onClick = "";
|
|
if (!result.allowed_to_book) {
|
|
event_listener_class = "not-allowed-to-book";
|
|
onClick = "";
|
|
btnClass = "btn-disabled";
|
|
} else {
|
|
disableBtn = "";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
}
|
|
}
|
|
|
|
/* END of code fragment */
|
|
|
|
if (page == 2) { //event detailed page
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
disableBtn = 'disabled';
|
|
} else {
|
|
cancelledClass = '';
|
|
// cancelledClass = 'disabled';
|
|
}
|
|
event_sched_btn.replaceWith($("<button " + onClick + " " + data_attrib + " id='event_schedule_id" + value.event_schedule_id + "' class='"+(disableBtn ? "disabled " : "" ) + event_listener_class + " btn btn-block btn-default-style btn-register btn-book2 event-btn " + cancelledClass + " " + btnClass + " " + fav + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='reg-book' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")).prop("disabled", (
|
|
(disableBtn != "") ?
|
|
true :
|
|
false)));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else { //on HP
|
|
if (booking_type > 0) {
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
} else {
|
|
cancelBtnWithModify = "Date limite de réservation";
|
|
}
|
|
if (booking_type == 1) {
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Ajouter des places à ma réservation";
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
} else {
|
|
fav = ' ';
|
|
}
|
|
} else if (booking_type == 2) {
|
|
if (value.is_favorite == '1') {
|
|
var fav = ' btn-favorite';
|
|
} else {
|
|
fav = ' ';
|
|
}
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
}
|
|
|
|
if (
|
|
(value.event_status == 'CANCEL' && value.back_office_status != 4) ||
|
|
(value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)
|
|
) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
disableBtn = 'disabled="disabled"';
|
|
var hreflink = ''
|
|
} else {
|
|
cancelledClass = "";
|
|
hreflink = ' href = " ' + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + ' " ';
|
|
}
|
|
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-closed event-btn " + btnClass + " " + fav + " " + cancelledClass + " ' " + hreflink + " role='button' data-page='home' " + disableBtn + ">" + btnText + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
|
|
} else {
|
|
//when user not active redirect to login page
|
|
|
|
if (value.is_favorite == '1') {
|
|
var buttonText = "";
|
|
var cancelledClass = "";
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
buttonText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
var disabledbtn = 'disabled';
|
|
} else {
|
|
buttonText = app.get_vars()._app.btn._book;
|
|
}
|
|
event_sched_btn.append("<button class='btn btn-default-style btn-block btn-closed event-btn btn-favorite subscribe-btn-redirect " + cancelledClass + " ' data-event-id='" + value.event_id + "' role='button' data-page='home' " + disabledbtn + "> " + buttonText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
} else {
|
|
var buttonText = "";
|
|
var cancelledClass = "";
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
buttonText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
var buttonType = 'disabled="disabled"';
|
|
} else {
|
|
buttonType = '';
|
|
buttonText = app.get_vars()._app.btn._book;
|
|
}
|
|
event_sched_btn.append("<button class='btn btn-default-style btn-block btn-closed event-btn subscribe-btn-redirect " + cancelledClass + "' data-event-id='" + value.event_id + "' role='button' data-page='home' " + buttonType + "> " + buttonText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite de réservation : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")) + "</div>";
|
|
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//when event is locked yet,..
|
|
} else if (back_office_status == 3 || parseInt(value.book_waiting_list) > 0 || booking_type == 2) {
|
|
var disableBtn = "",
|
|
btnText = app.get_vars()._app.btn._bookwaitlist,
|
|
btnType = "",
|
|
onClick = "",
|
|
btnClass = "",
|
|
fav="";
|
|
|
|
if (booking_type == 2 && value.is_user_active) { //subscriber is booked in the waiting list
|
|
|
|
can_still_book = subscribe.registration.options.validate_quota(booking_type, parseInt(value.quota_waiting_list_seat), parseInt(value.seats_reserved), parseInt(value.seats_per_subscriber));
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
if (can_still_book > 0) {
|
|
btnClass = ' modify-waitlistreservation ';
|
|
disableBtn = "";
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
btnType = "wl-modify";
|
|
|
|
data_attrib = `data-reg-type="${REG_TYPE.waitlist_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.modify}"` +
|
|
` data-process-type="${PROCESS_TYPE.modify_wl_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify';
|
|
onClick = "";
|
|
cancelBtnWithModify = "Date limite de modification de l'inscription sur liste d'attente";
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
} else {
|
|
btnClass = 'modify-reservation';
|
|
disableBtn = "disabled";
|
|
btnText = (typeof disbledbtns["bos" + back_office_status] != "undefined") ?
|
|
disbledbtns["bos" + back_office_status] :
|
|
"INSCRIT SUR LISTE D'ATTENTE";
|
|
btnType = "disabled";
|
|
cancelBtnWithModify = "Date limite d'annulation d'inscription sur liste d'attente";
|
|
if (value.is_favorite == '1') {
|
|
fav = ' ';
|
|
}
|
|
}
|
|
|
|
if (page == 2) { //event detailed page
|
|
event_sched_btn.replaceWith($("<button " + onClick + " " + data_attrib + " id='event_schedule_id" + value.event_schedule_id + "' class='"+(disableBtn ? "disabled " : "" ) + event_listener_class + " btn btn-block btn-default-style btn-closed event-btn " + btnClass + " " + fav + "' " + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-bostatus='" + back_office_status + "' data-btntype='" + btnType + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>").prop("disabled", (
|
|
(disableBtn != "") ?
|
|
true :
|
|
false)));
|
|
} else { //event home page
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
cancelBtnWithModify = "Date limite de modification de l'inscription sur liste d'attente";
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-closed event-btn modify-waitlistreservation " + fav + "' href='" + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + "' role='button' data-page='home'>Ajouter des places sur liste d'attente</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
|
|
} else {
|
|
|
|
if (value.is_user_active) { //if user is active
|
|
/* This code fragment is used to determine
|
|
whether a subscriber can book for more than 1 per event or not
|
|
*/
|
|
|
|
data_attrib = `data-reg-type="${REG_TYPE.waitlist_reg}"` +
|
|
` data-action="${SUBSCRIBE_ACTION.register}"` +
|
|
` data-process-type="${PROCESS_TYPE.waitlist_reg}"` +
|
|
` data-seat-feature="${value.seat_feature}"` +
|
|
` data-show-cancel-btn="${showCancelBtn}"`;
|
|
event_listener_class = 'register-or-modify'
|
|
onClick = "";
|
|
var fav = "";
|
|
if (!result.allowed_to_book_for_wl) {
|
|
event_listener_class = "not-allowed-to-book";
|
|
onClick = "";
|
|
btnClass = "btn-disabled modify-reservation btn-reg-waitlist_detailsp";
|
|
if (value.is_favorite == '1') {
|
|
fav = ' ';
|
|
}
|
|
} else {
|
|
disableBtn = "";
|
|
if (page == 1) {
|
|
btnClass = 'btn-reg-waitlist';
|
|
} else {
|
|
btnClass = 'btn-reg-waitlist_detailsp modify-reservation';
|
|
}
|
|
// btnClass = 'modify-reservation';
|
|
if (value.is_favorite == '1') {
|
|
fav = ' btn-favorite';
|
|
}
|
|
}
|
|
|
|
/* END of code fragment */
|
|
if (page == 2) { //event detailed page
|
|
//event is locked but there are still places available for waitiling list
|
|
event_sched_btn.replaceWith($("<button " + onClick + " " + data_attrib + " id='event_schedule_id" + value.event_schedule_id + "' class='"+(disableBtn ? "disabled " : "" ) + event_listener_class + " btn btn-block btn-default-style event-btn " + btnClass + " " + fav + " '" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='wl-register' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite d'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")).addClass('').prop("disabled", (
|
|
(disableBtn != "") ?
|
|
true :
|
|
false)));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else { //event home page
|
|
|
|
if (booking_type > 0) {
|
|
cancelBtnWithModify = "Date limite de modification de la réservation";
|
|
} else {
|
|
cancelBtnWithModify = "Date limite d'inscription sur liste d'attente";
|
|
}
|
|
|
|
if (booking_type == 1) {
|
|
btnClass = 'modify-reservation';
|
|
btnText = "Ajouter des places à ma réservation";
|
|
} else if (booking_type == 2) {
|
|
btnClass = ' modify-waitlistreservation';
|
|
btnText = "Ajouter des places sur liste d'attente";
|
|
}
|
|
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
} else {
|
|
cancelledClass = '';
|
|
// cancelledClass = 'disabled';
|
|
}
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block event-btn " + btnClass + " " + cancelledClass + " " + fav + " ' href='" + app.get_vars().baseurl + "event_details?event_id=" + value.event_id + "' role='button' data-page='home' " + disableBtn + "> " + btnText + " </a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
}
|
|
} else {
|
|
//when user not active redirect to login page
|
|
if (value.is_favorite == '1') {
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-reg-waitlist event-btn btn-favorite subscribe-btn-redirect' data-event-id='" + value.event_id + "' role='button' data-page='home'> " + app.get_vars()._app.btn._bookwaitlist + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite d'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block btn-reg-waitlist event-btn subscribe-btn-redirect' data-event-id='" + value.event_id + "' role='button' data-page='home'> " + app.get_vars()._app.btn._bookwaitlist + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>Date limite d'inscription sur liste d'attente : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
if ((value.event_status == 'CANCEL' && value.back_office_status != 4) && (value.event_status == 'CANCEL' && value.date_feature == 2 && page != 1)) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.replaceWith($("<button class='btn btn-block btn-default-style btn-register btn-book2 event-btn " + cancelledClass + " " + btnClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='reg-book' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else if (value.event_status == 'CANCEL' && value.back_office_status == 4 && value.date_feature == 2) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.append("<a class='btn btn-default-style btn-block event-btn " + btnClass + " " + cancelledClass + " " + fav + " ' role='button' data-page='home' " + disableBtn + "> " + btnText + "</a>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
""));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
btnText = app.get_vars()._app.btn._cancelled;
|
|
cancelledClass = 'cancelled_event disabled';
|
|
// btnClass = 'modify-reservation';
|
|
event_sched_btn.append($("<button class='btn btn-block btn-default-style btn-register btn-book2 event-btn " + cancelledClass + " " + btnClass + "'" + " data-event-schedule-id='" + value.event_schedule_id + "' data-event-id='" + value.event_id + "' data-btntype='reg-book' data-bostatus='" + back_office_status + "' role='button' data-page='details' " + disableBtn + ">" + btnText + "</button>" + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
"<center class='start_date_text px-1' id='res-date-" + value.event_schedule_id + "'>" + cancelBtnWithModify + " : <br>" + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + "<center>" :
|
|
"")));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
}
|
|
if (page == 1 && back_office_status == 1) {
|
|
if (typeof value.reservation_start_date != "undefined" && value.reservation_start_date != null && value.reservation_start_date != "") {
|
|
event_sched_btn.append("<center class='start_date_text px-1'>Ouverture des réservations : <br>" + Helper.start_date(value.reservation_start_date, value.reservation_start_month) + "</center>");
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
} else {
|
|
event_sched_btn.append("<center class='start_date_text px-1'>Ouverture des réservations : <br>" + Helper.start_date(value.reservation_start_date, value.end_reservation_month) + "</center>");
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
}
|
|
|
|
if (page == 2 && value.is_user_active && back_office_status > 1) {
|
|
var btnClass = "";
|
|
//display cancel button if there is/are reservation
|
|
$("#event_cancel_registration" + value.event_schedule_id).remove();
|
|
/* Cancel button will be hidden once a seat is available for reservation */
|
|
if (subscribe.button.show_cancel_btn_or_not(booking_type, value.event_status, value.remaining_seat) == 1) {
|
|
if (booking_type == 1) {
|
|
btnClass = 'btn-cancel-registration';
|
|
} else {
|
|
btnClass = 'btn-cancel-wl-registration';
|
|
}
|
|
|
|
data_attrib = `data-event-id="${value.event_id}"` +
|
|
` data-event-schedule-id="${value.event_schedule_id}"` +
|
|
` data-reg-type="${booking_type}"`;
|
|
event_listener_class = 'cancel-reservation';
|
|
$('<button ' + data_attrib + ' id="event_cancel_registration' + value.event_schedule_id + '" data-event-id="' + id + '" data-seat-feature="' + seat_feature + '" data-date-feature="' + value.date_feature + '" data-is-multiple-reservation="' + is_multiple_reservation + '" data-is-multiple-waitlist-reservation="' + is_multiple_waitlist_reservation + '" ' + 'class="' + event_listener_class + ' btn btn-default-style2 btn-block ' + btnClass + ' " data-page="details">' + (
|
|
(booking_type == 1) ?
|
|
"Modifier ou annuler ma réservation" :
|
|
"MODIFIER OU ANNULER MON INSCRIPTION SUR LISTE D'ATTENTE") + '</button>' + (
|
|
// ? "ANNULER MA RÉSERVATION"
|
|
// : "ANNULER MON INSCRIPTION SUR LISTE D’ATTENTE") + '</button>' + (
|
|
(typeof value.reservation_end_date != "undefined" && value.reservation_end_date != null && value.reservation_end_date != "") ?
|
|
'<center class="start_date_text px-1" id="res-date-' + value.event_schedule_id + '">' + cancelBtnWithModify + ' : <br>' + Helper.start_date(value.reservation_end_date, value.end_reservation_month) + '<center>' :
|
|
'')).insertAfter($("#event_schedule_id" + value.event_schedule_id));
|
|
if (value.event_status == 'CANCEL' && value.back_office_status != 4) {
|
|
$("#res-date-" + value.event_schedule_id).remove(); //remove texts
|
|
}
|
|
}
|
|
}
|
|
|
|
// Add event category
|
|
let resBtns = $('button.btn, a.btn');
|
|
resBtns.attr('data-event-cat', value.event_category);
|
|
|
|
if (value.event_url) resBtns.attr('data-event_url', value.event_url);
|
|
});
|
|
} // end of sucess
|
|
});
|
|
},
|
|
|
|
"show_cancel_btn_or_not": function(booking_type, event_status, remaining_seat) {
|
|
|
|
remaining_seat = (remaining_seat != "" && remaining_seat != null) ?
|
|
parseInt(remaining_seat) :
|
|
0;
|
|
|
|
if (booking_type == 1) { //normal registration
|
|
return 1;
|
|
} else if (booking_type == 2) { //waitinglist registration
|
|
if (event_status == 'AVAILABLE' && remaining_seat > 0) {
|
|
//the subscriber is currently registered for waitinglist then suddenly seats are open for reservation
|
|
return 2;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
},
|
|
|
|
/**
|
|
* Since there's no cancellation with Paid Event
|
|
* We will just show a prompt or dialog instead of redirecting subscriber to La Botique
|
|
*/
|
|
"pe_cancellation": () => {
|
|
$("#pe-cancel-reservation-modal").modal('show');
|
|
}
|
|
},
|
|
|
|
"show_moderation_details" : function() {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "getMyReservationsInfo/",
|
|
type: "GET",
|
|
cache: false,
|
|
async: false,
|
|
data: {},
|
|
beforeSend: function() {
|
|
// $("#events_list").append('<p class="text-center"><i class="fa fa-spin fa-spinner"/> '+app.get_vars()._app.notif.loading+'</p>');
|
|
},
|
|
success: function(result1) {
|
|
|
|
if (app.isalive(result1)) {
|
|
try {
|
|
if (result1.res_period) {
|
|
$('.mod_count').html(result1.max_res);
|
|
|
|
$('.remaining_res_based_on_mod').html(`${result1.remaining_res_current_period} ${result1.res_period}`);
|
|
|
|
/*Set dynamic data*/
|
|
$("span.total_reservation_count").text(result1.total_reservation_count);
|
|
$('span.total_reservation_mod_event_count').html(result1.total_reservation_mod_event_count);
|
|
$('span.remaining_res_current_period').html(result1.remaining_res_current_period);
|
|
$('span.remaining_res_next_period').html(result1.remaining_res_next_period);
|
|
|
|
$('span.res_period2').html(result1.res_period2);
|
|
$('span.res_period3').html(result1.res_period3);
|
|
|
|
$('span.when_can_reserve').html(result1.when_can_reserve);
|
|
|
|
if (result1.remaining_res == 0) {
|
|
$('.nr_exceeded_msg').removeAttr('hidden');
|
|
}
|
|
|
|
// $('.my_res_gen_header').append(
|
|
// `<small><span class="allowed_reservations">* Out of ${result1.max_res} maximum reservations, you have ${result1.remaining_res} remaining reservations left for moderated events for ${result1.res_period}</span></small><br />`
|
|
// )
|
|
}
|
|
// if (result1.nshow_period) {
|
|
// $('.my_res_gen_header').append(
|
|
// `<small><span class="allowed_reservations">* Out of ${result1.max_noshow} maximum noshow(s), you have ${result1.total_noshow} noshow(s) for the past ${result1.nshow_period} . If you reach the limit for the said period, you will not be allowed to reserve on moderated events</span></small>`
|
|
// )
|
|
// }
|
|
} catch (e) {} finally {
|
|
|
|
}
|
|
}
|
|
}
|
|
});
|
|
},
|
|
"show_general_setting_moderation":function () {
|
|
$.ajax({
|
|
url: app.get_vars().baseurl + "getModerationGeneralSettings/",
|
|
type: "GET",
|
|
cache: false,
|
|
async: false,
|
|
data: {},
|
|
beforeSend: function() {
|
|
// $("#events_list").append('<p class="text-center"><i class="fa fa-spin fa-spinner"/> '+app.get_vars()._app.notif.loading+'</p>');
|
|
},
|
|
success: function(result) {
|
|
// console.log(result.max_res);
|
|
|
|
$('.mod_count').html(result.max_res);
|
|
}
|
|
});
|
|
},
|
|
"register": function() {
|
|
let action = 'register'
|
|
let seat = null
|
|
if($(window).width()>=767) {
|
|
seat = $('#number_of_seat_reserved').val()
|
|
} else {
|
|
seat = $('#number_of_seat_reserved_mobile').val()
|
|
}
|
|
if(seat === null) {
|
|
$('#number_of_seat_reserved_mobile').focus()
|
|
$('#number_of_seat_reserved').focus()
|
|
//$('#seat_reserved_error_message_mobile').text('Ce champ est obligatoire')
|
|
return false
|
|
} else {
|
|
/* Add spinner loader when processing reservation */
|
|
$(".reserve-spinner").removeClass("d-none");
|
|
$('.btn-reserve').attr('disabled', true);
|
|
$('.btn-offer').attr('disabled', true);
|
|
/* end */
|
|
}
|
|
subscribe.registration.add_or_modify.reservation(eventDetails, seat, action, 1);
|
|
},
|
|
// FOR OFFRIR BUTTON
|
|
"offrir": function() {
|
|
let action = 'register'
|
|
let seat = null
|
|
if($(window).width()>=767) {
|
|
seat = $('#number_of_seat_reserved').val()
|
|
} else {
|
|
seat = $('#number_of_seat_reserved_mobile').val()
|
|
}
|
|
if(seat === null) {
|
|
$('#number_of_seat_reserved_mobile').focus()
|
|
$('#number_of_seat_reserved').focus()
|
|
//$('#seat_reserved_error_message_mobile').text('Ce champ est obligatoire')
|
|
return false
|
|
} else {
|
|
/* Add spinner loader when processing reservation */
|
|
$(".reserve-spinner").removeClass("d-none");
|
|
$('.btn-reserve').attr('disabled', true);
|
|
$('.btn-offer').attr('disabled', true);
|
|
/* end */
|
|
}
|
|
subscribe.registration.add_or_modify_offrir.reservation(eventDetails, seat, action, 1);
|
|
}
|
|
}
|
|
// Pass in jQuery.
|
|
})(jQuery, this);
|
|
|
|
$(document).ready(function() {
|
|
//getReservationInfo
|
|
subscribe.show_general_setting_moderation();
|
|
|
|
if(typeof GAUID != "undefined" && GAUID != "") {
|
|
subscribe.show_moderation_details();
|
|
}
|
|
// Open All Accordion Panel
|
|
$('.accordion-body:not(".in")').collapse('show');
|
|
$('.accordion-heading').click(function() {
|
|
if (!$(this).next().hasClass('in')) {
|
|
$(this).collapse("hide");
|
|
}
|
|
$(this).next().collapse('toggle');
|
|
});
|
|
|
|
/* Redirect to event */
|
|
$(document).on('click', '.subscribe-btn-redirect', function(event) {
|
|
event.preventDefault();
|
|
subscribe.button.redirect(this.dataset.eventId, this.dataset.redirect);
|
|
});
|
|
|
|
/* Choose a reservation to cancel*/
|
|
$(document).on('click', '.subscribe-check-uncheck', function(event) {
|
|
/* Act on the event */
|
|
if ($(this).hasClass("has-child-checkbox")) {
|
|
$('input.invitee' + this.dataset.eventScheduleId + '-' + this.dataset.index)
|
|
.prop("checked",
|
|
!$('input.invitee' + this.dataset.eventScheduleId + '-' + this.dataset.index).prop("checked"));
|
|
}
|
|
subscribe.registration.options.create_list.check_uncheck(
|
|
this,
|
|
this.dataset.eventScheduleId,
|
|
this.dataset.index
|
|
);
|
|
});
|
|
|
|
/*Register or modify action */
|
|
$(document).on('click', '.register-or-modify'/*, .not-premium*/, function(event) {
|
|
subscribe.button.register_or_modify(
|
|
event,
|
|
this.dataset.regType,
|
|
this.dataset.action,
|
|
this.dataset.processType,
|
|
this.dataset.seatFeature,
|
|
this.dataset.showCancelBtn,
|
|
);
|
|
});
|
|
|
|
/* Cancel reservation */
|
|
$(document).on('click', '.cancel-reservation', function(event) {
|
|
subscribe.button.cancel_reservation(
|
|
event,
|
|
this.dataset.eventId,
|
|
this.dataset.eventScheduleId,
|
|
this.dataset.regType,
|
|
);
|
|
});
|
|
|
|
/* Not allowed to book */
|
|
$(document).on('click', '.not-allowed-to-book', function(event) {
|
|
subscribe.button.not_allowed_to_book()
|
|
});
|
|
|
|
$('.dummy-btn').on('click', function() {
|
|
$('html, body').animate({
|
|
scrollTop: $("#info-box").offset().top
|
|
}, 100);
|
|
});
|
|
|
|
$('.btn-reserve').on('click', function() {
|
|
subscribe.register();
|
|
$('#workshopDetailedBox').modal('hide');
|
|
});
|
|
|
|
$('.btn-offer').on('click', function(){
|
|
subscribe.register();
|
|
$('#workshopDetailedBox').modal('hide');
|
|
});
|
|
$('.offrir-btn').on('click', function(){
|
|
subscribe.offrir();
|
|
$('#workshopDetailedBox').modal('hide');
|
|
})
|
|
|
|
// $('mc-btn-scroll').on('click', function(){
|
|
// $('body').scrollTo('#info-box');
|
|
// });
|
|
|
|
$('#number_of_seat_reserved').on('change', function(){
|
|
$('#seat_reserved_error_message').text('')
|
|
});
|
|
|
|
(function(){
|
|
// Reset reservation cookie when reloaded
|
|
const queryString = window.location.href;
|
|
const urlParams = new URLSearchParams(queryString);
|
|
const href = queryString.replace(/[\/]*$/, '');
|
|
const event_id = urlParams.get('event_id') ? urlParams.get('event_id') : href.substring(href.lastIndexOf('/') + 1);
|
|
|
|
subscribe.button.lock_unlock({
|
|
data: {
|
|
event_id,
|
|
process_id: 3,
|
|
process_type: 1,
|
|
action: 2
|
|
},
|
|
async: false,
|
|
success: function(data) {
|
|
console.log(data)
|
|
}
|
|
});
|
|
})()
|
|
});
|
|
|