If nothing else helps - the author name is fixed in WicketStuff 7.5.0. Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov
On Fri, Oct 28, 2016 at 10:03 AM, Martin Grigorov <[email protected]> wrote: > Another option: add -Dfile.encoding=UTF-8 to $JAVA_OPTS in > $CATALINA_HOME/bin/setenv.sh > > Martin Grigorov > Wicket Training and Consulting > https://twitter.com/mtgrigorov > > On Fri, Oct 28, 2016 at 9:54 AM, Stephen Cameron < > [email protected]> wrote: > >> Thanks Martin, >> >> Its most likely a Tomcat/Jetty server difference, that is the difference >> between my dev and client/production setup and hence the most likely >> reason. >> >> On Fri, Oct 28, 2016 at 6:48 PM, Martin Grigorov <[email protected]> >> wrote: >> >> > 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/3e765bae3773b5da370cdf4ed1dd59 >> > 0c95f7ed9d/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(); >> > > > >> }); >> > > > >> >> > > > >> >> > > > >> >> > > > > >> > > > >> > > >> > >> > >
