You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.7 KiB

4 years ago
4 years ago
  1. function editLinkRemote (type, osm_id) {
  2. let id = type.substr(0, 1) + osm_id
  3. global.overpassFrontend.get(
  4. id,
  5. {
  6. properties: global.overpassFrontend.OVERPASS_BBOX
  7. },
  8. (err, object) => {
  9. if (err) {
  10. return console.error(err)
  11. }
  12. let bounds = object.bounds
  13. let xhr = new XMLHttpRequest()
  14. let url = 'http://127.0.0.1:8111/load_and_zoom' +
  15. '?left=' + (bounds.minlon - 0.0001).toFixed(5) +
  16. '&right=' + (bounds.maxlon + 0.0001).toFixed(5) +
  17. '&top=' + (bounds.maxlat + 0.0001).toFixed(5) +
  18. '&bottom=' + (bounds.minlat - 0.0001).toFixed(5) +
  19. '&select=' + type + osm_id
  20. xhr.open('get', url, true)
  21. xhr.responseType = 'text'
  22. xhr.send()
  23. },
  24. (err) => {
  25. if (err) {
  26. alert(err)
  27. }
  28. }
  29. )
  30. }
  31. window.editLink = function (type, osm_id) {
  32. switch (global.options.editor) {
  33. case 'remote':
  34. editLinkRemote(type, osm_id)
  35. break
  36. case 'id':
  37. default:
  38. let url = global.config.urlOpenStreetMap + '/edit?editor=id&' + type + '=' + osm_id
  39. window.open(url)
  40. }
  41. return false
  42. }
  43. module.exports = function (object) {
  44. return '<a class="editLink" href="#edit" onclick="return editLink(\'' + object.object.type + '\', ' + object.object.osm_id + ')">' + lang('edit') + '</a>'
  45. }
  46. register_hook('options_orig_data', function (data) {
  47. data.editor = 'id'
  48. })
  49. register_hook('options_form', function (def) {
  50. def.editor = {
  51. 'name': lang('options:chooseEditor'),
  52. 'type': 'select',
  53. 'values': {
  54. 'id': lang('editor:id'),
  55. 'remote': {
  56. name: lang('editor:remote'),
  57. desc: lang('editor:remote:help')
  58. }
  59. },
  60. 'default': 'id',
  61. 'weight': 5
  62. }
  63. })