From 76eb0fca8531316f56e36483ad6c3ca701923e02 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 22 May 2013 18:06:01 -0700 Subject: [PATCH] Extract iD.ui.ViewOnOSM --- index.html | 1 + js/id/ui/entity_editor.js | 15 ++++----------- js/id/ui/view_on_osm.js | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 js/id/ui/view_on_osm.js diff --git a/index.html b/index.html index c7a756a8d..01bdcfcbe 100644 --- a/index.html +++ b/index.html @@ -90,6 +90,7 @@ + diff --git a/js/id/ui/entity_editor.js b/js/id/ui/entity_editor.js index e50495921..6a5713516 100644 --- a/js/id/ui/entity_editor.js +++ b/js/id/ui/entity_editor.js @@ -106,18 +106,11 @@ iD.ui.EntityEditor = function(context, entity) { .attr('class', 'inspector-inner raw-membership-editor col12') .call(rawMembershipEditor); - if (!entity.isNew()) { - var osmLink = tageditorpreset.append('div') - .attr('class', 'col12 inspector-inner') - .append('a') - .attr('href', context.connection().entityURL(entity)) - .attr('target', '_blank'); + var viewOnOSM = iD.ui.ViewOnOSM(context); - osmLink.append('span') - .attr('class','icon icon-pre-text out-link'); - - osmLink.append('span').text(t('inspector.view_on_osm')); - } + editorwrap.append('div') + .attr('class', 'col12 inspector-inner inspector-external-links') + .call(viewOnOSM, entity); presetUI.change(tags); rawTagEditor.tags(tags); diff --git a/js/id/ui/view_on_osm.js b/js/id/ui/view_on_osm.js new file mode 100644 index 000000000..55077e405 --- /dev/null +++ b/js/id/ui/view_on_osm.js @@ -0,0 +1,19 @@ +iD.ui.ViewOnOSM = function(context) { + return function(selection, entity) { + selection.style('display', entity.isNew() ? 'none' : null); + + var osmLink = selection.selectAll('.view-on-osm') + .data([entity]); + + var enter = osmLink.enter().append('a') + .attr('class', 'view-on-osm') + .attr('target', '_blank'); + + enter.append('span') + .attr('class', 'icon icon-pre-text out-link'); + enter.append('span') + .text(t('inspector.view_on_osm')); + + osmLink.attr('href', context.connection().entityURL(entity)); + } +};