]> git.openstreetmap.org Git - rails.git/blobdiff - public/javascripts/openstreetbugs.js
Use correct URL for note details
[rails.git] / public / javascripts / openstreetbugs.js
index a8aba9be711c2ba2c51684881df015805fb4d12a..323b04472a6fdc347a58874f9a0fcbe318437440 100644 (file)
@@ -248,7 +248,7 @@ OpenLayers.Layer.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Layer.Markers,
                if(!bounds) return false;
                bounds.transform(this.map.getProjectionObject(), this.apiProjection);
 
-               this.apiRequest("bugs"
+               this.apiRequest("notes"
                        + "?bbox="+this.round(bounds.left, 5)
             + ","+this.round(bounds.bottom, 5)
                    + ","+this.round(bounds.right, 5)                   
@@ -321,7 +321,7 @@ OpenLayers.Layer.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Layer.Markers,
 
                el1.appendChild(document.createTextNode(" ["));
                el2 = document.createElement("a");
-               el2.href = "/browse/bug/" + id;
+               el2.href = "/browse/note/" + id;
                el2.onclick = function(){ layer.map.setCenter(putAJAXMarker.bugs[id][0].clone().transform(layer.apiProjection, layer.map.getProjectionObject()), 15); };
                el2.appendChild(document.createTextNode(i18n("javascripts.osb.Details")));
                el1.appendChild(el2);
@@ -467,7 +467,7 @@ OpenLayers.Layer.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Layer.Markers,
         * @param String description
        */
        createBug: function(lonlat, description) {
-               this.apiRequest("bug/create"
+               this.apiRequest("note/create"
                        + "?lat="+encodeURIComponent(lonlat.lat)
                        + "&lon="+encodeURIComponent(lonlat.lon)
                        + "&text="+encodeURIComponent(description)
@@ -482,7 +482,7 @@ OpenLayers.Layer.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Layer.Markers,
         * @param String comment
        */
        submitComment: function(id, comment) {
-               this.apiRequest("bug/"+encodeURIComponent(id)+"/comment"
+               this.apiRequest("note/"+encodeURIComponent(id)+"/comment"
                        + "?text="+encodeURIComponent(comment)
                        + "&name="+encodeURIComponent(this.getUserName())
                        + "&format=js"
@@ -494,7 +494,7 @@ OpenLayers.Layer.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Layer.Markers,
         * @param Number id
        */
        closeBug: function(id) {
-               this.apiRequest("bug/"+encodeURIComponent(id)+"/close"
+               this.apiRequest("note/"+encodeURIComponent(id)+"/close"
                        + "?format=js"
                );
        },
@@ -638,11 +638,15 @@ OpenLayers.Control.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Control, {
         * Map clicking event handler. Adds a temporary marker with a popup to the map, the popup contains the form to add a bug.
        */
        click: function(e) {
+               var lonlat = this.map.getLonLatFromViewPortPx(e.xy);
+               this.addTemporaryMarker(lonlat);
+       },
+
+       addTemporaryMarker: function(lonlat) {
                if(!this.map) return true;
                deactivateControl();
 
                var control = this;
-               var lonlat = this.map.getLonLatFromViewPortPx(e.xy);
                var lonlatApi = lonlat.clone().transform(this.map.getProjectionObject(), this.osbLayer.apiProjection);
                var feature = new OpenLayers.Feature(this.osbLayer, lonlat, { icon: this.icon.clone(), autoSize: true });
                feature.popupClass = OpenLayers.Popup.FramedCloud.OpenStreetBugs;
@@ -650,11 +654,39 @@ OpenLayers.Control.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Control, {
                marker.feature = feature;
                this.osbLayer.addMarker(marker);
 
+
+               /** Implement a drag and drop for markers */
+               /* TODO: veryfy that the scoping of variables works correctly everywhere */             
+               var dragging = false;
+               var dragFunction = function(e) {
+                       map.events.unregister("mouseup",map,dragFunction);
+                       lonlat = map.getLonLatFromViewPortPx(e.xy);
+                       lonlatApi = lonlat.clone().transform(map.getProjectionObject(), map.osbLayer.apiProjection);
+                       marker.moveTo(map.getLayerPxFromViewPortPx(e.xy));
+                       marker.popup.moveTo(map.getLayerPxFromViewPortPx(e.xy));                        
+                       marker.popup.updateRelativePosition();
+                       dragging = false;
+                       return false;
+               };
+
+               marker.events.register("mouseover", this,
+                               function(){ document.getElementById("OpenLayers.Map_18_OpenLayers_Container").style.cursor = "move"; });
+               marker.events.register("mouseout", this,
+                               function(){ if (!dragging) {document.getElementById("OpenLayers.Map_18_OpenLayers_Container").style.cursor = "default"; }});
+               marker.events.register("mousedown", this,
+                               function() { dragging = true; map.events.register("mouseup",map, dragFunction); return false;});
+               
+
                var newContent = document.createElement("div");
                var el1,el2,el3;
                el1 = document.createElement("h3");
                el1.appendChild(document.createTextNode(i18n("javascripts.osb.Create bug")));
                newContent.appendChild(el1);
+               newContent.appendChild(document.createTextNode(i18n("javascripts.osb.draghelp1")));
+               newContent.appendChild(document.createElement("br"));
+               newContent.appendChild(document.createTextNode(i18n("javascripts.osb.draghelp2")));
+               newContent.appendChild(document.createElement("br"));
+               newContent.appendChild(document.createElement("br"));
 
                var el_form = document.createElement("form");
 
@@ -720,6 +752,7 @@ OpenLayers.Control.OpenStreetBugs = new OpenLayers.Class(OpenLayers.Control, {
                popup.events.register("close", this, function(){ feature.destroy(); });
                this.map.addPopup(popup);
                popup.updateSize();
+               marker.popup = popup;
        },
 
        CLASS_NAME: "OpenLayers.Control.OpenStreetBugs"