mirror of
https://github.com/discourse/discourse.git
synced 2025-06-03 01:24:33 +08:00
FIX: reliably reorder link in custom sections (#24188)
Two changes were introduced: 1. Reorder links on sidebar section is removed. Clicking and holding the mouse for 250ms was unintuitive; 2. Fixed bugs when reorder is done in edit modal.
This commit is contained in:

committed by
GitHub

parent
1d96b0a99a
commit
1c395e1a01
@ -370,72 +370,6 @@ RSpec.describe SidebarSectionsController do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#reorder" do
|
||||
fab!(:user2) { Fabricate(:user) }
|
||||
fab!(:sidebar_section) { Fabricate(:sidebar_section, user: user) }
|
||||
fab!(:sidebar_url_1) { Fabricate(:sidebar_url, name: "tags", value: "/tags") }
|
||||
fab!(:sidebar_url_2) { Fabricate(:sidebar_url, name: "categories", value: "/categories") }
|
||||
fab!(:sidebar_url_3) { Fabricate(:sidebar_url, name: "topic", value: "/t/1") }
|
||||
|
||||
fab!(:section_link_1) do
|
||||
Fabricate(:sidebar_section_link, sidebar_section: sidebar_section, linkable: sidebar_url_1)
|
||||
end
|
||||
|
||||
fab!(:section_link_2) do
|
||||
Fabricate(:sidebar_section_link, sidebar_section: sidebar_section, linkable: sidebar_url_2)
|
||||
end
|
||||
|
||||
fab!(:section_link_3) do
|
||||
Fabricate(:sidebar_section_link, sidebar_section: sidebar_section, linkable: sidebar_url_3)
|
||||
end
|
||||
|
||||
it "sorts links" do
|
||||
expect(sidebar_section.sidebar_urls.pluck(:id)).to eq(
|
||||
[sidebar_url_1.id, sidebar_url_2.id, sidebar_url_3.id],
|
||||
)
|
||||
|
||||
sign_in(user)
|
||||
|
||||
post "/sidebar_sections/reorder.json",
|
||||
params: {
|
||||
sidebar_section_id: sidebar_section.id,
|
||||
links_order: [sidebar_url_2.id, sidebar_url_3.id, sidebar_url_1.id],
|
||||
}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
|
||||
expect(sidebar_section.reload.sidebar_urls.pluck(:id)).to eq(
|
||||
[sidebar_url_2.id, sidebar_url_3.id, sidebar_url_1.id],
|
||||
)
|
||||
end
|
||||
|
||||
it "returns 403 when a user tries to reorder a section that doesn't belong to them" do
|
||||
sign_in(user2)
|
||||
|
||||
post "/sidebar_sections/reorder.json",
|
||||
params: {
|
||||
sidebar_section_id: sidebar_section.id,
|
||||
links_order: [sidebar_url_2.id, sidebar_url_3.id, sidebar_url_1.id],
|
||||
}
|
||||
|
||||
expect(response.status).to eq(403)
|
||||
|
||||
expect(sidebar_section.reload.sidebar_urls.pluck(:id)).to eq(
|
||||
[sidebar_url_1.id, sidebar_url_2.id, sidebar_url_3.id],
|
||||
)
|
||||
end
|
||||
|
||||
it "returns 403 for an non user" do
|
||||
post "/sidebar_sections/reorder.json",
|
||||
params: {
|
||||
sidebar_section_id: sidebar_section.id,
|
||||
links_order: [sidebar_url_2.id, sidebar_url_3.id, sidebar_url_1.id],
|
||||
}
|
||||
|
||||
expect(response.status).to eql(403)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#destroy" do
|
||||
fab!(:sidebar_section) { Fabricate(:sidebar_section, user: user) }
|
||||
|
||||
|
Reference in New Issue
Block a user