Enhanced Search Widget Version 2.23.1 - 11/22/22

688339
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
GeorgeKatsambas
Frequent Contributor

At the add widget plus sign?

RobertScheitlin__GISP
MVP Emeritus

No,

  On the actual widget when you have it running

GeorgeKatsambas
Frequent Contributor

But I can not add the widget?

GeorgeKatsambas
Frequent Contributor

Oh sorry I see what you mean. I am downloading I thought V1.3 but it isn't

RobertScheitlin__GISP
MVP Emeritus

George,

  You probably downloaded v1.3 but if you are adding it to the stemapp widgets folder then the new version will only get added to a new app not an existing one, unless you specifically add it to the existing app by copying the v1.3 of eSearch to the [install dir]/server/apps/[app #]/widgets folder.

MichaelVolz
Esteemed Contributor

Robert:

Is this one of the steps covered in Tapas' documentation on updating an existing app if the webapp builder and widgets have been upgraded to the next version?

RobertScheitlin__GISP
MVP Emeritus

Michael,

   I thought so. But I am not 100% sure.

PaulHedlund
Emerging Contributor

Robert,

The 'all' issue appears to only happen when the 'Filter by Map Extent' is enabled.  The queryExcute appears to fire twice.  The results temporarily appear and then it fires again and wipes out the results.

I will take a look at the Supports OrderBy

Thanks,

Paul

DAVIDDAS1
Frequent Contributor

Michael,

Upgrading to WAB1.3 with eSearch 1.3 is very simple.

Make sure you are starting a brand new project with a fresh install of Web AppBuilder 1.3.

Download Roberts eSearch Widget (version 1.3) and copy the eSearch folder to the widgets folder:

\client\stemapp\widgets

Select the Theme and Style color within the Web AppBuilder.

Open the Map Tab and point to your ArcGIS Online Web Map.

Add the eSearch Widget and all other widgets that you would need in your Web App.

At this stage the eSearch Widget will show the default data layers that comes preconfigured with it.

Exit out of the Web AppBuilder.

Replace the config_Enhanced Search.json file under:

\server\apps\[AppID]\configs\eSearch

with the one that you already configured using eSearch 1.2.0.6 from your previous project.

When you reopen the Web AppBuilder, and edit the eSearch widget, you will see all your previously configured layers.

RobertScheitlin__GISP
MVP Emeritus

Paul,

   Thanks I will look into that.

DAVIDDAS1
Frequent Contributor

Hi Robert,

Thanks for updating all your Custom Widgets to make them compatible with Web AppBuilder 1.3.

I started with a clean slate and created 7 new apps to showcase the 7 Themes in WAB 1.3 using your 10 Custom Widgets.

Enhanced Search Widget 1.3                              12/14/2015

https://community.esri.com/docs/DOC-1731

Enhanced Basemap Gallery Widget 1.3                  12/15/2015

https://community.esri.com/docs/DOC-2888

Google Street View Widget 1.3                               12/15/2015

https://community.esri.com/docs/DOC-2991

Share Widget 1.3                                           12/15/2015

https://community.esri.com/docs/DOC-3247

Identify Widget 1.3                                          12/14/2015

https://community.esri.com/docs/DOC-3250

Elevation Profile Widget 1.3                              12/15/2015

https://community.esri.com/docs/DOC-3342

Map Progress Indicator Widget 1.3                  12/15/2015

https://community.esri.com/docs/DOC-6416

Enhanced Bookmark Widget 1.3                  12/15/2015

https://community.esri.com/docs/DOC-6889

Enhanced Locate Widget 1.3                              12/15/2015

https://community.esri.com/docs/DOC-7046

Popup Panel Widget 1.3                              12/15/2015

https://community.esri.com/docs/DOC-7355

Other Widgets:

Add Service Widget 1.2                              11/17/2015

https://community.esri.com/docs/DOC-6263

Add Shapefile Widget                                 9/18/2015

https://community.esri.com/docs/DOC-6907

Zoom PreviousNext Widget 1.1.1               5/13/2015

https://community.esri.com/docs/DOC-6111

I used the Community Buildings in Arizona to set up the test cases.

Foldable Theme:

http://www.tapasdas.com/wab/app1

image1.jpg

Launchpad Theme:

http://www.tapasdas.com/wab/app2

image2.jpg

Dart Theme:

http://www.tapasdas.com/wab/app3

image3.jpg

Tab Theme:

http://www.tapasdas.com/wab/app4

image4.jpg

Box Theme:

http://www.tapasdas.com/wab/app5

image5.jpg

Jewelry Box Theme:

http://www.tapasdas.com/wab/app6

image6.jpg

Billboard Theme:

http://www.tapasdas.com/wab/app7

image7.jpg

They are all working like a well oiled machine. I will be using these as templates to create my web apps in WAB 1.3.

Thanks for the new draw_point.png that replaces:

\widgets\eSearch\css\images\draw_point.png

\widgets\identify\css\images\draw_point.png

p04.jpg

I noticed that the manifest.json file under your eLocate 1.3 download is still showing:

"version": "1.2.0.3",

"wabVersion": "1.3",

p01.jpg

I edited them to read:

"version": "1.3",

"wabVersion": "1.4",

The manifest.json file under MapProgress 1.3 download needs to be updated as well:

p02.jpg

I like how my settings persists in WAB 1.3.

For example, I can turn on the ZIP Codes layer, and zoom to a new location.

If I reload the app, it remembers my settings in the Layer List Widget, and zooms me to my last map extent.

This will be a welcome feature in our apps that use 50 plus data layers.p03.jpg

You have created a solid WAB 1.3 release of all your Custom Widgets. I especially like how well Identify 1.3 works in tandem with eSearch 1.3 without ever raising any conflicts.

Each one of your Custom Widgets is a gem and performs an essential task not covered by the standard ESRI widgets.

I never thought I will ever see all the Flex functionality carried over to the JavaScript environment using the Web AppBuilder. You have made this happen in less than a year.

As an added bonus, these WAB apps are compatible with touch enabled devices, folds down gracefully to fit your smartphone or tablet, and does not require the end user to download a plug-in.

Thanks to your intuitive configuration wizards, any lay person can configure your widgets without ever having to write any code.

It looks like the Web AppBuilder has finally eclipsed the FlexViewer

MariaNieves
Regular Contributor

Hi,

I am trying to configure the esearch widget (version 1.3) but I am running into an issue that I think has something to do with some of my layers being related to other tables. Anyone getting an error when trying to configure the esearch widget for layers with relationship classes?

This is the error I get.

DAVIDDAS1
Frequent Contributor

Hi Maria,

You are correct!

The Enhanced Search Widget 1.3 does not support related tables yet.

MariaNieves
Regular Contributor

Hi Tapas,

Thanks for the reply. I was able to use a 1.2 version of the widget with the same map service I am trying to use with the 1.3 version and esearch worked fine. I am not trying to query the related tables. I guess the widget was changed and now it doesn't allow you to configure layers that are involved in a relationship class.

Maria

DAVIDDAS1
Frequent Contributor

Hi Maria,

Let's wait for Robert's response.

If it worked for you using eSearch 1.2.0.6, then it should work at version 1.3.

RobertScheitlin__GISP
MVP Emeritus

Maria,

   If it was working in 1.2.x then it should be working in 1.3 I will have to look into this.

RobertScheitlin__GISP
MVP Emeritus

Maria,

   Sorry I did not have a smooth migration to WAB 1.3 and ended up reverting some code in the initial 1.3 release unintentionally. The fix is a very simple one line fix. Open the eSearch Widget.js in your apps widgets folder and find line 915 - def.resolve(layerInfo);

and replace it with

def.resolve({state: 'success', value: layerInfo});

I will fix this in the next release but I have a few other things to take care of before I release a new version.

MariaNieves
Regular Contributor

Thanks Robert, really appreciate you working on these widgets! 

glennhazelton
Deactivated User

Robert,
many months ago now you helped me with code to alter the background color for the widget icons.

i have redoing this in the new 1.3 version and it is working fine except for the headercontroller style.css file.

this is the path i am working with

stemapp\themes\FoldableTheme\widgets\HeaderController\css\style.css

what i did in the older version was alter the opacity from .6 to .8 but i must have done something else as well (which i didnt make a note of) because the header bar color is Black in the old one.

in the new version the bar is dark gray, which is ok, but i am curious about how i would change the color if wanted to.

FYI- just a  reminder because it has been a long time, here is the code you had me add to the \FoldableTheme\common.css

/* My Theme Style Adds  --this one is in USE*/

    .jimu-widget-onscreen-icon {

      position: absolute;

      cursor: pointer;

      border-radius: 4px;

      background-color: rgb(153, 0, 0);

      -ms-filter: "Alpha(opacity=50)";

      background-color: rgba(153, 0, 0, 0.5);

    }

    .jimu-widget-onscreen-icon.jimu-state-selected {

      background-color: rgb(153, 0, 0);

      -ms-filter: "Alpha(opacity=80)";

        background-color: rgba(153, 0, 0, 0.8);

    }

    .jimu-widget-onscreen-icon:hover{

      background-color: rgb(153, 0, 0);

      -ms-filter: "Alpha(opacity=80)";

      background-color: rgba(153, 0, 0, 0.8);

    }

RobertScheitlin__GISP
MVP Emeritus

Glenn,

   This is the css style rules I use to make the onscreen widgets and zoom, home buttons green to match my share widget app theme style color in WAB 1.3:

Share widget preview site

.jimu-widget-zoomslider,

.jimu-widget-homebutton,

.jimu-widget-mylocation {

  background-color: rgb(42, 170, 138);

  -ms-filter: "Alpha(opacity=50)";

  background-color: rgba(42, 170, 138, 0.5);

}

.jimu-widget-zoomslider:hover,

.jimu-widget-homebutton:hover,

.jimu-widget-mylocation:hover {

  background-color: rgb(42, 170, 138);

  -ms-filter: "Alpha(opacity=70)";

  background-color: rgba(42, 170, 138, 0.7);

}

.jimu-widget-onscreen-icon {

  position: absolute;

  cursor: pointer;

  border-radius: 4px;

  background-color: rgb(42, 170, 138);

  -ms-filter: "Alpha(opacity=20)";

  background-color: rgba(42, 170, 138, 0.2);

}

.jimu-widget-onscreen-icon.jimu-state-selected {

  background-color: rgb(42, 170, 138);

  -ms-filter: "Alpha(opacity=80)";

    background-color: rgba(42, 170, 138, 0.8);

}

.jimu-widget-onscreen-icon:hover{

  background-color: rgb(42, 170, 138);

  -ms-filter: "Alpha(opacity=40)";

  background-color: rgba(42, 170, 138, 0.4);

}

by Anonymous User
Not applicable

Good morning Robert Scheitlin, GISP​ and everyone.

I did a Search and did not see this question in the thread or forum unless I missed it.

(was not addressed in Re: Customize URL in query results of WAB or https://community.esri.com/docs/DOC-1731#comment-12964 ... but I can move this to one of these if you'd like)

I did monitor your replies to Barnaby Rockwell​ in your Identify thread regarding UNC paths.  I already have a virtual directory to a folder set up. I had already observed what you pointed out, in that Internet Exploder, er, Explorer opens up "file://" links, despite this not being a proper browser design.  Well, once I set up a Virtual Directory in IIS, this was solved and all browsers could open the links in the attribute field "Sketch" as below, on our legacy site (built much before WAB, and uses regular ESRI popups from the early 3.x API).

So...  I'm putting a link on my eSearch popups: 

Now, here's my scenario:

The "SKETCH" attribute field in this layer has a local server at the beginning of the link.   Here is an example of a link:  \\server-1.servername.local\GISDataFolderVirtualDir\hyperlinks\sav\ws_sketches\Valve Program\Sheet 9785\9785-268.pdf

Note that I changed the real servername above for security; it would be Robert-1.Robertserver.local for example.

Now, what I did on our old inhouse site was simply used Javascript to chop off the first 20 or so characters, so that the link became: GISDataFolderVirtualDir\hyperlinks\sav\ws_sketches\Valve Program\Sheet 9785\9785-268.pdf

Then, I added back on the internal site's name (mapping.internalWebServer.local) to the front of the link string:

mapping.internalWebServer.local\GISDataFolderVirtualDir\hyperlinks\sav\ws_sketches\Valve Program\Sheet 9785\9785-268.pdf

So after this two-step string manipulation in Javascript, it was good to go. A working link to a folder of data.

My Question:  can eSearch modify the Link field? It would perhaps be useful to be able to use regular expressions in the Link box to alter the link and accomplish the above. Can it use regular expressions? Or is it treated just as a string?

I am beginning to poke around and look at the underlying code of eSearch.  The other thought I had was since I have to get this to working one way or another, I may consider hardcoding this into your widget (altering eSearch code), with an If statement so any layer with a "SKETCH" attribute is sliced and diced with javascript to correct the link. What line in what file would I do this in if I did it this way?

RobertScheitlin__GISP
MVP Emeritus

Kevin,

Can it use regular expressions? Or is it treated just as a string?

No regular expressions are not supported. It is treated as a string and fields in curly braces are substituted for actual field values.

I will have to find some time to point you to the correct line to modify to manipulate the link and replace the string portion you are wanting to substitute.

by Anonymous User
Not applicable

Hi Robert, thank you and any time at your convenience of course!

I am perusing widget.js around lines1800, 1900 and 2540 which looks about right, and if it is useful for folks if I get it working I'll post a code fragment, if other people have this kind of use case.

RobertScheitlin__GISP
MVP Emeritus

Kevin,

Maybe I will even take a shot at implementing a way to use regular expres

That would be a big undertaking

by Anonymous User
Not applicable

Ah, indeed, I was just editing that!  as I researched it..I indeed came to the same conclusion!! One of those things that would be really cool but require too much dev time as it's probably a narrow use case, not too common.  I wish I could just change the links or calculate a new field but for now, the users have this workflow and I need to engineer around it.

So, I believe I have found the relevant parts of the code, the strLink and qLink? I'll update here when and if I get a solution working dealing with modifying the link input.

RobertScheitlin__GISP
MVP Emeritus

Kevin,

   Actually after this line:

link = this._substitute(qLinks.content, featureAttributes, results);

Would be the best place. The above line is where the links curly brace field names are substituted for the actual field values and doing a

link = link.replace('your string', ''your new string');

Would be the right place

haThach
Regular Contributor

Robert,

I'm also thanks like others for this great powerful eSearch widget. It has great functionality that I could do without the knowledge of a programmer.

I tested this new eSearch1.3 version and would like to inform you this strange thing that didn't happen in your last release (eSearch1.2.0.6).

1.png

Thanks,

Ha T.

RobertScheitlin__GISP
MVP Emeritus

Ha T.

  Thanks for informing me I will look into that right away.

AnthonyDaniels
Emerging Contributor

Robert,

How do I code the webapp app config.json to install eSearch?  Can you explain what setting I need to make to get it up and running?

Thanks

Anthony Daniels

RobertScheitlin__GISP
MVP Emeritus

Anthony,

   You do not have to add the widget manually, just follow this help doc link for instructions on how to install custom widgets in WAB Developer Edition:

Deploy custom widget and theme—Web AppBuilder for ArcGIS (Developer Edition) | ArcGIS for Developers

AnthonyDaniels
Emerging Contributor

So you do not have to edit the apps/#/config.json to get it to show up?  You don't need to add the url, name, label, or config parameters?

RobertScheitlin__GISP
MVP Emeritus

Nope you follow the links instructions and then in the widget tab add the eSearch widget to you app.

haThach
Regular Contributor

Thanks Robert. Did you find anything about this?

RobertScheitlin__GISP
MVP Emeritus

Ha T.

   I found that it is from some serious code regression when I updated to 1.3 I had some issue and ended up using some old code by mistake. I will be releasing 1.3.0.1 soon that will address the issue.

deleted-user-dbQhBq-o3nyM
Deactivated User

I'm having trouble creating my expressions in eSearch 1.3. Every time I go into Update Expression Value, below is all that shows up:

SearchExpression.JPG

The fields to search on aren't coming in and I can't choose how the search should be performed.

Also, I can't add links in 'Link Content'. I could do both in the last version 1.2.x.

by Anonymous User
Not applicable

Robert Scheitlin, GISP

Would anyone else think it would be useful to have a "select all" button for Popup Only in the layer config?

I have dozens of layers each with dozens of fields and I spend a lot of time clicking checkbox after checkbox to deselect from popup.  I know I could edit it by hand but it would be much quicker for a Select all, and then just re-add the one or two items I need.  For example: we have a parcel layer for each year going back to the 1990s.  But all I want on the results on the right is Name and Property Address. Then I uncheck the other 25 fields for each layer.

Second question: It would be useful to have a third kind of symbology to show features found with eSearch query. Symbology from Server WITH HIGHLIGHT.  For example, let's say I want to use server symbology for my address points. But the address point list is already on. I want to select just a few with the Search by Shape.  I have no way of seeing on the map what features I just selected.

The reason one would want server symbology, is say the feature is a commonly understood icon. Like the black and white disc for monitoring wells. Or a fire hydrant for hydrants.  My symbology Defaults in eSearch are just thick purple lines and points and a yellow background highlighting. But that kills any unique symbology, like hydrants, or colors for lines like utilities, etc by overriding it.  So I propose this to be a distinct third option. It can be as simple as just using the already available standard cyan highlighting/halo, the one that happens already out of the box when you click on a feature on the map and get the popup infowindow.  It would perhaps be useful to even allow us users to customize the symbology of the halo highlight for this third option but that would be icing on the cake, the standard static cyan highlight would be a great addition, at least for now, and would be fine for our site.   Does this sound useful to everyone, and you see what I mean and why this would be important?

Thank you again Robert and everyone on the thread.  We use this widget for its search by Shape as a super Identify. I don't use Identify for anything except its All Visible Layers functionality. When you pair these two together, it's an awesome Identify package. Just fantastic. Robert it's gotten very positive feedback from our municipal users. It's a huge step up from our old legacy viewer and its cumbersome querying and identify!!

DAVIDDAS1
Frequent Contributor

Hi Kevin,

These are all excellent ideas!

These enhancements would help us a lot if implemented by Robert

by Anonymous User
Not applicable

TAPAS DAS​ thank you for your endorsement and interest as well in these.

Another reason for the check All popups is sometimes the update breaks the config and I can't simply copy the config to the new vers of eSearch and I have to re-uncheck the popups. Also I prefer using graphical user interface most of the time vs going in by hand to correct something such as this, is it is less subject to error (coding typos hehe) through the widget Config in the Builder. Thanks again for anyone else if they provide input on if these are useful to them or their users, also.

RobertScheitlin__GISP
MVP Emeritus

Jordan,

  Can you check if you are using the 1.3 version of the widget in your app? To do this you need to hold the Alt key on the keyboard and click  somewhere inside the widget and it will report the widgets version. It sounds like you are using a 1.2.x version of the widget in that app.

RobertScheitlin__GISP
MVP Emeritus

Kevin,

1. Should be easy so I will add this to the list.

2. I need to investigate this. It sounds good but I need to see the practicality of implementing this. BTW there are already 3 symbology types so this would be a fourth (server, default config, layer).

by Anonymous User
Not applicable

Robert Scheitlin, GISP and everyone - it worked perfectly.

edit:  this post isn't showing as a reply on GeoNet for me. In case anyone's wondering it's in reply to where I asked Robert about internal links at the top of this page. Don't know what happened to GeoNet's nested replies. Anyhow...

Here is my code for anyone else interested. I know it's pretty basic and fairly hard-coded but I thought I'd share in case it will help anyone else with internal link paths.

For me all links point to the same root directory, so I created a virtual directory (GISVirtualDir) pointing to the second level of each link (they will all be structured this way, like \\server-1.serv1.locall\GISVirtualDir\links\file.pdf), hacked off the first 22 chars, added the site path to the front of the URL (http://site.name1.local/site10), and it works.

First I test if a layer has this particular field ('sketch').

I added this after the line testing linkFieldNull.:

if (lfields == "SKETCH") {

this._substitute2(qLinks.content, featureAttributes, results);

else

If true I route it to a modified subroutine "_substitute2":

  _substitute2: function (string, Attribs, currentLayer) {

          var lfields = this._getFieldsfromLink(string);

          for (var lf = 0; lf < lfields.length; lf++) {

              if (Attribs[lfields[lf]]) {

                  var fld = this._getField(currentLayer, lfields[lf]);

                  if  (fld.type === "esriFieldTypeString") {                    
string = string.replace(new RegExp('{' + lang.trim(lfields[lf]) + '}', 'g'), lang.trim(Attribs[lfields[lf]]));} else

{string = string.replace(new RegExp('{' + lang.trim(lfields[lf]) + '}',
'g'), Attribs[lfields[lf]]);

                  }}}

        
stringOriginal = string.substring(22); //22 chars to remove from string (  \\server-1.serv1.local in this example)... Yours may differ!

          stringAddTo = http://site.name1.local/site10 + stringOriginal; 

          string = stringAddTo;

          return string;

      },

RebeccaStrauch__GISP
MVP Emeritus

Kevin....just a side note... if the geonet thread flow isn't working, you can always copy the link to a comment by right-clicking on the date of the response.  For example (not sure if this is the comment you were looking or or not)

https://community.esri.com/docs/DOC-1731?#comment-20094

Which will bring you to a particular comment in the thread.

deleted-user-dbQhBq-o3nyM
Deactivated User

I downloaded the app from here just last week: Enhanced Search Widget Version 1.3 - 12/14/15​ many times, then deleted, and tried again. Here is a screen shot of the version:

RobertScheitlin__GISP
MVP Emeritus

Jordan,

   OK, then that is not the issue. Can you check your browsers web console and show me what the error is there?

RobertScheitlin__GISP
MVP Emeritus

Jordan,

   Do you have a reason for running your WAB in https?

deleted-user-dbQhBq-o3nyM
Deactivated User

I deleted the app again, then I cleared my cache this time, and downloaded the eSearch 1.3. I got the above errors and warnings in my browser console. But I got it to work this time. I was just grabbing the rest service as anyone can by clicking on the layer list, then looking at the description. I saw the error above and tried going through Server, copied the rest services from my inside URL and it worked.

Thanks for taking the time to help me. I We really appreciate the work you have done to create these custom apps. You do amazing work!

deleted-user-dbQhBq-o3nyM
Deactivated User

Not a reason, just new to creating these custom webapp builders as of last month. Just a rookie is all.

deleted-user-dbQhBq-o3nyM
Deactivated User

Robert, regarding your question above about running WAB in https, how do I set it up any other way? I just downloaded WAB, registered the app, then started creating my app. It may be a dumb question, but I don't know any other way. I know enough to mess things up, but not enough to fix it. So as can be expected, I can only load secured rest services into the app.

Slightly related, I got eSearch to work on most of my rest services; however, when I set up the Expression Value to query my county zoning rest service, it just says processing and never finds the uniques for the field (0 of 2712). Does this have to do with me using secured protocol?  Or why would it give me the "ESRI (processing) Wheel of Death"? The weird thing is, I ran the exact same set up in 1.2 and it worked great.

glennhazelton
Deactivated User

hi Jordon,

I am not an expert at this either, but i too run the WAB in the https:// world

the reason i do is because it is living in the WWWROOT on my IIS server.

Portal is on this box too and is setup with HTTPS of course (in the portal security tab i have both anonymous and SSL only checked)

i have had no issues really with this security setup.

the only thing i have to make sure of is that my mapservices all start with https, not http.

my webadapter that accesses the mapservices is also setup to use https

and the IIS location where the downloaded WAB will live is also HTTPS.

RobertScheitlin__GISP
MVP Emeritus

Jordan,

   So the reason that you WAB is using https is because you provided a https url to your portal when you first setup WAB. The fix is simple shutdown WAB and go to your [install dir]\server folder and delete the signininfo.json and then restart WAB and it will ask you again for your portal url (make sure to use http this time) and then it will likely ask for the App Id again. Once you provide those you will be using WAB in http. Now why it was working in 1.2 and not in 1.3 is a mystery.

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