Code Monkey home page Code Monkey logo

storymap-series's Introduction

Note: Classic Esri Story Maps templates are in extended support on ArcGIS Online as of September 2021 and mature support on ArcGIS Enterprise 10.9.1. For the latest information on the transition from classic Esri Story Maps to ArcGIS StoryMaps, click here.

Story Map Series

The Story Map Series app lets you present a series of maps via tabs, numbered bullets, or a side accordion. In addition to maps, you can also include images, video and web content in your series to tell your story and engage your audience. For example the first tab in a tabbed series can be a compelling photo that sets the scene. Actions can also be defined in an entry's text so that, for instance, clicking a word automatically zooms the entry's map to a particular location.

App

View it live: tab layout | View it live: accordion layout | View it live: bullet layout

Download | Map Series page on Esri Story Maps website

This release is version 1.27.0, which corresponds to the June 2022 release of ArcGIS Online and the 11.0 release of Enterprise. If you want to be informed of new releases, we recommend you to watch this repository (see GitHub help). See the release page for release notes.

For more infomation about using and customizing Esri's Storytelling Apps follow the Story Maps Developers' Corner.

Help content

Introduction

A Map Series application can be created from ArcGIS Online, from the Esri Story Maps website or from a Portal for ArcGIS deployment. The Series's data are stored in a Web Application Item (this includes the narrative content, reference to the webmap(s), pictures, videos and the settings). This repository provides the application source code for developers that want to customize Map Series.

For more information about the Map Series, including a gallery of examples and a step-by-step tutorial, please see the Map Series page on the Esri Story Maps website.

Instructions

First create your Map Series in ArcGIS Online using the step-by-step tutorial. Once your story is ready, you have to find its ID in ArcGIS Online. The ID is a 32 character string that you will find in your web browser's address bar when you are viewing your series.

App ID

  1. Download the application
  2. Deploy the application on your webserver. See FAQ for details
  3. Edit index.html, find the configuration section on line 39 and paste in your application ID
  4. Navigate to index.html (e.g., http://127.0.0.1/MapSeries/index.html)

Enjoy! You can continue to use the builder in ArcGIS Online to modify your story. See customize the look and feel section or developer guide if you want to modify the app.

If you are using Portal for ArcGIS, please follow the instructions at the end of app/config.js to configure the application. Optionally you can also configure the application to use the ArcGIS API for JavaScript included on your Portal.

Feedback / support

We would love to hear from you!

When you contact us, don't hesitate to include a link to your application to make it easier for us to understand what you are working on.

FAQ

What should I check before publishing a Series?

We recommend that you perform the following checks before sharing your Series with your audience:

  • Check that all your content is shared with your audience (webmaps, medias, ...). Typically you can use another computer than the one you have used to build your story to make sure everything is loading properly. Alternatively this article will show you how to configure your browser for an incognito session or you can just sign-out from ArcGIS Online and any service that you have used to host your resources.
  • Try the application on different browsers, screen resolutions and mobile devices. You can emulate mobile devices inside your desktop browser.

What are the supported browsers?

Map Series is supported on Internet Explorer 11 and above, Chrome, Firefox, Safari and the most recent tablet and smartphone devices. Map Series authoring is supported on the same desktop browsers listed above, and on the most recent tablet but not smartphone devices.

We actively test the application in all major browsers but if you experience difficulties especially with the builder, we recommend that you use Chrome.

Tips for your content

Link between entries

One popular request is to add the ability to navigate between a Series's entries using links in the panel or through map features popup. As of April 2018, this ability is now available in the builder.

To add a link to another entry in the narrative panel, highlight the text for which you want to create the link and use the Naviage to an entry action in the toolbar. See this blog for more information.

You can also add this capability to map feature popups. This can, for example, allow the first entry map to be the spatial index to your story. To do that you need to download the application and include a piece of code in app/custom-scripts.js. Modify that file as shown below. Follow the instructions to configure the web map and the layer that will receive the click event.

define(["dojo/topic"], function(topic) {
  /*
   * Custom Javascript to be executed while the application is initializing goes here
   */

  // The application is ready
  topic.subscribe("tpl-ready", function(){

  /*
   * Set up a click handler on the feature of the map to navigate the story
   */

  //
  // *************************************
  // Configure the webmap id and layer id
  // *************************************
  //
  // First find the webmap id through the URL when you open the map in Map Viewer
  // To get the layer id, paste the webmap id below and open the application,
  //   then open the developer console, all the layers ids will be listed,
  //   find the correct one and paste it below
  // After this setup, clicking the 3rd feature of your layer, will navigate to the third entry
  var WEBMAP_ID = "0bb11c0469f042b3afaf8b0d76572822";
  var LAYER_ID = "csv_7673_0";

  var clickHandlerIsSetup = false;

  topic.subscribe("story-loaded-map", function(result){
    if ( result.id == WEBMAP_ID && ! clickHandlerIsSetup ) {
      var map = app.maps[result.id].response.map,
        layer = map.getLayer(LAYER_ID);

      console.log(map.graphicsLayerIds);

      if ( layer ) {
        layer.on("mouse-over", function(e){
          map.setMapCursor("pointer");
          map.infoWindow.setContent("<b>"+e.graphic.attributes.name.split(",")[0]+"</b><br/><i>Click to zoom</i>");
          map.infoWindow.show(e.graphic.geometry);
        });

        layer.on("mouse-out", function(e){
          map.setMapCursor("default");
          map.infoWindow.hide();
        });

        layer.on("click", function(e){
          var index = e.graphic.attributes["__OBJECTID"];

          // Temporarily prevent the new bullet to be focused
          app.isLoading = true;

          topic.publish("story-navigate-entry", index);

          // Set back isLoading
          setTimeout(function(){
            app.isLoading = false;
          }, 100);
        });
      }

      clickHandlerIsSetup = true;
    }
  });
});

Security

Can I keep my Series private?

Yes, the regular ArcGIS Online security model applies. By default your Series is private, you can share it through Map Series builder or ArcGIS Online. When you share your Series, it is your responsibility to make sure that all the resources of your Series (webmaps, images, videos) are accessible to your audience.

Who can edit my Series?

A Series can only be edited by its owner (the named account that initially created the Series). Organization Administrator (does not apply for public account) can take or give the Series ownership to another user. In that case you won't anymore be able to edit the Series. Changing the ownership is the only way to collaborate on a Series creation without sharing the owner's credentials.

Can I use private web map or layer?

Yes.

When the Series is hosted in ArcGIS Online or Portal for ArcGIS, users that don't have access to the Series or a webmap used in the Series will be redirected to the ArcGIS Online sign-in page. It is not possible to display an authentication dialog in the Map Series when the Series is hosted in ArcGIS Online.

When the Series is hosted on your web server, an authentication dialog will appear inside the application.

Note that for that authentication to work on some older browser (Internet Explorer 9) you need to install a proxy server on your web server to make sure the login credentials can be passed securely to ArcGIS Online. For more information, see the Using the proxy in the ArcGIS API for JavaScript documentation.

Because of that limitation, we recommend that you configure the application to use OAuth. OAuth 2.0 based authentication is available for ArcGIS Online and Portal for ArcGIS users with developer or organizational accounts. Follow the procedure to add an application and register an application to get an OAuth application ID. Once you have that application, open index.html, locate the configOptions section and fill the oAuthAppId property.

If you are using secured services but don't want users to have to authenticate, you can use a proxy to store the username/password to be used, see Working with Proxy Services, and add a proxy rules to specify what services need to use the proxy by editing PROXY_RULES in app/config.js.

Deployment

Deploying a Map Series require to use ArcGIS Online or Portal for ArcGIS. The Series content have to be created using the Map Series builder and will live in a Web Application Item.

Can I use the template without ArcGIS Online or Portal for ArcGIS?

This is not a supported use case at that time. Please let us know if you are interested by such a scenario. Map Series rely heavily on the Portal for ArcGIS API but it is doable to modify the application to support other scenarios.

Where is the data stored?

The Series data are stored in a Web Application Item in ArcGIS Online or Portal for ArcGIS. This include the narrative content, reference to the webmap(s), reference to picture(s), video(s), web page(s) and the settings.

The image and videos that you include in your Series using the builder are not copied in ArcGIS Online. You have to make sure that those medias as well as the webmaps you are using are and will remain accessible to your audience.

Can I deploy Map Series on Portal for ArcGIS?

Yes, Map Series is included Portal for ArcGIS starting at version 10.3.1. Map Series is not included in earlier version of Portal for ArcGIS but can be deployed on Portal for ArcGIS 10.3. Map Series is not compatible with Portal for ArcGIS prior version 10.3.

Steps:

  • Download the latest version
  • Find your Portal apps/Series folder (depending on your installation and version of Portal, this is either C:\Program Files\ArcGIS\Portal\apps\MapSeries or C:\Program Files\ArcGIS\Portal\webapps\arcgis#home\webmap\templates\MapSeries).
  • Remove the content of that folder
  • Extract the archive so that index.html is located at MapSeries\index.html

If Map Series was already included in your Portal you are done (Portal for ArcGIS 10.3.1+).

If Map Series was not available in your Portal:

  • Log into Portal for ArcGIS and open My Content > Add Item > Application > Web Mapping Application > Configurable. Configure the URL to https://portal.domain.com/arcgis/apps/MapSeries. More details in the following documentation publishing a new web application item.
  • Create a new group that will reference the template available in your Portal
  • Share the newly created item with that group
  • Open My Organization > Edit Settings > Map and set the Web App Templates to the newly created group. More details in the following documentation configuring the web application gallery
  • Now when you share a web map, the template should be an option

Note that the archive you downloaded is using the ArcGIS API for JavaScript hosted in ArcGIS Online. This can create some incompatibility with your Portal, if you run into issue, please see the next section to update it.

Also note that the web application gallery preview feature redirects to the StoryMaps website, the target page can be modified in app/config.js > HELP_URL_PORTAL.

Can the template be used offline?

Yes, by using Portal for ArcGIS and configuring the template to use the ArcGIS API for Javascript included with the Portal.

To edit the ArcGIS API for JavaScript, edit index.html and locate pathJSAPI around line 70. The URL is //webadaptor.domain.com/arcgis/jsapi/jsapi where arcgis is the name of your Web Adaptor.

When deployed on a Portal for ArcGIS instance, the application doesn't require any external service to function. But by default the template will still include the header social buttons and Series author are able to import pictures and videos from the some online pictures hosting services. These options can be disabled individually through the configuration file app/config.js.

Can I use the builder with the downloadable?

Yes, when the template is configured with an application ID, adding the URL parameter 'edit' will open the builder. You will be prompted for user authentication through the Identity Manager.

How to deploy the application on a web server?

If you are not familiar with web servers here are two solutions:

  • Use the web server that comes with your server Operating System. On Windows this is Internet Information Services (IIS), if you have a C:\inetpub\wwwroot folder on your computer, you should be able to access it's content using http://localhost
  • On Windows or Mac OS, use a simple web server like Mongoose (not recommended for production)

If you are experiencing some rendering issues like improper symbol appearing instead of icons, you will have an extra configuration to perform. Some servers require to configure a new mime type to be able to serve Map Series fonts correctly. See the following links for more information:

Can I use a single deployment of Map Series for multiple stories?

Yes. If you have customized the application and deployed it on your server, you don't need to copy it multiple times, edit index.html and paste a different application ID for each story you want to publish.

Instead edit index.html, locate the configOptions section and fill the authorizedOwners property with the ArcGIS Online or Portal for ArcGIS login of the owner(s) of the Series you want to use. This make possible for the application to display any of the Series created by the specified user(s) through an URL parameter.

Example of the same application displaying two stories:

Configuration

In addition to the configuration offered by the builder, the file app/config.js provide various additional settings. This is for example the place where you can override some settings like the list of Geocoder services to be used (changes override ArcGIS Online or your Organization default settings). See the documentation provided in that file for more details.

Customize the look and feel

Custom color theme

As Map Series doesn't yet offer the ability to create a custom theme through the builder, customizing the various colors of the application requires changing the data of your app. See our blog post about customizing theme colors.

You could also download and configure colors through app/config.js. For example if you are using the tabbed layout and have kept the default theme, open app/config.js, locate the LAYOUT property and edit the following line with the desired colors.

themes: [
  {
    name: "tab-default-1",
    // Group of matching theme across layout
    group: "default",
    themeMajor: "white",
    // Header background
    header: "#28323A",
    ...
  }]

Other customization

Most of the look and feel customization can be done using the regular Application Download and including the css/html overrides directly into index.html.

As the application Javascript and CSS are minified, we don't recommend that you directely edit those files (e.g. app-viewer-min.css, app-viewer-min.js, ...). In addition to being hard to edit, this will make application update complex for you.

If you want to change the behavior of one functionality or want to add new one, follow the developer guide below.

The easiest way to find the id or path of a DOM element that you want to customize is to use your browser developer tool, read documentation for Chrome, Safari, Firefox.

Customization can achieved through the style tag already present for you in index.html (search for /* CUSTOM CSS RULES */).

Developer guide

This developer guide is intended for developers who want to modify the behavior of or add new functionalities to the Map Series application. It requires knowledge of HTML, Javascript and CSS languages. If you only need to customize the look and feel, you should be able to do so using the customize section above.

Application life cycle

Map Series fires events that allow customization with lose integration. This mean that you don't need to understand the application internals to implement simple extension.

To try those events, look for the Custom Javascript block at the far end of index.html.

...
require(["dojo/topic"], function(topic) {
  /*
   * Custom Javascript to be executed while the application is initializing goes here
   */

  console.log("Map Series is initializing");

  // The application is ready
  topic.subscribe("tpl-ready", function(){
    /*
     * Custom Javascript to be executed when the application is ready goes here
     */

    console.log("Map Series is ready");
  });

  // When an entry is being loaded (don't wait for the Main Stage media to be loaded)
  topic.subscribe("story-load-entry", function(index){
    console.log("The entry", index, "is being loaded");
  });

  // After a map is loaded (when the map starts to render)
  topic.subscribe("story-loaded-map", function(result){
    if ( result.index !== null )
      console.log("The map", result.id, "has been loaded from the entry", result.index);
  });
});
...

Developer helpers

In addition to the events described above, the story data, configuration and useful helpers functions can be accessed through the global variable app.

console.log("Entry", app.data.getCurrentEntryIndex(), "/", app.data.getStoryLength() - 1);
console.log("Current map", app.map);
console.log("IDs of all the webmaps used in the story", app.data.getWebmaps());
console.log("Current entry's data", app.data.getCurrentEntry());
console.log("All entries data", app.data.getStoryEntries());
console.log("Story layout configuration", app.data.getWebAppData().get().values.settings.layoutOptions);
console.log("Static ayout configuration values", app.data.getCurrentLayoutStaticConfig());

Some events are also available for you to navigate the Series programmatically:

require(["dojo/topic"], function(topic) {
  // Navigate to an entry
  topic.publish("story-navigate-entry", 2);

  // Reload the content panel
  topic.publish("story-update-entries");
});

Environment setup

Clone the repository or download a copy of the repository as a zip file.

To build a production version of the application from the source code, you first need to install Node.js.

Then initialize the environment by running the following commands in the MapSeries folder:

  • npm install
  • npm install โ€“g grunt-cli

This will create a new node-modules folder in your project root with all the tools required to build the application. If you have trouble running the second command, see this documentation on how to install grunt-cli locally.

How to use the application from the source code

  • Make accessible the MapSeries folder on a web server. Use your favorite server or run one with grunt server, this will start a server on port 8080
  • If using a Portal for ArcGIS instance configure the sharing url app/config.js (last property)
  • Use the URL parameter appid to specify the web item to be loaded, e.g.: http://localhost:8080/?appid=ABCD (configuring index.html > configOptions.appid is not supported in development mode)

How to build application from the source code

  • Open a terminal and navigate to the MapSeries folder
  • Run the following command: grunt

The deploy folder now contains the built application that you can deploy to your web server.

Issues building the application

The build script perform code validation through JSHint, you can disable those validations by editing Gruntfile.js and look for the following comments /* Comment out to disable code linting */.

Design

Map Series relies on AMD and Dojo loader AMD for application structure.

The application is structured as this:

Path Contains
Gruntfile.js Build configuration
src/ Main source code folder with index.html and the Eclipse project configuration
src/app/ Javascript and CSS source code
src/app/config.js App configuration file (loaded at execution time)
src/app/storymaps/common/ Modules common across storymaps templates (main module is Core.js)
src/app/storymaps/common/builder/ Builder modules (main module is Builder.js)
src/app/storymaps/common/mapcontrols/ Map UI components (Overview, Legend)
src/app/storymaps/common/ui/ UI components
src/app/storymaps/common/utils/ Utils, connector,...
src/app/storymaps/common/_resources Static resources
src/app/storymaps/tpl/ Map Series modules (build configuration files in the root)
src/app/storymaps/tpl/builder/ Builder modules (main module is BuilderView.js)
src/app/storymaps/tpl/core/ Core modules (main module is MainView.js)
src/app/storymaps/tpl/ui/ UI components of the viewer grouped by target device
src/lib-app/ Dependencies (included in the final app)
src/lib-build/ Dependencies used by the build (not included in final app)
src/resources/ Static resources

The main dependencies are:

The application Javascript and CSS are minified into four files:

File
app/viewer-min.css Compressed CSS loaded when accessing the Map Series as a viewer
app/viewer-min.js Compressed Javascript loaded when accessing the Map Series as a viewer
app/builder-min.css Compressed CSS loaded when accessing the Map Series as an author
app/builder-min.js Compressed Javascript loaded when accessing the Map Series as an author

Depending on the URL parameters, index.html will load the corresponding files.

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2020 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE.txt file.

Some open-source components of this project are licensed under other License terms, see src/lib-app/ folder for respective licence files.

Library License
Bootstrap MIT
CKEditor LGPL
jQuery MIT
jQuery Colorbox MIT
iDangero.us swiper MIT
Clipboard.js MIT
History.js BSD
jQuery UI MIT
FastClick MIT
jQuery UI Touch Punch MIT

storymap-series's People

Contributors

asizer avatar oevans avatar ssylvia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

storymap-series's Issues

Provide option to split legend into separate panel.

In situations where the map descriptions are longer it might be useful to have a configuration option to split the legend out to a separate panel (similar to the collapsable one in the Storytelling Basic template). Then the legend is always visible to the reader no matter where in the description they are. This option could be added at the section level.

Referenced web page in tab cannot scroll on iPhone

This is a mobile UI issue. I referenced a web page in one of the tabs. The web page show up fine, but I can't scroll or pan the page. I had to change the device orientation to landscape and then change it back and then I am able to scroll down.
My phone is a iPhone 6 plus running ios 9.2.1

How to find the actual webmap ID in the Story Map Series

Hi,

I need to find the ID of the current web map that is displayed in the app. I need to save the ID in the new variable and work with it.
I need an application that changes the legend according to what the web map ID is.

Thanks for the anwers

Legend not displaying on initial page load

I'm currently in the process of updating some old storymaps for my organization, and trying to update to the latest version of the Storymap Series template. Unfortunately, whenever I do, I get some odd behavior where the legend does not appear for whichever map tab is open on initial page load. Other tabs display their legends just fine, and the first tab's legend will appear upon navigating back to that tab.

In the example pictures below, the only customization made to the template is changing the header color in the config.js file. The problem happens in every storymap I have tried with the 1.11.x or 1.12.0 versions of the code, though.

My current workaround is to use the 1.10.1 version.

On initial load:
nolegend

After opening another tab and returning:
withlegend

Crash on iOS / Apple devices when having multiple tabs with ArcGIS Server Map Service as basemap

We have encountered an issue where Map Series crashes with the following error in the browser:

Safari:
"a problem occurred with this webpage so it was reloaded"
This happens a few times and then it will display an error instead of the Map Series app.

Google Chrome
"Aw snap! Something went wrong while displaying this web page".

So far, we have only tested on a few devices, but the only common pattern right now is that the devices where the crash occurs have FullHD (1920x1080) or higher resolution. Like iPad 3 or iPhone 6 plus.

Android seem to work fine, as well as any Desktop browser, including Safari on Mac OS X.

UPDATE:
This has been logged as BUG-000105450:
Using custom basemap causes the storymap series to not load and receive error if opened in Iphone devices with resolution 1920x1080 pixels and above. Workaround: NA

Embedded apps not working if the user is a member of another organization

When embedding a web app in a tab of Story Map Series, this is done via the "Web link" content type.
The URL is then entered as something like:
https://.maps.arcgis.com/apps/MapJournal/index.html?appid=

Which is fine, as long as the app that is being embedded is shared with Everyone or only shared with the organization and only to be used by that same organization.

If the Story Map Series and the embedded app is shared with a Group (and not Everyone), and that group contain users from other organizations, the embedded app will not load, but display the error:

<myagolorg>.maps.arcgis.com refused to connect.

And looking in the Javascript console, we can see why:

Refused to display 'https://<myagolorg>.maps.arcgis.com/apps/MapJournal/index.html?appid=<itemID>' in a frame because it set 'X-frame-Options' to 'deny'

I understand that a URL that is entered is 99% of the time the URL that the creator of the app wants that tab to load, but in this case, the .maps.arcgis.com part should be instead be .maps.arcgis.com

So I have to suggestions for this enhancement request:

  1. Search and replace in the URL string, if it is a .maps.arcgis.com address and the user viewing the map is logged in to AGOL
  2. Add an option to select web app from a dropdown list, similar to how web maps can be selected when configuring a tab in Map Series. Only the itemID would need to be stored and the rest of the URL can be derived from the logged in user accessing the map

Best regards,
Sverker
Esri Sweden support team

Combining content for Story Map Cascade to Story Map Series

I am customizing a web app using the Story Map Series (with tabs). However I would love to include the opening slider page from the Story Map Cascade application.

Basically, I'd like for my web app to open with the initial Story Map Cascade slider and when the down-arrow is clicked I want to continue with the Story Map Series.

Is there a way to customize to code and make it happen or is it not even possible? :-)

Thanks in advance for the assistance.

Make Facebook/Twitter link configurable

We are embedding this story map in our web page and want users to post the hosting web page URL in facebook/twitter. Can you make Facebook/Twitter/Email link configurable?
Thanks.

Integrate a custom address locator (geocoder)

We're currently try to implement a custom geocoder in our storytelling-application.

We followed the instructions and added the configuration to the commonConfig.js file in the application folder like this:

geocode: [{url: url_to_geocode_server,
    singleLineFieldName: "SingleLineCityName",
    placefinding: true
}]

However the geocoding never uses our configuration but the standard arcgis-online geocode server.
May this be related to the following issue on the basic-viewer-template? Esri/basic-viewer-template#4

Is there any known solution or workaround for this?

Share dialog missing explanation of header links

See code in common/builder/settings/ViewHeader.js adding text to explain UNITCODE in header link. This is not appearing. I think I need to add a div with <%= socialExplain %> in the body to the ViewHeader.html file

Proxy settings not available for authentication?

It has come to my attention that there is no way to authenticate via proxy in this template and that there has been an enhancement (rather than bug) for this functionality. Do you have any other suggestions on how to work around this? This template is very useful but having to have everything shared with everyone on AGOL is not a good solution, nor is having a log in screen. Supposedly other story map templates have this ability-- any suggestions on what to use? (although i really like the tabbed theme & accordion) thanks

Printing tool inside Map serie

Hi !

I would to know if is it possible to integrate a print Button on this app. This question is maybe stupid but I'm not a developers :/

Thanks you in advance

Best regards.

Web Map Change Event?

I am working on developing a JavaScript solution to add the alt attribute to images in map popups. Using the events listed in this repo's readme, I cannot get consistent results when changing between webmaps. I have tried the code in different topic.subscribe sections within the custom-scripts.js file.

Is there an event that fires when the webmaps change? I'll provide my sample code below. Any help is greatly appreciated:

let webmap = app.map;

webmap.on('click', function() {

        // only execute code if a popup is displayed on click
        if (webmap.infoWindow.isShowing) {
            
            // img elements within the feature popup
            let popupImage = document.querySelectorAll('div.image > img')[0];

            if (typeof popupImage !== 'undefined') {  
               // popup title - bridge name
               let bridgeNameElement = document.querySelectorAll('div.esriViewPopup > div.mainSection > div.header')[0].innerHTML;
            
                // add alt attribute using bridge's name
               popupImage.setAttribute('alt', bridgeNameElement);// || 'some string'
           }          
        
       }

});    

geocoder (custom), add to ESRI storymap app

What do we do now if we want to add a custom geocoder to our storymap? I notice the previous version of the solution, from September(?) of 2015, not only referenced editing files not contained in the current version of the storymap app, but has been closed as of March, 2016.

Story Maps Series App with embedded apps (Basic Viewer) did not work

When viewing a Story Map Series that includes embedded "Basic Viewer" applications with an iOS browser on a mobile device, the tabs have trouble loading and the widget buttons do not activate.

I already reported this issue to Esri Support and it was addressed as "BUG-000091616". But the support representative said me that I should also report this issue to GitHub.

Please refer the attached PDF about details.
(i deleted the link of this attachment)

Embedded Web AppBuilder 2.2 app issue

Story map hung when trying to load eambedded Web AppBuilder 2.2 app. It seems that the Splash Screen widget in the new Web AppBuilder is causing problem. Turning off the splash screen make the problem go away. I understand embedding another app is not recommended but it is a very nice function and was working before.
Thanks.

difference between ZIP in main download section & in instructions?

when i download each of these files, they have a different name. before i examine the files, can you confirm whether they are supposed to be the same? the main download ZIP is "map-series-storytelling-template-js-master" and the one in the instructions section is called "storytelling-mapseries-1.4.1"

I may be missing something obvious so apologies if so.

The "i" icon is covering widget

I embedded a Web AppBuilder app. On iPhone, the "i" icon is covering the right most widget in the Web AppBuilder app header.
Please move the "i" icon higher.
Thanks.

How to move logo to left hand side for Accordian map series

Hello I am using a federated portal map series template and I was wondering how I can move the logo from the right side area to the left. Is it also possible to resize the logo to make it the entire size of the menu bar?

Thanks for your help.

Add configuration option to inherit/push description between web map item and app.

Currently you can't utilize existing web map item descriptions in this template (other than copying and pasting). It would be nice to be able to have the option (not be required) to have the ability to pull in existing descriptions from the web map details to the app. This would be a setting for each section.

This feature would be generally helpful for users of this template, but also specifically helpful for people that might be migrating from the old text & legend template (who already have nice descriptions stored with their web maps).

Additionally it would be helpful to be able to push a description you write in the app back to the web map item details as well. This would help people with the task of keeping good documentation for their items.

Error deploying private StoryMap on the same IIS where Enterprise web adaptors are located

We've customized a Story Map Series using this template.

The Story Map item is located on ArcGIS Enterprise 10.6.1 and it's private.

We've deployed the app in several IIS web servers and it works properly without any problem. But this is an exception we have found. If the template is deployed on a IIS web server and inside this web server is also located both web adaptors of the ArcGIS Enterprise where Story Map item is located .... then the app crashes showing the next message:

"An error has occurredYour account (admin) is not licensed to open a Story Map that is not public. Please ask your organization administrator to assign you a user type that includes Story Maps or an add-on Essential Apps license".

image

The app is the exact same in all the IIS web servers we have tested, and the unical difference, compared to the one that is not working ,is that ArcGIS Enterprise web adaptors are not installed on them. (Web adaptors of the ArcGIS Enterprise where Story Map item is located).

If we make this Story Map item public, then the app works perfectly in all conditions...

Could you please tell me what could be happening?

Thanks in advance

add a web page to a tab

When adding a web page to tab, it works fine on desktop browsers. When you open the app on iPhone, and navigate the tab, the web page will "leak through" the swiping bar. The swiping bar which is supposed to be locked at the bottom of the page actually scrolls with the content. An example I tried is to add www.esri.com to a tab. It looks fine on desktop, but looks strange on my iPhone (iPhone 5, Chrome, and Safari)

Update built app

Would it be possible to update the download for the built app to the latest version (below the picture in the readme)? It still says 1.14. I'm struggling to follow the instructions to build it myself from the full download.

Add map actions as edit option

The soon-to-be-published refugees story map provides a good case study for why map actions will be useful in Map Series.

The "Migration into Europe" tab displays a schematic map of migration routes and barriers. I would have liked to put a narrative into the side panel with links to popups and/or features in the map. But without map actions users will have to click on each map element for information. It's tedious and unnecessary.

Let's please include map actions! It will make Series more consistent with Journal as well.

screen shot 2015-09-17 at 1 10 06 pm

Add autoplay default delay parameter

The autoplay feature is nice, but it would be even better if we could either add a value to the parameter for the default delay, or have a configuration option for each story page to set the default delay so that some pages could delay longer than others.

It would also be nice to have an option to force a refresh of pages after X number of loops so that a storymap on autoplay can catch any updates to the story that were made in the background.

Where is jQuery being loaded from?

I wanted to check which version of jQuery is being used in this template? In some other non-storymap apps I've developed, I've had to update the version of jQuery due to some security issues. I wanted to see if Esri has done the same thing.

All I can find in the various app files is a reference to lib-app/jquery. But I can't find the URL for where jQuery is being loaded.

Issue in Internet Explorer when including a PDF a an entry media, the image cannot be maximized over the PDF

Issue reported on GeoNet https://geonet.esri.com/thread/157697

This is a know issue in Internet Explorer where nothing can be displayed on top of the PDF viewer, see http://stackoverflow.com/questions/593176/div-layer-on-top-of-pdf

Using alternative PDF to Acrobat like FoxIt does not fix the issue but using Google Drive PDF preview is a valid workaround. Any PDF can be previewed freely withotu being uploaded to Google Server by using the following URL https://docs.google.com/gview?url=http://mydomain.com/mypdf.pdf&embedded=true

Exemple of this http://www.arcgis.com/apps/MapSeries/?appid=a38e7efa6d55469b88088d5e90443963

Issue with Content Security Policy - accessing main-config.js

Hello I am trying to host an ARCGIS Story map on our server
To run the test I am using an accessible map with ID: f2e9b762544945f390ca4ac3671cfa72
I am getting the following error with regards to the Content Security Policy. I below attach a screenshot.
I was geeting more errors but I added in my index.html where I have the app the following tag and getting just the one below

image

Issues when embedding a Web AppBuilder App

Here is our map http://maps.calgary.ca/StreetSweeping/
The issue is when you look at the map on iPad, because the lower resolution, the embedded app automatically change to mobile UI. And the description text box will cover up the left section of the search box, and any pop up window when maximized. This only happens when you use TAB layout. Using ACCORDION layout seems fine, here is an example http://maps.calgary.ca/spring/
My suggestions is to make description text box DIV element stick not float in TAB layout. It is covering the map and you can't really see the map even though it is transparent.

Adding a tab externally

I built an app using map series. It has 9 tabs. I have an application developed using php and sql server database table. I want to add my php application as an additional tab to the map series. How can I accomplish that? Thanks.

Polygon Layers are incorrectly offset from basemap / "jump" location until hit zoom or home button or click for pop-up

Hello all,

I am experiencing a frustrating issue where my polygons in a Story Map Series (tabbed) are incorrectly displaying their location on first render.

The layers often (but not always) appear offset from what should be their correct position / projection; however, when you click on the home button, a zoom button, or alternatively you click on on the feature to trigger a pop-up it "snaps" to correct position. This occurs both on initial tab loading, as well as if data is being displayed via a story map action.

I am not sure what is causing this as everything is in the same projection.

I have double checked all the included data, I have re-published and re-projected the data to ensure it is correct as well. This is happening across multiple data sources.

Edit: I would also add that this occurs regardless of whether I select a tab to inherit the extent previous extent, whether I use default extent of web map being called, or whether I set a custom extent to zoom to via the story map action.

Technical details:

  1. Layers are self-hosted as MapServer services
  2. Basemap tiles and reference layer are self-hosted to customize reference style and add one custom scale extent
  3. All published layers and basemap (and .mxd data frames) are in Web Mercator Auxiliary Sphere (EPSG 3857)

Some example photos:
On first display, or when click story map action link to display data
projection display issue - jumping

Once click on map it snaps to correct display
projection display issue - correct

Does anyone have suggestions or advice in terms of how to correct my setup? Is this potentially a known issue instead?

Thanks!

How to change the status of development mode?

hello, when i share my app after saved it, here shows that

this feature is not fully supported in development mode...

i has put the project in my portal server(portal/arcgis/apps/), and i did not found somewhere that i can config it. so how to repair it?

Add second logo to header

I would like to add a second logo alongside the one that is able to be configured via the in-browser editor. This is for a storymap series hosted on our own server.

How to Alter the Active Accordion Content Size

Is there a way to alter the active accordion content/window size? The max-height property of the accordion-content class seems to be dynamic. I was hoping to increase the height of the window in order to make more text visible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.