/*! * jQuery.ellipsis * https://github.com/jjenzz/jquery.ellipsis * -------------------------------------------------------------------------- * Copyright (c) 2013 J. Smith (@jjenzz) * Dual licensed under the MIT and GPL licenses: * https://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * adds a class to the last 'allowed' line of text so you can apply * text-overflow: ellipsis; */ (function (a) { $(".reservationlist").show(); $(".waitlistlist").hide(); $(".historylist").hide(); $(".leftNav").removeClass("tabline-left"); $(".middleNav").removeClass("tabline"); $(".middleNav").addClass("tabline-right"); $("#myres").click(function () { $(".middleNav").addClass("tabline-right"); $(".middleNav").removeClass("tabline-left"); $(".leftNav").removeClass("tabline-left"); $(".reservationlist").show(); $(".waitlistlist").hide(); $(".historylist").hide(); }); $("#mywait").click(function () { $(".reservationlist").hide(); $(".waitlistlist").show(); $(".historylist").hide(); $(".middleNav").removeClass("tabline-right"); $(".middleNav").removeClass("tabline-left"); }); $("#myreshis").click(function () { $(".middleNav").addClass("tabline-left"); $(".middleNav").removeClass("tabline-right"); $(".reservationlist").hide(); $(".waitlistlist").hide(); $(".historylist").show(); }); if (typeof define === "function" && define.amd) { define(["jquery"], a); } else { a(jQuery); } })(function (d) { var c = "ellipsis", b = '', e = { lines: "auto", ellipClass: "ellip", responsive: false, }; function a(h, q) { var m = this, w = 0, g = [], k, p, i, f, j, n, s; m.$cont = d(h); m.opts = d.extend({}, e, q); function o() { m.text = m.$cont.text(); m.opts.ellipLineClass = m.opts.ellipClass + "-line"; m.$el = d(''); m.$el.text(m.text); m.$cont.empty().append(m.$el); t(); } function t() { if (typeof m.opts.lines === "number" && m.opts.lines < 2) { m.$el.addClass(m.opts.ellipLineClass); return; } n = m.$cont.height(); if (m.opts.lines === "auto" && m.$el.prop("scrollHeight") <= n) { return; } if (!k) { return; } s = d.trim(m.text).split(/\s+/); m.$el.html(b + s.join(" " + b) + ""); m.$el.find("span").each(k); if (p != null) { u(p); } } function u(x) { s[x] = '' + s[x]; s.push(""); m.$el.html(s.join(" ")); } if (m.opts.lines === "auto") { var r = function (y, A) { var x = d(A), z = x.position().top; j = j || x.height(); if (z === f) { g[w].push(x); } else { f = z; w += 1; g[w] = [x]; } if (z + j > n) { p = y - g[w - 1].length; return false; } }; k = r; } if (typeof m.opts.lines === "number" && m.opts.lines > 1) { var l = function (y, A) { var x = d(A), z = x.position().top; if (z !== f) { f = z; w += 1; } if (w === m.opts.lines) { p = y; return false; } }; k = l; } if (m.opts.responsive) { var v = function () { g = []; w = 0; f = null; p = null; m.$el.html(m.text); clearTimeout(i); i = setTimeout(t, 100); }; d(window).on("resize." + c, v); } o(); } d.fn[c] = function (f) { return this.each(function () { try { d(this).data(c, new a(this, f)); } catch (g) { if (window.console) { console.error(c + ": " + g); } } }); }; }); var events = (function ($, window, jQuery) { var _vars_ = {}; var guest_max; var guest_number = 0; var reserved_seats; return { set_vars: function (options) { $.extend(_vars_, options || {}); }, get_vars: function () { return _vars_; }, set_reservations_header: function (res_type) { // set my reservations header. //general informations $.ajax({ url: app.get_vars().baseurl + "events/reservations/get_reservations_info/" + res_type, type: "GET", cache: false, data: {}, beforeSend: function () { // $("#events_list").append('

'+app.get_vars()._app.notif.loading+'

'); }, success: function (result) { if (app.isalive(result)) { $("span.confirmed_reservations").html(result.mdata["normal_res"]); $("span.waiting_reservations").html(result.mdata["waitlist_res"]); $("span.total_reservations").html(result.mdata["total_res"]); $("span.total_reservation_count_off_mod").html( result.mdata["nr_total_events"] ); /*Name of user*/ // $('.first_name').html(app.get_vars()._app.msg.first_name); /*Total events the user participated in Normal reservations, WL and my history*/ var wl_counter, mh_counter, nr_total_res_counter, cancel_wl_counter; wl_counter = result.mdata["total_waitlist_active_res"]; cancel_wl_counter = result.mdata["total_waitlist_cancel_res"]; mh_counter = result.mdata["mh_total_events"]; nr_total_res_counter = result.mdata["nr_total_events"]; if (cancel_wl_counter > 1) { $("span.total_waitlist_cancel_res").html( " " + cancel_wl_counter + " événements sur liste d’attente annulés." ); } if (cancel_wl_counter == 1) { $("span.total_waitlist_cancel_res").html( " " + cancel_wl_counter + " événement sur liste d’attente annulé." ); } if (cancel_wl_counter == 0 || cancel_wl_counter == "") { $("span.total_waitlist_cancel_res").html(""); } $("span.total_waitlist_active_res").html( result.mdata["total_waitlist_active_res"] ); $("span.total_moderated_waitlist_res_events").html( result.mdata["total_moderated_waitlist_res_events"] ); $("span.mh_total_events").html(result.mdata["mh_total_events"]); /*Add 's' to evenement if the total event is more than 1*/ if (nr_total_res_counter > 1) { $("span#add_s_nr_res").html("s"); } else { $("span#add_s_nr_res").html(""); } /*Add 's' to evenement if the total waitlist event is more than 1*/ if (wl_counter > 1) { $("span#add_s_wl").html("s"); } else { $("span#add_s_wl").html(""); } /*Add 's' to evenement if the total history event is more than 1*/ if (mh_counter > 1) { $("span#add_s_mh").html("s"); } else { $("span#add_s_mh").html(""); } $.ajax({ url: app.get_vars().baseurl + "getMyReservationsInfo/", type: "GET", cache: false, async: false, data: {}, beforeSend: function () { // $("#events_list").append('

'+app.get_vars()._app.notif.loading+'

'); }, success: function (result1) { if (app.isalive(result1)) { try { if (result1.res_period) { $(".remaining_res_based_on_mod").html( `${result1.remaining_res_current_period} ${result1.res_period}` ); var res_counter, res_rem_crt_prd_counter, res_rem_nxt_prd_counter; res_counter = result1.total_reservation_count; res_rem_crt_prd_counter = result1.remaining_res_current_period; res_rem_nxt_prd_counter = result1.remaining_res_next_period; /*Set dynamic data*/ if (result1.cancel_events_count > 1) { $("span.total_cancel_reservation_count").html( " " + result1.cancel_events_count + " événements annulés." ); } if (result1.cancel_events_count == 1) { $("span.total_cancel_reservation_count").html( " " + result1.cancel_events_count + " événement annulé." ); } if ( result1.cancel_events_count == 0 || result1.cancel_events_count == "" ) { $("span.total_cancel_reservation_count").html(""); } $("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 ); /*If gen_modd_sett is off hide the total mod_current/next period res*/ if (result1.gen_mod_sett < 1) { $(".off_gen_mod_sett").removeClass("hide_wrd"); $(".on_gen_mod_sett").addClass("hide_wrd"); $(".ftr_mod_notif").addClass("hide_wrd"); } else { $(".off_gen_mod_sett").addClass("hide_wrd"); $(".on_gen_mod_sett").removeClass("hide_wrd"); $(".ftr_mod_notif").removeClass("hide_wrd"); } /*Add 's' to evenement if the total reserved event is more than 1*/ if (res_counter > 1) { $("span#add_s_res").html("s"); } else { $("span#add_s_res").html(""); } /*Add 's' to evenement and demande if remaining_res_current_period > 1*/ if (res_rem_crt_prd_counter > 1) { $("span.add_limit").text(""); $("span.add_wrd_restants").text("restants"); $("span.add_wrd_demandes").text("demandés"); $("span.add_wrd_events").text("événements"); } else if (res_rem_crt_prd_counter == 1) { $("span.add_limit").text(""); $("span.add_wrd_restants").text("restant"); $("span.add_wrd_demandes").text("demandé"); $("span.add_wrd_events").text("événement"); } else { $("span.remaining_res_current_period").html( result1.max_res ); $("span.add_wrd_limit").text("limite de "); $("span.add_wrd_restants").text("atteinte"); $("span.add_wrd_events").text("événements"); $("span.add_wrd_demandes").text("demandés"); } /*Add 's' to evenement and demande if remaining_res_next_period > 1*/ if (res_rem_nxt_prd_counter > 1) { $("span.add_limit3").text(""); $("span.add_wrd_restants3").text("restants"); $("span.add_wrd_demandes3").text("demandés"); $("span.add_wrd_events3").text("événements"); } else if (res_rem_nxt_prd_counter == 1) { $("span.add_limit3").text(""); $("span.add_wrd_restants3").text("restant"); $("span.add_wrd_demandes3").text("demandé"); $("span.add_wrd_events3").text("événement"); } else { $("span.remaining_res_next_period").html( result1.max_res ); $("span.add_wrd_limit3").text("limite de "); $("span.add_wrd_restants3").text("atteinte"); $("span.add_wrd_events3").text("événements"); $("span.add_wrd_demandes3").text("demandés"); } $("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( // `* Out of ${result1.max_res} maximum reservations, you have ${result1.remaining_res} remaining reservations left for moderated events for ${result1.res_period}
` // ) } // if (result1.nshow_period) { // $('.my_res_gen_header').append( // `* 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` // ) // } } catch (e) { } finally { } } }, }); } }, }); //moderation infos }, filter: function (page, res_type) { if ($(window).width() > 568) { var month = $(".filter-box.desktop #filter-month").val(); var type = $(".filter-box.desktop #filter-type").val(); var city = $(".filter-box.desktop #filter-city").val(); } else { var month = $(".filter-box.mobile #filter-month").val(); var type = $(".filter-box.mobile #filter-type").val(); var city = $(".filter-box.mobile #filter-city").val(); } var search_keyword; switch (res_type) { case 1: search_keyword = $("#search_mres_history").val(); break; case 2: search_keyword = $("#search_mwait").val(); break; default: search_keyword = $("#search_mres").val(); } $.ajax({ url: app.get_vars().baseurl + "events/reservations/filter_reservations/" + res_type, type: "GET", cache: false, data: { month: month, type: type, city: city, page: page, search: search_keyword, }, beforeSend: function () { // $("#events_list").append('

'+app.get_vars()._app.notif.loading+'

'); }, success: function (result) { if (app.isalive(result)) { // if ($(window).width() >= 992) { // if (result.mdata.result_count <= 3) $('#events-list').height(620); // else $('#events-list').height(1240); // } switch (res_type) { case 1: $("#events-list-history").empty(); $("#paginate2").empty(); break; case 2: $("#events-list-waitlist").empty(); $("#paginate3").empty(); break; default: $("#events-list").empty(); $("#paginate").empty(); } events._format._event(page, result, res_type); } $(".myres_search .fa-spin").remove(); }, }); }, _format: { _event: function (page, result, res_type) { //start listing events var page = parseInt(page); var count = 1; var events_list = ""; var page_link = ""; var event_box = ""; var card_h_class = "h-10"; let additionalURLParam = ""; switch (parseInt(res_type)) { case 0: events_list_id = "#events-list"; events_list = $("#events-list"); page_link = $("#paginate"); event_box = "event-box-"; break; case 1: card_h_class = "h-10"; events_list_id = "#events-list-history"; events_list = $("#events-list-history"); page_link = $("#paginate2"); event_box = "event-box-mresh"; additionalURLParam = "&hs=true"; break; case 2: events_list_id = "#events-list-waitlist"; events_list = $("#events-list-waitlist"); page_link = $("#paginate3"); event_box = "event-box-mwait"; break; default: } events_list.empty(); page_link.empty(); if (typeof result.mdata != "undefined") { if ($.isEmptyObject(result.mdata.details)) { // events_list.height(200); if (result.mdata.logged_in) { events_list.append( "
" + "

" + app.get_vars()._app.no_match_found + "

" + "
" ); } else { events_list.append( "
" + "

" + app.get_vars()._app.no_results_found + "

" + "
" ); } } else { var row_items = [], records_count = result.mdata.details.length; $.each(result.mdata.details, function (i, item) { eventDetails = result.mdata.details; var imges = ""; var fav = ""; var fav_text = ""; var favlink = ""; // var event_schedule_id = item.bostatus.split("_"); let annule = ""; if (item.event_favorite != null && item.event_favorite != "") { favlink = "favlink"; // fav = // "" +
								// 	item.title +
								// 	" "; fav_text = "En partenariat avec Company For Madagascar"; } if ( (item.event_status[0]["event_status"] == "CANCEL" && item.date_feature == 1) || (item.event_status[0]["event_status"] == "CANCEL" && item.date_feature == 2) || (item.date_feature == 2 && item.event_count == item.cancel_count) ) { annule = "ANNULÉ"; } row_items.push({ event: `
`, row: [i, parseInt(item.event_schedule_id)], }); if (events._format._margin(records_count, i + 1)) { events_list.append(`
`); var detailsIndex = 0; $.map(row_items, function (row_item, key) { $(events_list_id + " .mark" + i).append(row_item.event); $(".event-desc").ellipsis({ lines: 3, }); subscribe.button.setButtonStatus( row_item.row[1], 1, $("#" + event_box + row_item.row[0]), res_type, eventDetails[detailsIndex] ); detailsIndex++; }); row_items = []; // reset } count++; }); // Pagination Links below var totalpages = result.mdata.pages; var range = 3; if (page > 1) { var previous = page - 1; page_link.append( "
  • " + "<<" + "
  • " ); page_link.append( "
  • " + "<" + "
  • " ); } for (x = page - range; x <= page + range; x++) { if (x > 0 && x <= totalpages) { if (x == page) page_link.append( "
  • " + x + "
  • " ); else page_link.append( "
  • " + x + "
  • " ); } } if (page >= 1 && page < totalpages) { var next = page + 1; page_link.append( "
  • " + ">" + "
  • " ); page_link.append( "
  • " + ">>" + "
  • " ); } } } //end of if result.mdata is defined }, _margin: function (records_count, i) { if (i % 6 === 0 || records_count === i) return true; else return false; }, strip_tags: function (element) { var whitelist = "p,a"; $(element) .not(whitelist) .each(function () { var content = $(this).contents(); $(this).replaceWith(content); }); }, }, _change_hash: function () { var page = location.hash.trim().replace("#", ""); if (parseInt(page)) { window.location.hash = ""; } else { events.filter(1, 0); events.filter(1, 1); events.filter(1, 2); $("#filter-month").val(); } }, getCookie: function (name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); }, clear_cookie: function () { $.ajax({ url: app.get_vars().baseurl + "events/subscribe/clear_link_cookie", type: "GET", success: function (result) {}, }); }, searchReservations: function (id) { $(".myres_search .fa-spin").remove(); $(".myres_search ").prepend( ` ` ); switch (id) { case "search_mres": events.filter(1, 0); break; case "search_mwait": events.filter(1, 2); break; default: events.filter(1, 1); } }, }; // Pass in jQuery. })(jQuery, this); $(function () { $(window).on("orientationchange", function () { if (window.orientation == 0) { var m = $(".filter-box.desktop #filter-month").val(); var month = $(".filter-box.mobile #filter-month").val(m); var t = $(".filter-box.desktop #filter-type").val(); var type = $(".filter-box.mobile #filter-type").val(t); var c = $(".filter-box.desktop #filter-city").val(); var city = $(".filter-box.mobile #filter-city").val(c); } else { var m = $(".filter-box.mobile #filter-month").val(); var month = $(".filter-box.desktop #filter-month").val(m); var t = $(".filter-box.mobile #filter-type").val(); var type = $(".filter-box.desktop #filter-type").val(t); var c = $(".filter-box.mobile #filter-city").val(); var city = $(".filter-box.desktop #filter-city").val(c); } }); // Check Link Cookie events.clear_cookie(); // events.show_session(); $(".hr-style").removeProp("border"); $("#collapse").on("hide.bs.collapse", function () { $(".btn-filter-mobile").html(''); }); $("#collapse").on("show.bs.collapse", function () { $(".btn-filter-mobile").html(''); }); $(window) .on("hashchange", function (e) { e.preventDefault(); active_tab = $(".nav-link.active").attr("id"); var page = location.hash.trim().replace("#", ""); page = parseInt(page) ? page : 1; if (page) { switch (active_tab) { case "myreshis": events.filter(page, 1); break; case "mywait": events.filter(page, 2); break; default: events.filter(page, 0); } } return false; }) .trigger("hashchange"); // Scroll to top $(document) .on("click", ".page-link", function () { try { $(".filter-view:visible")[0].scrollIntoView(true); } catch (e) {} }) .on("change", ".filter-select", function () { try { $(".filter-view:visible")[0].scrollIntoView(true); } catch (e) {} }); $(document).on("click", "#filter-box-mobile-toggle", function () { $("#filter-box-mobile-toggle .plus").toggle(); $("#filter-box-mobile-toggle .minus").toggle(); }); // send events on filter change $(document).on("change", "#filter-month", function () { dataLayer.push({ fo_filter: undefined, }); dataLayer.push({ fo_filter: this.value, }); console.log("Filter month"); }); $(document).on("change", "#filter-type", function () { dataLayer.push({ fo_filter: undefined, }); dataLayer.push({ fo_filter: this.value, }); console.log("Filter type"); }); $(document).on("change", "#filter-city", function () { dataLayer.push({ fo_filter: undefined, }); dataLayer.push({ fo_filter: this.value, }); console.log("Filter city"); }); $(document).on("click", '[data-toggle="tab"]', function () { var page = location.hash.trim().replace("#", ""); if (!$(this).hasClass("data_loaded")) { $(this).addClass("data_loaded"); switch (this.id) { case "mywait": events.filter(1, 2); break; case "myreshis": events.filter(1, 1); break; default: } } if (this.id == "") { } else { // events.filter(1, 0); } // page = (parseInt(page))?page:1; // if(page) { // } $(".event-desc").ellipsis({ lines: 3, }); }); $(document).on("click", '[data-toggle="collapse"]', function () { $(".event-desc").ellipsis({ lines: 3, }); }); $(".search-input").on("keypress", function (e) { if (e.which == 13) { events.searchReservations(this.id); e.preventDefault(); } }); $(".search_btn").on("click", function (e) { events.searchReservations($(this).data("input")); e.preventDefault(); }); events.set_reservations_header(0); });