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!
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
November 14, 2016: LocalLayerWidget v2.2 released: This major release includes the following enhancements for the widget:
Release LocalLayer v2.2 · cmndrbensisko/LocalLayer · GitHub
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.
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.
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.
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.
AutoRefresh settings not sticking in WAB 1.3 or 2.0 with LocalLayers 1.3.1.
I've tried about any way possible to get this to stick on the layer configurations. When I return it remains set to 0 minutes. When I edit the config to add "autorefresh": 1 there is no change.
Help pls.
Is this for a Feature Layer, Michael?
It is a dynamic layer from an ArcGIS map service. They are point and poly features.
It looks like I didn't have autorefresh capability enabled properly for Dynamic Mapservices, thanks for finding this Michael. Give the candidate version below a try. Note that you should also be able to specify decimal values for the timeout if you want it to be less than a minute before refreshes.
Adam,
What is the functionality of auto-refresh? Does a setting of zero mean that the service will never redraw automatically? In what circumstances is it best to alter that setting? Why is auto-refresh important?
I installed the new widget in both WD 1.3 and 2.0 apps, and will report back if I see any issues.
Cheers,
Barnaby
Adam,
I configured the 2.0 widget and didn't see a difference, but I also didn't see that it accepted the decimal values. I tested on the default layers preconfigured.
When you have changes ready I'll try again with a new WAB directory.
Another note, I also tried configuring first as LocalLayers2 folder and configured the pointer to be the same. I was unable to run both a LocalLayers and LocalLayers2 widget. Not that is should have worked, it showed namespace conflicts, so I'll need to install it separately.
I confirmed that 2.0 was installed in the app instance by checking its manifest.json.
Another bug that has followed through is on the Configure Pop-up. The layers of the objects has it so that when I click the button on the Title that the field list lies behind the Display table. Only the first two field items are selectable. Scrolling allows me to eventually select the field in the list in version 1.3.1 and the scroll bar fails when behind the table. The scrolling doesn't work in version 2.0, no scroll bar available.
Thanks,
Mike
Version 2.0 has been released. Give it a try Mike; You'll likely still encounter the same menu issue from before. I'm sure I'll eventually fix that menu, but I tend to just write in the field name myself.
Adam,
I just tried installing this on a newly installed Web Appbuilder. I added a dynamic layer and configured it just fine. When I launch the application, layers are not on by default and when I select the widget, the app just refreshes itself and nothing happens.
I'm given this error in the console:
f.style?"cssFloat":"styleFloat":b;var n=m.getComputedStyle(f);return 1==g?n:e(f,b,n||f.style)};m.set=function(a,b,f){var e=l.byId(a),k=arguments.length,n="opacity"==b;b=d?"cssFloat"in e.style?"cssFloat":"styleFloat":b;if(3==k)return n?g(e,f):e.style=f;for(var q in b)m.set(a,q,b);return m.getComputedStyle(e)};return m})},"dojo/dom-geometry":function(){define(["./sniff","./_base/window","./dom",
Unable to get property 'style' of undefined or null reference
I did not edit any core files and only made the suggested edit to the attribute table. Am I missing something?
Thomas,
This is a pretty common mistake that users of this widget make because this is an unusual install method for this widget. The Readme.md states
To add this widget to your ArcGIS Web AppBuilder environment, add the widget to your \client\stemapp\widgets directory, and add a reference to the widget in the standard Default configuration located at \client\stemapp\predefined-apps\default\config.json, under the widgetOnScreen section.
If you do not follow the above steps and add this widget the way you would a normal widget then you will see the results you are seeing.
Thanks Robert. I was under the impression that was core file and thought that part was left in the readme. Can I get some clarification on what are considered core files?