Enhanced Search Widget Version 2.23.1 - 11/22/22

536684
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

As I noted before, I don't think this is a eSearch problem.

I'm using eSearch's graphic search to select a subset of the points in the feature layer included above and then based on that subset, displaying the related tables in the attribute table widget.

The search and selection of points works fine adding them as a new operational layer. I can then select the points in the just added operational layer and display the related records from the table (in WAB 1.1). The same does not seem to work in WAB 1.2. I see empty tables with a continuous loading graphic.

It's entirely possible that the error is on my part, and I've missed a setting, but it seems like WAB might be dealing with the tables related to the operational layer differently from before.

Nathaniel,

   OK, we were definitely on a different page then. I thought you were referring to the Type Id having a domain with integer values that David Coley mentioned. I will have to look into this related tables thing.

Hi Robert, another feature to the enhancement list. You can add in the search expression list, actions, the possibility to sort? Thank you

Robert

this is about querying dates- i told you if i found anything interesting i would let you know.

here are 2 sets of GETs from Fiddler.

the first shows the result of your esearch query when i do a date range.

the second is the esri query tool.

note that the word  'timestamp' is in the second. i am guessing that this why the esri tool returns date based data and yours fails.

esearch- query

GET /arcgis/rest/services/assets/points_of_interest/MapServer/4/query?f=json&where=DATE_%20BETWEEN%20'2014-09-

07%2000%3A00%3A00'%20AND%20'2015-09-

04%2000%3A00%3A00'&returnGeometry=true&spatialRel=esriSpatialRelIntersects&outFields=MATCH_ADDR%2CARC_STREET%2CARC_CITY

%2CARC_STATE%2CARC_ZIP%2CID%2CDATE_%2CSTART_DATE%2CEND_DATE%2CRECORDER%2CCUSTOMER_N%2CADDRESS%2CCOMMUNITY%2CZIP_CODE

%2CWK_PHONE%2CHM_PHONE%2CCOMMENT_%2CPROBABLE_C%2CODOR%2CE_MAIL%2CCOLOR%2CSOURCE%2CFOLLOWUP%2CTROUBLE_CO%2CRESPONSIBL

%2CDATE_STAMP%2CDONOTREPOR%2CTYPE_OF_CO%2COBJECTID&outSR=102100 HTTP/1.1

esri-querry

GET /arcgis/rest/services/assets/waternew/MapServer/25/query?f=json&returnIdsOnly=true&where=DATE_COLLECTED%20BETWEEN

%20timestamp%20'2014-09-02%2000%3A00%3A00'%20AND%20timestamp%20'2014-09-

11%2023%3A59%3A59'&returnGeometry=false&spatialRel=esriSpatialRelIntersects&outSR=102100 HTTP/1.1

Glenn,

   Can you setup the date search in the esri query widget and see if it works and if it uses timestamp?

i did set up the date search in the esri query Robert, that i how i got the GET labeled esri-query

Robert and Glen,

Please refer to this geonet thread -

Re: How do you get a date query to work?

I was able to fix it by searching and removing the occurence of timestamp as shown below

+ (this.isHosted ? "" : "timestamp ")

from the filterUtils.js file in the jims.js folder of your app.

And I told Moxie about the date query bug at the UC. I was hoping it would get fixed soon in both in the online and the developer edition.

Thanks

Subu

Subu,

   My eSearch does not use timestamp and that is why Glenn is having issue with date searches. using Oracle it needs the timestamp.

so does the non-oracle date field work with the 'timestamp'?

how is that the esri query works? is the 'is hosted' tag that tells it when to use the timestamp or not?

is there a way to add this in Robert?

i am sure i'm not the only one with Oracle data that wants to use your wonderful search tool.

Glenn,

   No that what Subu was saying that other databases have issue with the timestamp portion so this put me in a hard place trying to figure out a workaround for all databases.

but the esri query tool works for both right?

maybe someone on the dev team can tell you the trick?

Glenn,

   No, the Query widget does not work in all situations and thus the fact that Subu talked to Moxie about this issue.

so maybe just state that your tool works for non-oracle dates and the esri one works with them and wait for Moxie to sort it out.

seems like something that should be addressed.

dates are so hard.

the queries in arcmap are just crazy with the timestamp and then having to add the mmddyy formating.

in your esearch in flex i was just using the full string like i had in oracle.

this is obviously a whole different beast.

have a good weekend.

i'm not stressing over this.

Glenn,

   Your simple fix is to open the config_Enhanced Search.json and find the sqltext property and add the timestamp to it.

