]> git.openstreetmap.org Git - rails.git/commitdiff
Move browse#new_note to notes#new
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 25 Jan 2023 19:22:10 +0000 (19:22 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 1 Feb 2023 17:13:41 +0000 (17:13 +0000)
This allows a more resourceful routing approach.

app/abilities/ability.rb
app/controllers/notes_controller.rb
app/views/notes/new.html.erb [moved from app/views/browse/new_note.html.erb with 100% similarity]
config/routes.rb
test/controllers/browse_controller_test.rb
test/controllers/notes_controller_test.rb

index fd548c5f38a38a18a1d03f9f91972732b2d7816c..aee44e6e526124b9ca6c391c5eea77087d522b42 100644 (file)
@@ -5,7 +5,8 @@ class Ability
 
   def initialize(user)
     can [:relation, :relation_history, :way, :way_history, :node, :node_history,
-         :changeset, :note, :new_note, :query], :browse
+         :changeset, :note, :query], :browse
+    can [:new], Note
     can :search, :direction
     can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :communities, :preview, :copyright, :key, :id], :site
     can [:finish, :embed], :export
index 7d6163f4886b08ae97c7e5716c706ca69df71703..4c1bac1934d8feb6def7cc93790e47fd72696cbd 100644 (file)
@@ -1,8 +1,9 @@
 class NotesController < ApplicationController
-  layout "site"
+  layout :map_layout
 
   before_action :check_api_readable
   before_action :authorize_web
+  before_action :require_oauth
 
   authorize_resource
 
@@ -21,12 +22,16 @@ class NotesController < ApplicationController
         @notes = @user.notes
         @notes = @notes.visible unless current_user&.moderator?
         @notes = @notes.order("updated_at DESC, id").distinct.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author)
+
+        render :layout => "site"
       else
         @title = t "users.no_such_user.title"
         @not_found_user = params[:display_name]
 
-        render :template => "users/no_such_user", :status => :not_found
+        render :template => "users/no_such_user", :status => :not_found, :layout => "site"
       end
     end
   end
+
+  def new; end
 end
index b0b2219c3727b2da7d79105239afa0c54a38481f..d6020267073c58f4a3dddbd9418bf8ee8bb434b2 100644 (file)
@@ -114,7 +114,8 @@ OpenStreetMap::Application.routes.draw do
   get "/changeset/:id" => "browse#changeset", :as => :changeset, :id => /\d+/
   get "/changeset/:id/comments/feed" => "changeset_comments#index", :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
   get "/note/:id" => "browse#note", :id => /\d+/, :as => "browse_note"
-  get "/note/new" => "browse#new_note"
+  resources :notes, :path => "note", :only => [:new]
+
   get "/user/:display_name/history" => "changesets#index"
   get "/user/:display_name/history/feed" => "changesets#feed", :defaults => { :format => :atom }
   get "/user/:display_name/notes" => "notes#index", :as => :user_notes
index cde9403d00bdec89b56e3cb069f4f8ded7766cc3..82068629d83bb0a1e46189f6c5fbaf1d50809860 100644 (file)
@@ -36,10 +36,6 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
       { :path => "/note/1", :method => :get },
       { :controller => "browse", :action => "note", :id => "1" }
     )
-    assert_routing(
-      { :path => "/note/new", :method => :get },
-      { :controller => "browse", :action => "new_note" }
-    )
     assert_routing(
       { :path => "/query", :method => :get },
       { :controller => "browse", :action => "query" }
@@ -256,12 +252,6 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
     assert_select ".browse-section.browse-relation", 2
   end
 
-  def test_new_note
-    get note_new_path
-    assert_response :success
-    assert_template "browse/new_note"
-  end
-
   def test_query
     get query_path
     assert_response :success
index 50e7ae833615905561666b31b8dbbef3d4bf3301..4032b538d66603831a3d7d752d5c1f11cc0868e5 100644 (file)
@@ -15,6 +15,11 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
       { :path => "/user/username/notes", :method => :get },
       { :controller => "notes", :action => "index", :display_name => "username" }
     )
+
+    assert_routing(
+      { :path => "/note/new", :method => :get },
+      { :controller => "notes", :action => "new" }
+    )
   end
 
   def test_index_success
@@ -80,4 +85,10 @@ class NotesControllerTest < ActionDispatch::IntegrationTest
     assert_response :success
     assert_select "h4", :html => "No notes"
   end
+
+  def test_new_note
+    get new_note_path
+    assert_response :success
+    assert_template "notes/new"
+  end
 end