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

109616
507
01-08-2015 07:55 AM
AdamDrackley
Occasional Contributor III

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
GrahamW
Occasional Contributor II

For the "Label exists" issue

As per the instructions you need to add below to your config.json in the "widgetOnScreen": { "widgets": section

{
        "uri": "widgets/LocalLayer/Widget",
        "visible": false
 }

Be sure to edit the site config.json before you create your site. Otherwise it will take a copy of the config.json without the changes.

I'm sure you'd be able to find the config.json and edit it in the new location if you have invested too much into your app.

0 Kudos
NadiaTargulian
New Contributor II

Hi Graham,

Thanks for your comment.

I edited config.json in \client\stemapp\predefined-apps\default\config.json  initially following the instructions in README file. The "Label Exists" error still there.

Am I missing something?

Here is what firefox debugger tells me

Thanks for any leads!

0 Kudos
AdamDrackley
Occasional Contributor III

Testers wanted!  Version 2.5 of the LocalLayerWidget is available for testing.  It's quite a substantial upgrade from the last release (2.3, I think); There's some improved capabilities regarding Custom Layers, dynamic GUI changes, and even a prototype 3D widget that I'll cover in the 'official' release, but I'd appreciate some help to ensure that the new widget still works with everyone's existing configurations.

Feel free to bring the 2D viewer into your 2.5 WAB environments and send any feedback my way!

GitHub - cmndrbensisko/LocalLayer at LocalLayer2.5 

BarnabyRockwell
Occasional Contributor III

Adam!  You're the man.  Not only does 2.5 beta appear to work perfectly, but it apparently has solved a nasty problem I was having with related tables not showing in Edge and IE11.

Related tables not appearing in WAB app using MS Edge and IE11 

The tables showed up the first time I loaded a WD 2.5 + LL beta 2.5 app in IE11.  Big thumbs-up so far!  😄

---

Edit:  I'm still trying to get the 3D version going.  I've made some headway, but still no joy, as none of my added layers (dynamic and tiled) are showing in Layer List.  But the added widget was "off" by default in the widget list of a new 3-d app (as it should be), and the GUI appears to be working properly.

Note that the name of the LL widget config file is:

config_Local Layer Widget.json (includes spaces)

rather than the normal

config_LocalLayer.json

0 Kudos
AdamDrackley
Occasional Contributor III

Hey Barnaby, glad to hear you had initial success with the 2D version of the widget.  For the 3D, I find that once I toggle the 'eye' on to make the widget visible in a new 3D app, the globe will replace the basemap with a grey grid, and when I zoom in slightly the Delorme basemap in the LocalLayer demo layer set shows up.  I think this is just due to the avaiable scale levels for that Delorme tile layer.  Is this similar to what you're seeing, or are the LocalLayer layers not showing up for you at all in 3D?

0 Kudos
BarnabyRockwell
Occasional Contributor III

So far, layers added to widget config GUI are not showing at all in Layer List or on globe.

Side note: completely unrelated to LL widget, I found this issue with WD 2.5 3-d apps.

https://community.esri.com/thread/198603-wab-dev-25-service-sublayer-visibility-settings-not-honored...

I don't know if that will affect your 3D LL widget, but it may be something to keep in mind.

0 Kudos
AdamDrackley
Occasional Contributor III

Thanks Barnaby.  The experience you're having certainly isn't what I'm seeing on my end, so feel free to send the configuration file you're using to my gmail so I can try to reproduce the behaviour.

0 Kudos
BarnabyRockwell
Occasional Contributor III

Config file sent.

0 Kudos
AdamDrackley
Occasional Contributor III

It's looking like it has to do with the Tiled layer in your config; For some reason, the 4.x version of the Javascript API doesn't seem to support Popups on Tile Layers, which doesn't seem right to me.  I removed the Tiled layer from the config and the app loaded as expected, but I'll do some digging to see what might be going on.

0 Kudos
BarnabyRockwell
Occasional Contributor III

Yep, removing tiled layer gets other layers to show in Layer List.  But now I have an unknown "Untitled Layer" at the bottom of the list.  Don't know what that is.  Importantly, the issue with WD 2.5 3-d apps not honoring sublayer visiblity as set in mxd or in LL widget config GUI is a major problem that renders 3-d apps useless for me given the way my services are configured.

As far as I know, popups have never worked in WAB 3-d apps.  I have never seen any Query-based functions in such apps, which I guess are for visualization only.  Hopefully that will change in the future so that ID widgets can be made for 3-d apps!

0 Kudos