justb4 / geoext-viewer

Automatically exported from code.google.com/p/geoext-viewer
GNU General Public License v3.0
0 stars 0 forks source link

automatically detect hyperlinks in getfeatureinfo #23

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Request feature info for a layer
2. Find a field that contains "http://some-server.com/some-url"
3. The links do not become click able

What is the expected output? What do you see instead?

Automatically generate a hyperlink

Original issue reported on code.google.com by milovand...@gmail.com on 25 Mar 2011 at 12:46

GoogleCodeExporter commented 9 years ago

Original comment by milovand...@gmail.com on 3 Apr 2011 at 1:36

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 12 May 2011 at 2:23

GoogleCodeExporter commented 9 years ago
Are you going to work on this Milo ? I have scheduled release 0.5 for thu may 
26, 2011. Otherwise we can shift this to a later release 

Original comment by jus...@gmail.com on 23 May 2011 at 9:12

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 23 May 2011 at 9:23

GoogleCodeExporter commented 9 years ago
I am intending to work on this today. Not sure if it will make the release 
schedule, but if it doesn't I will let you know so we can pass it through to 0.6

Original comment by milovand...@gmail.com on 24 May 2011 at 9:02

GoogleCodeExporter commented 9 years ago
moving to 0.7 as 0.6 should be out today in a few moments.

Original comment by jus...@gmail.com on 31 May 2011 at 1:20

GoogleCodeExporter commented 9 years ago
I started work on this issue and need some advice:

On an Ext.Grid you can configure specific renderers per cell. These renderers 
can be used to format text as date, add images in cells, construct hyperlinks 
on cell values, trigger functions (f.i. to open dialogs). I managed to set a 
renderer that checks to see if a column with a specific name is present and 
then does the "custom" render. Currently, this render is triggered when the 
layout is constructed, but to me it sounds better that this custom render would 
be configured at the layer level.

Any advice or tips would be welcome.

this is the implementation concept I have right now:
A FeatureInfoPanel can have a array [] of renderers.

myrenderer = { header: "FIELDNAME", renderFunction: function(val){
mystring = 'show me in a dialog: ' + val; alert(mystring);}};

this works, but I feel like it is not the way to go.

Original comment by milovand...@gmail.com on 5 Jun 2011 at 9:37

GoogleCodeExporter commented 9 years ago
Waar het m.i. om gaat is dat je een config voor (de kolommen in) het GridPanel 
wilt opgeven. Er wordt nu een "eenheidsworst" gridpanel opgezet omdat de types 
van de velden van te voren niet bekend zijn.

Veel in Heron werkt met defaults die je kunt overrulen met een optionele config 
dus moeten we ook in dit geval zoiets kunnen.

Omdat de properties niet voor de baseclass (Panel) zijn heb ik de conventie 
"hropts" aangehouden voor opties specifiek voor de Heron class. Je zou bijv. 
zoiets kunnen doen:

{
 xtype: 'hr_featureinfopanel',
 id: 'hr-feature-info',
 region: "south",
 border: true,
 collapsible: true,
   .
   .
 maxFeatures: 10,
 hropts : {
   columnrenderers {
     [
       {
         feature_type: 'parcel'
         field_name: 'url'
         header: 'snelkoppeling'
         renderer: function(val){ mystring = 'doe iets met' + val; };
       },
       {
         feature_type: 'building'
         field_name: 'datum'
         header: 'datum'
         renderer: Ext.util.Format.dateRenderer('m/d/Y h:i A');
       },
       .
       .
     ]

   }
 }
}

Op runtime in handleGetFeatureInfo() kun je dan checken op basis feature type 
(variable 'type.featureType') binnen de  welke columns moeten in 'type.columns' 
worden overruled met je geconfigureerde renderers. Dan worden alleen de door 
jou geconfigureerde kolommen overruled en blijven de rest de default rendering 
houden.

Dus samengevat: in de config geef je aan welke kolommen en hoe je wolt 
formatteren en op runtime check je of er voor de bewuste kolum een renderer is. 

Original comment by jus...@gmail.com on 6 Jun 2011 at 8:15

GoogleCodeExporter commented 9 years ago
Hello Just,

You are correct, I want to set up custom renderers per column in the gridpanel. 
But not only that, in theory, I might want to render 'parcel' from the 
'kad-percelen' different then 'parcel' from 'this-farmers-own-layer' 

What I am trying is to clearify the concept that the ONLY flexible solution to 
assign custom renderers would be at the layer level. I have already set this 
up, but the problem I run into now is that I lose reference to the 
this.map.layers[someindex] in the HandleGetFeatureInfo function. There is 
currently no way to know what the calling layer from the layer stack was with a 
getFeatureInfo request...

Original comment by milovand...@gmail.com on 6 Jun 2011 at 10:10

GoogleCodeExporter commented 9 years ago
Yes, I think I understand and that is why I gave the example with feature types 
configured.

I think that there are still ways to get the layer name within 
handleGetFeatureInfo. Just run the debugger and look what you get in the event 
("evt") that is passed to handleGetFeatureInfo: 

evt.request : the original XML HttpRequest containing the layers
evt.gml.featureType

The feature type is usually also the layer name, but with the featuretype 
string you can get the specific confgiured colum renderers from the config. Why 
would you need the layer when you only need the feature type (and column names) 
?

Or am I missing something ?

Original comment by jus...@gmail.com on 6 Jun 2011 at 8:52

GoogleCodeExporter commented 9 years ago

Original comment by milovand...@gmail.com on 1 Jul 2011 at 10:58

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 31 Jan 2012 at 6:45

GoogleCodeExporter commented 9 years ago
Features herprioritiseren.

Original comment by jus...@gmail.com on 22 May 2012 at 2:40

GoogleCodeExporter commented 9 years ago
http://stackoverflow.com/questions/3337070/how-to-add-a-row-hyperlink-for-an-ext
js-grid

Original comment by jus...@gmail.com on 24 Jun 2012 at 1:24

GoogleCodeExporter commented 9 years ago

Original comment by jus...@gmail.com on 10 Jul 2012 at 2:30

GoogleCodeExporter commented 9 years ago
Fixed: when a field value in a GFI response has a value containing http:// it 
is rendered as a clickable hyperlink with that URL. 

To test: go to one of the examples that has the "Hockeyclubs" layer like:
http://lib.heron-mc.org/heron/latest/examples/featselsearchpanel
- zoom to Amstelveen, Amsterdamse Bos -
- do a GFI on "Hurley".

Original comment by jus...@gmail.com on 14 Aug 2012 at 3:48