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();
>> > > > >> });
>> > > > >>
>> > > > >>
>> > > > >>
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Reply via email to