From: Tom Hughes Date: Thu, 9 Jan 2020 10:31:37 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/2498' X-Git-Tag: live~3374 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/e39d227dd03f43985e38cd26ce6040772d571271?hp=ff363832f8b5797e465c64476e77143c8f42f255 Merge remote-tracking branch 'upstream/pull/2498' --- diff --git a/app/assets/javascripts/index/query.js b/app/assets/javascripts/index/query.js index 5c6e58170..514d6dbb2 100644 --- a/app/assets/javascripts/index/query.js +++ b/app/assets/javascripts/index/query.js @@ -214,17 +214,15 @@ OSM.Query = function (map) { if (interestingFeature(element)) { var $li = $("
  • ") - .addClass("query-result") + .addClass("query-result list-group-item") .data("geometry", featureGeometry(element)) - .appendTo($ul); - var $p = $("

    ") .text(featurePrefix(element) + " ") - .appendTo($li); + .appendTo($ul); $("") .attr("href", "/" + element.type + "/" + element.id) .text(featureName(element)) - .appendTo($p); + .appendTo($li); } } diff --git a/app/assets/stylesheets/_bootstrap-custom.scss b/app/assets/stylesheets/_bootstrap-custom.scss index 689d7ee98..e502f7db6 100644 --- a/app/assets/stylesheets/_bootstrap-custom.scss +++ b/app/assets/stylesheets/_bootstrap-custom.scss @@ -32,7 +32,7 @@ @import "bootstrap/alert"; // @import "bootstrap/progress"; // @import "bootstrap/media"; -// @import "bootstrap/list-group"; +@import "bootstrap/list-group"; // @import "bootstrap/close"; // @import "bootstrap/toasts"; // @import "bootstrap/modal"; diff --git a/app/assets/stylesheets/common.scss b/app/assets/stylesheets/common.scss index 13576af4e..229db3ba3 100644 --- a/app/assets/stylesheets/common.scss +++ b/app/assets/stylesheets/common.scss @@ -1078,21 +1078,12 @@ tr.turn:hover { #sidebar .changesets { li { - padding: 15px 20px; - border-bottom: 1px solid $grey; cursor: pointer; &.selected { background: $list-highlight; } /* color is derived from changeset bbox fillColor in history.js */ } - h4 { - margin: 0; - a { - color: #000; - } - } - .comments { float: right; color: $darkgrey; @@ -1161,7 +1152,6 @@ tr.turn:hover { background-color: #F6F6F6; border: 1px solid $grey; border-radius: 3px; - font-size: 12px; table-layout: fixed; border-collapse: separate; @@ -1193,8 +1183,8 @@ tr.turn:hover { .colour-preview-box { float: right; - width: 12px; - height: 12px; + width: 14px; + height: 14px; margin: 4px 0px; border: 1px solid rgba(0, 0, 0, .1); // add color via inline css on element: background-color: ; @@ -1247,17 +1237,14 @@ tr.turn:hover { .query-results { display: none; + padding-bottom: $lineheight/2; h3 { - padding: $lineheight $lineheight $lineheight/2; - margin: 0; + padding: 0 $lineheight; } ul { li { - padding: 15px 20px; - border-bottom: 1px solid $grey; - &.query-result { cursor: pointer; } @@ -2051,13 +2038,6 @@ abbr.geo { border-bottom: none; } -/* Rules for RSS buttons */ - -.rsssmall { - position: relative; - top: 3px; -} - /* General styles for action lists / subnavs / pager navs */ ul.secondary-actions { diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a61a10d94..514b3f8ee 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -269,7 +269,7 @@ class UsersController < ApplicationController def logout @title = t "users.logout.title" - if params[:session] == session.id + if request.post? if session[:token] token = UserToken.find_by(:token => session[:token]) token&.destroy diff --git a/app/views/browse/changeset.html.erb b/app/views/browse/changeset.html.erb index 9ad35b2a7..148cb5a88 100644 --- a/app/views/browse/changeset.html.erb +++ b/app/views/browse/changeset.html.erb @@ -6,7 +6,7 @@

    -

    <%= linkify(h(@changeset.tags["comment"].to_s.presence || t("browse.no_comment"))) %>

    +
    <%= linkify(h(@changeset.tags["comment"].to_s.presence || t("browse.no_comment"))) %>
    <%= changeset_details(@changeset) %>
    <%= render :partial => "tag_details", :object => @changeset.tags.except("comment") %> diff --git a/app/views/browse/query.html.erb b/app/views/browse/query.html.erb index ea40a00db..ad6fdddb5 100644 --- a/app/views/browse/query.html.erb +++ b/app/views/browse/query.html.erb @@ -12,11 +12,15 @@

    <%= t(".nearby") %>

    <%= image_tag "searching.gif", :class => "loader" %> -
      +
      +
        +

        <%= t(".enclosing") %>

        <%= image_tag "searching.gif", :class => "loader" %> -
          +
          +
            +
            diff --git a/app/views/changesets/_changeset.html.erb b/app/views/changesets/_changeset.html.erb index 56726e2d9..f1173671e 100644 --- a/app/views/changesets/_changeset.html.erb +++ b/app/views/changesets/_changeset.html.erb @@ -10,12 +10,12 @@ } end %> -<%= content_tag "li", :id => "changeset_#{changeset.id}", :data => { :changeset => changeset_data } do %> -

            - +<%= content_tag "li", :id => "changeset_#{changeset.id}", :data => { :changeset => changeset_data }, :class => "list-group-item" do %> +
            + <%= changeset.tags["comment"].to_s.presence || t("browse.no_comment") %> -
            +

            <%= changeset.comments.length %> diff --git a/app/views/changesets/index.html.erb b/app/views/changesets/index.html.erb index 1e3daa081..527a0a232 100644 --- a/app/views/changesets/index.html.erb +++ b/app/views/changesets/index.html.erb @@ -1,5 +1,5 @@ <% if @changesets.present? %> -
              +
                <%= render @changesets %>
              <% if @changesets.size == 20 -%> diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 6df8f02da..3963c211e 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -102,7 +102,7 @@ <%= yield :greeting %>
            1. - <%= link_to t("layouts.logout"), logout_path(:session => session.id, :referer => request.fullpath), :class => "geolink" %> + <%= link_to t("layouts.logout"), logout_path(:referer => request.fullpath), :method => "post", :class => "geolink" %>
            diff --git a/app/views/users/logout.html.erb b/app/views/users/logout.html.erb index 273c7e1b9..5d8e2de49 100644 --- a/app/views/users/logout.html.erb +++ b/app/views/users/logout.html.erb @@ -4,6 +4,5 @@ <%= form_tag :action => "logout" do %> <%= hidden_field_tag("referer", h(params[:referer])) %> - <%= hidden_field_tag("session", session.id) %> <%= submit_tag t(".logout_button") %> <% end %> diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb index feca92df5..c40c30b28 100644 --- a/test/controllers/users_controller_test.rb +++ b/test/controllers/users_controller_test.rb @@ -344,29 +344,29 @@ class UsersControllerTest < ActionController::TestCase end def test_logout_without_referer + post :logout + assert_response :redirect + assert_redirected_to root_path + end + + def test_logout_with_referer + post :logout, :params => { :referer => "/test" } + assert_response :redirect + assert_redirected_to "/test" + end + + def test_logout_fallback_without_referer get :logout assert_response :success assert_template :logout assert_select "input[name=referer][value=?]", "" - - session_id = assert_select("input[name=session]").first["value"] - - get :logout, :params => { :session => session_id } - assert_response :redirect - assert_redirected_to root_path end - def test_logout_with_referer + def test_logout_fallback_with_referer get :logout, :params => { :referer => "/test" } assert_response :success assert_template :logout assert_select "input[name=referer][value=?]", "/test" - - session_id = assert_select("input[name=session]").first["value"] - - get :logout, :params => { :session => session_id, :referer => "/test" } - assert_response :redirect - assert_redirected_to "/test" end def test_logout_with_token @@ -374,16 +374,7 @@ class UsersControllerTest < ActionController::TestCase session[:token] = token.token - get :logout - assert_response :success - assert_template :logout - assert_select "input[name=referer][value=?]", "" - assert_equal token.token, session[:token] - assert_not_nil UserToken.where(:id => token.id).first - - session_id = assert_select("input[name=session]").first["value"] - - get :logout, :params => { :session => session_id } + post :logout assert_response :redirect assert_redirected_to root_path assert_nil session[:token] diff --git a/test/system/user_logout_test.rb b/test/system/user_logout_test.rb new file mode 100644 index 000000000..099d2c0c0 --- /dev/null +++ b/test/system/user_logout_test.rb @@ -0,0 +1,48 @@ +require "application_system_test_case" + +class UserLogoutTest < ApplicationSystemTestCase + test "Sign out via link" do + user = create(:user) + sign_in_as(user) + assert_not page.has_content? "Log In" + + click_on user.display_name + click_on "Log Out" + assert page.has_content? "Log In" + end + + test "Sign out via link with referer" do + user = create(:user) + sign_in_as(user) + visit traces_path + assert_not page.has_content? "Log In" + + click_on user.display_name + click_on "Log Out" + assert page.has_content? "Log In" + assert page.has_content? "Public GPS traces" + end + + test "Sign out via fallback page" do + sign_in_as(create(:user)) + assert_not page.has_content? "Log In" + + visit logout_path + assert page.has_content? "Logout from OpenStreetMap" + + click_button "Logout" + assert page.has_content? "Log In" + end + + test "Sign out via fallback page with referer" do + sign_in_as(create(:user)) + assert_not page.has_content? "Log In" + + visit logout_path(:referer => "/traces") + assert page.has_content? "Logout from OpenStreetMap" + + click_button "Logout" + assert page.has_content? "Log In" + assert page.has_content? "Public GPS traces" + end +end