Enhanced Search Widget Version 2.23.1 - 11/22/22

537043
2821
07-14-2014 03:57 PM
Labels (1)

Enhanced Search Widget Version 2.23.1 - 11/22/22

Live Preview Site

Web AppBuilder for ArcGIS | Help - Enhanced Search widget

 

List of the latest enhancements and changes:

  1. Fixed issue with Spatial Relationship settings

Older enhancements or changes

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

 

Older Versions

Last 2.21 version

Last 2.17 version

Last 2.13 version

Last 2.12 version

Last 2.11 version

Last 2.9 version

Last 2.7 version

Last 2.6 version

Last 2.5 version

Labels (1)
Attachments
Comments

here are 2 screenshots.

note that the dropdown list populates

and it seems to have found the feature but the F12 display shows it is unable to get the geometry.

the point on the map is what i searched on so it can display.

2015-11-06_100945.png2015-11-06_101106.png

Robert,

update on the geometry issue.

i created a new arcmap document that did not have the Definition query.

the field that was being used for this has a domain , which might be a factor, i don't know.

i resymbolized the map so it looks the same.

published it, build a webmap and loaded it into a new WABdev map.

i built the query as i had before.

it works.

so there is something about the def. query and/or the domain.

have you run into any issue with domains in def queries that could cause this.

fyi

i have built a query with your esearch and set the def query

when i do there are no records in the dropdown.

just the word 'all'

i'm using the same syntax as in arcmap.... not the aliasname

FITTINGTYPE = 'Transmission Shaft'

so there is something about the def. query.

maybe i'll try turning off the domain.

The definition query should have the domain  value and not the description. Transmission Shaft sounds like the description.

answer

i should have a rule not to do anything that requires focus on Friday.

all this is pretty stupid.

turns out the domain description is different that the value in the field.

when i fixed this so 'TransmissionShaft' instead of 'Transmission Shaft' it works fine

both in your query and the esri on.

go back to doing something more interesting.

Hi Robert,

Thanks so much for taking your time to go over my issue of not being able to duplicate or import my apps within the Web AppBuilder.

Thanks for pointing out that the source of the problem is that I have different wabVersion values in the custom widgets I am adding.

For example, when I look at manifest.json file within your eSearch Widget, I see that the webVersion = 1.3

This is the correct value which jives will all the standard ESRI widgets in WebAppBuilder 1.2

p01.jpg

However, when I examine the manifest.json file within the AddService widget that I added, I see that the wabVersion = 1.1

This is causing the builders version-manager.js code to throw an error.

p02.jpg

I will edit this line to read:

“wabVersion”: “1.3”

I am going to manually clean everything up in the manifest.json file of every widget, and the main config.json file.

Sebsatian,

   Thanks for the code for that fix. I will add it into the next release.

Robert,

I have two questions for you.  First I am trying to change my Zoom Scale in the layer search.  It doesn't matter what I put in that scale box always zooms into the same scale.  Is there something I'm missing.

The second question is,  what does it base the search results order off?  I'm having it search by name and some names could produce 100 search results.

Thanks for the help and clarification.

Lindsey,

   Sorry I probably could make this more clear in the help. The ZoomScale is only used when you are zooming to point data that does not have an extent.

  For the second question the results are presented in the order that they are returned from the server unless you set the "Result Item Sorting"

Thanks for the clarification on the ZoomScale.  Allowing a user to set a zoom scale not only to a point but to polygon would be a great addition to tool, if possible.  With me I am searching extremely small parcels, that it zooms so far in, that the searcher can't even see the streets at that scale.

For the Result Item Sorting,  I just realized I'm a version behind, so I will be updating to your current version to take advantage of that option.

Keep up the awesome work.  Your search widgets have always been great to work with.

Hi,

Apologies if this has been raised previously, and this may not be the correct forum, but I seem to have lost the ability to alter the column aliases of search results in the attribute table.  I haven't changed my version of eSearch (1.2.0.3) and it previously worked but unfortunately I can't pinpoint what may have changed.  Add as operational layer and show in attribute table widget are both selected.

Thanks.

Helen,

   Version 1.2.0.6 addresses this.

Hi Robert,