"sqltext": "SALE_DATE BETWEEN '[value]' AND '[value]'",

"sqltext": "SALE_DATE BETWEEN timestamp '[value]' AND timestamp '[value]'",

Hi Robert,

Thanks a million for including all my enhancement requests to your Enhanced Search Widget 1.2.0.2 and Identify Widget 1.2.0.1

I made 6 new Web Apps to test the latest versions of your Custom Widgets:

Enhanced Search Widget 1.2.0.2

Identify Widget 1.2.0.1

Google Street View Widget 1.2

Enhanced Basemap Gallery Widget Beta 1.1

Foldable Theme

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

p01.jpg

I like how you have programmed all your widgets to mimic the style color that is selected. This enhancement alone lends it a professional flare. It makes everything visually integrated.

p02.jpg

Your built-in help is comprehensive and understandable to a lay person.

Thanks for making the Export Search URL a configurable option.

p03.jpg

This means, when I search by value, I can chose to hide the Export Search URL button giving a cleaner Results pane.

p04.jpg

I like how the selected feature is highlighted with a cyan outline. This makes it stand out against the imagery base map.

p05.jpg

I like the cyan box around the selected Marker Symbol.

p06.jpg

I like how you have made the Active Tool background color to match the Style Color.

These subtle changes greatly improves usability. Now there is no ambiguity as to which tool is active.

p07.jpg

You have made the hint text easier to read. Glenn would be happy.

p08.jpg

However, I found a minor issue. Here is how to reproduce the problem.

Create a brand new Web App.

Select the default 2D theme.

Add the Enhanced Search Widget 1.2.0.2

p09.jpg

Configure Enhanced Search.

Edit Default Search Symbology

I can edit the Line Symbol and Polygon Symbol.

However, there is no way to select the Point Symbol.

p10.jpg

As a workaround, I reused the config_Enhanced_Search.json file from my previous eSearch 1.2.0.1 project. I got back the yellow donuts.

p11.jpg

Your new Identify Widget 1.2.0.1 works very fast. Results come back immediately.

The active tool background color matches the Style Color just like your eSearch Widget.

p12.jpg

I can now select my Point Marker Symbol along with my Line and Polygon Symbol.

p12a.jpg

The Identified Points on the map show up with the correct Yellow Donuts.

However, a generic picture symbol shows up in the Results Pane.

I was expecting to see a Yellow Donut here.

p13.jpg

I also found an odd behavior with how the Identify 1.2.0.1 widget interacts with the Enhanced Search 1.2.0.2 widget.

To reproduce this problem, refresh this web app:

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

First open the Enhanced Search Widget.

Select a few Schools by Shape

p14.jpg

Close the Enhanced Search Widget.

Do not clear the results.

p15.jpg

Open the Identify Widget.

Try to select some schools.

p16.jpg

The application hangs. The only way out is to reload the web app.

p17.jpg

However, it works the other way just fine.

I can open the Identify Widget first, select a few points and close the Identify Widget.

Closing the Identify Widget also removes the selected points from the map

I can then run the eSearch Widget, and everything works.

The workaround is to clear the results from eSearch before running an Identify.

Launchpad Theme

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

The active tool background now matches the style color making it easy to differentiate.

p18.jpg

Dart Theme

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

I like the CSS changes you have made. It is now very easy to tell which tool is active.

p19.jpg

The Identify Results are now easy to read.

p20.jpg

I like how your Google Street View widget takes up the Style Color.

p21.jpg

Tab Theme

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

The active tool matches the style color.

p22.jpg

Box Theme

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

The active tool matches the style color.

p23.jpg

Jewelry Box Theme

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

The active tool matches the style color.

p24.jpg

Everything now looks visually appealing.

I have one minor enhancement request. This may be in the hands of Moxie's team to implement.

When you start with a Web App on ArcGIS Online and you configure your Pop-up, it appears with a visually pleasing sky-blue header.

p25.jpg

However, when you open the same Pop-up in a Web App, it turns black.

I would like to see the header color match the style color.

p26.jpg

The same thing happens with the Pop-up in your Enhanced Search Widget.

It is always black.

It would have been visually harmonious if this Pop-up header color matched the Style color.

p27.jpg

Robert, your Enhanced Search Widget is an amazing piece of software engineering. This wonder widget has become the corner stone of thousands of web applications. Ever since you designed the original Flex version some 8 years ago, it has become the most sought after custom widget in history.

No one has yet to come up with a better search widget that ties graphical, spatial, and attribute searches in one simple to understand user interface.

