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

155436
507
01-08-2015 07:55 AM
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

Adam,

Will do.  How do you recommend I get it to you?  I'd rather not post it publicly.

Cheers,

Barnaby

0 Kudos
AdamDrackley
Frequent Contributor

My email address is on the main github page; Feel free to just send it as an attachment to that address.

https://github.com/cmndrbensisko

0 Kudos
AdamDrackley
Frequent Contributor

Hey Barnaby, I've pushed out a proposed fix into the branch that should help to support existing configuration files.  Feel free to give it a try when you have a moment.

Note that Grouplayers are now included in the sublayers list only for visibility purposes; You should be able to toggle on what Grouplayers you'd like to have visible/hidden by default.

BarnabyRockwell
Deactivated User

Adam,

I'll try it out soon.  Sounds like a nice fix.

Cheers,

Barnaby

Edit:  Adam,  I've loaded LL widget 1.2.1b, and it is a big improvement over last beta version.  The app will now load normally without having to edit the LL widget, and initial layer visibilities as set in v1.2 config file are maintained.  Some issues:

1) all, or at least most, sublayers appear to be on by default.  Visibility settings for sublayers as set in mxd prior to publishing are not honored.

2) I still got the WAB Dev hang when I tried to edit settings for a layer in the LL widget GUI.  But I'm still testing....

I just sent you the config file for another app.

0 Kudos
BarnabyRockwell
Deactivated User

Adam,

I get the hang when I try to edit layer config and then save, without changing anything, for all layers.  BUT, the hang now eventually stops, sometimes after a few minutes, and then I can save the app.  The hang is longer for layers with more sublayers.  Once I enter and then exit a layer editing session, again not changing anything, and wait for the hang to stop, then the sublayer visibility as set in mxd is returned, and all is good.

Cheers,

Barnaby

0 Kudos
AdamDrackley
Frequent Contributor

I received your e-mail, and was able to replicate your configuration for the Esri 2014 Geographic Data layer.  I'll let you be the final judge, but results with the latest version of the candidate were positive; Your layers seemed to show up properly, and ticking the appropriate layers on or off in the layer list resulted in the appropriate layers toggling on the map.

I'm not sure why your particular environment is spinning so much, though.  You might have a sluggish MapServer in your configuration, perhaps.

0 Kudos
BarnabyRockwell
Deactivated User

Adam,

Yes, things are looking up compared to previous beta.  See my previous edited post:

Re: LocalLayerWidget and AccessifizrWidget

But the sluggishmess when editing a layer in LL widget GUI is problematic, and I highly doubt it is related to my badass mapserver.   

-Barnaby

EDIT:  Adam, please check the Regional Studies layer in the config I sent you.  ALL sublayers in that layer (service) should be off by default, yet they are turned on by default using new widget version.  Sub-sublayers will be either on or off by default.  There are hundreds of sub-sub-layers in the service.  If you can fix the issue with all sublayers being on by default (not honoring visibility as set in mxd), then I think other issues, and perhaps even the hang, will go away.

EDIT 2:  Trying to edit the Regional Studies layer is extremely difficult due to the hang, which can take more than 5 minutes until it returns control. I have noticed that all "group layers" in a service are turned on by default, not just the sublayers.  Visibility for layers under a group layer are maintained from mxd, but ALL group layers are now turned on, necessitating extensive editing in the LL widget GUI.

0 Kudos
MihkelMänna
Frequent Contributor

I am having problems adding two tiled layers/two basemaps/a basemap and a tiler layer to the widget, and setting their display levels. I can add one layer of this type, but when adding another, only blank screen appears or only one is shown.

Has anyone experienced anything like this?

0 Kudos
RobertScheitlin__GISP
MVP Emeritus

Mihkel,

   Normally you see this when you are trying to add Tiled layers that are not the same WKID and/or are not cached at the same LODs.

0 Kudos
MihkelMänna
Frequent Contributor

Thanks for the quick response, Robert!

So wouldn't it be possible to use this widget for adding tiled layers/basemaps that are cached at different LODS (WKIDs are the same)? Would it need some serious code tweaking?

0 Kudos