Hi, On Fri, Oct 28, 2016 at 9:23 AM, Dan Haywood <[email protected]> wrote:
> ok, thanks for digging into that. > > If that does reveal itself to be the issue, perhaps the better solution > would be to find a way for our viewer to serve up the file with the correct > encoding. > > @Martin - is there anything obvious that the Isis/Wicket viewer might be > doing wrong here? > See https://github.com/apache/wicket/blob/3e765bae3773b5da370cdf4ed1dd590c95f7ed9d/wicket-core/src/main/java/org/apache/wicket/settings/MarkupSettings.java#L51 Maybe the platform encoding is not UTF-8 ?! @Stephen: try to set the encoding manually in IsisWicketApplication#init(): getMarkupSettings().setDefaultMarkupEncoding("UTF-8") I'll fix the name of the author for WicketStuff 7.5.0. > Thx > Dan > > On 28 October 2016 at 09:07, Stephen Cameron <[email protected]> > wrote: > > > Thats what is different at home, no '?', so most likely explanation. I'll > > fork the component on github and see if I can get it fixed. > > > > > > On Fri, Oct 28, 2016 at 3:50 PM, Stephen Cameron < > > [email protected] > > > wrote: > > > > > Possibly due to a single character encoding issue in the surname of the > > > first author of wicket-gmap.js? > > > > > > /* > > > * Wicket GMap3 > > > * > > > * @author Tilman M?ller > > > * @author Joachim F. Rohde > > > */ > > > > > > > > > On Fri, Oct 28, 2016 at 3:21 PM, Stephen Cameron < > > > [email protected]> wrote: > > > > > >> Hi, > > >> > > >> I have an issue that I previously mentioned, where nothing happens on > > >> clicking a button. > > >> > > >> This is only at the client site, and I had a work-around in place to > get > > >> past it. > > >> > > >> However, I think I have the cause, which is an issue in the wicket > > 'gmap' > > >> component Javascript file. > > >> > > >> There is simply a '?' character at the start of this file as you can > see > > >> below (the file as seen by Firefox): > > >> > > >> Maybe there is a simple answer as to why this is appearing? > > >> > > >> > > >> Thanks > > >> > > >> > > >> > > >> > > >> > > >> view-source:http://lifechatsdb/chats/wicket/wicket/resource/org. > > wicketstuff.gmap.WicketGMapJsReference/wicket-gmap-ver- > > E237F6D407E762EA8D06758EE1452F25.js > > >> > > >> > > >> > > >> ? > > >> > > >> > > >> if (typeof(Wicket) === 'undefined') { > > >> window.Wicket = {}; > > >> } > > >> else if (typeof(Wicket) !== "object") { > > >> throw new Error("Wicket already exists but is not an object"); > > >> } > > >> function WicketClientGeocoder() { > > >> try { > > >> this.coder = new google.maps.Geocoder(); > > >> } catch (e) { > > >> if( !Wicket.maps['_failSilently'] ) { > > >> throw e; > > >> } > > >> } > > >> this.getLatLng = function(callBack, addressId){ > > >> var address = Wicket.$(addressId).value; > > >> this.coder.geocode({ > > >> 'address': address > > >> }, function(results, status){ > > >> if (status === google.maps.GeocoderStatus.OK) { > > >> callBack = callBack + '&address=' + results[0].formatted_address; > > >> callBack = callBack + '&coordinates=' + results[0].geometry.location; > > >> } > > >> callBack = callBack + '&status=' + status; > > >> Wicket.Ajax.ajax({ > > >> 'u':callBack > > >> }); > > >> }); > > >> } > > >> } > > >> Wicket.maps = {} > > >> function WicketMap(id, failSilently) { > > >> Wicket.maps[id] = this; > > >> if(failSilently) { > > >> Wicket.maps['_failSilently'] = failSilently; > > >> } > > >> this.options = {}; > > >> try { > > >> this.map = new google.maps.Map(Wicket.$(id)); > > >> } catch (e) { > > >> if(!failSilently) { > > >> throw e; > > >> } > > >> } > > >> this.overlays = {}; > > >> this.onEvent = function(callBack, params) { > > >> params['center'] = this.map.getCenter(); > > >> params['bounds'] = this.map.getBounds(); > > >> params['zoom'] = this.map.getZoom(); > > >> params['currentMapType'] = this.getMapTypeString(this. > > map.getMapTypeId()); > > >> for ( var key in params) { > > >> callBack = callBack + '&' + key + '=' + params[key]; > > >> } > > >> Wicket.Ajax.ajax({ > > >> 'u':callBack > > >> }); > > >> } > > >> this.addListener = function(event, callBack) { > > >> var self = this; > > >> google.maps.event.addListener(this.map, event, function() { > > >> var params = {}; > > >> for ( var p = 0; p < arguments.length; p++) { > > >> if (arguments[p] != null) { > > >> if (arguments[p].latLng != null) > > >> { > > >> params['lat'] = arguments[0].latLng.lat(); > > >> params['lng'] = arguments[0].latLng.lng(); > > >> } > > >> } > > >> } > > >> self.onEvent(callBack, params); > > >> }); > > >> } > > >> this.addOverlayListener = function(overlayID, event) { > > >> var self = this; > > >> var overlay = this.overlays[overlayID]; > > >> google.maps.event.addListener(overlay, event, function() { > > >> var params = {}; > > >> for ( var p = 0; p < arguments.length; p++) { > > >> if (arguments[p] != null) { > > >> params['argument' + p] = arguments[p]; > > >> } > > >> } > > >> if (overlay.getPosition) { > > >> params['overlay.latLng'] = overlay.getPosition(); > > >> } > > >> else if (overlay.getCenter) { > > >> > > >> params['overlay.latLng'] = overlay.getCenter(); > > >> } > > >> if (overlay.getRadius) { > > >> > > >> params['overlay.radius'] = overlay.getRadius(); > > >> } > > >> params['overlay.overlayId'] = overlay.overlayId; > > >> params['overlay.event'] = event; > > >> self.onEvent(self.overlayListenerCallbackUrl, params); > > >> }); > > >> } > > >> this.clearOverlayListeners = function(overlayID, event) { > > >> var overlay = this.overlays[overlayID]; > > >> google.maps.event.clearListeners(overlay, event); > > >> } > > >> this.setDraggingEnabled = function(enabled) { > > >> this.options.draggable = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setDoubleClickZoomEnabled = function(enabled) { > > >> this.options.disableDoubleClickZoom = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setScrollWheelZoomEnabled = function(enabled) { > > >> this.options.scrollwheel = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setScaleControlEnabled = function(enabled) { > > >> this.options.scaleControl = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setZoomControlEnabled = function(enabled) { > > >> this.options.zoomControl = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setMapTypeControlEnabled = function(enabled) { > > >> this.options.mapTypeControl = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setStreetViewControlEnabled = function(enabled) { > > >> this.options.streetViewControl = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setPanControlEnabled = function(enabled) { > > >> this.options.panControl = enabled; > > >> this.map.setOptions(this.options); > > >> } > > >> this.fitBounds = function(bounds) { > > >> this.options.bounds = bounds; > > >> this.map.setOptions(this.options); > > >> this.map.fitBounds(bounds); > > >> } > > >> this.panToBounds = function(bounds) { > > >> this.options.bounds = bounds; > > >> this.map.setOptions(this.options); > > >> this.map.panToBounds(bounds); > > >> } > > >> this.setMinZoom = function(minZoom) { > > >> this.options.minZoom = minZoom; > > >> this.map.setOptions(this.options); > > >> } > > >> this.setMaxZoom = function(maxZoom) { > > >> this.options.maxZoom = maxZoom; > > >> this.map.setOptions(this.options); > > >> } > > >> this.getMapTypeString = function(mapType) { > > >> switch (mapType) { > > >> case google.maps.MapTypeId.ROADMAP: > > >> return 'ROADMAP'; > > >> break; > > >> case google.maps.MapTypeId.SATELLITE: > > >> return 'SATELLITE'; > > >> break; > > >> case google.maps.MapTypeId.HYBRID: > > >> return 'HYBRID'; > > >> break; > > >> case google.maps.MapTypeId.TERRAIN: > > >> return 'TERRAIN'; > > >> break; > > >> default: > > >> return 'unknown'; > > >> break; > > >> } > > >> } > > >> this.setMapType = function(mapType) { > > >> this.map.setMapTypeId(mapType); > > >> } > > >> this.setZoom = function(level) { > > >> this.map.setZoom(level); > > >> } > > >> this.setCenter = function(center) { > > >> this.map.setCenter(center); > > >> } > > >> this.setCenterFailSafe = function(lat, lng, unbounded) { > > >> try { > > >> this.map.setCenter( new google.maps.LatLng(lat, lng, unbounded) ); > > >> } catch (e) { > > >> > > >> } > > >> } > > >> this.panTo = function(center) { > > >> this.map.panTo(center); > > >> } > > >> this.panDirection = function(dx, dy) { > > >> this.map.panBy(dx, dy); > > >> } > > >> this.zoomOut = function() { > > >> this.map.setZoom(this.map.getZoom()-1) > > >> } > > >> this.zoomIn = function() { > > >> this.map.setZoom(this.map.getZoom()+1) > > >> } > > >> this.addOverlay = function(overlayId, overlay) { > > >> this.overlays[overlayId] = overlay; > > >> overlay.overlayId = overlayId; > > >> overlay.setMap(this.map); > > >> overlay.toString = function() { > > >> return overlayId; > > >> }; > > >> } > > >> this.removeOverlay = function(overlayId) { > > >> if (this.overlays[overlayId] != null) { > > >> this.overlays[overlayId].setMap(null); > > >> this.overlays[overlayId] = null; > > >> } > > >> } > > >> this.clearOverlays = function() { > > >> if (this.overlays) { > > >> for (i in this.overlays) { > > >> this.overlays[i].setMap(null); > > >> } > > >> } > > >> this.overlays = {}; > > >> } > > >> this.triggerEvent = function(event) { > > >> google.maps.event.trigger(this.map, event); > > >> } > > >> this.triggerResize = function() { > > >> this.triggerEvent('resize'); > > >> } > > >> } > > >> Wicket.Event.add(window, "load", function(event){ > > >> if(typeof(Wicket.geocoder) === 'undefined') Wicket.geocoder = new > > WicketClientGeocoder(); > > >> }); > > >> > > >> > > >> > > > > > >