We are grateful for all your hard work and passion you have put into this project. Your custom widgets made the Flex platform shine, and now you are doing the same for the JavaScript platform which extends it use to all devices including Smartphones and Tablets.

It all works like magic!

Robert, the timestamp fix works fine.

i also tried it with a File geodatabase featureclass and it works (it fails without it). i'm curious, what type of data does the timestamp fail with? i don't use dates very much but we are starting to get into multi-year water quality sampling data that is stored in a variety of formats, including SqlServer.

Subu Swaminathan

What database are you using when timestamp does not work?

Robert,

one more question on a different topic.

i was just trying the spatial search.

the spatial search is only showing Pt and Line as options.

any idea why the Poly option is not visible.?

Glenn,

  By default those are the only options configured to show. You can enable any others you want when configuring the widget.

FYI

i just tried the timestamp fix in combination with another query (so select a town and a date range)

and i get the 'Search Failed!' message. same query works in the esri widget.

maybe i need to add the timestamp to something else?

Glenn,

   I would have to see your json. It is likely you are messing something up in the json.

i have lost the 'advanced edit' option in the upper right of the reply so i am inserting the json here.

this is just a section of it of course. if you look at about line 27 you will see the date range that works with the addition of 'timestamp' and then about line 76 the one that fails when combined with a search for a specific town.

