From 02f5b0a81893dc8b1a63e7e0f134ac10905a992e Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sun, 16 Mar 2025 02:11:22 +0300 Subject: [PATCH] Add 'before' parameter to history pages --- app/assets/javascripts/index/history.js | 5 +++++ test/system/history_test.rb | 30 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/app/assets/javascripts/index/history.js b/app/assets/javascripts/index/history.js index 6e4e73a23..dddd84354 100644 --- a/app/assets/javascripts/index/history.js +++ b/app/assets/javascripts/index/history.js @@ -57,6 +57,7 @@ OSM.History = function (map) { function update() { const data = new URLSearchParams(); + const params = new URLSearchParams(location.search); if (location.pathname === "/history") { data.set("bbox", map.getBounds().wrap().toBBoxString()); @@ -67,6 +68,10 @@ OSM.History = function (map) { data.set("list", "1"); + if (params.has("before")) { + data.set("before", params.get("before")); + } + fetch(location.pathname + "?" + data) .then(response => response.text()) .then(function (html) { diff --git a/test/system/history_test.rb b/test/system/history_test.rb index 679f711b3..4f2114f25 100644 --- a/test/system/history_test.rb +++ b/test/system/history_test.rb @@ -53,6 +53,36 @@ class HistoryTest < ApplicationSystemTestCase end end + test "user history starts before specified changeset" do + user = create(:user) + changeset1 = create_visible_changeset(user, "1st-changeset-in-history") + changeset2 = create_visible_changeset(user, "2nd-changeset-in-history") + changeset3 = create(:changeset) + + visit "#{user_path user}/history?before=#{changeset1.id}" + + within_sidebar do + assert_no_link "1st-changeset-in-history" + assert_no_link "2nd-changeset-in-history" + end + + visit "#{user_path user}/history?before=#{changeset2.id}" + + within_sidebar do + assert_link "1st-changeset-in-history" + assert_no_link "2nd-changeset-in-history" + end + + visit "#{user_path user}/history?before=#{changeset3.id}" + + within_sidebar do + assert_link "1st-changeset-in-history" + assert_link "2nd-changeset-in-history" + end + end + + private + def create_visible_changeset(user, comment) create(:changeset, :user => user, :num_changes => 1) do |changeset| create(:changeset_tag, :changeset => changeset, :k => "comment", :v => comment) -- 2.39.5