From: Tom Hughes Date: Sun, 14 Oct 2012 12:51:01 +0000 (+0100) Subject: Refactor note add/update code X-Git-Tag: live~5096^2~85 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/89fc5a7fdc07e8aa36c203c1ad1792b03467d44e Refactor note add/update code --- diff --git a/app/assets/javascripts/index/notes.js.erb b/app/assets/javascripts/index/notes.js.erb index 3df948e6b..779ae1ab0 100644 --- a/app/assets/javascripts/index/notes.js.erb +++ b/app/assets/javascripts/index/notes.js.erb @@ -17,6 +17,47 @@ $(document).ready(function () { newNotes = undefined; } + function createNote(feature, form) { + var location = unproj(feature.geometry.getBounds().getCenterLonLat()); + + $.ajax($("#createnoteanchor").attr("href"), { + type: "POST", + data: { + lon: location.lon, + lat: location.lat, + text: $(form.comment).val() + }, + success: function (data) { + map.noteSelector.unselect(feature); + + feature.attributes.status = "open"; + feature.attributes.id = data; + + map.noteLayer.drawFeature(feature); + + map.noteMover.deactivate(); + } + }); + } + + function updateNote(feature, form, close) { + var url = close ? feature.attributes.close_url : feature.attributes.comment_url; + + $.ajax(url, { + type: "POST", + data: { + text: $(form.text).val() + }, + success: function (data) { + map.noteSelector.unselect(feature) + + feature.attributes = data.properties; + + map.noteSelector.select(feature) + } + }); + } + function noteSelected(o) { var feature = o.feature; var location = feature.geometry.getBounds().getCenterLonLat(); @@ -64,69 +105,21 @@ $(document).ready(function () { }); $(feature.popup.contentDiv).find("input#note-add").click(function (e) { - var location = unproj(feature.geometry.getBounds().getCenterLonLat()); - var form = e.target.form; - e.preventDefault(); - $.ajax($("#createnoteanchor").attr("href"), { - type: "POST", - data: { - lon: location.lon, - lat: location.lat, - text: $(form.comment).val() - }, - success: function (data) { - map.noteSelector.unselect(feature); - - feature.attributes.status = "open"; - feature.attributes.id = data; - - map.noteLayer.drawFeature(feature); - - map.noteMover.deactivate(); - } - }); + createNote(feature, e.target.form); }); $(feature.popup.contentDiv).find("input#note-comment").click(function (e) { - var form = e.target.form; - e.preventDefault(); - $.ajax(feature.attributes.comment_url, { - type: "POST", - data: { - text: $(form.text).val() - }, - success: function (data) { - map.noteSelector.unselect(feature) - - feature.attributes = data.properties; - - map.noteSelector.select(feature) - } - }); + updateNote(feature, e.target.form, false); }); $(feature.popup.contentDiv).find("input#note-close").click(function (e) { - var form = e.target.form; - e.preventDefault(); - $.ajax(feature.attributes.close_url, { - type: "POST", - data: { - text: $(form.text).val() - }, - success: function (data) { - map.noteSelector.unselect(feature) - - feature.attributes = data.properties; - - map.noteSelector.select(feature) - } - }); + updateNote(feature, e.target.form, true); }); feature.popup.updateSize();