Browse Source

Merge branch 'editor-choose'

master
parent
commit
cc399a9957
  1. 4
      lang/en.json
  2. 3
      src/CategoryOverpass.js
  3. 68
      src/editLink.js

4
lang/en.json

@ -9,6 +9,9 @@
"closed": "closed",
"default": "default",
"edit": "edit",
"editor:id": "iD (in-browser editor)",
"editor:remote": "Remote Control (JOSM or Merkaator)",
"editor:remote:help": "You have to enable remote control in JOSM or Merkaator.",
"error": "Error",
"export-all": "Export all visible map features",
"export-prepare": "Prepare download",
@ -72,6 +75,7 @@
"options:overpassUrl": "OverpassAPI URL",
"options:preferredBaseMap": "Preferred base map",
"options:ui_lang": "Interface language",
"options:chooseEditor": "Choose Editor",
"other": "Other",
"repo-use-as-base": "Use this repository as base repository",
"repositories": "Repositories",

3
src/CategoryOverpass.js

@ -11,6 +11,7 @@ var tabs = require('modulekit-tabs')
var markers = require('./markers')
var maki = require('./maki')
var qs = require('sheet-router/qs')
var editLink = require('./editLink')
const showMore = require('./showMore')
@ -567,7 +568,7 @@ CategoryOverpass.prototype.updatePopupContent = function (object, popup) {
}
var footerContent = '<li><a class="showDetails" href="#' + this.id + '/' + id_with_sublayer + '/details">' + lang('show details') + '</a></li>'
footerContent += '<li><a target="_blank" class="editLink" href="' + config.urlOpenStreetMap + '/edit?editor=id&' + object.object.type + '=' + object.object.osm_id + '">' + lang('edit') + '</a></li>'
footerContent += '<li>' + editLink(object) + '</li>'
footer.innerHTML = footerContent
}

68
src/editLink.js

@ -0,0 +1,68 @@
function editLinkRemote (type, osm_id) {
let id = type.substr(0, 1) + osm_id
global.overpassFrontend.get(
id,
{
properties: global.overpassFrontend.OVERPASS_BBOX
},
(err, object) => {
let bounds = object.bounds
xhr = new XMLHttpRequest()
let url = 'http://127.0.0.1:8111/load_and_zoom' +
'?left=' + (bounds.minlon - 0.0001).toFixed(5) +
'&right=' + (bounds.maxlon + 0.0001).toFixed(5) +
'&top=' + (bounds.maxlat + 0.0001).toFixed(5) +
'&bottom=' + (bounds.minlat - 0.0001).toFixed(5) +
'&select=' + type + osm_id
xhr.open('get', url, true)
xhr.responseType = 'text'
xhr.send()
},
(err) => {
if (err) {
alert(err)
}
}
)
}
window.editLink = function (type, osm_id) {
switch (global.options.editor) {
case 'remote':
editLinkRemote(type, osm_id)
break
case 'id':
default:
let url = global.config.urlOpenStreetMap + '/edit?editor=id&' + type + '=' + osm_id
window.open(url)
}
return false
}
module.exports = function (object) {
return '<a class="editLink" href="#edit" onclick="return editLink(\'' + object.object.type + '\', ' + object.object.osm_id + ')">' + lang('edit') + '</a>'
}
register_hook('options_orig_data', function (data) {
data.editor = 'id'
})
register_hook('options_form', function (def) {
def.editor = {
'name': lang('options:chooseEditor'),
'type': 'select',
'values': {
'id': lang('editor:id'),
'remote': {
name: lang('editor:remote'),
desc: lang('editor:remote:help')
}
},
'default': 'id',
'weight': 5
}
})
Loading…
Cancel
Save