Identify Widget Version 2.21 - 11/16/2021

213852
494
02-23-2015 05:20 PM
Labels (1)

Identify Widget Version 2.21 - 11/16/2021

Live Preview Site

Web AppBuilder for ArcGIS | Help - Identify Widget

 

List of the latest enhancements and changes:

  1. Added 10 max rows max display to widgets dropdowns.
  2. Fixed a mixed protocol issue in code

Previous enhancements and changes:

  Check the "Older enhancements or changes.txt" in the download for a complete list.

 

Older Versions

Last 2.4 version

Last 2.5 version

Last 2.7 version 

Last 2.8 version 

Last 2.9 version 

Last 2.10 version

Last 2.11 version

Last 2.12 version

Last 2.13 version

Last 2.14 version

Last 2.15 version

Last 2.17 version

 

ATTENTION:

  1. If you are hosting this widget on a https server, then make sure you change all your excludelayer urls to https. Failure to do so will result in widget failure.

 

Features:

  • Specify which layers are to be identified
  • Format the fields for identify layers
  • Configure links and link icon
  • Close result popups after a number of seconds of losing focus
  • Choose which layer to identify in the widget UI using drop down list
  • Specify layers to be excluded from identify operation
  • Choose to only identify configured layers
  • Replace null values with empty strings
  • Configure default symbology for identify results
  • Specify Visible, Top, or All layers to be identified.
  • Option to Keep Identify Active
  • All Identify geometry types are configurable
  • Option to use map time
Labels (1)
Attachments
Comments

Thanks for the response Robert.

Great Widget. 

I am trying to perform some tasks when it closes, so I use the onClose function. However, the function is not called when I close the widget. I am using the foldable theme. Ideas? Thanks.

Lefteris,

  What version of WAB and what version of the widget? I just tested 2.4 and placed a breakpoint in the onClose function and it worked fine.

Lefteris,

   The Identify widget already has an onClose function it looks like you are adding another one.

I could swear that that I searched for them before I coded them in. Thank you.

Hey, Robert, I have been using the identity widget for a while now, but never figured out how to get links to work. I have just added my own method to accomplish this. But would like to revisit the link concept in this widget, and see what I might be missing.

Todd,

   I am not sure why you can not get links to work. The Traffic Cameras layer that is one of the widgets default layers has an example of how a link is setup.

I see this example. I have it setup very similar but instead of image would rather use text. But even with just trying to use an image it still doesnt show up. All link options are set in the json.

Todd,

   Are you using a true full http url in your link?

I have it figured out now, Thanks, Robert.

Hi Robert

Thanks for this widget - it should so exactly what we need.

Unfortunately, I am having difficulties getting it to work. I have added one identify layer, selected 'Only These' and have no excluded layers. When I run the tool for the selected layer, it says there are no results. If I remove the 'Only These' and run it for all layers, it brings back the results for this layer in amongst the others.

Can you confirm that when I enter the URL for the Identify layer, it is just the rest endpoint for that layer in the map service? As it is a secured service, it prompts for the credentials - I presume these are saved somehow, or may this be part of the problem?

Mark,

   The usual culprit is that people enter an http vs https or vise versa. An http and https urls are considered different layers and thus the identify widget will not find  that layer in the web map and return results. Another common issue is the layer is just not part of the web map and it has to be for the identify widget to work. See if those bits of info help. As far as the use of the secure layer, the user name and password you enter when adding the layer to the widget as only good for that WAB session (they are NOT stored by the widget). This means your user will be prompted by the identity manager for the log in unless you setup a proxy for your app with these credentials stored in the proxy config.

I'm wondering if the problem is that Portal is saving the credentials for the secured service and therefore, the url is different from that of the rest endpoint directly from the ArcGIS Server. If I use the url from Portal, it shows as an error on the Identify URL box in your app.

Can you think of a way around this? If not, I suspect that there is no way round this and may mean we can't use widget. We have to use secured services and cant have users knowing and having to enter credentials.

Mark,

   So you are sure you don't have the http vs https issue and you have that exact url as part of your web map?

