Michael Brohl
2018-11-19 16:04:22 UTC
Stumbling across this while evaluating OpenStreetMap.org integration
with OFBiz in a customer project.
This still does not work. If I see it right, the cause are wrong image
paths pointing to the outdated framework image folders instead of the
theme folders.
with OFBiz in a customer project.
This still does not work. If I see it right, the cause are wrong image
paths pointing to the outdated framework image folders instead of the
theme folders.
Author: jleroux
Date: Thu Nov 23 07:16:25 2017
New Revision: 1816105
URL: http://svn.apache.org/viewvc?rev=1816105&view=rev
Fixed: OpenStreetMap geolocation no longer works
(OFBIZ-)
Easily checked at
//demo-trunk.ofbiz.apache.org/example/control/ExampleOsmGeoLocationPointSet1
It "works" but OpenStreetMap images are not showing. Locally there are no errors
in log. So hopefully it could be just an OpenStreetMap needed setting change.
Since Pierre said it worked, I searched the reason.
Turned it out it was a CSP exception in my main browser (FF) due to a setting
I'm not sure about. But anyway there are CSP errors reported in browsers tools
console.
I tried to use OpenLayers-4.5.0.js but it did not work as is.
I then tried in GeoLocation.ftl to follow the officially way to use the
Official OSM tileset as protocol-independent URLs
- map.addLayer(new OpenLayers.Layer.OSM());
+ <#-- Official OSM tileset as protocol-independent URLs -->
+ <#noparse>
+ map.addLayer(new OpenLayers.Layer.OSM(['
//a.tile.openstreetmap.org/${z}/${x}/${y}.png',
'//b.tile.openstreetmap.org/${z}/${x}/${y}.png',
'//c.tile.openstreetmap.org/${z}/${x}/${y}.png']));
+ </#noparse>
But for a reason I did not get it did not work either.
Out of desperation this fixes it by using a modified
OpenLayers-2.13.1-modified-for-CSP-.js lib
Thanks: Pierre Smits for initially saying it was working in Safari
ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js
- copied, changed from r1816103, ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js
ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js
ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml
ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml
Copied: ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js (from r1816103, ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js)
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js?p2=ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js&p1=ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js&r1=1816103&r2=1816105&rev=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js Thu Nov 23 07:16:25 2017
@@ -606,7 +606,7 @@ b.id));a.appendChild(c);c=this.createEle
h=d.getAttribute("owsURL")):""!=d.getAttribute("wfs")?(g="WFS",h=d.getAttribute("wfs")):""!=d.getAttribute("wcs")&&(g="WCS",h=d.getAttribute("wcs"));d=d.getElementsByTagName("Query");0<d.length&&((k=d[0].getAttribute("typeName"))||(k=d[0].getAttribute("typename")));d={layerName:e,owsType:g,owsURL:h,typeName:k};c.layerDescriptions.push(d);c.length=c.layerDescriptions.length;c[c.length-1]=d}else if("ServiceException"==e)return{error:(new OpenLayers.Format.OGCExceptionReport).read(a)};return c},CLASS_NAME:"OpenLayers.Format.WMSDescribeLayer.v1_1_1"});
OpenLayers.Format.WMSDescribeLayer.v1_1_0=OpenLayers.Format.WMSDescribeLayer.v1_1_1;OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:!0,sphericalMercator:!1,zoomOffset:0,serverResolutions:null,initialize:function(a,b,c){if(c&&c.sphericalMercator||this.sphericalMercator)c=OpenLayers.Util.extend({projection:"EPSG:900913",numZoomLevels:19},c);OpenLayers.Layer.Grid.prototype.initialize.apply(this,[a||this.name,b||this.url,{},c])},clone:function(a){null==a&&(a=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions()));return a=OpenLayers.Layer.Grid.prototype.clone.apply(this,
[a])},getURL:function(a){a=this.getXYZ(a);var b=this.url;OpenLayers.Util.isArray(b)&&(b=this.selectUrl(""+a.x+a.y+a.z,b));return OpenLayers.String.format(b,a)},getXYZ:function(a){var b=this.getServerResolution(),c=Math.round((a.left-this.maxExtent.left)/(b*this.tileSize.w));a=Math.round((this.maxExtent.top-a.top)/(b*this.tileSize.h));b=this.getServerZoom();if(this.wrapDateLine)var d=Math.pow(2,b),c=(c%d+d)%d;return{x:c,y:a,z:b}},setMap:function(a){OpenLayers.Layer.Grid.prototype.setMap.apply(this,
-arguments);this.tileOrigin||(this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom))},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",url:["Loading Image...
"],attribution:"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors",sphericalMercator:!0,wrapDateLine:!0,tileOptions:null,initialize:function(a,b,c){OpenLayers.Layer.XYZ.prototype.initialize.apply(this,arguments);this.tileOptions=
+arguments);this.tileOrigin||(this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom))},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",url:["//a.tile.openstreetmap.org/${z}/${x}/${y}.png","//b.tile.openstreetmap.org/${z}/${x}/${y}.png","//c.tile.openstreetmap.org/${z}/${x}/${y}.png"],attribution:"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors",sphericalMercator:!0,wrapDateLine:!0,tileOptions:null,initialize:function(a,b,c){OpenLayers.Layer.XYZ.prototype.initialize.apply(this,arguments);this.tileOptions=
OpenLayers.Util.extend({crossOriginKeyword:"anonymous"},this.options&&this.options.tileOptions)},clone:function(a){null==a&&(a=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions()));return a=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[a])},CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Renderer=OpenLayers.Class({container:null,root:null,extent:null,locked:!1,size:null,resolution:null,map:null,featureDx:0,initialize:function(a,b){this.container=OpenLayers.Util.getElement(a);OpenLayers.Util.extend(this,b)},destroy:function(){this.map=this.resolution=this.size=this.extent=this.container=null},supported:function(){return!1},setExtent:function(a,b){this.extent=a.clone();if(this.map.baseLayer&&this.map.baseLayer.wrapDateLine){var c=a.getWidth()/this.map.getExtent().getWidth();
a=a.scale(1/c);this.extent=a.wrapDateLine(this.map.getMaxExtent()).scale(c)}b&&(this.resolution=null);return!0},setSize:function(a){this.size=a.clone();this.resolution=null},getResolution:function(){return this.resolution=this.resolution||this.map.getResolution()},drawFeature:function(a,b){null==b&&(b=a.style);if(a.geometry){var c=a.geometry.getBounds();if(c){var d;this.map.baseLayer&&this.map.baseLayer.wrapDateLine&&(d=this.map.getMaxExtent());c.intersectsBounds(this.extent,{worldBounds:d})?this.calculateFeatureDx(c,
d):b={display:"none"};c=this.drawGeometry(a.geometry,b,a.id);if("none"!=b.display&&b.label&&!1!==c){d=a.geometry.getCentroid();if(b.labelXOffset||b.labelYOffset){var e=isNaN(b.labelXOffset)?0:b.labelXOffset,f=isNaN(b.labelYOffset)?0:b.labelYOffset,g=this.getResolution();d.move(e*g,f*g)}this.drawText(a.id,b,d)}else this.removeText(a.id);return c}}},calculateFeatureDx:function(a,b){this.featureDx=0;if(b){var c=b.getWidth();this.featureDx=Math.round(((a.left+a.right)/2-(this.extent.left+this.extent.right)/
Modified: ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml?rev=1816105&r1=1816104&r2=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml Thu Nov 23 07:16:25 2017
@@ -442,7 +442,7 @@ under the License.
<!-- jQuery CSSs -->
<set field="layoutSettings.styleSheets[+0]" value="/common/js/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.css" global="true"/>
- <set field="layoutSettings.javaScripts[]" value="/images/OpenLayers-2.13.1.js" global="true" />
+ <set field="layoutSettings.javaScripts[]" value="/images/OpenLayers-2.13.1-modified-for-CSP-.js" global="true" />
<set field="layoutSettings.javaScripts[]" value="/common/js/util/OfbizUtil.js" global="true"/>
<set field="layoutSettings.javaScripts[]" value="/common/js/util/fieldlookup.js" global="true"/>
<!-- The default (global) shortcut icon -->
Modified: ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml?rev=1816105&r1=1816104&r2=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml Thu Nov 23 07:16:25 2017
@@ -67,7 +67,7 @@ under the License.
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/jquery.maskedinput-1.3.1.min.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/jeditable/jquery.jeditable.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/validate/jquery.validate.min.js"/>
- <property name="VT_HDR_JAVASCRIPT['add']" value="/images/OpenLayers-2.13.1.js"/>
+ <property name="VT_HDR_JAVASCRIPT['add']" value="/images/OpenLayers-2.13.1-modified-for-CSP-.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/elrte-1.3/js/elrte.min.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/util/OfbizUtil.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/util/fieldlookup.js"/>
Date: Thu Nov 23 07:16:25 2017
New Revision: 1816105
URL: http://svn.apache.org/viewvc?rev=1816105&view=rev
Fixed: OpenStreetMap geolocation no longer works
(OFBIZ-)
Easily checked at
//demo-trunk.ofbiz.apache.org/example/control/ExampleOsmGeoLocationPointSet1
It "works" but OpenStreetMap images are not showing. Locally there are no errors
in log. So hopefully it could be just an OpenStreetMap needed setting change.
Since Pierre said it worked, I searched the reason.
Turned it out it was a CSP exception in my main browser (FF) due to a setting
I'm not sure about. But anyway there are CSP errors reported in browsers tools
console.
I tried to use OpenLayers-4.5.0.js but it did not work as is.
I then tried in GeoLocation.ftl to follow the officially way to use the
Official OSM tileset as protocol-independent URLs
- map.addLayer(new OpenLayers.Layer.OSM());
+ <#-- Official OSM tileset as protocol-independent URLs -->
+ <#noparse>
+ map.addLayer(new OpenLayers.Layer.OSM(['
//a.tile.openstreetmap.org/${z}/${x}/${y}.png',
'//b.tile.openstreetmap.org/${z}/${x}/${y}.png',
'//c.tile.openstreetmap.org/${z}/${x}/${y}.png']));
+ </#noparse>
But for a reason I did not get it did not work either.
Out of desperation this fixes it by using a modified
OpenLayers-2.13.1-modified-for-CSP-.js lib
Thanks: Pierre Smits for initially saying it was working in Safari
ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js
- copied, changed from r1816103, ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js
ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js
ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml
ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml
Copied: ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js (from r1816103, ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js)
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js?p2=ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js&p1=ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js&r1=1816103&r2=1816105&rev=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1.js (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/webapp/images/OpenLayers-2.13.1-modified-for-CSP-.js Thu Nov 23 07:16:25 2017
@@ -606,7 +606,7 @@ b.id));a.appendChild(c);c=this.createEle
h=d.getAttribute("owsURL")):""!=d.getAttribute("wfs")?(g="WFS",h=d.getAttribute("wfs")):""!=d.getAttribute("wcs")&&(g="WCS",h=d.getAttribute("wcs"));d=d.getElementsByTagName("Query");0<d.length&&((k=d[0].getAttribute("typeName"))||(k=d[0].getAttribute("typename")));d={layerName:e,owsType:g,owsURL:h,typeName:k};c.layerDescriptions.push(d);c.length=c.layerDescriptions.length;c[c.length-1]=d}else if("ServiceException"==e)return{error:(new OpenLayers.Format.OGCExceptionReport).read(a)};return c},CLASS_NAME:"OpenLayers.Format.WMSDescribeLayer.v1_1_1"});
OpenLayers.Format.WMSDescribeLayer.v1_1_0=OpenLayers.Format.WMSDescribeLayer.v1_1_1;OpenLayers.Layer.XYZ=OpenLayers.Class(OpenLayers.Layer.Grid,{isBaseLayer:!0,sphericalMercator:!1,zoomOffset:0,serverResolutions:null,initialize:function(a,b,c){if(c&&c.sphericalMercator||this.sphericalMercator)c=OpenLayers.Util.extend({projection:"EPSG:900913",numZoomLevels:19},c);OpenLayers.Layer.Grid.prototype.initialize.apply(this,[a||this.name,b||this.url,{},c])},clone:function(a){null==a&&(a=new OpenLayers.Layer.XYZ(this.name,this.url,this.getOptions()));return a=OpenLayers.Layer.Grid.prototype.clone.apply(this,
[a])},getURL:function(a){a=this.getXYZ(a);var b=this.url;OpenLayers.Util.isArray(b)&&(b=this.selectUrl(""+a.x+a.y+a.z,b));return OpenLayers.String.format(b,a)},getXYZ:function(a){var b=this.getServerResolution(),c=Math.round((a.left-this.maxExtent.left)/(b*this.tileSize.w));a=Math.round((this.maxExtent.top-a.top)/(b*this.tileSize.h));b=this.getServerZoom();if(this.wrapDateLine)var d=Math.pow(2,b),c=(c%d+d)%d;return{x:c,y:a,z:b}},setMap:function(a){OpenLayers.Layer.Grid.prototype.setMap.apply(this,
-arguments);this.tileOrigin||(this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom))},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",url:["Loading Image...
+arguments);this.tileOrigin||(this.tileOrigin=new OpenLayers.LonLat(this.maxExtent.left,this.maxExtent.bottom))},CLASS_NAME:"OpenLayers.Layer.XYZ"});OpenLayers.Layer.OSM=OpenLayers.Class(OpenLayers.Layer.XYZ,{name:"OpenStreetMap",url:["//a.tile.openstreetmap.org/${z}/${x}/${y}.png","//b.tile.openstreetmap.org/${z}/${x}/${y}.png","//c.tile.openstreetmap.org/${z}/${x}/${y}.png"],attribution:"© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors",sphericalMercator:!0,wrapDateLine:!0,tileOptions:null,initialize:function(a,b,c){OpenLayers.Layer.XYZ.prototype.initialize.apply(this,arguments);this.tileOptions=
OpenLayers.Util.extend({crossOriginKeyword:"anonymous"},this.options&&this.options.tileOptions)},clone:function(a){null==a&&(a=new OpenLayers.Layer.OSM(this.name,this.url,this.getOptions()));return a=OpenLayers.Layer.XYZ.prototype.clone.apply(this,[a])},CLASS_NAME:"OpenLayers.Layer.OSM"});OpenLayers.Renderer=OpenLayers.Class({container:null,root:null,extent:null,locked:!1,size:null,resolution:null,map:null,featureDx:0,initialize:function(a,b){this.container=OpenLayers.Util.getElement(a);OpenLayers.Util.extend(this,b)},destroy:function(){this.map=this.resolution=this.size=this.extent=this.container=null},supported:function(){return!1},setExtent:function(a,b){this.extent=a.clone();if(this.map.baseLayer&&this.map.baseLayer.wrapDateLine){var c=a.getWidth()/this.map.getExtent().getWidth();
a=a.scale(1/c);this.extent=a.wrapDateLine(this.map.getMaxExtent()).scale(c)}b&&(this.resolution=null);return!0},setSize:function(a){this.size=a.clone();this.resolution=null},getResolution:function(){return this.resolution=this.resolution||this.map.getResolution()},drawFeature:function(a,b){null==b&&(b=a.style);if(a.geometry){var c=a.geometry.getBounds();if(c){var d;this.map.baseLayer&&this.map.baseLayer.wrapDateLine&&(d=this.map.getMaxExtent());c.intersectsBounds(this.extent,{worldBounds:d})?this.calculateFeatureDx(c,
d):b={display:"none"};c=this.drawGeometry(a.geometry,b,a.id);if("none"!=b.display&&b.label&&!1!==c){d=a.geometry.getCentroid();if(b.labelXOffset||b.labelYOffset){var e=isNaN(b.labelXOffset)?0:b.labelXOffset,f=isNaN(b.labelYOffset)?0:b.labelYOffset,g=this.getResolution();d.move(e*g,f*g)}this.drawText(a.id,b,d)}else this.removeText(a.id);return c}}},calculateFeatureDx:function(a,b){this.featureDx=0;if(b){var c=b.getWidth();this.featureDx=Math.round(((a.left+a.right)/2-(this.extent.left+this.extent.right)/
Modified: ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml?rev=1816105&r1=1816104&r2=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/widget/CommonScreens.xml Thu Nov 23 07:16:25 2017
@@ -442,7 +442,7 @@ under the License.
<!-- jQuery CSSs -->
<set field="layoutSettings.styleSheets[+0]" value="/common/js/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.css" global="true"/>
- <set field="layoutSettings.javaScripts[]" value="/images/OpenLayers-2.13.1.js" global="true" />
+ <set field="layoutSettings.javaScripts[]" value="/images/OpenLayers-2.13.1-modified-for-CSP-.js" global="true" />
<set field="layoutSettings.javaScripts[]" value="/common/js/util/OfbizUtil.js" global="true"/>
<set field="layoutSettings.javaScripts[]" value="/common/js/util/fieldlookup.js" global="true"/>
<!-- The default (global) shortcut icon -->
Modified: ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml?rev=1816105&r1=1816104&r2=1816105&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml (original)
+++ ofbiz/ofbiz-framework/trunk/themes/common/widget/Theme.xml Thu Nov 23 07:16:25 2017
@@ -67,7 +67,7 @@ under the License.
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/jquery.maskedinput-1.3.1.min.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/jeditable/jquery.jeditable.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/validate/jquery.validate.min.js"/>
- <property name="VT_HDR_JAVASCRIPT['add']" value="/images/OpenLayers-2.13.1.js"/>
+ <property name="VT_HDR_JAVASCRIPT['add']" value="/images/OpenLayers-2.13.1-modified-for-CSP-.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/jquery/plugins/elrte-1.3/js/elrte.min.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/util/OfbizUtil.js"/>
<property name="VT_HDR_JAVASCRIPT['add']" value="/common/js/util/fieldlookup.js"/>