update filters as well

This commit is contained in:
2026-01-23 01:56:03 +01:00
parent 26e702528a
commit 2b35a0bb0e
5 changed files with 14 additions and 13 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ class Entry < ApplicationRecord
return none unless valid_lang?(language_code)
return all if prefix.blank?
where("#{language_code} LIKE ?", "#{sanitize_sql_like(prefix)}%")
where(arel_table[language_code].matches("#{sanitize_sql_like(prefix)}%"))
end
def self.alphabetical_for(language_code)
+6 -6
View File
@@ -4,12 +4,12 @@
<%= link_to "All",
entries_path(all_category_params),
class: "px-4 py-1.5 rounded-full #{@category.blank? ? 'bg-indigo-100 text-indigo-700' : 'bg-white border border-slate-200 text-slate-600 hover:border-indigo-300'} text-xs font-bold uppercase tracking-wider",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% Entry.categories.keys.each do |category_name| %>
<%= link_to category_name.tr('_', ' ').capitalize,
entries_path(base_params.merge(category: category_name)),
class: "px-4 py-1.5 rounded-full #{@category == category_name ? 'bg-indigo-100 text-indigo-700' : 'bg-white border border-slate-200 text-slate-600 hover:border-indigo-300'} text-xs font-bold uppercase tracking-wider",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% end %>
</div>
@@ -18,12 +18,12 @@
<%= link_to "All Languages",
entries_path(all_language_params),
class: "px-3 py-1.5 rounded-full #{@language_code.blank? ? 'bg-slate-900 text-white' : 'bg-white border border-slate-200 text-slate-600 hover:border-slate-300'} text-xs font-semibold uppercase tracking-wider",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% @supported_languages.each do |language| %>
<%= link_to "#{language.name} (#{language.code.upcase})",
entries_path(all_language_params.merge(language: language.code)),
class: "px-3 py-1.5 rounded-full #{@language_code == language.code ? 'bg-slate-900 text-white' : 'bg-white border border-slate-200 text-slate-600 hover:border-slate-300'} text-xs font-semibold uppercase tracking-wider",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% end %>
</div>
@@ -33,12 +33,12 @@
<%= link_to "All",
entries_path(alphabet_params),
class: "px-2.5 py-1 rounded-md #{@starts_with.blank? ? 'bg-indigo-600 text-white' : 'bg-white border border-slate-200 text-slate-600 hover:border-indigo-300'}",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% alphabet_letters(@language_code).each do |letter| %>
<%= link_to letter,
entries_path(alphabet_params.merge(starts_with: letter)),
class: "px-2.5 py-1 rounded-md #{@starts_with == letter ? 'bg-indigo-600 text-white' : 'bg-white border border-slate-200 text-slate-600 hover:border-indigo-300'}",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<% end %>
</div>
<% end %>
+2 -2
View File
@@ -107,10 +107,10 @@
<% pagination_params = { q: @query.presence, category: @category.presence, language: @language_code.presence, starts_with: @starts_with.presence }.compact %>
<%= link_to "Previous", previous_page ? entries_path(pagination_params.merge(page: previous_page)) : "#",
class: "px-3 py-1.5 rounded-md border border-slate-200 #{previous_page ? 'hover:border-indigo-300' : 'text-slate-300 cursor-not-allowed'}",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
<%= link_to "Next", next_page ? entries_path(pagination_params.merge(page: next_page)) : "#",
class: "px-3 py-1.5 rounded-md border border-slate-200 #{next_page ? 'hover:border-indigo-300' : 'text-slate-300 cursor-not-allowed'}",
data: { turbo_frame: "entries_results" } %>
data: { turbo_stream: true } %>
</div>
</div>
</div>
+4 -4
View File
@@ -47,14 +47,14 @@
</div>
<% end %>
<%= turbo_frame_tag "entries_filters" do %>
<div id="entries_filters">
<%= render "entries/filters" %>
<% end %>
</div>
</div>
</section>
<%= turbo_frame_tag "entries_results" do %>
<div id="entries_results">
<%= render "entries/results" %>
<% end %>
</div>
</div>
</div>
+1
View File
@@ -129,3 +129,4 @@
- [x] **FTS5 integration** (migration added)
- [x] **Database schema** implementation (all models and migrations)
- [x] **Supported languages** table with seed data
- [x] **Filters do not update with new search results**