Skip to content

Commit

Permalink
Version 1.27.0, ArcGIS Online June 2022
Browse files Browse the repository at this point in the history
  • Loading branch information
asizer committed Jul 9, 2022
1 parent d8406ae commit 109e944
Show file tree
Hide file tree
Showing 150 changed files with 2,855 additions and 478 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
Story Map Series
_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](https://www.esri.com/arcgis-blog/?s=#&tag=classic-esri-story-maps-transition)._


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.
Expand All @@ -13,7 +16,7 @@ The Story Map Series app lets you present a series of maps via tabs, numbered bu
[Download](http://links.esri.com/storymaps/map_series_template_zip) |
[Map Series page on Esri Story Maps website](http://links.esri.com/storymaps/map_series_app)

**Latest release is version 1.20.1**, if you want to be informed of new releases, we recommend you to watch this repository ([see GitHub help](https://help.github.com/articles/watching-repositories)). See the [release page](https://github.com/Esri/map-series-storytelling-template-js/releases) for release notes.
**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](https://help.github.com/articles/watching-repositories)). See the [release page](https://github.com/Esri/map-series-storytelling-template-js/releases) for release notes.

For more infomation about using and customizing Esri's Storytelling Apps follow the [Story Maps Developers' Corner](https://developerscorner.storymaps.arcgis.com).

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Storymaps-MapSeries",
"version": "1.20.1",
"version": "1.27.0",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-clean": "~0.4.0",
Expand Down
4 changes: 3 additions & 1 deletion src/app/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -452,6 +452,7 @@ app.cfg = {
// Text to be used as the browser page title during app creation
TPL_NAME: "Map Series",
TPL_ID: "mapseries",
TPL_DIR: "MapSeries", // for app redirect
WEBAPP_TAG: ["Story Map", "Map Series"],
WEBAPP_KEYWORD_GENERIC: ["JavaScript", "Map", "Mapping Site", "Online Map", "Ready To Use", "selfConfigured", "Web Map"],
WEBAPP_KEYWORD_APP: ["Story Map", "Story Maps", "MapSeries"],
Expand Down Expand Up @@ -491,6 +492,7 @@ app.cfg = {
// If you are using ArcGIS Online or deploying the template on a Portal instance, you don't have to edit those URL
DEFAULT_SHARING_URL: "//www.arcgis.com/sharing/rest/content/items",
//DEFAULT_SHARING_URL: "//portal.internal.com/arcgis/sharing/rest/content/items",
DEFAULT_PROXY_URL: "//www.arcgis.com/sharing/proxy"
DEFAULT_PROXY_URL: "//www.arcgis.com/sharing/proxy",
//DEFAULT_PROXY_URL: "//portal.internal.com/arcgis/sharing/proxy"
DEFAULT_CLIENT_ID: "storymaps"
};
8 changes: 8 additions & 0 deletions src/app/storymaps/common/Core.css
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@ a:hover{
}

#fatalError > table {
table-layout: fixed;
width: 100%;
margin-top: -42px;
margin-left:-247px;
max-width: 490px;
Expand All @@ -169,6 +171,12 @@ a:hover{
margin-right: 8px;
}

#fatalError .error-details {
margin-top: 16px;
margin-bottom: 8px;
font-size: 12px;
}

#fatalError-icon {
background: url('_resources/icons/warning-icon.png') 0 0px;
width: 75px;
Expand Down
87 changes: 55 additions & 32 deletions src/app/storymaps/common/Core.js
Original file line number Diff line number Diff line change
Expand Up @@ -266,36 +266,39 @@ define(["lib-build/css!lib-app/bootstrap/css/bootstrap.min",
// Pass cookie onto API to avoid infinite redirects
IdentityManager.checkSignInStatus(app.portal.portalUrl);

// If app is configured to use OAuth
if ( app.indexCfg.oAuthAppId ) {
var info = new ArcGISOAuthInfo({
appId: app.indexCfg.oAuthAppId,
popup: false,
portalUrl: 'https:' + app.indexCfg.sharingurl.split('/sharing/')[0]
});

IdentityManager.registerOAuthInfos([info]);
CommonHelper.fetchPortalSelfInfo().then(function() {
// If app is configured to use OAuth
if ( app.indexCfg.oAuthAppId ) {
var info = new ArcGISOAuthInfo({
appId: app.indexCfg.oAuthAppId,
popup: false,
portalUrl: 'https:' + app.indexCfg.sharingurl.split('/sharing/')[0]
});

IdentityManager.checkSignInStatus(info.portalUrl).then(
function() {
// User has signed-in using oAuth
if ( ! builder )
portalLogin().then(initStep2);
else
portalLogin().then(initStep2);
},
function() {
// Not signed-in, redirecting to OAuth sign-in page if builder
if (!builder){
initStep2();
} else {
portalLogin().then(initStep2);
IdentityManager.registerOAuthInfos([info]);

IdentityManager.checkSignInStatus(info.portalUrl).then(
function() {
// User has signed-in using oAuth
if ( ! builder )
portalLogin().then(initStep2);
else
portalLogin().then(initStep2);
},
function() {
// Not signed-in, redirecting to OAuth sign-in page if builder
if (!builder){
initStep2();
} else {
portalLogin().then(initStep2);
}
}
}
);
}
else
initStep2();
);
}
else
initStep2();
});

});
}

Expand Down Expand Up @@ -617,6 +620,10 @@ define(["lib-build/css!lib-app/bootstrap/css/bootstrap.min",
initError("notAuthorizedLicense");
return;
});
} else if (!app.isPortal && response.item.contentOrigin && response.item.contentOrigin !== "self" && (!app.portal || (!CommonHelper.getPortalUser() && !app.portal.getPortalUser())) && window.top === window.self) {
// if contentOrigin exists (only happens on org urls) and isn't "self", that means the org shorturl doesn't match the org of the content owner.
// we only throw an error if we're on agol (not portal) and the user is anonymous.
initError("nonOwnerOrgUrl");
} else {
loadWebMappingAppStep3(response);
return;
Expand Down Expand Up @@ -747,11 +754,13 @@ define(["lib-build/css!lib-app/bootstrap/css/bootstrap.min",
initError("notAuthorizedBuilder");
return;
}
// do this again just to be safe...
CommonHelper.fetchPortalSelfInfo().then(function() {
app.userCanEdit = app.data.userIsAppOwner();

app.userCanEdit = app.data.userIsAppOwner();

definePortalConfig();
resultDeferred.resolve();
definePortalConfig();
resultDeferred.resolve();
});
},
function() {
resultDeferred.reject();
Expand Down Expand Up @@ -936,6 +945,20 @@ define(["lib-build/css!lib-app/bootstrap/css/bootstrap.min",
errorMsg += '<div><button class="btn btn-sm btn-default" onclick="esri.id.destroyCredentials(); window.location.reload();">' + i18n.viewer.errors.signOut + '</button></div>';
}

if (error == "nonOwnerOrgUrl") {
// we can use portalHostname here because we're definitely not on enterprise, so there shouldn't be an instance name like "home" to get rid of
var hostName = (app.portal && app.portal.portalHostname) || app.cfg.DEFAULT_SHARING_URL.split('/sharing')[0].replace(/\//g, '');
var genericUrl = 'https://' + hostName + '/apps/' + app.cfg.TPL_DIR + '/index.html?appid=' + CommonHelper.getAppID(isProd());
// gotta put this on window, no way to pass it into the string template otherwise.
window.showLink = function() {
$("#proceed-to-btn").hide();
$("#proceed-to-link").show();
};
var linkTag = '<a id="proceed-to-link" style="display: none;" href="' + genericUrl + '">' + i18n.viewer.errors.nonOwnerOrgProceedToGeneric.replace(/%HREF%/g, genericUrl); + '</a>';
var btnTag = '<button id="proceed-to-btn" class="btn btn-default btn-sm" onclick="showLink();">' + i18n.viewer.errors.advanced + '</button>';
errorMsg += '<div class="error-details">' + btnTag + linkTag + '</div>';
}

if ( error == "appLoadingFail" ) {
$("#loadingMessage").html(
'<div id="loadingRetry">'
Expand Down
23 changes: 22 additions & 1 deletion src/app/storymaps/common/_resources/nls/ar/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ define({
},
"saveErrorSocial": {
"title": "تحديث مشاركة في مواقع التواصل الاجتماعي",
"panel1": "تم تحسين مظهر القصة’s على المواقع التواصل الاجتماعي، ولكن لا يكون عنوان عنصر تطبيق ArcGIS على الويب هو نفسه عنوان القصة.",
"panel1": "تم تحسين مظهر القصة على مواقع التواصل الاجتماعي، ولكن عنوان عنصر تطبيق ArcGIS على الويب ليس عنوان القصة نفسه.",
"panel1tooltip": "وبتعريف العنوان والملخص والصورة المصغرة، ستظهر القصر كما يلي:",
"panel2": "ما هو العنوان الذي تريد استخدامه في مواقع التواصل الاجتماعي:",
"panel2q1": "عنوان القصة (مُوصَى به)",
Expand Down Expand Up @@ -148,6 +148,27 @@ define({
"action2": "تحقق من القصص الخاصة بي الآن",
"action3": "تعلم المزيد"
},
"extendedSupportMessage": {
"bannerMsg": "Classic Esri Story Maps في الدعم الموسع",
"s1h1": "رسالة مهمة حول Classic Esri Story Maps",
"s1p1": "قوالب Classic Esri Story Maps في الدعم الموسع يتم تشجيع جميع العملاء على استخدام ArcGIS StoryMaps، الجيل الحالي من Esri لأداة سرد القصص.",
"s1p2": "لم تعد القوالب الكلاسيكية قيد التطوير النشط ولا يوصى بها للمشروعات الجديدة. لم يتم التخطيط لمزيد من التحديثات لإمكاناتها. ستظل القصص التي أنشأتها باستخدام القوالب الكلاسيكية متاحة.",
"s1p3": "في ديسمبر 2021، ستتم إزالة القوالب الكلاسيكية من معرض التطبيقات الافتراضية القابلة للتكوين. يمكن إضافة قالب كلاسيكي واحد أو أكثر إلى مجموعة التطبيقات القابلة للتكوين المخصصة لمؤسستك إذا لزم الأمر لدعم مهام سير العمل الحالية أثناء الانتقال إلى استخدام ArcGIS StoryMaps.",
"s1p4": "لمزيد من المعلومات، انقر فوق الارتباط \"معرفة المزيد\" أدناه.",
"action1": "إغلاق",
"action2": "تعرّف على المزيد",
"action3": "جرّب ArcGIS StoryMaps"
},
"matureSupportMessage": {
"bannerMsg": "Classic Esri Story Maps في الدعم المدروس",
"s1h1": "رسالة مهمة حول Classic Esri Story Maps",
"s1p1": "قوالب Classic Esri Story Maps في الدعم المدروس يتم تشجيع جميع العملاء على استخدام ArcGIS StoryMaps، الجيل الحالي من Esri لأداة سرد القصص.",
"s1p2": "لم تعد القوالب الكلاسيكية قيد التطوير النشط ولا يوصى بها للمشروعات الجديدة. لم يتم التخطيط لمزيد من التحديثات لإمكاناتها. ستظل القصص التي أنشأتها باستخدام القوالب الكلاسيكية متاحة.",
"s1p3": "لمزيد من المعلومات، انقر فوق الارتباط \"معرفة المزيد\" أدناه.",
"action1": "إغلاق",
"action2": "تعرّف على المزيد",
"action3": "جرّب ArcGIS StoryMaps"
},
"sectionNavigation": {
"select": "تحديد إدخال...",
"section": "إدخال",
Expand Down
Loading

0 comments on commit 109e944

Please sign in to comment.