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.
Hi Adam,
Thanks, I now understand what you mean by the Settings option in WAB builder. I had already added my dynamic layer services from my local server that way.
But here is a stupid question that I bet you or Robert could easily answer:
I do not have Portal installed. I started WAB Dev by hooking it to my AGOL group account and a registered app there. I then made my WAB app using your widget and my local services. It looks great in a browser on the server, and I can can even see the app in a browser on another system. However, when I close WAB Dev on the server, I can no longer see the app from a remote system. So I can only view the WAB app if WAB Dev is running on a browser on the server. This is odd. How can I access the WAB app from another system on the network if WAB Dev is closed on the server? Or must I install Portal on the server to have user access my WAB apps hosted on that server?
Thanks,
Barnaby
Edit: The link to the app is in this form:
http://myserver:3344/webappbuilder/apps/8/
If I use a different port number, would I be able to see the app from another system when WAB Dev is closed on the server?
Barnaby,
WAB Developer version is for building your Viewer App. Once you have it configured the way you want then you have to export/download it to your web server that you will use for production.
Deploy app—Web AppBuilder for ArcGIS (Developer Edition) | ArcGIS for Developers
See, I told you it was a stupid question!!!!!
As usual, many thanks!
Best regards,
Barnaby
Adam,
When specifying a dynamic layer in your widget's settings, how does one specify if it should be on or off when the app is first displayed?
[{"type":"Dynamic","name":"Landsat8","url":"http://myServer/arcgis/rest/services/up/Landsat8/MapServer"}]
Best regards,
Barnaby
Edit: Another related question is that when I add a dynamic service as a layer, and turn it on in the app, all the contained layers in the service are turned on automatically, even though none are on by default in the service (as specified in the mxd which I published). Is there a way to not have all the contained layers in a service turned on by default when the overlying service is turned on?
Adam, do you have any ideas regarding my questions? I am dead in the water using your widget until I can figure those things out. Any help would be appreciated.
Regards,
Barnaby
Hey Barnaby, apologies for the delayed reply. Regarding the default visibility of the layer, currently all added layers are 'on' by default. I think this was something that Robert Scheitlin mentioned he wanted to tackle in his fork, so maybe he'd like to weigh in?
I'm not sure what's going on with your dynamic layer, though. Pulling from a 10.0 Server, the app seems to respect default layer visibility as expected. What version of Server are your services running on? Is there anything special about those layers? Are they secured?
That looks really sharp, Robert. Many thanks for building this great addition to the tool; I look forward to trying it out!
I agree with Adam. Very excited to test it out! Thank you Adam and Robert for all of your work.
That looks great, Robert!
It looks like it will have everything I need. Excellent work, as usual.
Cheers,
Barnaby
PS: it looks to me that this widget incorporating Adam's and Robert's ideas will be a very important one which will significantly enhance WAB Dev capability. When done, it should be frontpaged on WAB web page. Robert is the Godzilla of widgets. Nothing can stop him, and he has all of our best interests at heart.