]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/3798'
authorTom Hughes <tom@compton.nu>
Wed, 16 Nov 2022 18:33:51 +0000 (18:33 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 16 Nov 2022 18:33:51 +0000 (18:33 +0000)
21 files changed:
CONFIGURE.md
CONTRIBUTING.md
DOCKER.md
Gemfile
Gemfile.lock
INSTALL.md
README.md
app/assets/images/searching.gif [deleted file]
app/assets/javascripts/osm.js.erb
app/assets/javascripts/user.js
app/assets/stylesheets/common.scss
app/views/browse/query.html.erb
app/views/changesets/history.html.erb
app/views/changesets/index.html.erb
app/views/geocoder/results.html.erb
app/views/geocoder/search.html.erb
app/views/layouts/_search.html.erb
app/views/layouts/map.html.erb
config/application.rb
config/initializers/new_framework_defaults_7_0.rb [deleted file]
db/functions/quadtile.c

index fdaea0e8342b9706f78b36586b8f7fa46decc9fc..3c46e61305461a5a84bb189c0df0af250b656873 100644 (file)
@@ -4,7 +4,7 @@ After [installing](INSTALL.md) this software, you may need to carry out some of
 
 ## Application configuration
 
-Many settings are available in `config/settings.yml`. You can customize your installation of The Rails Port by overriding these values using `config/settings.local.yml`
+Many settings are available in `config/settings.yml`. You can customize your installation of `openstreetmap-website` by overriding these values using `config/settings.local.yml`
 
 ## Populating the database
 
@@ -122,9 +122,9 @@ If you have more problems, please ask on the [rails-dev@openstreetmap.org mailin
 
 If your installation stops working for some reason:
 
-* Sometimes gem dependencies change. To update go to your rails_port directory and run ''bundle install'' as root.
+* Sometimes gem dependencies change. To update go to your `openstreetmap-website` directory and run ''bundle install'' as root.
 
-* The OSM database schema is changed periodically and you need to keep up with these improvements. Go to your rails_port directory and run:
+* The OSM database schema is changed periodically and you need to keep up with these improvements. Go to your `openstreetmap-website` directory and run:
 
 ```
 bundle exec rake db:migrate
@@ -132,7 +132,7 @@ bundle exec rake db:migrate
 
 ## Testing on the osm dev server
 
-For example, after developing a patch for the rails_port, you might want to demonstrate it to others or ask for comments and testing. To do this one can [set up an instance of the rails_port on the dev server in ones user directory](https://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications).
+For example, after developing a patch for `openstreetmap-website`, you might want to demonstrate it to others or ask for comments and testing. To do this you can [set up an instance of openstreetmap-website on the dev server in your user directory](https://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications).
 
 # Contributing
 
@@ -140,7 +140,7 @@ For information on contributing changes to the codes, see [CONTRIBUTING.md](CONT
 
 # Production Deployment
 
-If you want to deploy The Rails Port for production use, you'll need to make a few changes.
+If you want to deploy `openstreetmap-website` for production use, you'll need to make a few changes.
 
 * It's not recommended to use `rails server` in production. Our recommended approach is to use [Phusion Passenger](https://www.phusionpassenger.com/). Instructions are available for [setting it up with most web servers](https://www.phusionpassenger.com/documentation_and_support#documentation).
 * Passenger will, by design, use the Production environment and therefore the production database - make sure it contains the appropriate data and user accounts.
index 5ee4e01736634679b6f233323ca41db878c653ea..9e878a30cfc455bf98a502e2aba6ad57951dcb3e 100644 (file)
@@ -17,7 +17,7 @@ bundle exec erblint .
 ## Testing
 
 Having a good suite of tests is very important to the stability and
-maintainability of any code base. The tests in the Rails port code are
+maintainability of any code base. The tests in the `openstreetmap-website` code are
 by no means complete, but they are extensive, and must continue to be
 so with any new functionality which is written. Tests are also useful
 in giving others confidence in the code you've written, and can
index 870e3e26eacfe3329aea537249eb58436bd0d595..d0b16db07771de5528ada1e5154f415cf3e5d695 100644 (file)
--- a/DOCKER.md
+++ b/DOCKER.md
@@ -1,6 +1,6 @@
 # Using Docker and Docker Compose for Development and Testing
 
-These instructions are designed for setting up The Rails Port for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. You will need to install Docker and Docker Compose on your development machine:
+These instructions are designed for setting up `openstreetmap-website` for development and testing using [Docker](https://www.docker.com/). This will allow you to install the OpenStreetMap application and all its dependencies in Docker images and then run them in containers, almost with a single command. You will need to install Docker and Docker Compose on your development machine:
 
 - [Install Docker](https://docs.docker.com/install/)
 - [Install Docker Compose](https://docs.docker.com/compose/install/)
diff --git a/Gemfile b/Gemfile
index 020cc9166e7ab3d1ea0f6607fb6bb77f0677cf1e..81ba4a9a36ea9216e0bcf755590586c0cfd6868a 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 source "https://rubygems.org"
 
 # Require rails
-gem "rails", "7.0.4"
+gem "rails", "~> 7.0.0"
 
 # Require json for multi_json
 gem "json"
index 68a973c47b6135136c45010810bd40b1c47887e2..586f2000d854a31c58aeb5a19c5db1fd85eb42ea 100644 (file)
@@ -573,7 +573,7 @@ DEPENDENCIES
   r2 (~> 0.2.7)
   rack-cors
   rack-uri_sanitizer
-  rails (= 7.0.4)
+  rails (~> 7.0.0)
   rails-controller-testing
   rails-i18n (~> 7.0.0)
   rinku (>= 2.0.6)
index f3b4b85502f448d617134fc4469c9166628b1eb6..b14a2d32b1d0d40158ef20f9cd23f7565eb0abd2 100644 (file)
@@ -1,6 +1,6 @@
 # Installation
 
-These instructions are designed for setting up The Rails Port for development and testing.
+These instructions are designed for setting up `openstreetmap-website` for development and testing.
 If you want to deploy the software for your own project, then see the notes at the end.
 
 You can install the software directly on your machine, which is the traditional and probably best-supported approach. However, there
@@ -150,7 +150,7 @@ touch config/settings.local.yml
 
 ## Storage setup
 
-The Rails port needs to be configured with an object storage facility - for
+`openstreetmap-website` needs to be configured with an object storage facility - for
 development and testing purposes you can use the example configuration:
 
 ```
@@ -159,7 +159,7 @@ cp config/example.storage.yml config/storage.yml
 
 ## Database setup
 
-The Rails Port uses three databases -  one for development, one for testing, and one for production. The database-specific configuration
+`openstreetmap-website` uses three databases -  one for development, one for testing, and one for production. The database-specific configuration
 options are stored in `config/database.yml`, which we need to create from the example template.
 
 ```
index 8eb26bf27ee221b0d9845171e5e206b6c18d8db7..3e4792b5efbd2e5c8c4d68c58f081c31b29171fb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,22 +1,21 @@
-# "The Rails Port"
+# openstreetmap-website
 
 [![Lint](https://github.com/openstreetmap/openstreetmap-website/workflows/Lint/badge.svg?branch=master&event=push)](https://github.com/openstreetmap/openstreetmap-website/actions?query=workflow%3ALint%20branch%3Amaster%20event%3Apush)
 [![Tests](https://github.com/openstreetmap/openstreetmap-website/workflows/Tests/badge.svg?branch=master&event=push)](https://github.com/openstreetmap/openstreetmap-website/actions?query=workflow%3ATests%20branch%3Amaster%20event%3Apush)
 [![Coverage Status](https://coveralls.io/repos/openstreetmap/openstreetmap-website/badge.svg?branch=master)](https://coveralls.io/r/openstreetmap/openstreetmap-website?branch=master)
 
-This is The Rails Port, the [Ruby on Rails](http://rubyonrails.org/)
+This is `openstreetmap-website`, the [Ruby on Rails](http://rubyonrails.org/)
 application that powers the [OpenStreetMap](https://www.openstreetmap.org) website and API.
-The software is also known as "openstreetmap-website".
 
 This repository consists of:
 
 * The web site, including user accounts, diary entries, user-to-user messaging.
-* The XML-based editing [API](https://wiki.openstreetmap.org/wiki/API_v0.6).
-* The integrated version of the [iD](https://wiki.openstreetmap.org/wiki/ID) editors.
+* The XML- and JSON-based editing [API](https://wiki.openstreetmap.org/wiki/API_v0.6).
+* The integrated version of the [iD](https://wiki.openstreetmap.org/wiki/ID) editor.
 * The Browse pages - a web front-end to the OpenStreetMap data.
 * The GPX uploads, browsing and API.
 
-A fully-functional Rails Port installation depends on other services, including map tile
+A fully-functional `openstreetmap-website` installation depends on other services, including map tile
 servers and geocoding services, that are provided by other software. The default installation
 uses publicly-available services to help with development and testing.
 
@@ -27,7 +26,7 @@ a copy of which can be found in the [LICENSE](LICENSE) file.
 
 # Installation
 
-The Rails Port is a Ruby on Rails application that uses PostgreSQL as its database, and has a large
+`openstreetmap-website` is a Ruby on Rails application that uses PostgreSQL as its database, and has a large
 number of dependencies for installation. For full details please see [INSTALL.md](INSTALL.md).
 
 # Development
diff --git a/app/assets/images/searching.gif b/app/assets/images/searching.gif
deleted file mode 100644 (file)
index b1451fd..0000000
Binary files a/app/assets/images/searching.gif and /dev/null differ
index 352f5d48c468e07ba282e1fdadc1017db7b97325..89f14caee6545ce00ce5034e676d71c021727546 100644 (file)
@@ -35,8 +35,6 @@ OSM = {
   OPEN_NOTE_MARKER:        <%= image_path("open_note_marker.png").to_json %>,
   CLOSED_NOTE_MARKER:      <%= image_path("closed_note_marker.png").to_json %>,
 
-  SEARCHING:               <%= image_path("searching.gif").to_json %>,
-
   apiUrl: function (object) {
     var apiType = object.type === "note" ? "notes" : object.type;
     var url = "/api/" + OSM.API_VERSION + "/" + apiType + "/" + object.id;
index 8e4410fcee0568d04e2297a178205c60df144454..14da8f300497cc8fd0497616a0ef1d21923b95ae 100644 (file)
@@ -123,7 +123,7 @@ $(document).ready(function () {
   $("input[name=legale]").change(function () {
     var url = $(this).data("url");
 
-    $("#contributorTerms").html("<img src='" + OSM.SEARCHING + "' />");
+    $("#contributorTerms").html("<div class='spinner-border' role='status'><span class='visually-hidden'>" + I18n.t("browse.start_rjs.loading") + "</span></div>");
     $("#contributorTerms").load(url);
   });
 
index 27458c6efb428093bc69f58d9e02cf31ed5835e3..5a197d9b1be58f801df5d0b22518c971eff19dc6 100644 (file)
@@ -681,21 +681,6 @@ body.small-nav {
   }
 }
 
-#sidebar {
-  #sidebar_loader,
-  .search_more {
-    width: 100%;
-    margin: $lineheight auto;
-  }
-
-  .loader {
-    text-align: center;
-    margin: auto;
-    width: 40px;
-    display: block;
-  }
-}
-
 /* Temporary label size override until we remove site-wide font customisation */
 
 form {
@@ -753,7 +738,6 @@ header .search_forms,
 
   .search_more .loader {
     display: none;
-    width: 100%;
   }
 }
 
@@ -1336,14 +1320,6 @@ tr.turn:hover {
 
 .directions_form {
   background-color: $lightgrey;
-
-  .loader_copy {
-    display: none;
-
-    img {
-      vertical-align: middle;
-    }
-  }
 }
 
 /* Rules for user images */
index 53eca97477b424b0e98a1829f81f36aff60d73a3..25b0cac141851a6bb837059a0638708365019f4b 100644 (file)
@@ -8,7 +8,11 @@
 
 <div id="query-nearby" class="query-results">
   <h3><%= t(".nearby") %></h3>
-  <%= image_tag "searching.gif", :class => "loader" %>
+  <div class="text-center loader">
+    <div class="spinner-border" role="status">
+      <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+    </div>
+  </div>
   <div class="mx-n3">
     <ul class="query-results-list list-group list-group-flush"></ul>
   </div>
 
 <div id="query-isin" class="query-results">
   <h3><%= t(".enclosing") %></h3>
-  <%= image_tag "searching.gif", :class => "loader" %>
+  <div class="text-center loader">
+    <div class="spinner-border" role="status">
+      <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+    </div>
+  </div>
   <div class="mx-n3">
     <ul class="query-results-list list-group list-group-flush"></ul>
   </div>
index b601057f6f1280ba780a15bb67271268e77cd51b..b114539589c75abe3f1245c06c64a15bd35bd968 100644 (file)
@@ -14,5 +14,9 @@
 <%= render "sidebar_header", :title => @heading %>
 
 <div class="changesets mx-n3">
-  <%= image_tag "searching.gif", :class => "loader" %>
+  <div class="text-center loader">
+    <div class="spinner-border" role="status">
+      <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+    </div>
+  </div>
 </div>
index 3ead2abdaed529b60da4a8a5d34d2ceec9270cc3..43f194522e1c3426ac1de750a85c3efddf67e90a 100644 (file)
@@ -5,7 +5,11 @@
 <% if @changesets.size == 20 -%>
   <div class="changeset_more mt-3 text-center">
     <%= link_to t(".load_more"), url_for(@params.merge(:max_id => @changesets.last.id - 1)), :class => "btn btn-primary" %>
-    <div class="loader"><%= image_tag "searching.gif" %></div>
+    <div class="text-center loader">
+      <div class="spinner-border" role="status">
+        <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+      </div>
+    </div>
   </div>
 <% end -%>
 <% elsif params[:bbox] %>
index e05aa29ad842dbdde324e04baa792d1be65bf514..fc213831895d264edb840b95475f65a3077a3929 100644 (file)
     <% end %>
   </ul>
   <% if @more_params %>
-    <div class="search_more text-center">
+    <div class="search_more text-center my-3">
       <%= link_to t(".more_results"), url_for(@more_params), :class => "btn btn-primary" %>
-      <div class="loader"><%= image_tag "searching.gif" %></div>
+      <div class="text-center loader">
+        <div class="spinner-border" role="status">
+          <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+        </div>
+      </div>
     </div>
   <% end %>
 <% end %>
index 8502227de49c60a0d5ca4a97ad80ab159ee43292..ceb099421a1ee2ef6e1cbf878b489a6669411b41 100644 (file)
@@ -5,6 +5,10 @@
 <% @sources.each do |source| %>
   <h4><%= t(".title.#{source}_html") %></h4>
   <div class="search_results_entry mx-n3" data-href="<%= url_for @params.merge(:action => "search_#{source}") %>">
-    <%= image_tag "searching.gif", :class => "loader" %>
+    <div class="text-center loader">
+      <div class="spinner-border" role="status">
+        <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+      </div>
+    </div>
   </div>
 <% end %>
index e7cae0471c9d58c8ebc566e5aecba16765eb405b..31386b1ab291dc30408c8597a002bf7bd45b81ab 100644 (file)
       </div>
     </div>
 
-    <div class="loader_copy"><div class="loader"><%= image_tag "searching.gif" %></div></div>
+    <div class="loader_copy d-none">
+      <div class="text-center loader">
+        <div class="spinner-border" role="status">
+          <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+        </div>
+      </div>
+    </div>
   </form>
 </div>
index 816f90c70e11d1b83b677bb2ce71c0b5acfebc12..b3c85d918343a8bda723390035b5c0411be012f6 100644 (file)
 
     <div id="browse_status"></div>
 
-    <div id="sidebar_loader">
-      <img alt="<%= t("browse.start_rjs.loading") %>" class="loader" src="<%= image_path("searching.gif") %>">
+    <div id="sidebar_loader" class="my-3 text-center loader">
+      <div class="spinner-border" role="status">
+        <span class="visually-hidden"><%= t("browse.start_rjs.loading") %></span>
+      </div>
     </div>
 
     <div id="sidebar_content">
index b801c8b5f5fe915c1adb659095c1270343a4bdee..22c130c99e566974480b801a639b20c0a0594f87 100644 (file)
@@ -21,7 +21,7 @@ Bundler.require(*Rails.groups)
 module OpenStreetMap
   class Application < Rails::Application
     # Initialize configuration defaults for originally generated Rails version.
-    config.load_defaults 6.1
+    config.load_defaults 7.0
 
     # Settings in config/environments/* take precedence over those specified here.
     # Application configuration can go into files in config/initializers
diff --git a/config/initializers/new_framework_defaults_7_0.rb b/config/initializers/new_framework_defaults_7_0.rb
deleted file mode 100644 (file)
index 79a3a2c..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-# Be sure to restart your server when you modify this file.
-#
-# This file eases your Rails 7.0 framework defaults upgrade.
-#
-# Uncomment each configuration one by one to switch to the new default.
-# Once your application is ready to run with all new defaults, you can remove
-# this file and set the `config.load_defaults` to `7.0`.
-#
-# Read the Guide for Upgrading Ruby on Rails for more info on each option.
-# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html
-
-# `button_to` view helper will render `<button>` element, regardless of whether
-# or not the content is passed as the first argument or as a block.
-Rails.application.config.action_view.button_to_generates_button_tag = true
-
-# `stylesheet_link_tag` view helper will not render the media attribute by default.
-Rails.application.config.action_view.apply_stylesheet_media_default = false
-
-# Change the digest class for the key generators to `OpenSSL::Digest::SHA256`.
-# Changing this default means invalidate all encrypted messages generated by
-# your application and, all the encrypted cookies. Only change this after you
-# rotated all the messages using the key rotator.
-#
-# See upgrading guide for more information on how to build a rotator.
-# https://guides.rubyonrails.org/v7.0/upgrading_ruby_on_rails.html
-Rails.application.config.active_support.key_generator_hash_digest_class = OpenSSL::Digest::SHA256
-
-# Change the digest class for ActiveSupport::Digest.
-# Changing this default means that for example Etags change and
-# various cache keys leading to cache invalidation.
-Rails.application.config.active_support.hash_digest_class = OpenSSL::Digest::SHA256
-
-# Don't override ActiveSupport::TimeWithZone.name and use the default Ruby
-# implementation.
-Rails.application.config.active_support.remove_deprecated_time_with_zone_name = true
-
-# Change the format of the cache entry.
-# Changing this default means that all new cache entries added to the cache
-# will have a different format that is not supported by Rails 6.1 applications.
-# Only change this value after your application is fully deployed to Rails 7.0
-# and you have no plans to rollback.
-Rails.application.config.active_support.cache_format_version = 7.0
-
-# Calls `Rails.application.executor.wrap` around test cases.
-# This makes test cases behave closer to an actual request or job.
-# Several features that are normally disabled in test, such as Active Record query cache
-# and asynchronous queries will then be enabled.
-Rails.application.config.active_support.executor_around_test_case = true
-
-# Define the isolation level of most of Rails internal state.
-# If you use a fiber based server or job processor, you should set it to `:fiber`.
-# Otherwise the default of `:thread` if preferable.
-Rails.application.config.active_support.isolation_level = :thread
-
-# Set both the `:open_timeout` and `:read_timeout` values for `:smtp` delivery method.
-Rails.application.config.action_mailer.smtp_timeout = 5
-
-# The ActiveStorage video previewer will now use scene change detection to generate
-# better preview images (rather than the previous default of using the first frame
-# of the video).
-Rails.application.config.active_storage.video_preview_arguments =
-  "-vf 'select=eq(n\\,0)+eq(key\\,1)+gt(scene\\,0.015),loop=loop=-1:size=2,trim=start_frame=1' -frames:v 1 -f image2"
-
-# Automatically infer `inverse_of` for associations with a scope.
-Rails.application.config.active_record.automatic_scope_inversing = true
-
-# Raise when running tests if fixtures contained foreign key violations
-Rails.application.config.active_record.verify_foreign_keys_for_fixtures = true
-
-# Disable partial inserts.
-# This default means that all columns will be referenced in INSERT queries
-# regardless of whether they have a default or not.
-Rails.application.config.active_record.partial_inserts = false
-
-# Protect from open redirect attacks in `redirect_back_or_to` and `redirect_to`.
-Rails.application.config.action_controller.raise_on_open_redirects = true
-
-# Change the variant processor for Active Storage.
-# Changing this default means updating all places in your code that
-# generate variants to use image processing macros and ruby-vips
-# operations. See the upgrading guide for detail on the changes required.
-# The `:mini_magick` option is not deprecated; it's fine to keep using it.
-Rails.application.config.active_storage.variant_processor = :vips
-
-# If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer
-# was `:marshal`. Convert all cookies to JSON, using the `:hybrid` formatter.
-#
-# If you're confident all your cookies are JSON formatted, you can switch to the `:json` formatter.
-#
-# Continue to use `:marshal` for backward-compatibility with old cookies.
-#
-# If you have configured the serializer elsewhere, you can remove this.
-#
-# See https://guides.rubyonrails.org/action_controller_overview.html#cookies for more information.
-# Rails.application.config.action_dispatch.cookies_serializer = :hybrid
-
-# Enable parameter wrapping for JSON.
-# Previously this was set in an initializer. It's fine to keep using that initializer if you've customized it.
-# To disable parameter wrapping entirely, set this config to `false`.
-Rails.application.config.action_controller.wrap_parameters_by_default = true
-
-# Specifies whether generated namespaced UUIDs follow the RFC 4122 standard for namespace IDs provided as a
-# `String` to `Digest::UUID.uuid_v3` or `Digest::UUID.uuid_v5` method calls.
-#
-# See https://guides.rubyonrails.org/configuring.html#config-active-support-use-rfc4122-namespaced-uuids for
-# more information.
-Rails.application.config.active_support.use_rfc4122_namespaced_uuids = true
-
-# Change the default headers to disable browsers' flawed legacy XSS protection.
-Rails.application.config.action_dispatch.default_headers = {
-  "X-Frame-Options" => "SAMEORIGIN",
-  "X-XSS-Protection" => "0",
-  "X-Content-Type-Options" => "nosniff",
-  "X-Download-Options" => "noopen",
-  "X-Permitted-Cross-Domain-Policies" => "none",
-  "Referrer-Policy" => "strict-origin-when-cross-origin"
-}
index 0f787b7395d20145a6e7ab96d7e08c6bd90e2858..472e8cb1e21b986553cbad1ed6c1386efaeb46e6 100644 (file)
@@ -18,7 +18,7 @@ PG_FUNCTION_INFO_V1(tile_for_point);
  * To bind this into PGSQL, try something like:
  *
  * CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8
- *  AS '/path/to/rails-port/db/functions/libpgosm', 'tile_for_point'
+ *  AS '/path/to/openstreetmap-website/db/functions/libpgosm', 'tile_for_point'
  *  LANGUAGE C STRICT;
  *
  * (without all the *s)