diff --git a/data/core.yaml b/data/core.yaml index 41faa5d89..c8f94ba1b 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -182,3 +182,5 @@ en: zoom: in: Zoom In out: Zoom Out + imagery: + provided_by: "Imagery provided by {source}" diff --git a/js/id/renderer/background.js b/js/id/renderer/background.js index 02e94f615..9fe8a7378 100644 --- a/js/id/renderer/background.js +++ b/js/id/renderer/background.js @@ -156,7 +156,7 @@ iD.Background = function() { return background; }; - function setPermalink(source) { + function setHash(source) { var tag = source.data.sourcetag; var q = iD.util.stringQs(location.hash.substring(1)); if (tag) { @@ -173,7 +173,7 @@ iD.Background = function() { source = _; cache = {}; tile.scaleExtent((source.data && source.data.scaleExtent) || [1, 20]); - setPermalink(source); + setHash(source); return background; }; diff --git a/js/id/ui.js b/js/id/ui.js index b9e73fabd..9ecefa26b 100644 --- a/js/id/ui.js +++ b/js/id/ui.js @@ -100,6 +100,7 @@ iD.ui = function(context) { linkList.append('li') .attr('class', 'attribution') .attr('tabindex', -1) + .data([context.background().source()]) .call(iD.ui.Attribution(context)); linkList.append('li') diff --git a/js/id/ui/attribution.js b/js/id/ui/attribution.js index 73a769b06..ec98a84b8 100644 --- a/js/id/ui/attribution.js +++ b/js/id/ui/attribution.js @@ -1,10 +1,26 @@ iD.ui.Attribution = function(context) { - return function(selection) { - selection.append('span') - .text('imagery'); + return function attribution(selection) { + var d = selection.data()[0]; - selection + var provided_by = selection + .html('') .append('span') .attr('class', 'provided-by'); + + if (!d) return; + + var desc = t('imagery.provided_by', { + source: (d.data.sourcetag || d.data.name) + }); + + if (d.data.terms_url) { + provided_by.append('a') + .attr('href', (d.data.terms_url || '')) + .attr('target', '_blank') + .classed('disabled', !d.data.terms_url) + .text(desc); + } else { + provided_by.text(desc); + } }; }; diff --git a/js/id/ui/background.js b/js/id/ui/background.js index 6bd38ad0e..f0b3eeab0 100644 --- a/js/id/ui/background.js +++ b/js/id/ui/background.js @@ -110,21 +110,10 @@ iD.ui.Background = function(context) { return d.data.name === context.background().source().data.name; }); - var provided_by = context.container() - .select('.attribution .provided-by') - .html(''); - - if (d.data.terms_url) { - provided_by.append('a') - .attr('href', (d.data.terms_url || '')) - .attr('target', '_blank') - .classed('disabled', !d.data.terms_url) - .text(' provided by ' + (d.data.sourcetag || d.data.name)); - } else { - provided_by - .text(' provided by ' + (d.data.sourcetag || d.data.name)); - } - + context.container() + .select('.attribution') + .data([d]) + .call(iD.ui.Attribution(context)); } function clickSetSource(d) {