mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Minor hashtag autocomplete fixes (#19173)
* Do not search category name when searching channels to avoid confusing results * Overflow text in autocomplete menu with ... if it is too long * Make autocomplete menu less height
This commit is contained in:
parent
65f57a4d05
commit
a34838d671
@ -30,8 +30,8 @@ a.hashtag-cooked {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.hashtag-autocomplete {
|
.hashtag-autocomplete {
|
||||||
max-height: 300px;
|
max-height: 210px;
|
||||||
overflow-y: scroll;
|
overflow-y: auto;
|
||||||
|
|
||||||
.hashtag-autocomplete__option {
|
.hashtag-autocomplete__option {
|
||||||
.hashtag-autocomplete__link {
|
.hashtag-autocomplete__link {
|
||||||
@ -46,6 +46,9 @@ a.hashtag-cooked {
|
|||||||
.hashtag-autocomplete__text {
|
.hashtag-autocomplete__text {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
.emoji {
|
.emoji {
|
||||||
width: 15px;
|
width: 15px;
|
||||||
|
@ -99,8 +99,15 @@ module Chat::ChatChannelFetcher
|
|||||||
channels = channels.where(status: options[:status]) if options[:status].present?
|
channels = channels.where(status: options[:status]) if options[:status].present?
|
||||||
|
|
||||||
if options[:filter].present?
|
if options[:filter].present?
|
||||||
|
category_filter = \
|
||||||
|
if options[:filter_on_category_name]
|
||||||
|
"OR categories.name ILIKE :filter"
|
||||||
|
else
|
||||||
|
""
|
||||||
|
end
|
||||||
|
|
||||||
sql =
|
sql =
|
||||||
"chat_channels.name ILIKE :filter OR chat_channels.slug ILIKE :filter OR categories.name ILIKE :filter"
|
"chat_channels.name ILIKE :filter OR chat_channels.slug ILIKE :filter #{category_filter}"
|
||||||
channels =
|
channels =
|
||||||
channels.where(sql, filter: "%#{options[:filter].downcase}%").order(
|
channels.where(sql, filter: "%#{options[:filter].downcase}%").order(
|
||||||
"chat_channels.name ASC, categories.name ASC",
|
"chat_channels.name ASC, categories.name ASC",
|
||||||
@ -142,7 +149,7 @@ module Chat::ChatChannelFetcher
|
|||||||
channels =
|
channels =
|
||||||
secured_public_channel_search(
|
secured_public_channel_search(
|
||||||
guardian,
|
guardian,
|
||||||
options.merge(include_archives: true),
|
options.merge(include_archives: true, filter_on_category_name: true),
|
||||||
)
|
)
|
||||||
decorate_memberships_with_tracking_data(guardian, channels, memberships)
|
decorate_memberships_with_tracking_data(guardian, channels, memberships)
|
||||||
channels = channels.to_a
|
channels = channels.to_a
|
||||||
|
@ -55,20 +55,10 @@ RSpec.describe Chat::ChatChannelHashtagDataSource do
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe "#search" do
|
describe "#search" do
|
||||||
it "finds a channel by category name" do
|
it "does not find channels by category name" do
|
||||||
category.update!(name: "Randomizer")
|
category.update!(name: "Randomizer")
|
||||||
result = described_class.search(guardian, "randomiz", 10).first
|
result = described_class.search(guardian, "randomiz", 10).first
|
||||||
expect(result.to_h).to eq(
|
expect(result.to_h).to eq({})
|
||||||
{
|
|
||||||
relative_url: channel1.relative_url,
|
|
||||||
text: "Zany Things",
|
|
||||||
description: "Just weird stuff",
|
|
||||||
icon: "comment",
|
|
||||||
type: "channel",
|
|
||||||
ref: nil,
|
|
||||||
slug: "random",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "finds a channel by slug" do
|
it "finds a channel by slug" do
|
||||||
|
Loading…
Reference in New Issue
Block a user