Everything we use is https so shouldn't be an issue. The URLs were not the same. The one in the Portal webmap (which had saved the security credentials saved in the map image layer) referred to the Portal server name with some kind of long token like code in it (is it some kind of proxy?) rather than the ArcGIS server name directly. I have now used the URL from Portal and it appears to work. I assume this is secure?

The only issue I have now is that the widget does not always bring back the correct results. If I draw a polygon which encompasses entire dataset, it reports no results. However, if I draw one of equal size that intersects the dataset it shows the result. Have you experienced this before?

Mark,

   No I have not seen that before. The Identify task should return results for any intersection with the drawn geometry.

Hi Robert

I am still having a few issues with the identify tool.

The first picture shows the extend geometry select tool being used to select an area greater than the size of the datasets for Area of Outstanding Natural Beauty (AONB) and Green Belt. The second picture shows the fact that it has brought back no results.

The third picture shows an area selected which covers part of two AONB polygons and Green Belt (although not all the polygon is in the Green Belt). Picture 4 shows that, for some reason, only the AONB

The fifth and sixth show are area selection where it is in both datasets (2 polygons for AONB) and this has returned the correct results.

Have you any idea why this may be happening? I don't think there is anything I have done wrong.

Many thanks

Mark
k123465

Mark,

   Does you browsers web console show any errors?

Nothing obvious in the console, although it doesn't add anything when you run the widget.

Mark,

   Because the widget is not generating errors in the console and I can not duplicate this on mt live preview site or my development machine, I am stumped.

Hi Robert,

In some, but not all, of my WAB Dev 2.4 apps using ID widget 2.4, the font of ID results in the pop-up is something like Times New Roman, whereas the font in the widget itself is normal (possibly Avenir family). 

In other apps, font style in both is the same.  I never have messed around with fonts in my apps.  I checked the style.css file in the widget and saw no font-family entries.  Do you know how I can get the font in the pop-ups back to normal (Avenir or similar)?

Thanks,

Barnaby

Hi again Robert

I have been doing some further investigation and it appears that the results are correctly returned for the first 6 layers (those with id 0,1,2,3,4,5) but not after that.  I have tried creating new mxds, new services and the result is always the same. Can you think of a reason it may only work correctly on those layers? When I load the widget initially, there are your 6 layers in there - I wonder if this is just a coincidence?

I have now tested the Enhanced Search widget on the same map service and it brings back results on all layers, not just the first 6, so it looks like it isn't a problem with the service itself.

Thanks for your help.

Hi Robert

Following my update last week, I wondered if you have any clues as to why the Widget is only successfully identifying information for layer IDs 0 to 5? It is really strange. Have tried new mxds and new services but always the same result. The fact it works in the select widget makes me thing out service is ok.

Your widget is absolutely perfect for us and there is nothing even vaguely close to it (not that I know of anyway!) - I can't for the life of me work out why ESRI haven't included this type if thing in the core functionality of the webapp builder! Not being able to identify multiple layers by extents/polygons is a total showstopper for us! If we are unable to get your widget working, I have no idea what we will do!

Thanks you for all your help

Mark,

   I am not sure what issue you are running into as I have several people that have 40+ layers that are identifying just fine.

Hi

I have got the widget working perfectly now (issue I have with not showing the right results was to do with number of results server returned!)

I now need to change the opacity and colour of the icon for the widget - I have looked in the css file like I did for the built in widgets, but cant see what I need to change. Also the changing colour of the highlighted selection tool would be great, if possible. Please could you point me in the right direction?

Thanks you for your help

Mark,

   If you will look at the widgets help document you will see that the widgets settings ui allows for changing the selection symbology. The identify icon is an image in the images folder.

Thanks for the reply. I presume this is different from the built in widgets where you can go into the css file and change the colour of the widget and the opacity. I can change the colour of the widget in photoshop if I need to but the problem I have is that the transparancy causes the icon to blend into the background too much

With regard to the select tool colour, I mean the colour of the tool, ie extent, point, polygon etc. At the moment it is a shade of orangy yellow and we really need to use corporate colours.

Many thanks

Mark,

   So you are wanting to change the widgets background color? That is controlled by the theme style you are using and should be the same as any other otb widget. Are you using a custom theme and or style?

