LocalLayerWidget Version 2.5 and AccessifizrWidget Layer - 09/28/2017

191988
507
01-08-2015 07:55 AM
Labels (1)
AdamDrackley
Frequent Contributor

I've been having a blast playing around with the new Web AppBuilder, and have taken a few cracks at putting together some custom Widgets that I'd like to share with the community.  I hope these can assist in everyone's future Mappmaking endeavours!

LocalLayerWidget

LocalLayerWidget v 2.5

September 28 2017 : LocalLayerWidget v2.5 released:  This major release includes the following enhancements for the widget.  Thanks to everyone who's donated!:

Release LocalLayerWidget 2.5 · cmndrbensisko/LocalLayer · GitHub 

  • Support for 2.5 Release of ArcGIS Web App Builder
  • Support for Custom Layers via Transformers
  • Demos and sample apps
  • Prototype 3D Widget
  • Dynamic GUI changes at runtime and css insertion via odds.json/odds.css
  • And more!

November 14, 2016: LocalLayerWidget v2.2 released:  This major release includes the following enhancements for the widget:

Release LocalLayer v2.2 · cmndrbensisko/LocalLayer · GitHub 

  • Related Table Viewing and Editing
  • ImageService Viewing and Popups
  • WMS Service Viewing and Popups
  • Ability to integrate with the IncidentAnalysis widget
  • Hide Layer In Legend capability added
  • Dynamic mode added, allowing for URL-fed configuration files
  • And more!

May 18, 2016: LocalLayerWidget v.2.0 released:  This substantial change for Web App Builder v.2.0. removes the need to edit any core files in the Web App Builder, unlike previous versions.  A slight change will still be necessary for the AttributeTable widget to work properly with LocalLayerWidget layers.

  • https://github.com/cmndrbensisko/LocalLayer/releases/tag/v2.0
  • Enhancements:
    • Added autorefresh capability for dynamic layers, and sub-minute decimal values can be specified for time.
    • Added support for non-consecutive sublayer numbering to support 10.3.1 mapservices
    • Editor Tracking via an organizational Active Directory instead of ArcGIS Online User now supported
  • Bug Fixes:
    • View Attachments now works for Dynamic Layers
    • Addition of GeoJson layers fixed
    • Fix to MapService sublayer visibility when no sublayers are selected to display by default.

Mar 29, 2016: LocalLayerWidget v.1.3.1 released; Contains bugfixes to v.1.3. related to custom rendering for Feature Layers and toggling sublayer visibility in the LayerList widget.

Mar 22, 2016: LocalLayerWidget v.1.3 is now available!  (Note the version naming change; Version 1.3 refers to its compatibility with v1.3 of the WAB - This is indeed the latest version of the widget as of March 22, 2016).  Be sure to read the github page to see what tweaks need to be made to ensure that everything continues running smoothly in version 1.3 of the Web AppBuilder.

  • Includes support for GeoJSON and WebTileLayers
  • Custom Symbology and Labelling Options for Feature Layers
    • Currently requires the use of playground to generate custom json layer and label styling for Feature Layers.  For more information, please follow the instructions on the Github page.

Feb 10, 2015: LocalLayerWidget v.1.5 is now available!  This release contains full support for adding Tiled layers to your application directly from ArcGIS Server, in addition to the Basemap, Dynamic, and Feature layers available before.  Feel free to grab the widget from our Release page located at https://github.com/cmndrbensisko/LocalLayer/releases.

Feb 2, 2015: LocalLayerWidget v.1.2 is now available!  This release provides a great GUI developed by Robert Scheitlin to more easily add Feature, Dynamic, and Basemap layers to your ArcGIS Web AppBuilder Applications.  Take it for a spin, and please keep us informed of any bugs or desired enhancements through our Github Issue Tracker located at https://github.com/cmndrbensisko/LocalLayerWidget/issues.

Jan 12, 2015: Note that LocalLayerWidget v.1.1 is now available, which provides Click-To-Identify support and the option to add Feature and Basemap layers in addition to Dynamic layers.

The LocalLayer Widget is intended to allow the direct addition of MapServices to an ArcGIS Web AppBuilder application, without needing to wrap the desired services in an ArcGIS Online/Portal Web Map.

https://github.com/cmndrbensisko/LocalLayerWidget

Basically, your basemap will still need to come from Portal/AGOL, but otherwise you just provide direct URLs to your own MapServices in the widget's configuration settings.  The MapServices should load and display as usual in the map, and cooperate with the Legend, LayerList, and Attribute Table widgets. Click-To-Identify functionality won't work currently, though, because the current WAB implementation relies on Portal for all the popup info.  As stated in the January 12th 2015 release, popups are fully customizable.  Note that it's not an in-panel widget, so you'll need to follow a few extra steps in the project's Readme file.

AccessifizrWidget

Let's make Mapps accessible for everyone!  With an eye on WCAG compliance, the Accessifizr Widget is designed to help make web applications keyboard navigable without having to modify core application code and UI.

https://github.com/cmndrbensisko/AccessifizrWidget

Information about how to configure this widget is available in the core Accessifizr.js library project available here‌, but the gist is that you create a JSON-based 'roadmap' detailing the keyboard navigation of your web application, and how it should change in response to users entering modal menus, hitting the escape button, etc.  For applying descriptive alternate text to page elements, the widget leverages dojo's built-in internationalization support to specify multilingual alternate text strings.  The end result is a web app that, hopefully, is a bit easier to use for people with mobility or visual challenges.

