saved searches: always show 'Saved searches' link in navbar.
* Always display 'Saved searches' link in subnav bar, even if the user hasn't created any saved searches yet. * Eliminate use of `has_saved_searches` bitpref on users.
This commit is contained in:
@@ -151,8 +151,6 @@ class SavedSearch < ApplicationRecord
|
||||
belongs_to :user
|
||||
validates :query, presence: true
|
||||
validate :validate_count
|
||||
before_create :update_user_on_create
|
||||
after_destroy :update_user_on_destroy
|
||||
before_validation :normalize_query
|
||||
before_validation :normalize_labels
|
||||
scope :labeled, ->(label) { label.present? ? where("labels @> string_to_array(?, '~~~~')", label) : where("true") }
|
||||
@@ -163,18 +161,6 @@ class SavedSearch < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def update_user_on_create
|
||||
if !user.has_saved_searches?
|
||||
user.update(has_saved_searches: true)
|
||||
end
|
||||
end
|
||||
|
||||
def update_user_on_destroy
|
||||
if user.saved_searches.count == 0
|
||||
user.update(has_saved_searches: false)
|
||||
end
|
||||
end
|
||||
|
||||
def disable_labels=(value)
|
||||
CurrentUser.update(disable_categorized_saved_searches: true) if value.to_s.truthy?
|
||||
end
|
||||
|
||||
@@ -32,6 +32,7 @@ class User < ApplicationRecord
|
||||
# - disable_tagged_filenames (enabled by 387)
|
||||
# - enable_recent_searches (enabled by 499)
|
||||
# - disable_cropped_thumbnails (enabled by 22)
|
||||
# - has_saved_searches
|
||||
BOOLEAN_ATTRIBUTES = %w(
|
||||
is_banned
|
||||
has_mail
|
||||
|
||||
@@ -8,9 +8,7 @@
|
||||
<% unless CurrentUser.is_anonymous? %>
|
||||
<%= subnav_link_to "Favorites", posts_path(tags: "ordfav:#{CurrentUser.user.name}") %>
|
||||
<%= subnav_link_to "Fav groups", favorite_groups_path %>
|
||||
<% if CurrentUser.has_saved_searches? %>
|
||||
<%= subnav_link_to "Saved searches", posts_path(:tags => "search:all") %>
|
||||
<% end %>
|
||||
<%= subnav_link_to "Saved searches", posts_path(tags: "search:all") %>
|
||||
<% end %>
|
||||
<%= subnav_link_to "Changes", post_versions_path %>
|
||||
<% if CurrentUser.can_approve_posts? %>
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
<% end %>
|
||||
|
||||
<% if CurrentUser.id == user.id %>
|
||||
<% if CurrentUser.has_saved_searches? %>
|
||||
<% if SavedSearch.labels_for(CurrentUser.user.id).present? %>
|
||||
<tr>
|
||||
<th>Saved Searches</th>
|
||||
<td>
|
||||
|
||||
@@ -146,11 +146,6 @@ class SavedSearchTest < ActiveSupport::TestCase
|
||||
@saved_search = @user.saved_searches.create(query: " ZZZ xxx ")
|
||||
end
|
||||
|
||||
should "update the bitpref on the user" do
|
||||
@user.reload
|
||||
assert(@user.has_saved_searches?, "should have saved_searches bitpref set")
|
||||
end
|
||||
|
||||
should "normalize the query aside from the order" do
|
||||
assert_equal("yyy xxx", @saved_search.query)
|
||||
end
|
||||
@@ -164,18 +159,6 @@ class SavedSearchTest < ActiveSupport::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
context "Destroying a saved search" do
|
||||
setup do
|
||||
@saved_search = @user.saved_searches.create(query: "xxx")
|
||||
@saved_search.destroy
|
||||
end
|
||||
|
||||
should "update the bitpref on the user" do
|
||||
@user.reload
|
||||
assert(!@user.has_saved_searches?, "should not have the saved_searches bitpref set")
|
||||
end
|
||||
end
|
||||
|
||||
context "A user with max saved searches" do
|
||||
setup do
|
||||
@user = FactoryBot.create(:gold_user)
|
||||
|
||||
Reference in New Issue
Block a user