From c2721004f5b6c50f15869f7be7eaa8ba1120f45e Mon Sep 17 00:00:00 2001 From: Gregory L'Azou Date: Wed, 14 Sep 2016 14:05:05 -0700 Subject: [PATCH] V2.5.2 --- MapTour/package.json | 2 +- MapTour/src/app/maptour-config.js | 5 - .../builder/SettingsPopupTabHeader.js | 1 + MapTour/src/app/storymaps/core/Core.css | 2 +- MapTour/src/app/storymaps/core/Core.js | 3 + .../storymaps/maptour/builder/BuilderView.js | 10 - .../storymaps/maptour/builder/HelpPopup.js | 4 + .../storymaps/maptour/builder/ImportPopup.js | 4 - .../maptour/builder/ImportPopupViewHome.js | 14 - .../storymaps/maptour/builder/InitPopup.js | 4 - .../maptour/builder/InitPopupViewHome.js | 14 - .../maptour/builder/PopupViewFacebook.css | 71 ----- .../maptour/builder/PopupViewFacebook.js | 267 ------------------ .../src/app/storymaps/maptour/core/Config.js | 1 - .../app/storymaps/maptour/core/MainView.js | 18 +- .../app/storymaps/maptour/core/TourData.js | 1 + .../app/storymaps/ui/crossfader/CrossFader.js | 2 + .../src/app/storymaps/ui/header/Header.css | 1 + MapTour/src/app/storymaps/ui/header/Header.js | 16 +- .../ui/inlineFieldEdit/InlineFieldEdit.js | 1 + .../app/storymaps/utils/FacebookConnector.js | 195 ------------- .../app/storymaps/utils/FlickrConnector.js | 2 +- MapTour/src/index.html | 55 +--- MapTour/src/resources/nls/ar/template.js | 12 +- MapTour/src/resources/nls/cs/template.js | 12 +- MapTour/src/resources/nls/da/template.js | 12 +- MapTour/src/resources/nls/de/template.js | 26 +- MapTour/src/resources/nls/el/template.js | 12 +- MapTour/src/resources/nls/es/template.js | 12 +- MapTour/src/resources/nls/et/template.js | 12 +- MapTour/src/resources/nls/fi/template.js | 12 +- MapTour/src/resources/nls/fr/template.js | 12 +- MapTour/src/resources/nls/he/template.js | 22 +- MapTour/src/resources/nls/hr/template.js | 12 +- MapTour/src/resources/nls/it/template.js | 12 +- MapTour/src/resources/nls/ja/template.js | 12 +- MapTour/src/resources/nls/ko/template.js | 12 +- MapTour/src/resources/nls/lt/template.js | 12 +- MapTour/src/resources/nls/lv/template.js | 24 +- MapTour/src/resources/nls/nb/template.js | 12 +- MapTour/src/resources/nls/nl/template.js | 12 +- MapTour/src/resources/nls/pl/template.js | 26 +- MapTour/src/resources/nls/pt-br/template.js | 12 +- MapTour/src/resources/nls/pt-pt/template.js | 14 +- MapTour/src/resources/nls/ro/template.js | 12 +- MapTour/src/resources/nls/ru/template.js | 12 +- MapTour/src/resources/nls/sr/template.js | 12 +- MapTour/src/resources/nls/sv/template.js | 12 +- MapTour/src/resources/nls/template.js | 12 +- MapTour/src/resources/nls/th/template.js | 12 +- MapTour/src/resources/nls/tr/template.js | 12 +- MapTour/src/resources/nls/vi/template.js | 12 +- MapTour/src/resources/nls/zh-cn/template.js | 12 +- MapTour/src/resources/nls/zh-hk/template.js | 12 +- MapTour/src/resources/nls/zh-tw/template.js | 12 +- README.md | 2 +- 56 files changed, 287 insertions(+), 844 deletions(-) delete mode 100644 MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.css delete mode 100644 MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.js delete mode 100644 MapTour/src/app/storymaps/utils/FacebookConnector.js diff --git a/MapTour/package.json b/MapTour/package.json index 0a71470..4bf9024 100644 --- a/MapTour/package.json +++ b/MapTour/package.json @@ -1,6 +1,6 @@ { "name": "StorytellingMapTour", - "version": "2.5.1", + "version": "2.5.2", "devDependencies": { "grunt": "~0.4.1", "grunt-contrib-clean": "~0.4.0", diff --git a/MapTour/src/app/maptour-config.js b/MapTour/src/app/maptour-config.js index 28e8325..03d42d4 100644 --- a/MapTour/src/app/maptour-config.js +++ b/MapTour/src/app/maptour-config.js @@ -141,11 +141,6 @@ APPCFG = { // Online photo sharing services connection parameters FLICKR_API_KEY: "750b36a2ac65a72e03cf9cef06d79f45", - // The Facebook ID is only valid on arcgis.com domain - // If used on another domain, user will have an error in the Facebook popup after login - // To use Facebook import on Portal for ArcGIS, create your own ID at https://developers.facebook.com/ - // or set AUTHORIZED_IMPORT_SOURCE.facebook to false - FACEBOOK_APP_ID: "471023926309627", // This Youtube key is valid for application running on arcgis.com and esri.com domains // If the application is deployed on Portal for ArcGIS or your own server, the Youtube api call // won't be perfomed until you set the following flag and provide your own key diff --git a/MapTour/src/app/storymaps/builder/SettingsPopupTabHeader.js b/MapTour/src/app/storymaps/builder/SettingsPopupTabHeader.js index e5424dc..30874bb 100644 --- a/MapTour/src/app/storymaps/builder/SettingsPopupTabHeader.js +++ b/MapTour/src/app/storymaps/builder/SettingsPopupTabHeader.js @@ -217,6 +217,7 @@ define(["storymaps/utils/Helper"], $(contentContainer).find('p').eq(1).html(i18n.viewer.builderHTML.settingsLogoSocialExplain); $(contentContainer).find('.control-label[for=selectSocialText]').html(i18n.viewer.builderHTML.settingsLogoSocialText + ":"); $(contentContainer).find('.control-label[for=selectSocialLink]').html(i18n.viewer.builderHTML.settingsLogoSocialLink + ":"); + $(contentContainer).find('.header-share-label').html(i18n.viewer.builderHTML.buttonShare); }; }; } diff --git a/MapTour/src/app/storymaps/core/Core.css b/MapTour/src/app/storymaps/core/Core.css index 570e285..3e91839 100644 --- a/MapTour/src/app/storymaps/core/Core.css +++ b/MapTour/src/app/storymaps/core/Core.css @@ -22,7 +22,7 @@ html, body { url('../../../resources/font/OpenSans-Semibold-webfont.woff') format('woff'), url('../../../resources/font/OpenSans-Semibold-webfont.ttf') format('truetype'), url('../../../resources/font/OpenSans-Semibold-webfont.svg#open_sanssemibold') format('svg'); - font-weight: normal; + font-weight: bold; font-style: normal; } diff --git a/MapTour/src/app/storymaps/core/Core.js b/MapTour/src/app/storymaps/core/Core.js index 51398d1..12db70a 100644 --- a/MapTour/src/app/storymaps/core/Core.js +++ b/MapTour/src/app/storymaps/core/Core.js @@ -24,6 +24,7 @@ define(["esri/map", "dojo/on", "dojo/_base/lang", "dojo/_base/array", + "dojo/_base/kernel", "dojo/Deferred", "dojo/DeferredList", "dojo/query", @@ -51,6 +52,7 @@ define(["esri/map", on, lang, array, + kernel, Deferred, DeferredList, query, @@ -962,6 +964,7 @@ define(["esri/map", function initLocalization() { + document.documentElement.lang = kernel.locale; query('#fatalError .error-title')[0].innerHTML = i18n.viewer.errors.boxTitle; } diff --git a/MapTour/src/app/storymaps/maptour/builder/BuilderView.js b/MapTour/src/app/storymaps/maptour/builder/BuilderView.js index 08ccf9f..982a7e9 100644 --- a/MapTour/src/app/storymaps/maptour/builder/BuilderView.js +++ b/MapTour/src/app/storymaps/maptour/builder/BuilderView.js @@ -376,11 +376,6 @@ define(["storymaps/maptour/core/WebApplicationData", nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, nbPicturesAuthorized: APPCFG.MAX_ALLOWED_POINTS }, - Facebook: { - appId: APPCFG.FACEBOOK_APP_ID, - nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, - nbPicturesAuthorized: APPCFG.MAX_ALLOWED_POINTS - }, Picasa: { nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, nbPicturesAuthorized: APPCFG.MAX_ALLOWED_POINTS @@ -470,11 +465,6 @@ define(["storymaps/maptour/core/WebApplicationData", nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, nbPicturesAuthorized: nbPicturesAuthorized }, - Facebook: { - appId: APPCFG.FACEBOOK_APP_ID, - nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, - nbPicturesAuthorized: nbPicturesAuthorized - }, Picasa: { nbPicturesMax: APPCFG.MAX_ALLOWED_POINTS, nbPicturesAuthorized: nbPicturesAuthorized diff --git a/MapTour/src/app/storymaps/maptour/builder/HelpPopup.js b/MapTour/src/app/storymaps/maptour/builder/HelpPopup.js index 8bccba9..0bbfd20 100644 --- a/MapTour/src/app/storymaps/maptour/builder/HelpPopup.js +++ b/MapTour/src/app/storymaps/maptour/builder/HelpPopup.js @@ -63,6 +63,10 @@ define([], + '
  • ' + i18n.viewer.helpPopup.tab2.div6 + '
  • ' + '
  • ' + i18n.viewer.helpPopup.tab2.div7 + '

  • ' + '' + i18n.viewer.helpPopup.tab2.div8 + '
    ' + + i18n.viewer.helpPopup.tab2.div9a.replace( + '${learn}', + '' + i18n.viewer.helpPopup.tab2.learn + '' + ) + ' ' + i18n.viewer.helpPopup.tab2.div9 + '

    ' + '' + i18n.viewer.helpPopup.tab2.div10 + '
    ' + i18n.viewer.helpPopup.tab2.div11 + '

    ' diff --git a/MapTour/src/app/storymaps/maptour/builder/ImportPopup.js b/MapTour/src/app/storymaps/maptour/builder/ImportPopup.js index 732b935..d54d60d 100644 --- a/MapTour/src/app/storymaps/maptour/builder/ImportPopup.js +++ b/MapTour/src/app/storymaps/maptour/builder/ImportPopup.js @@ -1,6 +1,5 @@ define(["storymaps/maptour/builder/ImportPopupViewHome", "storymaps/maptour/builder/PopupViewFlickr", - "storymaps/maptour/builder/PopupViewFacebook", "storymaps/maptour/builder/PopupViewPicasa", "storymaps/maptour/builder/PopupViewYoutube", "storymaps/maptour/builder/PopupViewCSV", @@ -9,7 +8,6 @@ define(["storymaps/maptour/builder/ImportPopupViewHome", function ( ImportPopupViewHome, PopupViewFlickr, - PopupViewFacebook, PopupViewPicasa, PopupViewYoutube, PopupViewCSV, @@ -21,7 +19,6 @@ define(["storymaps/maptour/builder/ImportPopupViewHome", var _views = { home: new ImportPopupViewHome(), Flickr: new PopupViewFlickr(), - Facebook: new PopupViewFacebook(), Picasa: new PopupViewPicasa(), Youtube: new PopupViewYoutube(), CSV: new PopupViewCSV(container), @@ -51,7 +48,6 @@ define(["storymaps/maptour/builder/ImportPopupViewHome", _views.home.init(footer); _views.CSV.init(params.CSV, importCompleteDeferred, footer); _views.Flickr.init(params.Flickr, importCompleteDeferred, footer); - _views.Facebook.init(params.Facebook, importCompleteDeferred, footer); _views.Picasa.init(params.Picasa, importCompleteDeferred, footer); _views.Youtube.init(params.Youtube, importCompleteDeferred, footer); _views.geotag.init(params.geotag, importCompleteDeferred, footer); diff --git a/MapTour/src/app/storymaps/maptour/builder/ImportPopupViewHome.js b/MapTour/src/app/storymaps/maptour/builder/ImportPopupViewHome.js index 4d7197b..09c215a 100644 --- a/MapTour/src/app/storymaps/maptour/builder/ImportPopupViewHome.js +++ b/MapTour/src/app/storymaps/maptour/builder/ImportPopupViewHome.js @@ -7,7 +7,6 @@ define(["storymaps/maptour/core/WebApplicationData", "dojo/has"], var _selectedView = null; _container.find('.btn-select-flickr').click(function(){ select("Flickr"); }); - _container.find('.btn-select-fb').click(function(){ select("Facebook"); }); _container.find('.btn-select-picasa').click(function(){ select("Picasa"); }); _container.find('.btn-select-youtube').click(function(){ select("Youtube"); }); _container.find('.btn-select-csv').click(function(){ select("CSV"); }); @@ -61,7 +60,6 @@ define(["storymaps/maptour/core/WebApplicationData", "dojo/has"], ); _container.find('.btn-select-flickr img').attr('src', 'resources/icons/builder-import-flickr.png'); - _container.find('.btn-select-fb img').attr('src', 'resources/icons/builder-import-facebook.png'); _container.find('.btn-select-picasa img').attr('src', 'resources/icons/builder-import-picasa.png'); _container.find('.btn-select-youtube img').attr('src', 'resources/icons/builder-import-youtube.png'); _container.find('.btn-select-csv img').attr('src', 'resources/icons/builder-import-csv.png'); @@ -70,8 +68,6 @@ define(["storymaps/maptour/core/WebApplicationData", "dojo/has"], if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.flickr) _container.find('.btn-select-flickr').addClass("disabled").unbind('click'); - if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook) - _container.find('.btn-select-fb').addClass("disabled").unbind('click'); if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.picasa) _container.find('.btn-select-picasa').addClass("disabled").unbind('click'); if ( disableYoutube ) @@ -87,16 +83,6 @@ define(["storymaps/maptour/core/WebApplicationData", "dojo/has"], }); } - if (!has("touch") || !APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook) { - _container.find('.btn-select-fb').popover({ - trigger: 'hover', - placement: 'top', - html: true, - content: APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook ? 'Facebook' : i18n.viewer.onlinePhotoSharingCommon.disabled, - container: '.popover-import' - }); - } - if (!has("touch") || !APPCFG.AUTHORIZED_IMPORT_SOURCE.picasa) { _container.find('.btn-select-picasa').popover({ trigger: 'hover', diff --git a/MapTour/src/app/storymaps/maptour/builder/InitPopup.js b/MapTour/src/app/storymaps/maptour/builder/InitPopup.js index fbeb3fe..5270caa 100644 --- a/MapTour/src/app/storymaps/maptour/builder/InitPopup.js +++ b/MapTour/src/app/storymaps/maptour/builder/InitPopup.js @@ -3,7 +3,6 @@ define(["storymaps/maptour/builder/InitPopupViewHome", "storymaps/maptour/builder/InitPopupViewAdvanced", "storymaps/maptour/builder/PopupViewCSV", "storymaps/maptour/builder/PopupViewFlickr", - "storymaps/maptour/builder/PopupViewFacebook", "storymaps/maptour/builder/PopupViewPicasa", "storymaps/maptour/builder/PopupViewYoutube", "storymaps/maptour/builder/PopupViewGeoTag", @@ -14,7 +13,6 @@ define(["storymaps/maptour/builder/InitPopupViewHome", InitPopupViewAdvanced, PopupViewCSV, PopupViewFlickr, - PopupViewFacebook, PopupViewPicasa, PopupViewYoutube, PopupViewGeoTag, @@ -27,7 +25,6 @@ define(["storymaps/maptour/builder/InitPopupViewHome", hostedFS: new InitPopupViewHostedFSCreation($('#initPopupViewHostedFSCreation')), advanced: new InitPopupViewAdvanced(), Flickr: new PopupViewFlickr(), - Facebook: new PopupViewFacebook(), Picasa: new PopupViewPicasa(), CSV: new PopupViewCSV(container), Youtube: new PopupViewYoutube(container), @@ -57,7 +54,6 @@ define(["storymaps/maptour/builder/InitPopupViewHome", _views.advanced.init(params.advanced, initCompleteDeferred, footer); _views.CSV.init(params.CSV, initCompleteDeferred, footer); _views.Flickr.init(params.Flickr, null, footer); - _views.Facebook.init(params.Facebook, null, footer); _views.Picasa.init(params.Picasa, null, footer); _views.Youtube.init(params.Youtube, null, footer); _views.geotag.init(params.geotag, initCompleteDeferred, footer); diff --git a/MapTour/src/app/storymaps/maptour/builder/InitPopupViewHome.js b/MapTour/src/app/storymaps/maptour/builder/InitPopupViewHome.js index 4619230..b6a6707 100644 --- a/MapTour/src/app/storymaps/maptour/builder/InitPopupViewHome.js +++ b/MapTour/src/app/storymaps/maptour/builder/InitPopupViewHome.js @@ -7,7 +7,6 @@ define(["dojo/has"], var _footer = null; _container.find('.btn-select-flickr').click(function(){ select("Flickr", this); }); - _container.find('.btn-select-fb').click(function(){ select("Facebook", this); }); _container.find('.btn-select-picasa').click(function(){ select("Picasa", this); }); _container.find('.btn-select-youtube').click(function(){ select("Youtube", this); }); _container.find('.btn-select-advanced').click(function(){ select("advanced", this); }); @@ -102,7 +101,6 @@ define(["dojo/has"], _container.find('.footer').append("" + i18n.viewer.initPopupHome.footer5 + ""); _container.find('.btn-select-flickr img').attr('src', 'resources/icons/builder-import-flickr.png'); - _container.find('.btn-select-fb img').attr('src', 'resources/icons/builder-import-facebook.png'); _container.find('.btn-select-picasa img').attr('src', 'resources/icons/builder-import-picasa.png'); _container.find('.btn-select-youtube img').attr('src', 'resources/icons/builder-import-youtube.png'); _container.find('.btn-select-advanced img').attr('src', 'resources/icons/builder-import-scratch.png'); @@ -110,8 +108,6 @@ define(["dojo/has"], if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.flickr) _container.find('.btn-select-flickr').addClass("disabled").unbind('click'); - if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook) - _container.find('.btn-select-fb').addClass("disabled").unbind('click'); if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.picasa) _container.find('.btn-select-picasa').addClass("disabled").unbind('click'); if (!APPCFG.AUTHORIZED_IMPORT_SOURCE.youtube) @@ -127,16 +123,6 @@ define(["dojo/has"], }); } - if (!has("touch") || !APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook) { - _container.find('.btn-select-fb').popover({ - trigger: 'hover', - placement: 'top', - html: true, - content: APPCFG.AUTHORIZED_IMPORT_SOURCE.facebook ? 'Facebook' : i18n.viewer.onlinePhotoSharingCommon.disabled, - container: '.popover-init' - }); - } - if (!has("touch") || !APPCFG.AUTHORIZED_IMPORT_SOURCE.picasa) { _container.find('.btn-select-picasa').popover({ trigger: 'hover', diff --git a/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.css b/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.css deleted file mode 100644 index 7d7b91f..0000000 --- a/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.css +++ /dev/null @@ -1,71 +0,0 @@ -.popupViewFacebook { - margin-bottom: -10px; -} - -.popupViewFacebook .headerContainer { - margin-bottom: 15px; -} - -.popupViewFacebook .selectContainer { - width: 49%; - display: inline-block; - text-align: center; - padding-top: 10px; - padding-bottom: 15px; - vertical-align: top; -} - -.popupViewFacebook .selectContainer:nth-child(1) { - border-right: 1px solid black; -} - -.popupViewFacebook .sideHeader { - text-align: center; - font-weight: bold; - margin-bottom: 5px; -} - -/* - * Left side - */ -.popupViewFacebook .facebookLogin { - height: 67px; - margin-top: 10px; -} - -/* - * Right side - */ - -.popupViewFacebook > div .selectContainer:nth-child(2) .sideHeader { - margin-bottom: 20px; -} - -.popupViewFacebook .selectPageName { - width: 157px; -} - -.popupViewFacebook .btn-pageLookup { - vertical-align: 4px; - margin-bottom: 15px; -} - -.popupViewFacebook .lookingUpMsg { - height: 16px; - font-size: 14px; - color: #30750a; - font-weight: bold; - vertical-align: 2px; -} - -.popupViewFacebook .lookingUpMsg.error { - color: #c43d40; -} - -.popupViewFacebook .lookingUpMsg img { - vertical-align: -2px; -} - -.popupViewFacebook .spacer { - height: 10px; -} \ No newline at end of file diff --git a/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.js b/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.js deleted file mode 100644 index c078cb2..0000000 --- a/MapTour/src/app/storymaps/maptour/builder/PopupViewFacebook.js +++ /dev/null @@ -1,267 +0,0 @@ -define(["storymaps/utils/FacebookConnector", "dojo/Deferred"], - function (FacebookConnector, Deferred) { - return function PopupViewFacebook() - { - $('#init-import-views').append($('#popupViewFacebook').clone()); - var _container = $('.popupViewFacebook').last(); - _container.attr("id", '#popupViewFacebook' + $('.popupViewFacebook').length); - - var _facebook = null; - var _footer = null; - - var _nbPicturesMax = -1; - var _nbPicturesAuthorized = -1; - - this.init = function(params, initCompleteDeferred, footer) - { - _facebook = new FacebookConnector(params.appId); - _footer = footer; - - _nbPicturesMax = params.nbPicturesMax; - _nbPicturesAuthorized = params.nbPicturesAuthorized; - }; - - this.getView = function(params) - { - if( params ) - showView(params); - return _container; - }; - - this.getNextView = function() - { - var nextViewDeferred = new Deferred(); - - var pictureRqHandler = function(data, title){ - if( ! data.length ) { - updateFooter("error"); - return; - } - - nextViewDeferred.resolve({ - name: 'geotag', - params: { - title: title, - data: data - } - }); - }; - - if( _container.find("#facebookListAlbum1").find(":selected").index() >= 1) - _facebook.getAlbum( - _container.find("#facebookListAlbum1").val(), - true, - _nbPicturesAuthorized - ).then(function(data){ - var albumTitle = _container.find("#facebookListAlbum1 option:selected").text(); - albumTitle = albumTitle.split(/\ \([0-9]+\)/)[0]; - - pictureRqHandler(data, albumTitle); - }); - else - _facebook.getPageAlbum( - _container.find("#facebookListAlbum2").val(), - _nbPicturesAuthorized, - true, - true - ).then(function(data){ - var albumTitle = _container.find("#facebookListAlbum2 option:selected").text(); - albumTitle = albumTitle.split(/\ \([0-9]+\)/)[0]; - - pictureRqHandler(data, albumTitle); - }); - - return nextViewDeferred; - }; - - this.getTitle = function() - { - return i18n.viewer.viewFacebook.title; - }; - - function showView(params) - { - if (! params || ! params.isReturning) { - disableNextBtn(); - disableLists(); - if( ! _container.find(".selectPageName").val() ) - _container.find('.btn-pageLookup').attr("disabled", "disabled"); - } - - // TODO private list is buggy if the page has been used when returning - if( ! params.isReturning ) - loadUserAlbums(); - else - _footer.find('.btnNext').html(i18n.viewer.onlinePhotoSharingCommon.footerImport); - - _container.find(".commonHeader").html(i18n.viewer.onlinePhotoSharingCommon.header2.replace('%NB1%', _nbPicturesAuthorized).replace('%MEDIA%', i18n.viewer.onlinePhotoSharingCommon.pictures).replace('%NB2%', _nbPicturesMax)); - updateFooter(); - } - - function loadUserAlbums() - { - var loadAlbums = function() { - _facebook.getAlbums({ }).then(function(data){ - if( ! data || ! data.length ) - return; - - var outHtml = ""; - $.each(data, function(i, album){ - outHtml += ''; - }); - _container.find("#facebookListAlbum1").html(outHtml); - _container.find("#facebookListAlbum1").removeAttr("disabled"); - }); - }; - - var disablePageInputs = function() - { - // Disable page inputs until signed-in - _container.find('.selectPageName, .btn-pageLookup').attr("disabled", "disabled"); - _container.find('.selectPageName').attr('title', 'Please Log in to activate this feature'); - }; - - disablePageInputs(); - - _facebook.loadApi().then(function(){ - _facebook.onLogout().then(function(){ - _container.find("#facebookListAlbum1").html(""); - _container.find("#facebookListAlbum1").attr("disabled", "disabled"); - loadUserAlbums(); - disablePageInputs(); - }); - - loadAlbums(); - - // Enable page inputs - _container.find('.selectPageName, .btn-pageLookup').removeAttr("disabled"); - _container.find('.selectPageName').attr('title', ''); - }); - } - - function lookupPage() - { - var pageName = _container.find(".selectPageName").val(); - _container.find(".lookingUpMsg").removeClass('error').html(i18n.viewer.onlinePhotoSharingCommon.userLookingup + ' '); - disableNextBtn(); - updateFooter(); - - _facebook.getPageAlbums(pageName).then( - function(data){ - var outHtml = ""; - $.each(data, function(i, album){ - outHtml += ''; - }); - - _container.find(".lookingUpMsg").html(""); - _container.find("#facebookListAlbum2").removeAttr("disabled").html(outHtml); - _container.find("#facebookListAlbum2").change(); - }, - function(){ - _container.find(".lookingUpMsg").addClass('error').html(i18n.viewer.viewFacebook.lookupMsgError); - _container.find("#facebookListAlbum2").html("").attr("disabled", "disabled"); - } - ); - } - - function initEvents() - { - _container.find('.btn-pageLookup').click(lookupPage); - _container.find(".selectPageName").keyup(function(){ - if( $(this).val() ) - _container.find('.btn-pageLookup').removeAttr("disabled"); - else - _container.find('.btn-pageLookup').attr("disabled", "disabled"); - }); - - _container.find("#facebookListAlbum1").change(function(){ - selectChange( - _container.find("#facebookListAlbum1"), - _container.find("#facebookListAlbum2"), - i18n.viewer.onlinePhotoSharingCommon.footerImport - ); - }); - - _container.find("#facebookListAlbum2").change(function(){ - selectChange( - _container.find("#facebookListAlbum2"), - _container.find("#facebookListAlbum1"), - i18n.viewer.onlinePhotoSharingCommon.footerImport - ); - }); - - // iPad keyboard workaround - _container.find('.selectPageName').blur(function(){ $(window).scrollTop(0); }); - } - - function selectChange(select, otherSelect, nextBtn) - { - otherSelect.find("option:nth-child(1)").attr("selected", "selected"); - otherSelect.focus(); - select.focus(); - - if( select.find(":selected").index() ) { - var btnNext = _footer.find('.btnNext'); - btnNext.html(nextBtn); - btnNext.removeAttr("disabled"); - } - - updateFooter(); - } - - function disableLists() - { - _container.find("#facebookListAlbum1, #facebookListAlbum2").attr("disabled", "disabled"); - _container.find("#facebookListAlbum1").html(""); - _container.find("#facebookListAlbum2").html(""); - } - - function disableNextBtn() - { - var btnNext = _footer.find('.btnNext'); - btnNext.html(i18n.viewer.onlinePhotoSharingCommon.footerImport); - btnNext.attr("disabled", "disabled"); - } - - function updateFooter(msg) - { - var footerText = _footer.find('.dataFooterText'); - if( msg == "error" ) - footerText.addClass("error").html(i18n.viewer.onlinePhotoSharingCommon.emptyDataset).show(); - else - footerText.removeClass("error").html("").hide(); - } - - this.initLocalization = function() - { - _container.find('.header').append(i18n.viewer.viewFacebook.header); - _container.find('.sideHeader').eq(0).html(i18n.viewer.viewFacebook.leftHeader); - _container.find('.sideHeader').eq(1).html(i18n.viewer.viewFacebook.rightHeader + ' '); - _container.find('.selectPageName').attr("placeholder", i18n.viewer.viewFacebook.pageInputLbl); - _container.find('.control-label[for="facebookListAlbum1"]').html(i18n.viewer.onlinePhotoSharingCommon.selectAlbum2); - _container.find('.control-label[for="facebookListAlbum2"]').html(i18n.viewer.onlinePhotoSharingCommon.selectAlbum); - - _container.find('.sideHeader a').popover({ - trigger: 'hover', - placement: 'left', - html: true, - content: '' - + '
    ' - + i18n.viewer.viewFacebook.pageExplain - + '
    ' - + '' - - }); - - initEvents(); - }; - }; - } -); \ No newline at end of file diff --git a/MapTour/src/app/storymaps/maptour/core/Config.js b/MapTour/src/app/storymaps/maptour/core/Config.js index 179a748..af3da71 100644 --- a/MapTour/src/app/storymaps/maptour/core/Config.js +++ b/MapTour/src/app/storymaps/maptour/core/Config.js @@ -35,7 +35,6 @@ define([], && APPCFG.CORS_SERVER && APPCFG.AUTHORIZED_IMPORT_SOURCE && APPCFG.FLICKR_API_KEY - && APPCFG.FACEBOOK_APP_ID && APPCFG.YOUTUBE_DISABLE_ON_PORTAL !== undefined && APPCFG.YOUTUBE_API_KEY && APPCFG.BING_MAPS_KEY !== undefined diff --git a/MapTour/src/app/storymaps/maptour/core/MainView.js b/MapTour/src/app/storymaps/maptour/core/MainView.js index 488d66e..d59e4af 100644 --- a/MapTour/src/app/storymaps/maptour/core/MainView.js +++ b/MapTour/src/app/storymaps/maptour/core/MainView.js @@ -390,21 +390,9 @@ define(["storymaps/maptour/core/WebApplicationData", if( has("ie") > 0 && has("ie") < 9 ) setTimeout(layerLoaded, 1000); else { - // Seems to be needed for FS created from My Content in AGOL - if ( app.data.getSourceLayer().objectIdField == "FID" && app.map.loaded ) { - on(app.data.getSourceLayer(), 'update-end', layerLoaded); - - // If the map extent is not set right now, the layer won't query for data - // If remove the extent defined when creating the map the query is performed, - // it looks like hosted FS doesn't like the world extent used there - // The proper extent is set after - _this.setMapExtent(app.data.getSourceLayer().fullExtent); - } - else { - on.once(app.map, 'update-end', function(){ - layerLoaded(); - }); - } + on.once(app.map, 'update-end', function(){ + layerLoaded(); + }); } } // Webmap layer (shp, csv) diff --git a/MapTour/src/app/storymaps/maptour/core/TourData.js b/MapTour/src/app/storymaps/maptour/core/TourData.js index 7f979cd..7529b78 100644 --- a/MapTour/src/app/storymaps/maptour/core/TourData.js +++ b/MapTour/src/app/storymaps/maptour/core/TourData.js @@ -409,6 +409,7 @@ define(["storymaps/maptour/core/WebApplicationData", || (Helper.getPortalUser() != null && Helper.getPortalUser() == this.getAppItem().owner) // Admin privilege || (portalUser && portalUser.privileges && $.inArray("portal:admin:updateItems", portalUser.privileges) > -1 ) + || this.getAppItem().itemControl == "admin" // Group with shared ownership || this.getAppItem().itemControl == "update"; }; diff --git a/MapTour/src/app/storymaps/ui/crossfader/CrossFader.js b/MapTour/src/app/storymaps/ui/crossfader/CrossFader.js index 9673234..55efa82 100644 --- a/MapTour/src/app/storymaps/ui/crossfader/CrossFader.js +++ b/MapTour/src/app/storymaps/ui/crossfader/CrossFader.js @@ -385,6 +385,8 @@ define(["storymaps/ui/inlineFieldEdit/InlineFieldEdit", $(_placard).append("
    "+name+"
    "); $(_placard).append("
    "+text+"
    "); + $(_placard).find('a:not([target])').attr('target', '_blank'); + // Remove user generated content links from the tab navigation if ( ! app.isInBuilderMode ) { $(_placard).find("a").attr("tabindex", "-1"); diff --git a/MapTour/src/app/storymaps/ui/header/Header.css b/MapTour/src/app/storymaps/ui/header/Header.css index 224aa1c..e4bfc70 100644 --- a/MapTour/src/app/storymaps/ui/header/Header.css +++ b/MapTour/src/app/storymaps/ui/header/Header.css @@ -212,6 +212,7 @@ margin-left: 4px; color: #C5D5D5; vertical-align: 0px; + background-image: none; } .shareIcon:hover { diff --git a/MapTour/src/app/storymaps/ui/header/Header.js b/MapTour/src/app/storymaps/ui/header/Header.js index 87df383..adaf633 100644 --- a/MapTour/src/app/storymaps/ui/header/Header.js +++ b/MapTour/src/app/storymaps/ui/header/Header.js @@ -33,8 +33,12 @@ define(["storymaps/ui/inlineFieldEdit/InlineFieldEdit", $(selector).addClass('hideDesktop'); // Mobile - $(selector + ' #headerMobile .title').html(title); - $(selector + ' #headerMobile .subtitle').html(subtitle); + $(selector + ' #headerMobile .title') + .html(title) + .find('a:not([target])').attr('target', '_blank'); + $(selector + ' #headerMobile .subtitle') + .html(subtitle) + .find('a:not([target])').attr('target', '_blank'); // Desktop builder if( isInBuilderMode ) { @@ -48,8 +52,12 @@ define(["storymaps/ui/inlineFieldEdit/InlineFieldEdit", subtitle += ""; } - $(selector + ' #headerDesktop .title').html(title); - $(selector + ' #headerDesktop .subtitle').html(subtitle); + $(selector + ' #headerDesktop .title') + .html(title) + .find('a:not([target])').attr('target', '_blank'); + $(selector + ' #headerDesktop .subtitle') + .html(subtitle) + .find('a:not([target])').attr('target', '_blank'); // Desktop builder if( isInBuilderMode ) diff --git a/MapTour/src/app/storymaps/ui/inlineFieldEdit/InlineFieldEdit.js b/MapTour/src/app/storymaps/ui/inlineFieldEdit/InlineFieldEdit.js index d2ded82..879e0f8 100644 --- a/MapTour/src/app/storymaps/ui/inlineFieldEdit/InlineFieldEdit.js +++ b/MapTour/src/app/storymaps/ui/inlineFieldEdit/InlineFieldEdit.js @@ -90,6 +90,7 @@ define(["dojo/has"], label.parent().parent().removeClass("isEditing"); label.html(value); label.show(); + label.find('a:not([target])').attr('target', '_blank'); input.hide(); icon.css("display", "inline-block"); diff --git a/MapTour/src/app/storymaps/utils/FacebookConnector.js b/MapTour/src/app/storymaps/utils/FacebookConnector.js deleted file mode 100644 index 7624e10..0000000 --- a/MapTour/src/app/storymaps/utils/FacebookConnector.js +++ /dev/null @@ -1,195 +0,0 @@ -define(["dojo/Deferred"], - function(Deferred) - { - return function FacebookConnector(appId) - { - var _connectDeferred = null; - var _logOutDeferred = null; - - // TODO assess validity of appid - if( ! appId ){ - console.error("Facebook initialization error - missing appId parameter"); - return; - } - - // - // Page albums - do not require to load Facebook API or to authenticate - // - - this.getPageAlbums = function(page, noRefine) - { - var resultDeferred = new Deferred(); - var rqStr = '/' + page + '/albums/?limit=50'; - - if( ! page ) { - resultDeferred.reject(); - return resultDeferred; - } - - rqStr += noRefine ? '' : '&fields=name,count,privacy,type'; - - FB.api(rqStr, function(r) { - resultDeferred.resolve(r.data); - }); - - return resultDeferred; - }; - - this.getPageAlbum = function(albumId, nbPicturesMax, refineResult) - { - var resultDeferred = new Deferred(); - var rqStr = '/' + albumId + '/?fields=photos'; - - if( ! albumId ) { - resultDeferred.reject(); - return resultDeferred; - } - - rqStr += refineResult ? '.fields(name,images,picture,source,place)' : ''; - rqStr += nbPicturesMax ? '&limit=' + nbPicturesMax : ''; - - FB.api(rqStr, function(r) { - var photos = r && r.photos && r.photos.data ? r.photos.data : []; - if( refineResult ) - resultDeferred.resolve(refineAlbumData(photos)); - else - resultDeferred.resolve(photos); - }); - - return resultDeferred; - }; - - // - // User albums - require to load Facebook API and to authenticate - // - - this.loadApi = function() - { - _connectDeferred = new Deferred(); - _logOutDeferred = new Deferred(); - - if( ! window.fbAsyncInit ) - load(); - else - getUserInfo(_connectDeferred); - - return _connectDeferred; - }; - - this.onLogout = function() - { - return _logOutDeferred; - }; - - this.getAlbums = function(filters, noRefine) - { - var resultDeferred = new Deferred(); - - var rqStr = '/me?fields=albums'; - rqStr += noRefine ? '' : '.fields(name,count,privacy,type)'; - - FB.api(rqStr, function(r) { - var albums = r && r.albums && r.albums.data ? r.albums.data : []; - if( filters ) { - albums = $.grep(albums, function(album){ - var match = true; - $.each(Object.keys(filters), function(i, filter){ - if( album[filter] != filters[filter]) - match = false; - }); - return match; - }); - } - resultDeferred.resolve(albums); - }); - - return resultDeferred; - }; - - this.getAlbum = function(albumId, refineResult, nbPicturesMax) - { - var resultDeferred = new Deferred(); - var rqStr = '/' + albumId + '/?fields=photos'; - - if (!albumId) { - resultDeferred.reject(); - return resultDeferred; - } - - rqStr += refineResult ? '.fields(name,images,picture,source,place)' : ''; - rqStr += nbPicturesMax ? '.limit(' + nbPicturesMax + ')' : ''; - - FB.api(rqStr, function(r) { - var photos = r && r.photos && r.photos.data ? r.photos.data : []; - if( refineResult ) - resultDeferred.resolve(refineAlbumData(photos)); - else - resultDeferred.resolve(photos); - }); - - return resultDeferred; - }; - - function refineAlbumData(photos) - { - var result = []; - $.each(photos, function(i, photo){ - result.push({ - name: photo.name || '', - description: '', - pic_url: photo.images && photo.images[0] ? photo.images[0].source : photo.source, - thumb_url: photo.picture, - lat: photo.place && photo.place.location ? photo.place.location.latitude : '', - lng: photo.place && photo.place.location ? photo.place.location.longitude: '', - is_video: false - }); - }); - return result; - } - - function getUserInfo(connectDeferred) - { - FB.api('/me', function(r) { - if( r && ! r.error ) - connectDeferred.resolve(r); - }); - } - - function load() - { - window.fbAsyncInit = function() { - FB.init({ - appId : appId, // App ID - status : true, // check login status - cookie : true, // enable cookies to allow the server to access the session - xfbml : true, // parse XFBML, - version : 'v2.1' - }); - - FB.Event.subscribe('auth.authResponseChange', function(response) { - // Here we specify what we do with the response anytime this event occurs. - if (response.status === 'connected') { - // The response object is returned with a status field that lets the app know the current - // login status of the person. In this case, we're handling the situation where they - // have logged in to the app. - getUserInfo(_connectDeferred); - } - }); - - FB.Event.subscribe('auth.logout', function() { - _connectDeferred = new Deferred(); - _logOutDeferred.resolve(_connectDeferred); - }); - }; - - (function(d, s, id){ - var js, fjs = d.getElementsByTagName(s)[0]; - if (d.getElementById(id)) {return;} - js = d.createElement(s); js.id = id; - js.src = "//connect.facebook.net/en_US/sdk.js"; - fjs.parentNode.insertBefore(js, fjs); - }(document, 'script', 'facebook-jssdk')); - } - }; - } -); \ No newline at end of file diff --git a/MapTour/src/app/storymaps/utils/FlickrConnector.js b/MapTour/src/app/storymaps/utils/FlickrConnector.js index e47d127..b7c14eb 100644 --- a/MapTour/src/app/storymaps/utils/FlickrConnector.js +++ b/MapTour/src/app/storymaps/utils/FlickrConnector.js @@ -94,7 +94,7 @@ define(["dojo/Deferred", "dojo/_base/lang"], function getPhotoURL(photo, size) { - return 'http://farm' + photo.farm + '.static.flickr.com/' + return 'https://farm' + photo.farm + '.static.flickr.com/' + photo.server + '/' + photo.id + '_' + photo.secret + '_' + size + '.jpg'; } diff --git a/MapTour/src/index.html b/MapTour/src/index.html index c6eda4b..cfec56c 100644 --- a/MapTour/src/index.html +++ b/MapTour/src/index.html @@ -70,7 +70,7 @@