507 Replies
BarnabyRockwell
Deactivated User

Robert,

What appears to be great is that when I imported a zipped app created in WAB Dev 1.0 into WAB Dev 1.1, the contained custom widgets (Identify, LocalLayer, StreetView, ElevationProfile) were automatically imported into the WAB Dev 1.1 base widget directory (\client\stemapp\widgets) so that they can be used to create new apps.  No need to import the custom widgets manually!!! 

This is a very nice feature.

Cheers,

Barnaby

NicholasBarger
Frequent Contributor

Great widget and a big thanks to everyone who is contributing to this.  I love the fact that there is an option for this without having to use AGOL.  I must admit that I did not read the all of the posts on this subject so forgive me if I am duplicating anything here.

I was able to successfully install the widget and get things running.  I was also able to successfully configure the widget.  Here are a couple things I noticed about the widget.  It is slightly slower than the service that comes from AGOL.  I'm guessing this is due to the way we have to add feature layers to the widget.  Adding them individually seems to slow down the operation of the app.  I was unable to add my entire service at once.

I was also unable to get the labels to appear.

Some of my symbology did not appear correctly...or it was generalized until I zoomed in.

The popup config left no option for inserting pictures or links related to fields.  I found it in the custom section...maybe there was more that I needed to configure in their.

Again, I think much of this would be corrected if the entire service was brought in at one time as opposed to pulling in individual feature from the service.

Really great widget regardless.  I'm planning on watching the development of this as it progresses.

Thanks again!

0 Kudos
NicholasBarger
Frequent Contributor

So...Ive been playing around with options and I think there might be a good median in this tool.  I was configuring Roberts eBasemap tool to read one of my map services...which worked.  It occurred to me that there was little difference between between what I had mentioned above and Roberts eBasemap widget.  So, what I was thinking was combining the 2 widgets.  When I added a map service to the eBasemap it brought in the service in it's entirety.  It was fast and symbolized correctly.  The only down side was I could not configure popups, I could not turn layers on or off, and dealing with basemaps in the background were not clean.

So, would it make sense to create an eLayerList widget that would allow a user to add the entire service, as in the eBasemap widget, but it would allow for the customization of the local layer widget?  This way the layer list would be populated allowing the user to turn layers on / off.  It would also allow for the configuration of popups, and other settings similar to the local layer widget.

I'll admit I'm not a programmer so I don't know how challenging this could be.  I do think this would make the setup of the widget easier and cleaner.  Thoughts?  Robert Scheitlin, GISP

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Nick,

   Adding an entire service is absolutely supported in the LocalLayer widget so you have me confused. Have you tried adding the layer as type dyanmic or tiled?

0 Kudos
NicholasBarger
Frequent Contributor

I think I may have figured it out… I think I was adding a feature layer as opposed to a dynamic layer.

~ Nick

0 Kudos
NicholasBarger
Frequent Contributor

So...it appears that I had one of those ahh I'm being an idiot moments and missed the obvious ... thanks Robert Scheitlin, GISP​ for the wake up call.  One thing I am noticing is that my envelope for the dynamic service over-rides the basemap services from the eBasemap widget.  I know I can change the transparency of the services in the Local Layer widget but I really don't want everything in my dynamic service to be transparent.  Similarly, I don't want to have to add imagery into every service.

So... is there a way to turn the envelope color to clear or no color?  From what I can tell the envelop for the service, when the service transparency is 0% the envelop appears white, even though the same service in flex, and in JAVA from the AGOL service, allows the basemap to show through the envelope without any problem.

I must also say that the service being generated from ArcServer has the frame color set to no color.

Thoughts?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Nick,

   I am not sure what you are talking about, an envelope being opaque from your dynamic map service? I have never had a dynamic map service draw a solid fill for the services extent. Are you using an imageformat of JPG or something?

0 Kudos
NicholasBarger
Frequent Contributor

Yes… I selected JPG as the setting in the local widget setting… would that be the problem?

~ Nick

0 Kudos
NicholasBarger
Frequent Contributor

That worked… changed it to the png and it worked fine.

~ Nick

0 Kudos
NicholasBarger
Frequent Contributor

Ok....so I have things working... Kind of.  I was able to successfully add the dynamic service and configure everything.  It seems to be fairly easy.  I was also able to use the custom popup config to get my house pictures.

Here is the problem I am running into at the moment.  I have an app that uses AGOL Map of of my web services...

ArcGIS Web Application

Everything is working correctly in this site.  I have 1 small quark with the location tool, but there is an easy workaround for it.

Here is another app that I created using the local layer widget.  ArcGIS Web Application .

I have found that since I added the local layer widget there have been a lot of glitches.  In this app when I use the measure or draw tool it opens my popups for wherever I clicked.  This doesn't happen with the AGOL web map version.

Also, I wanted the splash screen to always show up.  I found the code that someone had mentioned and commented it out.  In the AGOL web map version this worked.  In my local layer version it caused and error message.  So I actually changed one line of code from false to true and corrected the issue.

My real problem is with the popups at this point.  Has anyone else experienced any sort of problems with functionality?

I'm debating whether I should start from a fresh install of WAB and then installing the local layer widget.

Any ideas?

0 Kudos