diff --git a/js/frontend.js b/js/frontend.js index 3326f80f..0e0ba51b 100644 --- a/js/frontend.js +++ b/js/frontend.js @@ -466,121 +466,83 @@ function eveorg_getParameterByName(a, b) { } function eo_load_map() { - var maps = eventorganiser.map; - - for (var i = 0; i < maps.length; i++) { - - if ( null === document.getElementById( "eo_venue_map-" + (i + 1) ) ) - continue; - - //Store markers - eventorganiser.map[i].markers = {}; - var locations = maps[i].locations; - var b = { - zoom: maps[i].zoom, - scrollwheel: maps[i].scrollwheel, - zoomControl: maps[i].zoomcontrol, - rotateControl: maps[i].rotatecontrol, - panControl: maps[i].pancontrol, - overviewMapControl: maps[i].overviewmapcontrol, - streetViewControl: maps[i].streetviewcontrol, - draggable: maps[i].draggable, - mapTypeControl: maps[i].maptypecontrol, - mapTypeId: google.maps.MapTypeId[maps[i].maptypeid] - }; - b = wp.hooks.applyFilters( 'eventorganiser.google_map_options', b ); - var map = new google.maps.Map(document.getElementById("eo_venue_map-" + (i + 1)), b); - - // Create a new viewpoint bound - var bounds = new google.maps.LatLngBounds(); - - var LatLngList = []; - for( var j=0; j 1 ){ + var bounds = new google.maps.LatLngBounds(); + for(var k = 0; k < locations.length; k++) { + if (locations[k].lat !== undefined && locations[k].lng !== undefined) { + var locationLatLng = new google.maps.LatLng(locations[k].lat, locations[k].lng); + bounds = bounds.extend(locationLatLng); + } + } + map.fitBounds(bounds); + } else { + map.setCenter(new google.maps.LatLng(locations[0].lat, locations[0].lng)); + } + + // place the markers on the map + for(var j = 0; j < locations.length; j++) { + var lat = locations[j].lat; + var lng = locations[j].lng; + if (lat !== undefined && lng !== undefined) { + var locationLatLng = new google.maps.LatLng(lat, lng); + + var marker_options = { + venue_id: locations[j].venue_id, + position: locationLatLng, + map: map, + content:locations[j].tooltipContent, + icon: locations[j].icon + }; + + marker_options = wp.hooks.applyFilters( 'eventorganiser.venue_marker_options', marker_options ); + + // create closure to capture marker variable + (function() { + var marker = new google.maps.Marker(marker_options); + + eventorganiser.map[i].markers[locations[j].venue_id] = marker; + if( maps[i].tooltip ){ + var infoWindow = new google.maps.InfoWindow({ + content: locations[j].tooltipContent + , maxWidth: 200 + }); + google.maps.event.addListener(marker, 'click',function(){ + infoWindow.open(map, marker); + }); + } + })(); - if( locations.length > 1 ){ - // Fit these bounds to the map - map.fitBounds (bounds); - //google.maps.event.addListenerOnce(map, 'zoom_changed', function() {map.setZoom(zoom);}); - }else{ - map.setCenter ( LatLngList[0]); - } + } + } - }//Foreach map + } } -/** -* @constructor -*/ -function eventorganiser_venue_tooltip() { - - // Grab marker position: convert world point into pixel point - var map = this.getMap(); - var pixel = this.getMap().getProjection().fromLatLngToPoint(this.position); - var topRight=map.getProjection().fromLatLngToPoint(map.getBounds().getNorthEast()); - var bottomLeft=map.getProjection().fromLatLngToPoint(map.getBounds().getSouthWest()); - var scale=Math.pow(2,map.getZoom()); - pixel= new google.maps.Point((pixel.x- bottomLeft.x)*scale,(pixel.y-topRight.y)*scale); - - wp.hooks.doAction( 'eventorganiser.venue_marker_clicked', this ); - - //var pixel = LatLngToPixel.fromLatLngToContainerPixel(this.position); - var pos = [ pixel.x, pixel.y ]; - - if(this.tooltip){ - this.tooltip.qtip('api').set('position.target', pos); - this.tooltip.qtip('show'); - return; - } - jQuery(this.getMap().getDiv()).css({overflow: 'visible'}); - - // Create the tooltip on a dummy div and store it on the marker - this.tooltip =jQuery('
').qtip({ - content: { - text: this.content - }, - border: { - radius: 4, - width: 3 - }, - style: { - classes: "ui-tooltip-shadow", - widget: true - }, - position: { - at: "right center", - my: "top center", - target: pos, - container: jQuery(this.getMap().getDiv()) - }, - show: { - ready: true, - event: false, - solo: true - }, - hide: { - event: 'mouseleave unfocus' - } - }); - } diff --git a/js/frontend.min.js b/js/frontend.min.js index b947068a..699ca988 100644 --- a/js/frontend.min.js +++ b/js/frontend.min.js @@ -1,2 +1 @@ -/*! event-organiser 2.8.0 2014-06-17 14:28 */ -function eveorg_getParameterByName(a,b){a=a.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var c="[\\?&]"+a+"=([^&#]*)",d=new RegExp(c),e=d.exec(b);return null===e?"":decodeURIComponent(e[1].replace(/\+/g," "))}function eo_load_map(){for(var a=eventorganiser.map,b=0;b1?e.fitBounds(f):e.setCenter(g[0])}}function eventorganiser_venue_tooltip(){var a=this.getMap(),b=this.getMap().getProjection().fromLatLngToPoint(this.position),c=a.getProjection().fromLatLngToPoint(a.getBounds().getNorthEast()),d=a.getProjection().fromLatLngToPoint(a.getBounds().getSouthWest()),e=Math.pow(2,a.getZoom());b=new google.maps.Point((b.x-d.x)*e,(b.y-c.y)*e),wp.hooks.doAction("eventorganiser.venue_marker_clicked",this);var f=[b.x,b.y];return this.tooltip?(this.tooltip.qtip("api").set("position.target",f),this.tooltip.qtip("show"),void 0):(jQuery(this.getMap().getDiv()).css({overflow:"visible"}),this.tooltip=jQuery("
").qtip({content:{text:this.content},border:{radius:4,width:3},style:{classes:"ui-tooltip-shadow",widget:!0},position:{at:"right center",my:"top center",target:f,container:jQuery(this.getMap().getDiv())},show:{ready:!0,event:!1,solo:!0},hide:{event:"mouseleave unfocus"}}),void 0)}var eventorganiser=eventorganiser||{};!function(a){jQuery(document).ready(function(){function b(b){var c=b.categories,d="undefined"!=typeof b.category&&b.category?b.category.split(","):!1,e="";var j=a("");return j.append(e),j}function c(){var b=a("");return b}function d(b){var c=b.tags,d="";var f=a("");return f.append(d),f}function e(b){var c=b.venues,d="";var g=a("");return g.append(d),g}function f(b,c){a.ajax({url:EOAjaxFront.adminajax,dataType:"JSON",data:{action:"eo_widget_agenda",instance_number:c.number,direction:b,start:c.StartDate,end:c.EndDate},success:function(a){return jQuery.isArray(a)&&a[0]?(c.StartDate=a[0].StartDate,c.EndDate=a[a.length-1].StartDate,g(a,c),void 0):!1}})}function g(b,c){var d=a("#"+c.id+"_container"),e=d.find("ul.dates"),f=e.find("li");a(f).remove();var g=!1;for(l=0;l'+b[l].display+'
    '),e.append(h)),i=c.add_to_google?a('
  • ').append(''+b[l].time+": "+b[l].post_title).append('"):a('
  • ').append(""+b[l].time+": "+b[l].post_title+""),i.find("span.cat").css({background:b[l].color}),h.append(i)}f=e.find("li");var j=d.find("ul li.event");j.on("click",function(){a(this).find(".meta").toggle("400")})}if(a("#eo-upcoming-dates").length>0&&a("#eo-upcoming-dates").find("li:gt(4)").length>0){var h=5,i={more:EOAjaxFront.locale.ShowMore,less:EOAjaxFront.locale.ShowLess};a("#eo-upcoming-dates").find("li:gt("+(h-1)+")").hide().end().after(a(''+i.less+' | '+i.more+"")),a("#eo-upcoming-dates-pipe").hide(),a("#eo-upcoming-dates-less").hide().click(function(b){b.preventDefault();var c=Math.floor((a("#eo-upcoming-dates li:visible").length-1)/h)*h-1;a("#eo-upcoming-dates li:gt("+c+")").hide(),a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").show(),a("#eo-upcoming-dates li:visible").length<=h&&a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe").hide()}),a("#eo-upcoming-dates-more").click(function(b){b.preventDefault(),a("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe, #eo-upcoming-dates li:hidden:lt("+h+")").show();var c=a("#eo-upcoming-dates-pipe").offset();a("html, body").animate({scrollTop:Math.max(c.top+40-a(window).height(),a(window).scrollTop())}),0===a("#eo-upcoming-dates li:hidden").length&&a("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").hide()})}if(a(".eo-fullcalendar").length>0){for(var j,k=eventorganiser.calendars,l=0;l
    ":"undefined"!=typeof f&&""!==f&&f!=b.venue?"
    ":"undefined"!=typeof g&&""!==g&&a.inArray(g,b.tags)<0?"
    ":wp.hooks.applyFilters("eventorganiser.fullcalendar_render_event",!0,b,c,d)?(d.calendar.options.tooltip&&a(c).qtip({content:{text:b.description,button:!1,title:b.title},position:{my:"top center",at:"bottom center",viewport:a(window),adjust:{method:"shift none"}},hide:{fixed:!0,delay:500,effect:function(){a(this).fadeOut("50")}},border:{radius:4,width:3},style:{classes:"eo-event-toolip ui-tooltip-shadow",widget:!0,tip:"topMiddle"}}),void 0):"
    "},buttonText:{today:EOAjaxFront.locale.today,month:EOAjaxFront.locale.month,week:EOAjaxFront.locale.week,day:EOAjaxFront.locale.day,cat:EOAjaxFront.locale.cat,venue:EOAjaxFront.locale.venue,tag:EOAjaxFront.locale.tag},monthNames:EOAjaxFront.locale.monthNames,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNames:EOAjaxFront.locale.dayNames,dayNamesShort:EOAjaxFront.locale.dayAbbrev,eventColor:"#21759B",defaultView:k[l].defaultview,lazyFetching:"true",events:function(b,c,d,e){var f={start:jQuery.fullCalendar.formatDate(b,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(c,"yyyy-MM-dd"),timeformat:e.timeFormatphp,users_events:e.users_events};"undefined"!=typeof e.category&&""!==e.category&&(f.category=e.category),"undefined"!=typeof e.venue&&""!==e.venue&&(f.venue=e.venue),f=wp.hooks.applyFilters("eventorganiser.fullcalendar_request",f,b,c,d,e),a.ajax({url:eventorganiser.ajaxurl+"?action=eventorganiser-fullcal",dataType:"JSON",data:f,success:d,complete:function(a,b){}})},selectable:!1,weekMode:"variable",aspectRatio:1.5,loading:function(b){var c=a("#"+a(this).attr("id")+"_loading");b?(window.clearTimeout(j),j=window.setTimeout(function(){c.show()},1e3)):(window.clearTimeout(j),c.hide())}};n=wp.hooks.applyFilters("eventorganiser.fullcalendar_options",n,k[l]),a(m).fullCalendar(n)}a(".eo-cal-filter").change(function(){a(".eo-fullcalendar").fullCalendar("rerenderEvents")}),a(".eo-mini-calendar").datepicker({dateFormat:"DD, d MM, yy",changeMonth:!0,changeYear:!0,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),buttonText:EOAjaxFront.locale.gotodate,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNamesMin:EOAjaxFront.locale.dayAbbrev,nextText:EOAjaxFront.locale.nextText,prevText:EOAjaxFront.locale.prevText,showOn:"button",beforeShow:function(b,c){c.hasOwnProperty("dpDiv")?c.dpDiv.addClass("eo-datepicker"):a("#ui-datepicker-div").addClass("eo-datepicker")},onSelect:function(b){var c=a(this).parents("div.eo-fullcalendar").attr("id");a("#"+c).fullCalendar("gotoDate",new Date(Date.parse(b)))}})}if(a(".eo_widget_calendar").length>0&&(a(".eo_widget_calendar tfoot").unbind("click"),a(".eo_widget_calendar").off("click").on("click","tfoot a",function(b){b.preventDefault();var c=a(this).closest(".eo_widget_calendar").attr("id"),d={showpastevents:1,"show-long":0,"link-to-single":0};"undefined"!=typeof eventorganiser.widget_calendars&&"undefined"!=typeof eventorganiser.widget_calendars[c]&&(d=eventorganiser.widget_calendars[c]),"undefined"!=typeof eo_widget_cal&&"undefined"!=typeof eo_widget_cal[c]&&(d=eo_widget_cal[c]),d.eo_month=eveorg_getParameterByName("eo_month",a(this).attr("href")),a.getJSON(EOAjaxFront.adminajax+"?action=eo_widget_cal",d,function(b){a("#"+c+"_content").html(b)})})),a(".eo-agenda-widget").length>0){for(var o in eo_widget_agenda){o=eo_widget_agenda[o];var p=new Date;o.StartDate=a.fullCalendar.formatDate(p,"yyyy-MM-dd"),o.EndDate=o.StartDate,f(1,o)}a(".eo-agenda-widget .agenda-nav span.button").click(function(b){var c=a(this).parents(".eo-agenda-widget").attr("id");o=eo_widget_agenda[c],b.preventDefault();var d=!1;if(a(this).hasClass("next"))d="+1";else if(a(this).hasClass("prev"))d="-1";else{var e=a(this).parent();d=e.hasClass("prev")?"-1":"+1"}f(d,o)})}})}(jQuery); \ No newline at end of file +function eveorg_getParameterByName(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var n="[\\?&]"+e+"=([^&#]*)";var r=new RegExp(n);var i=r.exec(t);if(i===null)return"";else return decodeURIComponent(i[1].replace(/\+/g," "))}function eo_load_map(){var e=eventorganiser.map;for(var t=0;t1){var s=new google.maps.LatLngBounds;for(var o=0;o";var s;for(var o in n){s=n[o];if(r){var u=false;if(e.inArray(s.slug,r)!==-1){u=true}var a=s;while(!u&&a.parent>0){a=n[a.parent];if(e.inArray(a.slug,r)!==-1){u=true}}if(!u){continue}}i+=""}i+="";var f=e("");f.append(i);return f}function n(){var t=e("");return t}function r(t){var n=t.tags;var r="";var s=e("");s.append(r);return s}function i(t){var n=t.venues;var r="";var o=e("");o.append(r);return o}if(e("#eo-upcoming-dates").length>0&&e("#eo-upcoming-dates").find("li:gt(4)").length>0){var s=5;var o={more:EOAjaxFront.locale.ShowMore,less:EOAjaxFront.locale.ShowLess};e("#eo-upcoming-dates").find("li:gt("+(s-1)+")").hide().end().after(e(''+o.less+' | '+o.more+""));e("#eo-upcoming-dates-pipe").hide();e("#eo-upcoming-dates-less").hide().click(function(t){t.preventDefault();var n=Math.floor((e("#eo-upcoming-dates li:visible").length-1)/s)*s-1;e("#eo-upcoming-dates li:gt("+n+")").hide();e("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").show();if(e("#eo-upcoming-dates li:visible").length<=s){e("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe").hide()}});e("#eo-upcoming-dates-more").click(function(t){t.preventDefault();e("#eo-upcoming-dates-less,#eo-upcoming-dates-pipe, #eo-upcoming-dates li:hidden:lt("+s+")").show();var n=e("#eo-upcoming-dates-pipe").offset();e("html, body").animate({scrollTop:Math.max(n.top+40-e(window).height(),e(window).scrollTop())});if(e("#eo-upcoming-dates li:hidden").length===0){e("#eo-upcoming-dates-more,#eo-upcoming-dates-pipe").hide()}})}if(e(".eo-fullcalendar").length>0){var u=eventorganiser.calendars;var a;for(var f=0;f
    "}if(typeof s!=="undefined"&&s!==""&&s!=t.venue){return"
    "}if(typeof o!=="undefined"&&o!==""&&e.inArray(o,t.tags)<0){return"
    "}if(!wp.hooks.applyFilters("eventorganiser.fullcalendar_render_event",true,t,n,r))return"
    ";if(!r.calendar.options.tooltip){return}e(n).qtip({content:{text:t.description,button:false,title:t.title},position:{my:"top center",at:"bottom center",viewport:e(window),adjust:{method:"shift none"}},hide:{fixed:true,delay:500,effect:function(t){e(this).fadeOut("50")}},border:{radius:4,width:3},style:{classes:"eo-event-toolip ui-tooltip-shadow",widget:true,tip:"topMiddle"}})},buttonText:{today:EOAjaxFront.locale.today,month:EOAjaxFront.locale.month,week:EOAjaxFront.locale.week,day:EOAjaxFront.locale.day,cat:EOAjaxFront.locale.cat,venue:EOAjaxFront.locale.venue,tag:EOAjaxFront.locale.tag},monthNames:EOAjaxFront.locale.monthNames,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNames:EOAjaxFront.locale.dayNames,dayNamesShort:EOAjaxFront.locale.dayAbbrev,eventColor:"#21759B",defaultView:u[f].defaultview,lazyFetching:"true",events:function(t,n,r,i){var s={start:jQuery.fullCalendar.formatDate(t,"yyyy-MM-dd"),end:jQuery.fullCalendar.formatDate(n,"yyyy-MM-dd"),timeformat:i.timeFormatphp,users_events:i.users_events};if(typeof i.category!=="undefined"&&i.category!==""){s.category=i.category}if(typeof i.venue!=="undefined"&&i.venue!==""){s.venue=i.venue}s=wp.hooks.applyFilters("eventorganiser.fullcalendar_request",s,t,n,r,i);e.ajax({url:eventorganiser.ajaxurl+"?action=eventorganiser-fullcal",dataType:"JSON",data:s,success:r,complete:function(e,t){if(EO_SCRIPT_DEBUG){if(t=="error"){}else if(t=="parsererror"){if(window.console){console.log("Response is not valid JSON. This is usually caused by error notices from WordPress or other plug-ins");console.log("Response reads: "+e.responseText)}alert("An error has occurred in parsing the response. Please inspect console log for details")}}}})},selectable:false,weekMode:"variable",aspectRatio:1.5,loading:function(t){var n=e("#"+e(this).attr("id")+"_loading");if(t){window.clearTimeout(a);a=window.setTimeout(function(){n.show()},1e3)}else{window.clearTimeout(a);n.hide()}}};c=wp.hooks.applyFilters("eventorganiser.fullcalendar_options",c,u[f]);e(l).fullCalendar(c)}e(".eo-cal-filter").change(function(){e(".eo-fullcalendar").fullCalendar("rerenderEvents")});e(".eo-mini-calendar").datepicker({dateFormat:"DD, d MM, yy",changeMonth:true,changeYear:true,firstDay:parseInt(eventorganiser.fullcal.firstDay,10),buttonText:EOAjaxFront.locale.gotodate,monthNamesShort:EOAjaxFront.locale.monthAbbrev,dayNamesMin:EOAjaxFront.locale.dayAbbrev,nextText:EOAjaxFront.locale.nextText,prevText:EOAjaxFront.locale.prevText,showOn:"button",beforeShow:function(t,n){if(n.hasOwnProperty("dpDiv")){n.dpDiv.addClass("eo-datepicker")}else{e("#ui-datepicker-div").addClass("eo-datepicker")}},onSelect:function(t,n){var r=e(this).parents("div.eo-fullcalendar").attr("id");e("#"+r).fullCalendar("gotoDate",new Date(Date.parse(t)))}})}if(e(".eo_widget_calendar").length>0){e(".eo_widget_calendar tfoot").unbind("click");e(".eo_widget_calendar").off("click").on("click","tfoot a",function(t){t.preventDefault();var n=e(this).closest(".eo_widget_calendar").attr("id");var r={showpastevents:1,"show-long":0,"link-to-single":0};if(typeof eventorganiser.widget_calendars!=="undefined"&&typeof eventorganiser.widget_calendars[n]!=="undefined"){r=eventorganiser.widget_calendars[n]}if(typeof eo_widget_cal!=="undefined"&&typeof eo_widget_cal[n]!=="undefined"){r=eo_widget_cal[n]}r.eo_month=eveorg_getParameterByName("eo_month",e(this).attr("href"));e.getJSON(EOAjaxFront.adminajax+"?action=eo_widget_cal",r,function(t){e("#"+n+"_content").html(t)})})}if(e(".eo-agenda-widget").length>0){function h(t,n){e.ajax({url:EOAjaxFront.adminajax,dataType:"JSON",data:{action:"eo_widget_agenda",instance_number:n.number,direction:t,start:n.StartDate,end:n.EndDate},success:function(e){if(!jQuery.isArray(e)||!e[0]){return false}else{n.StartDate=e[0].StartDate;n.EndDate=e[e.length-1].StartDate;p(e,n)}}})}function p(t,n){var r=e("#"+n.id+"_container");var i=r.find("ul.dates");var s=i.find("li");e(s).remove();var o=false;for(f=0;f'+t[f].display+'');i.append(a)}if(n.add_to_google){l=e('
  • ').append(''+t[f].time+": "+t[f].post_title).append('")}else{l=e('
  • ').append(""+t[f].time+": "+t[f].post_title+"")}l.find("span.cat").css({background:t[f].color});a.append(l)}s=i.find("li");var c=r.find("ul li.event");c.on("click",function(){e(this).find(".meta").toggle("400")})}for(var d in eo_widget_agenda){d=eo_widget_agenda[d];var v=new Date;d.StartDate=e.fullCalendar.formatDate(v,"yyyy-MM-dd");d.EndDate=d.StartDate;h(1,d)}e(".eo-agenda-widget .agenda-nav span.button").click(function(t){var n=e(this).parents(".eo-agenda-widget").attr("id");d=eo_widget_agenda[n];t.preventDefault();var r=false;if(e(this).hasClass("next")){r="+1"}else if(e(this).hasClass("prev")){r="-1"}else{var i=e(this).parent();if(i.hasClass("prev")){r="-1"}else{r="+1"}}h(r,d)})}})})(jQuery)