Thanks so much for releasing version 1.2.0.6 of your Enhanced Search Widget so promptly!

You have included the most popular enhancements requests we had.

I will test them out this weekend and post my findings.

Robert,

I have downloaded your newest version and I'm still having an issue with the sorting.  I looked and my service is set to Support Advanced Queries. Attached is screenshots off all my settings and results.  As you can see that I have it sorted by last name and than first name.  And the first name is all over the place on the results pane; it goes Glenn, Carie, Emmer.  Not much of sorting.config.JPGresults.JPG

Lindsey,

   Wow, can't believe no one has reported this till now. It is a one line fix in the code. If you want to fix your app then open the Widget.js file from the eSearch folder and find:

if(this._isServiceSupportsOrderBy(this.currentSearchLayer)){

In my code it is at line 1568 (assuming version 1.2.0.6)

and change it to:

if(this._isServiceSupportsOrderBy(this.resultLayers[layerIndex])){

Make sure to do this in the [install dir]/server/apps/[app#]/widgets folder and the [install dir]/client/stemapp/widgets folders

Cheers Robert

Thanks for adding the "Added clear results link to the By Value tab" it all makes a difference. Nice work.

Rod

That simple code changed worked.  Thanks Robert!!!

i am not sure which file to edit.

Widget.js as mention in the reply to Lindsey

thanks

i appreciate your response.

Hi Robert,

I made 12 Web Apps using your Enhanced Search Widget 1.2.0.6. They also include the most recent versions of all your Custom Widgets as of 11/12/2015.

PlanNet

Foldable Theme:

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

Launchpad Theme:

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

Dart Theme:

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

Tab Theme:

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

Box Theme:

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

Jewelry Box Theme:

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

PaloVerde

Foldable Theme:

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

Launchpad Theme:

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

Dart Theme:

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

Tab Theme:

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

Box Theme:

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

Jewelry Box Theme:

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

I will begin testing them on different devices this afternoon.

Everything looks great so far!

Hi Robert,

Apologize if this has been discussed...went through all of the comments and did not see it mentioned.  I have a map service published from fgdb feature classes each having multiple attribute indices.  When I add any of those layers to the eSearch widget and launch, it fails on those layers every time with the error message "Search Layer Map Service Failure" along with a note that the layer will be removed from the widget.  It also seems to break other search layers.  If I remove the layers in question from the confiig, the eSearch widget works well again. Wondering if anyone else has experienced this and if there is a potential solution?  I have a workaround in place but it is less than ideal.

I'm using WAB v1.2 and eSearch widget 1.2.0.5 (tested at 1.2.0.6 with same result) along with the Local Layer widget.  The web console error notes that the services failed with a link to widget.js line 775.  Appreciate any help you can offer.  Thanks!

i'm guessing it has to do with the layer, not the indices. have have layers with more than one and there are fine.

Part of my workaround was making a copy of the fgdb's, removing all but 1 index from the feature classes and publishing a new service.  The resulting services work fine when added to the widget.  But from your comment, it sounds like it may have something to do with the indices themselves.  Thanks!

i will recheck my data on monday to be sure.

your workaround makes me wonder. kind of hard to mess up an index.

you don't have one that is built to not accept nulls do you?

i did that once and the field had nulls. it was an issue.

Josh,

   If you can do a query using the rest end point page for that layer and it successfully returns results with geometry then your layer should work fine in eSearch. So I would suggest that you test your Map Service layers rest end point page.

Thanks, Robert.  I am able to query the rest endpoint and it successfully returns results with geometry.  I'm going to try re-publishing the service and see if that does anything. 

Hi Robert,

Your Enhanced Search Widget 1.2.0.6 is a rock solid release!

You have introduced so many useful enhancements.

I like the Scroll bar you have added to that helps while entering a long list of Predefined values like for example the Section Numbers that go from 1 through 36.

p01.jpg

Now I have the option to define my own custom symbols for every layer, if I choose to do so. This is a great enhancement. The Flex version allowed this.

p02a.jpg

I like how it intelligently allows you to edit only the Polygon symbol, for a  Polygon layer. The Point and Line options do not show up.

p03.jpg

p04.jpg

Here is the Township Range layer using the Default Polygon Symbology.

p05.jpg

However, the Sections can be drawn using my Layer Specific Symbology.

I also like the Clear button that you added to the By Value pane.

p06.jpg

Now we can sum the values of one numeric field in a given layer.

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

p07.jpg

p07b.jpg

p08.jpg

I can now set all my Field Aliases within your eSearch Configuration.

p09.jpg

Both the Pop-up and Attribute Table show my Field Alias.

This is an awesome enhancement.

p10.jpg

I like how the Attribute Table only shows the Fields that I have included in the Configuration page.

p11.jpg

The remaining fields are not displayed in the Attribute Table.

This is another wonderful enhancement.

The end user will see a much cleaner and tailored display.

p12.jpg

I like the fix from Sebastian.


The dark and light alternating bands maintain their integrity.

This makes it easy to see the boundary where the listing of one record ends and the next one begins. In addition, the currently selected record is shown in a slightly darker shade of gray.

p13.jpg

Robert, everything is working flawlessly on all themes.

The colors of the controls match the Style Color.

p14.jpg

Can we make these two buttons match the Style Color?

Then again, there may be a good reason to leave it the way it is.

p15.jpg

With the enhancements you have put into version 1.2.0.6, to integrate this with the Attribute Table, it almost mimics all the functionality of the Data Grid in your Flex version.

You had a convenient Show Results in a Grid button in the Flex version.

p17.jpg

With one mouse click you could display the Attributes in a Data Grid.

p18.jpg

On the Web AppBuilder version, you have to first open the Layer List Widget like so:

p19.jpg

Then one has to click on the down arrow on the Search Results Layer and click Open Attribute Table.

p20.jpg

Would it be a lot of coding to add a tiny Attribute Table button right on the Results Pane like so?

It could have a tool tip like "Show attribute table".

p22.jpg

Then just like your Flex version, the user can open the Attribute Table with a single mouse click.

p23.jpg

If you could add this enhancement, it would greatly streamline the workflow.

Thanks a million for all the wonderful goodies you keep creating every week. You have made it so simple and efficient to create these powerful web applications in a matter of minutes!

Hi Robert,

I ran more tests today using different devices. Your Enhanced Search Widget 1.2.0.6 is working like a champ.

I was pleasantly surprised to find how you have fixed the conflicts between the eSearch and Identify Widgets.

It is now possible to run an Identify without first having to clear the eSearch Results.

This was a very important fix for me.

This example is using eSearch 1.2.0.6 and identify 1.2.0.3

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

I am turning on the Township Range layer.

p01.jpg

I am using eSearch and setting my Search layer to Township Range.

p02.jpg

I am selecting a couple of Townships.

p03.jpg

Now, without clearing the eSearch Results, I am opening the Identify Widget.

p04.jpg

I am identifying a Township next to the previous two Townships found by eSearch.

The Identify works!

It does not hang anymore.

p05.jpg

Whatever fixes you made to eSearch 1.2.0.6 has removed the conflict with Identify 1.2.0.3

I can even Identify a Township that is in my eSearch Results collection.

There is no conflict.

p06.jpg

I can reopen the eSearch Widget.

My eSearch results are still active.

p07.jpg

This makes the eSearch and Identify completely independent.

Thanks so much for this fix!

This product just keeps getting better and better.

Hope the November update to the Web AppBuilder does not break too much of your custom code. You have created a stable version.

I would like to share a valuable tip from my coworker Kacie Vanasse on how to remove the ESRI Logo.

In the FlexViewer, there was a simple way to remove the ESRI Logo.

In the config.xml file you would enter:

esrilogovisible = “false”

p01.jpg

In the Web AppBuilder version you can easily remove both the ESRI Logo and the Map Attribution the appears on the lower right.

p02.jpg

Edit the jimu.css file.

This file is under:

server\apps\ID#\jimu.js\css\jimu.css

p02a.jpg

Search for .esriControlsBR

p03.jpg

Add this property:

display: none;

p04.jpg

.esriControlsBR {

   z-index: auto;

   display: none;

}

Save jimu.css.

Refresh your Web App.

Now you have a cleaner looking map!

p04a.jpg

Here is a more detailed set of instructions on how to use Google Chrome Developer Tools, inspect any element, and change the properties.

http://www.TapasDas.com/Kacie.pdf

Thanks to Kacie, our CSS Guru for this hands-on walk through

Hi Robert,

I found an oddity.

When you have both eSearch 1.2.0.6 and Identify 1.2.0.3 open, and you run a Graphical Search, it also updates the results of your Identify.

Conversely, if you run an Identify, it also updates the results of eSearch as if they are linked together.

I guess this is perfectly fine and none would mind. It just jumped at me the first time I had both widgets open at the same time.

Here is a test case:

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

p01.jpg

First, let's zoom to our study area to view a Point data layer (Sirens)

Open the Enhanced Bookmark Widget and select Palo Verde

The Sirens are symbolized with big red screaming dots.

p02.jpg

Minimize the Enhanced Bookmark Widget.

Open the Enhanced Search Widget 1.2.0.6

The default search is By Value

The default search layer = PV Sirens

The default Siren Number = 10

p03.jpg

Accept the defaults and press Search

The eSearch Results panel shows Siren Number 10

The map zooms to Siren Number 10.

p04.jpg

Use the Zoom Previous Tool to go back to the Previous Extent.

p05.jpg

Keep the eSearch Widget open.

Open the Identify 1.2.0.3 Widget

p06.jpg

Set the Identify Layer to PV Sirens

p07.jpg

Engage the Extent Tool to Identify 2 Sirens.

p08.jpg

The Identify Results panel now shows 2 Sirens.

The eSearch Results panel still retains the original selection.

So far, so good.

p09.jpg

Keep the Identify Widget open.

Open the By Shape tab on the eSearch Widget.

Activate the Extent Tool and Search for a single Siren.

p10.jpg

Notice, how eSearch returns the correct result.

However, this also refreshes the Identify results panel to mirror the eSearch results.

p11.jpg

Go back to the Previous Extent.

Open the Identify Tab.

p12.jpg

Use the Extent Tool to Identify two Sirens

p13.jpg

Notice, how Identify now refreshes the eSearch results panel to mirror the Identify results.

p14.jpg

 

With so many graphic layers active, I know how complex it is to code the selection logic with the possibility of having multiple widgets open and multiple selection tools active that the user may be engaging.

This is your call.

Tapas,

  Another simple way is to add some options to the mapOptions object in the main config.json.

"map": {

    "3D": false,

    "2D": true,

    "position": {

      "left": 0,

      "top": 40,

      "right": 0,

      "bottom": 0

    },

    "itemId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

    "mapOptions": {

      "extent": {

        "xmin": -9588945.63048467,

        "ymin": 3961163.9078186783,

        "xmax": -9521681.045593806,

        "ymax": 4027893.4335115473,

        "spatialReference": {

          "wkid": 102100

        }

      },

      "showAttribution": false,

      "logo": false,

      ...

Notice the showAttribution and logo properties.

Aha!

Robert, your method is far simpler and direct.

There are so many hidden tips and tricks. That's why we need a Pro to guide us through.

You should host a Web AppBuilder Training Session for us at the ESRI Dev Summit in March

I have a field “Feedback_URL”, after eSearch widget is running and the results are added to the attribute table, the link looks like below:

Currently it displays all the url text like "http:///www.XXX.feedbackXXXX".  I want to display the field as text like “Click here to provide feedback”, and I want keep this text to be hyperlink. When users clicks on it, it goes to the url contained inside the “Feedback_URL” field.  Is this possible? Thanks!

Lei Zhou,

   No the Attribute Table widget belongs to the WAB Development team not me, so I have no control or the display of the url.

Robert,

I wish ESRI would lift there game on this. Your eSearch widget would integrate with the Attribute widget beautifully if ESRI provided more config functionality.

They really need to provide more functionality on all there Widgets.

cheers

Rod

Thanks a lot, Robert!

Robert Scheitlin, GISP​, how can I create a Search URL that routes through my Internal proxy?

I have a couple web maps I put together that are for internal ONLY clients. Those maps work great, you helped me on the proxy setup. Now, there is talk of combining some of the functionality into a single map. SO this means that I would have a BLANK operational layer map, and I would need to Enhanced Search using a Search URL from my proxy'd layers.

Any tips? Suggestions? Etc.?

Brain,

   Not sure I follow. The eSearch does not care about internal external when talking about the url search. All it cares about is the search parameters like esearch and slayer in the url.

When I enter the url:

http://InternalServerName:6080/arcgis/rest/services/TMUA/Sewer/MapServer

I get a red circle with an exclamation in the Search URL field...

2015-11-19_151536.png

If I remove the 6080 then I get the following in my Chrome Developer Window...

2015-11-19_151733.png

I even went and added the part "---- Reference To My Computer ----" part in my proxy, just in case. Nothing.

Brain,

   Ok now I understand better what you are wanting to do. You will not be able to configure the layer if the machine WAB dev is running on does not have access to that url.

Robert Scheitlin, GISP

The URL I am trying to reach is for a REST Service that I have made private. The URL to access that feature is password protected. I have a proxy setup that allows two other web maps to access that REST service via an AGOL Web Map I build that is shared internally only. Those web maps work just fine. I developed them on the same machine I am using now.

I can go to AGOL, use the internal REST Service URL, create a webmap, go to WAB, create a Web App, export, upload to external/internal server, configure to use the proxy and everything works...

But the Enhanced Search won't accept the REST Service URL because I don't think it's going through the proxy?

Brain,

   OK one question before I start testing. Is your map service layer secured using ArcGIS Server?

Does the logo: false pair have to be included in the config for the showAttribution: false pair to behave?  Because I'm still getting the map attribution display.  Not an issue in my api

Thanks

David

David,

   No the "showAttribution": false can function by itself. Make sure that you have it in the mapOptions object and not accidentally added inside another object like the extent object or something.

thought so thanks for the confirm, I'll check my end

Hi Robert,

I did some more testing this weekend. I have nothing to report.

Thanks for the tip on checking to make sure the wabVersion value is set to 1.3 in the manifest.json of all the Custom Widgets I am adding.

After doing that and starting from scratch, I was able to Duplicate Apps and Import Apps without any errors.

Thanks for showing a simpler way to remove the ESRI Logo and the Map Attribution.

Search for itemId in the config.json file and add the following two map options.

     

    },       

    "showAttribution": false,

    "logo": false

   },

This is how the mapOptions block looks like before the edit.

p01.jpg

This is how the mapOptions block looks like after the edit.

p02.jpg

Note: Make sure not to add a comma after the last property:value pair.

For example, adding this comma will hang the application as it is expecting to read another property:value pair.

"logo": false,

This was an excellent tip. I will be using this trick on all my Web Apps from now on.

There was an odd behavior I noticed while using Internet Explorer 11.

This has nothing to do with your Custom Widgets.

This is something for Moxie's team to look into.

I am using this Foldable Theme as an example:

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

All the icons display correctly in Firefox and Chrome.

p03.jpg

However, a couple of icons are missing when using Internet Explorer 11.

p04.jpg

Here I am using the Launchpad Theme as an example:

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

All the icons display correctly in Firefox and Chrome.

p05.jpg

However, I am seeing the characters h, i, n, and c in place of the icons in Internet Explorer 11.

p06.jpg

Here are a couple more artifacts related to the Overview Map in IE 11.

p07.jpg

Good catch TAPAS.  I was placing the showAttribution option after my lods array with no effect.  Once I moved the option immediately below the extent option no issues:

        "mapOptions": {

            "extent": {

                "xmin": -9220178.659464002,

                "ymin": 3110495.6629237854,

                "xmax": -9103994.376470689,

                "ymax": 3177072.314560084,

                "spatialReference": {

                    "wkid": 102100

                }

            },

            "showAttribution": false,

            "lods": [{

                "level": 0,

                "scale": 18489297.737236,

                "resolution": 4891.96981024998

            }, {

Tapas,

   Thanks for the info in the Identify and eSearch being linked when using the drawing tools and a theme that allows multiple widgets to be active at the same time. The next release of both the eSearch and Identify will have code in place to prevent this.

How do you add a custom widget to Web App Builder?  I looked at the help, and it started by stating to hover over the new widget, but how does it get there?  I downloaded the zip file, but what now?

Thanks

Version history
Last update:
‎11-22-2022 07:31 AM
Updated by: