Giter Site home page Giter Site logo

esri / storymap-shortlist Goto Github PK

View Code? Open in Web Editor NEW
43.0 32.0 62.0 26.27 MB

The Shortlist story map application template by Esri

Home Page: http://storymaps.arcgis.com/en/app-list/shortlist/

License: Apache License 2.0

JavaScript 91.24% CSS 5.58% HTML 2.94% ASP 0.24%
storymaps storymap storytelling publishing-sharing configurable-apps

storymap-shortlist's Introduction

Story Map Shortlist

The Story Map Shortlist app lets you organize points of interest into tabs that make it fun for users to explore what's in an area. Your users can click on the places either in the tabs or on the map to find out about them. The tabs automatically update as users navigate around the map to show them what's interesting in their current map extent.

App

View it live:

Download | Shortlist page on Esri Story Maps website

Latest release is version 2.12.0, 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 Shortlist application can be created from ArcGIS Online or from the Esri Story Maps website. The Shortlist's data are stored in a Web Map (Places and their associated location, name, description, and picture information), and in a Web Application Item (Tab names and colors, application and header settings). This repository provides the application source code for developers that want to customize Shortlist.

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

Instructions

First create your Shortlist 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 Shortlist.

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 38 and paste in your application ID
  4. Navigate to index.html (e.g., http://127.0.0.1/Shortlist/index.html)

Enjoy! You can continue to use the builder in ArcGIS Online to modify your story.

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 are the supported browsers?

Shortlist is supported on Internet Explorer 9 and above, Chrome, Firefox, Safari and the most recent tablet and smartphone devices. Shortlist authoring is supported on Internet Explorer 10 and above, on the most recent tablet but not on smartphone.

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

Although any size is supported, a good size and shape for an image referenced via a URL is approximately 800 pixels wide by 600 pixels. Our recommended image size for Story Map Tours (approximately 1000x750 pixels) also works fine. We also recommend JPG format instead of PNG format for smaller overall file size, but both formats are supported. For thumbnail images referenced via URLs we recommend 280 pixels wide by 210 pixels tall. [More info] (http://storymaps.arcgis.com/en/faq/#question49b)

Security

Can I keep my Shortlist private?

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

Can I use private web map or layer?

Yes.

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

When the Shortlist 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 Shortlist require to use ArcGIS Online. The Shortlist content have to be created using the Shortlist builder and will live in a Web Map and Web Application Item.

Can I use the template without ArcGIS Online?

This is not a supported use case at that time.

Where is the data stored?

The Shortlist data are stored in a Web Application Item in ArcGIS Online and its associated Web Map. This include the narrative content, reference to the webmap, reference to picture(s), and the settings.

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

Can I deploy Shorlist on Portal for ArcGIS?

Shortlist is not included in Portal for ArcGIS.

Steps:

  • Download the latest version

  • 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/Shortlist. 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.

To edit the ArcGIS API for JavaScript, edit index.html and locate pathJSAPI around line 64. 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 Shortlist author are able to import pictures 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 Shortlist fonts correctly. See the following links for more information:

Can I use a single deployment of Shortlist 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 login of the owner(s) of the Shortlist you want to use. This make possible for the application to display any of the Shortlist created by the specified user(s) through an URL parameter.

Example of the same application displaying two stories:

Additional FAQ can be found on the StoryMaps Website

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.

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 Shortlist 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 Shortlist folder on a web server. Use your favorite server or run one with grunt server, this will start a server on port 8080
  • 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 Shortlist 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 */.

Developer guide

This developer guide is intended to developer that wants to modify behavior or add new functionalities to the Shortlist application. If you only need to customize look and feel of the Shortlist, you should be able to do so using the User download. It requires basic knowledge of HTML, Javascript and CSS languages.

Developer extension events

The template fires some events to allow customization with loose integration. This means that you may not need to understand the internals of the application to extend it.

Two events are available (application ready, tab navigation):

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(){
   // Custom Javascript to be executed when the application is ready goes here
  });

  // Tab navigation.  This is fired anytime the tab is selected/changed.
  topic.subscribe("story-tab-navigation", function(index){
   // Custom Javascript to be executed when a tab is selected goes here
  });
});

Design

Shortlist 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/ Shortlist 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 Shortlist as a viewer
app/viewer-min.js Compressed Javascript loaded when accessing the Shortlist as a viewer
app/builder-min.css Compressed CSS loaded when accessing the Shortlist as an author
app/builder-min.js Compressed Javascript loaded when accessing the Shortlist 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 2016, 2017 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
Medium Editor MIT
jQuery MIT
iDangero.us swiper MIT
Clipboard MIT
History.js BSD
jQuery UI MIT
FastClick MIT
jQuery UI Touch Punch MIT
spectrum MIT
LazySizes MIT
exif-js MIT

storymap-shortlist's People

Contributors

cooney avatar dependabot[bot] avatar leebock avatar oevans avatar regan-sarwas avatar rupertessinger 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

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

storymap-shortlist's Issues

Adding a Layer Switcher

We really like the idea of the shortlist panel, but are missing a "widget" which would enable switching custom layers /base map layers other than arcgis online/...

Can we remove the border that we currently have at the bottom of the place list in the tabs, so that they bleed off the bottom of the web browser display?

I think this will make the UI look a bit cleaner and make it really clear to the user that there are more places below they can scroll down to.

Currently there's a border at the bottom of the places list that clips the bottom of the list:

one

I think it would look better just to let the bottom of the web browser window be the clipping edge:

two

I think it will improve the look on the iPad as well. It makes it much clearer to the user that they can scroll down to see more. Currently it is quite easy to not see that on the iPad, especially as there's no scroll bar displayed in that environment. Here's what it looks like at the moment with the border at the bottom:

three

Facebook Share Doesn't Set Title Correctly

Facebook has changed how Sharer.php works. [It no longer accepts detailed parameters](no longer accept detailed parameters?).
However, the template stills sets the title and content. This gives users the impression that the template isn't working correctly.
To resolve this, either:

  • Switch to Facebook's feed dialog way of sharing to Facebook. This might include the requirement to obtain an App ID from Facebook.
  • Remove the expectation that the template can set the title.

How can I add a basemap toggle/picker to Shortlist Story Map default code?

I've found a few suggestions online for adding a basemap widget to a Story Map, but they seem to be written for different templates and I can't quite figure out how the code would fit into the Shortlist code. Any guidance on this (and whether it's even possible to include a basemap switcher or picker widget in the Shortlist) would be appreciated.

Short list changes website URL to lower case

The AGO web map shows the Google short URL in the Website field as it should be (case sensitive with upper and lower case). The short list template, however, consumes the web map and somehow changes the URLs in the website field, which is used for the Directions link, to all lower case thereby breaking the link. Does anyone know of a fix for this issue?

Configure Story Map

Hi guys i have problems to configure my story map when i try to open it in the browser it is not working.
I already tryed many tutorials but it is still not working.
Here is my code:

<title></title>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

    <link type="image/ico" rel="shortcut icon" href="//resources.esri.com/favicon.ico">
    <link type="image/ico" rel="icon"  href="//resources.esri.com/favicon.ico">

    <!-- 
        To correctly reference your Map Tour in search engine:
         - create and fill out extensively an ArcGIS.com item that link to your final application
         - edit the following four tags as well as the upper title tag on line 4
    -->
    <meta name="description" content="This story map was created with the Esri Map Tour application in ArcGIS Online.">

    <!-- Facebook sharing -->
    <meta property="og:type" content="article"/>
    <meta property="og:title" content="Story Map Tour"/>
    <meta property="og:description" content="This story map was created with the Esri Map Tour application in ArcGIS Online."/>
    <meta property="og:image" content="resources/icons/esri-globe.png"/>

    <!-- 
        This template is released under the Apache License V2.0 by Esri http://www.esri.com/
        Checkout the project repository on GitHub to access source code, latest revision, developer documentation, FAQ and tips
        https://github.com/Esri/map-tour-storytelling-template-js
    -->

    <script type="text/javascript">
        //----------------------------------------------------
        //     Template configuration (ignored on Portal)
        //----------------------------------------------------
        configOptions = {
            // Enter either a web map ID or a web application ID
            // - Using a Map Tour application ID created through the interactive builder in ArcGIS.com allow to reuse 
            //   the settings like the header configuration without having to edit any configuration here
            // - Web map and application can be dynamically specified through url parameters (webmap and appid) 
            //   if the authorizedOwners property is specified (see below)
            // - If an application id is specified, the webmap configuration isn't used
            webmap: "",
            appid: "10129a28a5644de18c2a1559df60612e",
            // Optional list of authorized application or web map owners
            // Has to be specified when using appid or webmap url parameters (e.g. ["user1"], ["user1", "user2"])
            authorizedOwners: ["Betzen"],
            // Select the application layout between "three-panel" and "integrated"
            layout: "three-panel",
            // The application header title, if no title is specified, the webmap's title is used
            title: "FH Map",
            // The application header subtitle, if not specified the ArcGIS.com web map's summary is used
            subtitle: "Students internships",
            // Optionally force a web map layer to be used as the tour points data source (can be overridden through URL)
            // Otherwise the upper visible point layer is used (excluding map notes)
            sourceLayerTitle: "Points",
            // Use the first data record as an introduction instead of a point (can be overridden through URL)
            firstRecordAsIntro: true,
            // Optional zoom level to be applied for the story points following introduction (can be overridden through URL) (e.g: 0 to 16 for Gray Canvas, 0 to 19 for Street Map, -1 to disable)
            zoomLevel: -1
        };
        // Optionally sharing and proxy URLs can be configured in app/maptour-config.js. This is only required  
        //  when the webmap is not hosted on ArcGIS Online or a Portal for ArcGIS instance and the template isn't deployed as /home/MapTour/ or /apps/MapTour/. 
        // Optionally Bing Maps key, Geometry and Geocode service's URLs can be configured in app/commonConfig.js. This is only required 
        //  if the Organization or Portal for ArcGIS instance default configuration has to be overwritten. If the application is deployed 
        //  on Portal for ArcGIS as /home/MapTour/ or /apps/MapTour/, that configuration is available in ../commonConfig.js
    </script>

Default Popup to Details panel

Was wondering if it is possible to open the popup as the details panel and not having to click on the Details link (in the default popup) to get the Details popup.

Tab-dependent layer visibility

An enhancement that would be good in the Shortlist is the ability for the author to have different supporting layers (i.e. points, lines and polys that aren't used to drive the tabs) appear on the map according to which tab is chosen. So for example, for on a 'places to go' shortlist, I could have a 'Trails' tab and when the user goes to that tab they'd see the numbered points as usual but they'd also see the trails as lines I've added. If they switch to a different tab those trail lines wouldn't be displayed. At the moment in the Shortlist, your supporting features are always on the map, so if you added trails as lines, they would be displayed all the time. So the enhancement would let you hide and display different supporting features depending on which tab is selected. This would be pretty cool. A 'Parks' tab could show people the park boundaries, a 'Transport' tab could show people the rail network and bus stops, etc without cluttering the map up.

SUPPORTING_LAYERS_THAT_ARE_CLICKABLE not working for ArcGIS for Server Map Service

I have a polygon layer within a ArcGIS for Server Map Service that I would like to be used as a Supporting Layer that is clickable. I have added it to the web map and configured it using the SUPPORTING_LAYERS_THAT_ARE_CLICKABLE variable in index.html. The layer contains both a name and Description field. Any clues why this is not working?
Regards,
Cameron

Allow for specified point layers to be background layers

In the config section of index.html (and also via a URL parameter) could we provide the ability for the user to exclude a specific point feature layer in the web map from being handled as defining the content for a tab, and instead handle that point layer as a background supporting layer, in the same way that line and polygon feature layers are automatically handled as background supporting layers. The config parameter could be called something like BackgroundPoints.

Here's the use case. Currently users can add line and poly supporting feature layers to their Shortlist maps, which is how we add neighborhood indications and things like light rail routes. But users can't add a point layer as a supporting layer because we automatically treat all the point layers as tabbed content. So for example, for the Austin map, the event team have created some points showing the location of the ESRI SXSW house:
http://www.esri.com/serverdemos/sxsw-trolley/sxsw-trolley-map.html
and the trolley stops, but we can't add those to the Austin Shortlist as supporting layers because they are points.

Another use case on the same map:
http://storymaps.esri.com/templates/shortlist/?webmap=91244e9bd6ee422388e90e1474d5ef49
is that I've added the light rail route (the grey line coming in from the east) but I had to add the station points as little buffered polygons because I can't do them as a point features. Point features would be better because then I could use the transit station symbology. Plus as polygons they are rather too small when zoomed out and too big when zoomed in.

Would this be possible? I think the basic model that we treat all point feature layers as tabbed content by default is good., it is nice and simple. But adding this override would enable the more advanced user, such as me :), to add one or more point layers to their map as additional background.

If no bookmarks are defined in the web map, the template should still work.

We currently make bookmarks compulsory in the Shortlist web map. We should make bookmarks optional. If the web map contains no bookmarks, could we automatically hide the 'Neighborhoods' (aka 'Zoom' menu). In this way, the menu will only be there if users have bookmarks in their web map.

Why should we make them optional?
A) Some authors don't have many bookmarks defined and it looks like they have only defined them reluctantly. A lot of authors have not created a decent set of bookmarks for their map - it really doesn't seem to occur to them to spend the time to make a good set, or they don't think it's worth it.
B) Authors may well not have any meaningful bookmarks they want to present to the user, and would rather not have the menu there to get an even more minimal UI.
C) Some authors are putting bookmarks into the menu at which location there are no places in any of their tabs. They really aren't understanding that they should use the bookmarks to take people to places where there are lots of cool places.
D) It's one less thing you have to do in order to make a shortlist.
E) If the web map doesn’t contain bookmarks, like this test one: http://www.arcgis.com/home/webmap/viewer.html?webmap=e0215ce64f8244eba2850c195fe0f551 the Shortlist fails to load: http://storymaps.esri.com/templates/shortlist/?webmap=e0215ce64f8244eba2850c195fe0f551 and it isn't obvious to users what is wrong, so it makes it hard to debug.

Allow the map to contain supporting point feature layers. Currently you can't have supporting point feature layers because all point layers are treated as being content for the tabs.

One of the issues that is coming up with a few users is that they'd like to be able to have one or more point feature supporting layers in the map. Currently any point feature layers (i.e. CSV or shapefile) are used to define the tabs. So for example if a user wants to add metro stations into the Shortlist map as clickable supporting layers, they can't do it, because those points are used to define a tab. The workaround that I've been using is to make tiny buffered polygons to show metro stations (zoom in to see them in the Phoenix Shortlist: http://storymaps.esri.com/stories/shortlist-phoenix/. I have a user in the Chicago area also looking for this enhancement (who emails me every month). It would also enable folk like Craig Cleveland in the DC office to make the metro stations in this DC Map http://s3.amazonaws.com/dtc-apps/WashingtonDCShortlist/index.html be supporting features that the user can hover over to see station names and click on get more information. Currently he is using a map service for the metro system.

So could we add a new optional configuration parameter that lets the user specify one or more point layers in the map that they don't want to be used to define tabs? So if my map contains Design, Fun, Food and MetroStations point layers, I could add the configuration parameter that tells the Shortlist not to use the MetroStations to drive a tab:

var SUPPORTING_POINT_LAYERS = "MetroStations"

By default all point layers are still used to drive tabs. So the new config parameter is null by default:

var SUPPORTING_POINT_LAYERS = "" //Use this if your map contains one or more point feature layers that you don't want to use to define a tab

Users can name one or more layers in this parameter:
var SUPPORTING_POINT_LAYERS = "Hospitals,Schools"

This would be a huge help because it would simplify our supporting layer story and let people easily add clickable points like metro stations, convention centers, etc. using the native symbology from the web map, just as we currently handle supporting line and polygon features.

Change the design of the popups so that the title of the place can't run into the close control that is at the right edge of the title bar.

Could we handle the issue where long popup titles can run into the Close control. This happens a lot if the user's web browser is window is fairly narrow, such as on the iPad, and looks really bad.

one

Can we change the styling of the popup to avoid this overlap by putting the title of the place into the popup body instead of in the title bar? That is how the standard popups in ArcGIS web maps work: they don't put the name of the place in the title bar. The extra vertical height this needs isn't a big deal because we aren't short of vertical space in the display. Here is how it would look:

two

The design above looks better when the title is fairly long, because it avoids the wrap around in the title bar that makes the title bar taller. So this enhancement eliminates that issue too.

three

If the value of the Website field doesn't start with "http" or https, can we automatically append http:// to the value in the Website field.

We tell users to put a full URL including the https:// or https:// into the Website field for those places they want a web link for. But if they don't do that, or forget to, would it be possible to automatically append http:// to the value they have to make it more robust. Currently if the Website field value for a place is,say, bar7dc.com without the http:// then in the Details popup, the Website link resolves to http://storymaps.esri.com/templates/shortlist/bar7dc.com which fails. I see this quite a lot even in Shortlists. Most authors aren't going to test all their links and shouldn't have to. It would be cool if the web address values that don't start with the string "http" or "http" get http:// prepended to them so that they don't fail. So the Website field value "bar7dc.com" would get resolved as http://bar7dc.com

Geolocator deesn't work if web map (in organizational portal) spatial reference is not Web Mercator

I discovered that if your web map has a spatial reference other than Web Mercator that geolocate widget does not work.
While it is not hard to fix (see code below) it should be noted as an issue and rolled into production in the future.

Firstly we need to update _geomServiceUrl (maybe this could set in the index.html like some of the other parameters) to access your GeometryService rest end point.
_geomServiceUrl = new esri.tasks.GeometryService('http://ArcGIS/rest/services/Utilities/Geometry/GeometryServer');
esriConfig.defaults.geometryService = _geomServiceUrl;

Then in the getDeviceLocation function replace (I wish to zoom in and center)
var locationPoint = esri.geometry.geographicToWebMercator(geom);
_map.centerAt(locationPoint);
displayLocationPin(locationPoint);

with
_geomServiceUrl.project([geom], _map.spatialReference, function(projectedPoints) {
var locationPoint = projectedPoints[0];
_map.centerAndZoom(locationPoint, 11); //Assumes tiled based map
//_map.centerAt(locationPoint);
displayLocationPin(locationPoint);
});

Just thought I would post the code for anybody interested.

Cameron

App doesn't work with private webmaps

Modify so that user can use the app w/o having to share the webmap publicly.

NIM101322: Storymap applications should behave similarly when dealing with non-public web maps

Let's change the default bookmarks menu name to 'Zoom' instead of 'Neighborhoods'

People are using the Shortlist for various geographic areas, not just cities like we originally envisioned. I have noticed quite a few Shortlists where people are still using the default name for the bookmarks menu, "Neighborhoods", even though that name doesn't make sense to their map content. Either they aren't seeing that they can change it, or it just doesn't occur to them to change it because they assume our default name is generic. Plus, even in cases where "Neighborhoods" makes sense, authors often include places in the list which aren't neighborhoods, like a convention center or an overview extent. So let's change our default from Neighborhoods to "Zoom". Zoom is a nice and obvious name (Joseph Kerski came up with it in one of his maps), and applies to whatever bookmarks people put in the list. It's a more active and inviting name than 'Bookmarks'.

Configure Story Map

Hi guys i have problems to configure my story map when i try to open it in the browser it is not working.
I already tryed many tutorials but it is still not working.
Here is my code:

<title></title>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

    <link type="image/ico" rel="shortcut icon" href="//resources.esri.com/favicon.ico">
    <link type="image/ico" rel="icon"  href="//resources.esri.com/favicon.ico">

    <!-- 
        To correctly reference your Map Tour in search engine:
         - create and fill out extensively an ArcGIS.com item that link to your final application
         - edit the following four tags as well as the upper title tag on line 4
    -->
    <meta name="description" content="This story map was created with the Esri Map Tour application in ArcGIS Online.">

    <!-- Facebook sharing -->
    <meta property="og:type" content="article"/>
    <meta property="og:title" content="Story Map Tour"/>
    <meta property="og:description" content="This story map was created with the Esri Map Tour application in ArcGIS Online."/>
    <meta property="og:image" content="resources/icons/esri-globe.png"/>

    <!-- 
        This template is released under the Apache License V2.0 by Esri http://www.esri.com/
        Checkout the project repository on GitHub to access source code, latest revision, developer documentation, FAQ and tips
        https://github.com/Esri/map-tour-storytelling-template-js
    -->

    <script type="text/javascript">
        //----------------------------------------------------
        //     Template configuration (ignored on Portal)
        //----------------------------------------------------
        configOptions = {
            // Enter either a web map ID or a web application ID
            // - Using a Map Tour application ID created through the interactive builder in ArcGIS.com allow to reuse 
            //   the settings like the header configuration without having to edit any configuration here
            // - Web map and application can be dynamically specified through url parameters (webmap and appid) 
            //   if the authorizedOwners property is specified (see below)
            // - If an application id is specified, the webmap configuration isn't used
            webmap: "",
            appid: "10129a28a5644de18c2a1559df60612e",
            // Optional list of authorized application or web map owners
            // Has to be specified when using appid or webmap url parameters (e.g. ["user1"], ["user1", "user2"])
            authorizedOwners: ["Betzen"],
            // Select the application layout between "three-panel" and "integrated"
            layout: "three-panel",
            // The application header title, if no title is specified, the webmap's title is used
            title: "FH Map",
            // The application header subtitle, if not specified the ArcGIS.com web map's summary is used
            subtitle: "Students internships",
            // Optionally force a web map layer to be used as the tour points data source (can be overridden through URL)
            // Otherwise the upper visible point layer is used (excluding map notes)
            sourceLayerTitle: "Points",
            // Use the first data record as an introduction instead of a point (can be overridden through URL)
            firstRecordAsIntro: true,
            // Optional zoom level to be applied for the story points following introduction (can be overridden through URL) (e.g: 0 to 16 for Gray Canvas, 0 to 19 for Street Map, -1 to disable)
            zoomLevel: -1
        };
        // Optionally sharing and proxy URLs can be configured in app/maptour-config.js. This is only required  
        //  when the webmap is not hosted on ArcGIS Online or a Portal for ArcGIS instance and the template isn't deployed as /home/MapTour/ or /apps/MapTour/. 
        // Optionally Bing Maps key, Geometry and Geocode service's URLs can be configured in app/commonConfig.js. This is only required 
        //  if the Organization or Portal for ArcGIS instance default configuration has to be overwritten. If the application is deployed 
        //  on Portal for ArcGIS as /home/MapTour/ or /apps/MapTour/, that configuration is available in ../commonConfig.js
    </script>

stop 'undefined' from appearing in popup

Here's one I see quite a lot because people aren't always populating the full set of shortlist attributes for their supporting layers: could we prevent the 'undefined' string appearing in the popup if the user has not supplied a Short_Desc field for a point feature or supporting line or polygon feature in a shortlist. In the doc we tell people that Short_Desc is required but it would still be nice if we allowed it to be blank without letting the 'undefined' string appear.

For example, in this app, click one of the trolley routes:

http://storymaps.esri.com/templates/shortlist/?webmap=d8431f956aad429f8ade527ed81ad1a1

prevent_undefined

If the user clicks on a place on the map instead of getting to it via the tab, let's show the picture of the place in the popup

Currently if you go to a Shortlist and just click on a place on the map, the popup appears to tell you what it is, but we don't show you the picture of the place! This is a design weakness of the Shortlist, because the user wants to see what a particular place is, but we are withholding the most compelling piece of content we have about that place: the picture.

one

The picture is over in the tab somewhere, but the user can't quickly see which picture shows the place they clicked, and shouldn't be expect to have to look through. The tabs are great if you use them to browse the places and choose what place you want to see. You click on a picture and then the popup shows you where that place is on the map. But if you go straight to the map and don't browse with the tab, you don't get the immediate enlightenment and fun of seeing a picture of the place you chose, and it isn't easy to have to look over to the tab to try and find it.

So how about this enhancement: If the user clicks on a place in the tab, then the popup looks the same as it does now. No change. But if the user clicks on a place in the map (or the user clicks on a supporting feature), then lets add the picture of the place into the popup! Sweet! We can display it at the same size that we display it in the tab. The extra vertical space this requires isn't a big deal because there's enough vertical space on our displays. What do you think! This enhancement lets people browse the places just using the map! (It also help set up how this would work in a smartphone UI).

two

As part of this same enhancement, when the picture is displayed in the popup let's make clicking or tapping the picture be a shortcut that takes the user to the Details panel. This is a handy shortcut that saves the user who figures it out from having to move the cursor or their finger down to the small link that takes them to the Details.

Using data from one Tab in another Tab (question)

This is more of a question than an issue.
I have added two layers to my Web Map to use as Tabs in my Storytelling app. One layer has Public Art locations. The other tab is called Cultural Corridor which contains venues. The venues are inside a polygon layer called Cultural Corridor. I basically want to know if the following is possible. How do I get Public Art locations into the Cultural Corridor tab that are inside the Cultural Corridor. Thus the Cultural Corridor tab will have Venues and Public Art locations (preferably with different colours to differentiate).
Cheers,
Cameron

make details panel optional

I think a really neat shortlist enhancement would be to make the Details panel optional via a setting in the Index.html file. By default it would be on. But the author could also turn it off. If the user chooses not to have it, then there would be no Details link in the popup, and instead we would automatically add the following into the popup in addition to the Short_Desc

Picture
Address
Hours
Website URL link

In this way, a user can choose between a separate Details with multiple description fields or no Details panel in which case we fit everything except Desc1…Desc5 into the popup. It would make the popup a bit larger but usually there is space. Plus the user can still leave any of the fields blank if they like.

Can't open webmap that is in Organizational portal.

I have download the template onto our web servers and tried to use a web map that I created on our own Organizational portal. I get the following error. Map Creation Failed: Item does not exist or is inaccessible.

The webmap id is: b1a2a6cf4c2547c79819c954b2c48c6c

It has been shared to the public.

Does anybody have any thoughts as to why this is happening?

Cameron

If the tab contains names that wrap over onto three lines in the tab, they look bad on certain browsers.

For example, try this test map: http://storymaps.esri.com/templates/shortlist/?webmap=1285c87b36fe4b4fa0c744f66a3ced9b. It looks OK on IE so if an author is using IE they'll think that three lines looks OK:

image1

However this is problematic because if an author publishes their Shortlist based on just viewing it in IE, they miss the fact that it doesn't currently look good in other browsers:

  • In Chrome the descenders of the text in the third line touch the bottom of the tab so it doesn't look good:

image2

  • In Firefox and Safari (I tested the iPad version only), the baseline of the text in the third line touches the bottom of the tab and the descenders go way over and touch the top of the next tab, so looks really bad:

image3

In the doc I tell people to limit their names to two lines only but people don't necessarily a) adhere to that, b) realize when their names are wrapping over onto three lines c) always review them all d) review them on platforms other than IE. It's a common issue I see. Also Shortlist authors shouldn't have to test their maps on different browsers.

So can you move the number+name in the tile 4 pixels closer to the bottom of the photo above it. 3 pixels is the amount by which descenders in the third line of text overhang the tile on Firefox and Safari, so those 3 pixels plus 1 pixel = 4 which will leave a single pixel clear space between the descenders in the third line of text and the bottom of the tile.

image4

Ampersands in tab names are problematic

If you include an & character in a tab name, the tab doesn't become highlighted when it is selected. For example, click the R & R tab in this example:

http://storymaps.esri.com/templates/shortlist/?webmap=0c08a93c161a4e089e50d9f054c0dc0a

it is gets selected but the tab itself doesn't get the grey coloration like the other tabs do when you click on them. I see this a lot because, to save space, people usually have the & sign in their tab name when they want to use 'and' in the name of a tab.

Not All Tabs Appear on Page Load

I have 2 deployments of version 1.4.4. I have noticed a random bug where on page load, not all of the tabs will load. For the tabs that did not load, the symbol used on the web map is used for the non-loaded tabs.

This issue occurs randomly. When it does occur, a page refresh will typically result in all tabs loading.

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.