{

      "name": "WWQ All Samples",

      "url": "https://chldev20.mwra.net/arcgis/rest/services/assets/waternew/MapServer/25",

      "definitionexpression": "",

      "spatialsearchlayer": true,

      "zoomScale": 10000,

      "shareResult": true,

      "addToAttrib": false,

      "expressions": {

        "expression": [

          {

            "alias": "Date Range",

            "textsearchlabel": "Date Range",

            "values": {

              "value": [

                {

                  "fieldObj": {

                    "name": "DATE_COLLECTED",

                    "label": "DATE_COLLECTED",

                    "shortType": "date",

                    "type": "esriFieldTypeDate"

                  },

                  "valueObj": {

                    "value1": "[value]",

                    "value2": "[value]"

                  },

                  "prompt": "DATE_COLLECTED is between",

                  "textsearchhint": "Date Range",

                  "sqltext": "DATE_COLLECTED BETWEEN timestamp '[value1]' AND timestamp '[value2]'",

                  "operation": "dateOperatorIsBetween"

                }

              ]

            }

          },

          {

            "alias": "SampleID",

            "textsearchlabel": "Sample ID",

            "values": {

              "value": [

                {

                  "fieldObj": {

                    "name": "GIS_SAMPLE_ID",

                    "label": "GIS_SAMPLE_ID",

                    "shortType": "string",

                    "type": "esriFieldTypeString"

                  },

                  "valueObj": {

                    "value": "AR-06"

                  },

                  "prompt": "GIS_SAMPLE_ID is",

                  "textsearchhint": "Pick ID",

                  "sqltext": "GIS_SAMPLE_ID = '[value]'",

                  "operation": "stringOperatorIs",

                  "uniquevalsfromfield": "GIS_SAMPLE_ID"

                }

              ]

            }

          },

          {

            "alias": "Date range and Town",

            "textsearchlabel": "Date and Town",

            "values": {

              "value": [

                {

                  "fieldObj": {

                    "name": "DATE_COLLECTED",

                    "label": "DATE_COLLECTED",

                    "shortType": "date",

                    "type": "esriFieldTypeDate"

                  },

                  "valueObj": {

                    "value1": "[value]",

                    "value2": "[value]"

                  },

                  "prompt": "DATE_COLLECTED is between",

                  "textsearchhint": "Pick Two Dates",

                  "sqltext": "DATE_COLLECTED BETWEEN timestamp '[value1]' AND timestamp '[value2]'",

                  "operation": "dateOperatorIsBetween"

                },

                {

                  "fieldObj": {

                    "name": "TOWNNAME",

                    "label": "TOWNNAME",

                    "shortType": "string",

                    "type": "esriFieldTypeString"

                  },

                  "valueObj": {

                    "value": "ARLINGTON"

                  },

                  "prompt": "TOWNNAME is",

                  "textsearchhint": "Pick a Town",

                  "sqltext": "TOWNNAME = '[value]'",

                  "operation": "stringOperatorIs",

                  "uniquevalsfromfield": "TOWNNAME",

                  "operator": ""

                }

              ]

            }

          }

        ]

      },

Glenn,

   The operator property should be "AND"

"prompt": "TOWNNAME is",

                  "textsearchhint": "Pick a Town",

                  "sqltext": "TOWNNAME = '[value]'",

                  "operation": "stringOperatorIs",

                  "uniquevalsfromfield": "TOWNNAME",

                  "operator": "AND"

i hate it when i am blind

thanks

another bit of odd behavior...

i have rather large datalayer (7000 records)

in the esri query widget i can set it to 'unique' and type in the beginning of the text string that is the id for a record.

the list gets narrowed down as i continue to add characters.

when i use your widget the list of available values seems to be truncated.

and if i type in the beginning of a unique id that is not on the visible dropdown list the entry box gets a red boarder. and if i type in the entire string and execute the search i get a 'no records found' message.

i am not sure if this field is indexed.. i will check but it seems odd it would work with the esri search and not yours...

ideas?? thoughts??

Sql Server 2012 is the database behind ArcGIS Server 10.2.2x or 10.3.x

Subu,

   I am wondering what the difference is between what you have and mine then... I am using SQL Server 2012 as my DB and I am using ArcGIS Server 10.3.1 and the timestamp works fine?.. What about your SDE geometry are you using SDE Binary storage?

Microsoft SQL Server geometry is what we are using and I edited my response to indicate that I have not tested in 10.3.1.

Glenn,

   What version of ArcGIS Server are you hitting for this? Do you have definition expression defined for this search layer?

ARCSERVER 10.3.1

no i don't have a definition query set.

odd thing is the same  mapservice works in the esri query tool.

i'm still experimenting myself

trying to see why it is cutting off.

Hello Robert,

Grate work! Is there a way to suppress the ESRI info window and just have the E-Search window only? It is a bit redundant having two windows showing the same info.

Joaquin,

   Both windows do not have to show the same info. You can configure the search results in the widget to show minimal attributes and then the infoWindow to show more or all the attributes (i.e. use popup only checkbox for the attribute field when configuring the search layer).

How do I get the infoWindow not to show up at all?

Joaquin,

   There is currently no option for that.

robert

the list of records is stopping at the 1000th record.

do you have a parameter somewhere in the config that controls this?

what is bothering me mostly is that i can't enter the id for any record after the 1000th

Glenn,

  I will look into it.

Robert,

i have some clues for you regarding the record count limit.

i found this by googling--

http://support.esri.com/fr/knowledgebase/techarticles/detail/44060

i am using Portal not AGOL but the help is still relevant as it is really about the mapservices.

what i did was log into the arcserver services as admin and then i found the 'maxrecordcount' item.

i changed the number , saved and then tried your esearch again. this time i see all possible ID.

what i don't understand is that if i use the esri query tool i do NOT need to alter this value. just a guess, but i wonder if it is doing some sort of 'frequency' against the dataset, thus i see all the possible IDs, then when i pick one the recordset limit goes into effect. Are you using a different method than esri to populate the dropdown?

also can you remind me again how to get to the 'advanced edit' option in geonet , i want to get back to being able to add attachments.

Glenn,

   Yep, The current version stops at the max record count if your server is greater than 10.1 I have fixed this for the next release and you can get as much as you want (i tested with 77,000 unique records, dropdown is slow but it works). You can only get to the advanced editor from the actual thread message (it is not available when viewing from inside your inbox or stream notification. So when you need to get to it actually click on the thread title on your inbox to open the thread and then you will see it.

thanks

you are so quick .. i though maybe i could give you a hint you hadn't found yet.

Robert,

You have an option in the setup, PopUp Only. is it possible to add this to your infowindow? Also check the edit Default search symbology config, I am trying to change polygon symbol and it will not save the changes.

Awesome work!

thanks.

Joaquin,

   I assume that you are speaking of your desire to disable popups all together. If this is the case then the next version will have a config option to disable popups.

   The default polygon symbol will only be used when you have the layers "Layer Symbology" is set to "from Config". If you have it set to "from Server" then what you set for default symbology does not get used.

thanks Robert.

Robert

In the tabbed theme the buffer does not stay displayed when you switch to the print widget.  I checked the box to have the buffer added to the table of contents, and it does.  This however is checked on when you go from search to TOC.  If I uncheck and check on then the buffer will stay displayed when printing.  If you could just point me in the right direction where to look for keeping the buffer active that would be great.  I would like the buffer to be active until I hit the clear button in the search widget.

Mark,

   If only you had posted 8 minutes earlier I could have fixed this in the 1.2.0.3 release.  Just update these two functions in the Widget.js

onClose: function () {

        this.drawBox.deactivate();

        this._hideInfoWindow();

        this.inherited(arguments);

        if (!this.config.bufferDefaults.addtolegend) {

          if (this.graphicsLayerBuffer) {

            this.graphicsLayerBuffer.hide();

          }

        }

        if (this.tempResultLayer) {

          this.tempResultLayer.hide();

        }

      },

      onOpen: function () {

        if (!this.config.bufferDefaults.addtolegend) {

          if (this.graphicsLayerBuffer) {

            this.graphicsLayerBuffer.show();

          }

        }

        if (this.tempResultLayer) {

          this.tempResultLayer.show();

        }

      },

Thanks Robert!!!!!

Hi Robert,

Once again you have done an outstanding job making all your Custom Widgets and controls honor the Style Color settings in every Theme.

I made 6 new Web Apps to test the latest versions of your Custom Widgets as of 9/11/2015.

Enhanced Search Widget 1.2.0.3

Identify Widget 1.2.0.2

Google Street View Widget 1.2

Enhanced Basemap Gallery Widget Beta 1.1

Foldable Theme

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

You have made everything look so harmonious. The Enhanced Search Widget Header, Widget Controls, including the Popup Header now matches the Style Color that has been picked.

p01.jpg

You have done the same modifications to your Identify Widget. All the colors match.

I like the blue outline around the selected feature.

p02.jpg

The color matching happens with all the 8 Style Colors under the Foldable Theme.

p03.jpg

p04.jpg

Not only did you make the Popup Header for your Enhanced Search and Identify Widgets match the Style Color, but you also managed to make the ESRI Popup Header match the Style Color!

The is absolutely brilliant. This was exactly what I was hoping for.

p05.jpg

You had to do a lot of CSS trickery to make this happen for all Style Colors for every Theme. When I examine your style.css files, I could see all the code you had to write to make this magic happen. It is over 1000 lines.

client\stemapp\widgets\eSearch\css\style.css

client\stemapp\widgets\Identify\css\style.css

p06.jpg

I can now edit the Point, Line, and Polygon Symbols in your Identify Widget.

p07.jpg

The Identify Icons are back on the Identify Results pane. This looks good.

p08.jpg

I can now edit the Point, Line, and Polygon Symbols in your Enhanced Search Widget.

p09.jpg

Launchpad Theme

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

I like how the Active Tool matches the Style Color.

There is no ambiguity as to which tool is currently active.

p10.jpg

Dart Theme

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

The color matches are perfect. The Active Tool easily stands out.

This is a stylish theme. Looks like a Flex App.

p11.jpg

The results are easy to read on both your Identify and Enhanced Search Widgets.

p12.jpg

Tab Theme

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

Your Identify Widget Header, Active Tool, and Popup Header matches the Style Color.

p13.jpg

However, I found one issue with your Enhanced Search Widget 1.2.0.3 under the Tab Theme.

The controls are not visible when I open any of the Tabs.

p14.jpg

The controls are not visible as well within the Web AppBuilder when switched to a Tab Theme.

p15.jpg

Box Theme

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

All the color matches are perfect.

I found one minor issue when enabling the multi-part graphics.

p16.jpg

When I press the red Search button, I get back the results as expected.

p17.jpg

However, when I go back to the By Shape Tab, I find that the red Search Button is running over existing text.

p18.jpg

Jewelry Box Theme

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

All color matches are perfect with every selected Style Color.

p19.jpg

Everything looks visually appealing for each style color under every theme with all your CSS coding.

Thanks a million for all your hard work!

Robert,

I am not seeing the promote/demote options for the expressions and the max number of records is still stopping at the esri set limit of 1000.

i am guessing your changes have not moved to my app.

what i did:

i replaced the esearch folder in the client\widgets folder

then i duplicated my app

opened it for editing and made one change to a esearch query.

then i saved.

and reopened the app.

is there a way to check what version of your esearch is running in my app?

Glenn,

   Yes you can see in my documentation that when you hold the Alt key and click anywhere on the widget the version of the widget is displayed in a message dialog.  The process I would recommend for updating is to

  1. overwrite the eSearch folder in the [install dir]\server\apps\[app#]\widgets folder.
  2. opened it for editing and make one change to a esearch query.
  3. then save.
  4. reopened the app.

all is well

i didnt realize i needed to update the code in the app.

i thought the duplicate option would do this.

so many little things.

thanks again for all your fixed and quick help.

That took care of it!

Thanks Robert

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