Hi everybody,<br>
<br>
Iīm trying to use the GeoExt QueryPanel and I got it working so far, it
recognizes the layers available on my Geoserver but it is not able to
get the attribute columns for each dataset. I configured an osgeo proxy
(<a href="http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi">http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi</a>)
on my Apache Server, I use the override-ext-ajax.js and have the <font face="Courier New, Courier, monospace"><small>OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";</small></font> class configured.<br>
<br>
A DescribeFeatureType request is sent when selecting the layer I want to
filter. The same happens when trying to choose the attribute column in
the query panel, but there are none displayed.<br>
<br>
The sent request URLs look like this:<br>
<br>
<font face="Courier New, Courier, monospace"><small><a href="http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%2Fcgibin%2Fproxy.cgi%2Fwfs%3F">http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%2Fcgibin%2Fproxy.cgi%2Fwfs%3F</a>
VERSION%3D1.1.0%26REQUEST%3DDescribeFeatureType%26TYPENAME%3Dcases%26query%3D</small></font><br>
<br>
The strange part here is, that the request is sent via
localhost/cgi-bin/proxy.cgi? twice, instead of using
localhost/geoserver/wfs?. The request URL should look like this, going
passed geoserverīs WFS: <br>
<small><font face="Courier New, Courier, monospace"><br>
<a href="http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3F">http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Flocalhost%3A8080%2Fgeoserver%2Fwfs%3F</a><br>
VERSION%3D1.1.0%26REQUEST%3DDescribeFeatureType%26TYPENAME%3Dcases%26query%3D</font></small><br>
<br>
<br>
Does anybody have a clue whatīs going wrong here and why the request URL
is wrong? Even if I remove the Open.Layers.ProxyHost class and the
override-ext-ajax.js from my application, the request is sent that way.
Can it be related to my server? Other requests sent in the application
(GET & POST) work fine. The (relevant) code looks like this, maybe
you guys can spot the error...<br>
<br>
<font face="Courier New, Courier, monospace"><small> OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";<br>
<br>
var owsUrl = "/geoserver/wfs";<br>
<br>
var symbolizer = OpenLayers.Feature.Vector.style["default"];<br>
<br>
symbolizer.graphicName = "square";<br>
<br>
var store;<br>
<br>
Ext.onReady(function() {<br>
<br>
store = new GeoExt.data.WFSCapabilitiesStore({<br>
url: Ext.urlAppend(owsUrl,<br>
"VERSION=1.0.0&REQUEST=GetCapabilities"),<br>
protocolOptions: {version: "1.1.0"},<br>
autoLoad: true,<br>
listeners: {<br>
load: initApp<br>
}<br>
});<br>
}); <br>
<br>
function initApp() {<br>
var vecLayer = new OpenLayers.Layer.Vector("Query", {<br>
eventListeners: {<br>
featuresadded: function() {<br>
var extent = vecLayer.getDataExtent()<br>
mapPanel.map.zoomToExtent(extent)<br>
}<br>
}<br>
}); <br>
<br>
<br>
<br>
var queryPanel = new gxp.QueryPanel({<br>
title: "Query",<br>
region: "center",<br>
width: 350,<br>
bodyStyle: "padding: 10px",<br>
autoScroll: true,<br>
layerStore: store,<br>
bbar: ["->", {<br>
text: "Query",<br>
handler: function() {<br>
queryPanel.query();<br>
}<br>
}],<br>
listeners: {<br>
query: function(panel, store) {<br>
var rule = new OpenLayers.Rule({<br>
filter: panel.getFilter()<br>
});<br>
rule.symbolizer[queryPanel.symbolizerType] = symbolizer;<br>
var style = new OpenLayers.Style("", {rules: [rule]});<br>
wms.mergeNewParams({<br>
sld_body: new OpenLayers.Format.SLD().write({<br>
namedLayers: [{<br>
name: panel.selectedLayer.get("name"),<br>
userStyles: [style]<br>
}]<br>
})<br>
});<br>
<br>
store.bind(vecLayer, {<br>
initDir: GeoExt.data.FeatureStore.STORE_TO_LAYER<br>
});<br>
}<br>
}<br>
});<br>
</small></font><br>
<br>
<br>
<br>
Any help is appreciated!<br>
<br>
Cheers,<br>
<br>
Philippe<br>
<br>