]> git.openstreetmap.org Git - rails.git/commitdiff
Show 'api offline' message on new note page
authorAnton Khorev <tony29@yandex.ru>
Tue, 17 Dec 2024 00:34:14 +0000 (03:34 +0300)
committerAnton Khorev <tony29@yandex.ru>
Tue, 17 Dec 2024 00:34:14 +0000 (03:34 +0300)
app/controllers/notes_controller.rb
app/views/notes/new_readonly.html.erb [new file with mode: 0644]
config/locales/en.yml
test/system/create_note_test.rb [new file with mode: 0644]

index c47a3abfb9a1e3d605b0fb3e7d92cc072de6fffa..c40e776b444074efc192c9e4ae496924a05dc640 100644 (file)
@@ -44,5 +44,7 @@ class NotesController < ApplicationController
     render :template => "browse/not_found", :status => :not_found
   end
 
-  def new; end
+  def new
+    render :action => :new_readonly if api_status != "online"
+  end
 end
diff --git a/app/views/notes/new_readonly.html.erb b/app/views/notes/new_readonly.html.erb
new file mode 100644 (file)
index 0000000..033530c
--- /dev/null
@@ -0,0 +1,7 @@
+<% set_title(t(".title")) %>
+
+<%= render "sidebar_header", :title => t(".title") %>
+
+<div class="note">
+  <p class="alert alert-warning"><%= t(".warning") %></p>
+</div>
index 94fc77247b8cadc74f8f433dbbc18a05ddedf1a2..a6fee55f4a1e173f80124ee7739248aaa837beb2 100644 (file)
@@ -3032,6 +3032,9 @@ en:
       anonymous_warning_sign_up: "sign up"
       advice: "Your note is public and may be used to update the map, so don't enter personal information, or information from copyrighted maps or directory listings."
       add: Add Note
+    new_readonly:
+      title: "New Note"
+      warning: "New notes cannot be created because the OpenStreetMap API is currently in read-only mode."
     notes_paging_nav:
       showing_page: "Page %{page}"
       next: "Next"
diff --git a/test/system/create_note_test.rb b/test/system/create_note_test.rb
new file mode 100644 (file)
index 0000000..ccb2ed3
--- /dev/null
@@ -0,0 +1,23 @@
+require "application_system_test_case"
+
+class CreateNoteTest < ApplicationSystemTestCase
+  test "can create note" do
+    visit new_note_path(:anchor => "map=18/0/0")
+
+    assert_button "Add Note", :disabled => true
+
+    fill_in "text", :with => "Some newly added note description"
+    click_on "Add Note"
+
+    assert_content "Unresolved note ##{Note.last.id}"
+    assert_content "Some newly added note description"
+  end
+
+  test "cannot create note when api is readonly" do
+    with_settings(:status => "api_readonly") do
+      visit new_note_path(:anchor => "map=18/0/0")
+
+      assert_no_button "Add Note", :disabled => true
+    end
+  end
+end