Hi - sorry I'm just being rubbish at explaining!! The icon I need to change colour and transparency on is that circled on the first picture - the wigets on the left had an rgba setting in the css file. There is also a separate mouseover rgba setting.

The other icon i want to change colour is the one in the second picture. 

Thanks

Mark,

   Based on your image you are using a custom color and thus the css style rule is defaulting to the yellow style so to change this you need to adjust the css rule for  .FoldableTheme.yellow in the [install dir]\server\apps\[app#]\widgets\Identify\css\style.css

.FoldableTheme.yellow .jimu-draw-box .draw-item:hover,
.TabTheme.yellow .jimu-draw-box .draw-item:hover,
.JewelryBoxTheme.yellow .jimu-draw-box .draw-item:hover {
  background-color: rgb(208, 125, 14);
  -ms-filter: "Alpha(opacity=70)";
  background-color: rgba(208, 125, 14, 0.7);
}

for the onscreen widget icon you need to add these rules to your [install dir]\server\apps\[app#]\themes\FoldableTheme\common.css (adjust the colors of course):

.jimu-widget-onscreen-icon {
  position: absolute;
  cursor: pointer;
  border-radius: 4px;
  background-color: rgb(88, 100, 116);
  -ms-filter: "Alpha(opacity=20)";
  background-color: rgba(88, 100, 116, 0.2);
}

.jimu-widget-onscreen-icon.jimu-state-selected {
  background-color: rgb(88, 100, 116);
  -ms-filter: "Alpha(opacity=80)";
    background-color: rgba(88, 100, 116, 0.8);
}

.jimu-widget-onscreen-icon:hover{
  background-color: rgb(88, 100, 116);
  -ms-filter: "Alpha(opacity=40)";
  background-color: rgba(88, 100, 116, 0.4);
}

I will be adding support for custom theme colors in my next release.

Hi Robert,

 

Your Identify Widget 2.5.0.1 is working like a champ.

I have tested it out against 62 data layers. This is the only practical way to display the attributes of so many data layers.

 

I have tested your Identify Widget on 8 different themes under WAB 2.5 using the latest versions of several of your custom widgets:

 

Enhanced Search Widget 2.5, Version 71                             8/10/2017

Enhanced Basemap Gallery Widget 2.5, Version 14            8/10/2017

Identify Widget 2.5.0.1, Version 28                                      8/16/2017

Elevation Profile Widget 2.5, Version 16                             8/10/2017

Map Progress Indicator Widget 2.5, Version 9                     8/10/2017

Enhanced Bookmark Widget 2.5, Version 7                         8/17/2017

Enhanced Locate Widget 2.5, Version 12                             8/10/2017

Popup Panel Widget 2.5, Version 14                                     8/10/2017

 

WAB 2.5 – Foldable Theme

http://www.tapasdas.com/Maps/Phones/app256/

 

 

WAB 2.5 – Launchpad Theme

http://www.tapasdas.com/Maps/Phones/app257/

 

 

WAB 2.5 – Dart Theme

http://www.tapasdas.com/Maps/Phones/app258/

 

 

WAB 2.5 – Tab Theme

http://www.tapasdas.com/Maps/Phones/app259/

 

 

WAB 2.5 – Jewelry Box Theme

http://www.tapasdas.com/Maps/Phones/app260/

 

 

WAB 2.5 – Box Theme

http://www.tapasdas.com/Maps/Phones/app261/

 

 

WAB 2.5 – Billboard Theme

http://www.tapasdas.com/Maps/Phones/app262/

 

 

WAB 2.5 – Plateau Theme

http://www.tapasdas.com/Maps/Phones/app263/

 

 

In every case the drop down list expands to fill up the available screen space to display a scrolling list of 62 data layers.

 

This is great.

 

However, I came across a minor issue.

 

When I try to Configure the Identify Widget and select a layer.

 

For example: CPA & Development Master Plans

 

 

The Name of the Layer reverts back to the Layer Name in the Map Service which has a spelling mistake = Comprehensive Plan Amemdments and Development Master Plans

 

 

Here I am shortening the Layer name to CPA & Development Master Plans

 

 

The Edited Name shows up fine in the Layer List.

 

 

However, the moment I try to edit this layer again, the Name reverts back to the Layer Name in the Map Service.

 

 

 

The zipped app is located at:

http://www.tapasdas.com/Maps/Phones/app256.zip

 

Thanks again for updating this Widget to WAB 2.5.

 

This Widget, along with your Enhanced Search Widget, are the two essential tools that goes into all our Web Apps.

 

I am delighted to hear you will be adding support for Custom Theme Colors in your next release!

 

Best regards,

 

Tapas Das

Tapas,

   Thanks for informing me of this issue. It is a simple fix and will be addressed in the next release.

Hi Robert,

I've recently upgraded from Identify Widget v.2.1 to 2.5 and now certain layers are no longer identifiable. I think the problem is related to the updated code dealing with layer visibility in the createIdentifyParams function. 

The line:

var li = layerInfosObject.getLayerInfoById(layer.id)

results in a null value for the following service:

https://gisweb10.highpointnc.gov:6443/arcgis/rest/services/GeneralPurpose_SQL_tiled_SP/MapServer

Why might this be the case? Thanks for your help and for creating such a helpful tool!

James

James,

  Be sure that if you data is using https protocol that you urls in the widget config file are using the https protocol as well.

Robert Scheitlin, GISP

Do you have any idea if anything recently changed in JS API that would impact your older versions of Identify?

I have been using your Identify 2.0.1 in an app for a long time, and without issue as far as I know.  Last week I was notified that it wasn't working and the problem persists today.  Below is the only console error I see.

FYI, I plan to roll up to 2.7 soon and am just curious if you know of a quick fix based on what you see below.  In addition, I don't think there are any issues with my services as some endpoints are used in searches in the same app or other apps without issue, but I could easily be wrong.

console error

Adam,

   Has there been any schema changes to any of the map service layers that are used in the widget?

Robert -

Not that I'm aware of.  I have 20 different identify layer options from ~10 different services and none of them are working. 

Adam,

  Unfortunately there is no info in that console screen shot that gives me a clue as to what is going wrong. The best advice I have is check the ArcGIS server logs.

The logs aren't really showing any problems with those particular services.  I suppose I'll have to speed up the migration to 2.7 and try that.

Strange, based on the error in the browsers console I would have definitely expected to see an error in the ArcGIS Server logs for the Identify operation.

In early December we had some security or firewall updates on the web server that stores AGS and our services, which impacted some outsiders' ability to use our printing service on our public-facing site, so it's possible that's related to this issue.  However, I am not able to use the Identify widget on our internal access only site.

I'll try 2.6 or 2.7 tomorrow and see if that has problems too.

Robert,

I'm guessing there was a change in the JS API recently as I have downloaded Developer 2.7, inserted Identify 2.5.0.1 and have successful results with it through the first two Identify layers.  I'll be working on it more tomorrow though to make sure all are good though and setting up eSearch.

Anything else you can think of?

Not really

I'm using the TAB theme in WAB for my website I have an Esearch Tab and Identify, the Identify stays active and selects parcels even after I selected the Esearch Tab is there a way to stop that from staying active?

James,

  I don't remember which version it was but the latest versions of eSearch and Identify widget will tell each other to deactivate the draw tools of the one that is not currently open if the active one is trying to activate its drawing tools.

Yeah that is true it functions like that but when I use the Esearch for find a parcel by Value and on the Results tab, I don't want the Identify to remain active. Because they'll start clicking around the surrounding parcels and highlighting them in blue, but they will see no info associated with it because they are on the results tab of Esearch not the Identify. I want them to be forced to return to the Identify tab to active it. I just need the Identify tab to never be active if its not the selected tab.

James,

then you need to add this Identify Widget.js

      onDeActive: function(){
        this.drawBox.deactivate();
      },

Thank you very much sir that worked wonderfully.

Hi

I don't suppose there is an easy way to bulk upload layers to this widget? My map has about 200 layers and it may take some time to add them all!

Thanks

Version history
Revision #:
4 of 4
Last update:
‎11-16-2021 06:51 AM
Updated by: