FIX: Correctly toggle bulk select checkboxes for regular users (#29984)
Non-admin/moderator users can bulk select items in new/unread, but not in latest/top/hot. This commit ensures that when the user can no longer bulk select items in a list, the bulk select checkboxes in the topic list rows are hidden.
This commit is contained in:
parent
88f1b3b195
commit
cd4de88e4a
|
@ -72,7 +72,9 @@ export default class TopicList extends Component.extend(LoadMore) {
|
||||||
// for the classNameBindings
|
// for the classNameBindings
|
||||||
@dependentKeyCompat
|
@dependentKeyCompat
|
||||||
get bulkSelectEnabled() {
|
get bulkSelectEnabled() {
|
||||||
return this.bulkSelectHelper?.bulkSelectEnabled;
|
return (
|
||||||
|
this.get("canBulkSelect") && this.bulkSelectHelper?.bulkSelectEnabled
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
get toggleInTitle() {
|
get toggleInTitle() {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
describe "Topic list focus", type: :system do
|
describe "Discovery list", type: :system do
|
||||||
fab!(:topics) { Fabricate.times(10, :post).map(&:topic) }
|
fab!(:topics) { Fabricate.times(10, :post).map(&:topic) }
|
||||||
fab!(:reply) { Fabricate(:post, topic: topics.first) }
|
fab!(:reply) { Fabricate(:post, topic: topics.first) }
|
||||||
|
|
||||||
|
@ -38,4 +38,27 @@ describe "Topic list focus", type: :system do
|
||||||
expect(page).to have_css("th[data-sort-order='posts'][aria-sort=ascending]")
|
expect(page).to have_css("th[data-sort-order='posts'][aria-sort=ascending]")
|
||||||
expect(nth_topic_id(10)).to eq(reply.topic_id.to_s)
|
expect(nth_topic_id(10)).to eq(reply.topic_id.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "bulk topic options" do
|
||||||
|
fab!(:user)
|
||||||
|
fab!(:topic) { Fabricate(:topic, user: user) }
|
||||||
|
fab!(:post1) { create_post(user: user, topic: topic) }
|
||||||
|
fab!(:post2) { create_post(topic: topic) }
|
||||||
|
|
||||||
|
it "should correctly show/hide the bulk select toggle for regular users" do
|
||||||
|
sign_in(user)
|
||||||
|
visit("/unread")
|
||||||
|
|
||||||
|
# The bulk select toggle should be visible, the user has an unread post
|
||||||
|
find("button.bulk-select").click
|
||||||
|
expect(page).to have_css(".topic-list-body .bulk-select")
|
||||||
|
|
||||||
|
find("#navigation-bar .latest > a").click
|
||||||
|
|
||||||
|
# No bulk select toggle or checkboxes
|
||||||
|
# this action is not available for this user in /latest
|
||||||
|
expect(page).to have_no_css(".topic-list-body .bulk-select")
|
||||||
|
expect(page).to have_no_css("button.bulk-select")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue