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:
evazion
2019-09-22 23:14:55 -05:00
parent 4e4c4d627e
commit a5949a4b28
5 changed files with 3 additions and 35 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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? %>

View File

@@ -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>

View File

@@ -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)