<% content_for :title, "Sanasto Wiki" %>
<% base_params = { q: @query.presence, category: @category.presence, language: @language_code.presence, starts_with: @starts_with.presence }.compact %>
<%= form_with url: entries_path, method: :get, local: true, class: "space-y-4" do |form| %>
<%= form.text_field :q, value: @query, placeholder: "Search words, phrases, or biblical terms...", class: "block w-full pl-11 pr-4 py-4 bg-white border border-slate-200 rounded-2xl shadow-sm focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition" %>
<%= form.submit "Search", class: "bg-indigo-600 text-white px-4 py-2 rounded-lg text-sm font-semibold hover:bg-indigo-700 transition" %> <%= link_to "Download XLSX", download_entries_path(format: :xlsx), class: "text-sm font-semibold text-indigo-700 px-4 py-2 rounded-lg border border-indigo-200 bg-indigo-50 hover:bg-indigo-100 transition" %>
<% end %>
<% all_category_params = base_params.except(:category) %> <%= 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" %> <% 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" %> <% end %>
<% all_language_params = base_params.except(:language, :starts_with) %> <%= 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" %> <% @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" %> <% end %>
<% if @language_code.present? %>
<% alphabet_params = base_params.merge(language: @language_code).except(:starts_with) %> <%= 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'}" %> <% alphabet_letters.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'}" %> <% end %>
<% end %>
Total Entries
<%= number_with_delimiter(@entry_count) %>
Verified
<%= number_with_delimiter(@verified_count) %>
Recent Additions
Updated with the latest translations

Entries

<%= @entries.size %> shown
<% if @entries.empty? %>
No entries matched your filters. Try a different search or remove some filters.
<% else %>
<% @entries.each do |entry| %>
<%= format_entry_category(entry) %> <% if entry.verified? %>
Verified
<% else %> Unverified <% end %>
<% @supported_languages.each do |language| %> <% translation = entry_translation_for(entry, language.code) %> <% next if translation.blank? %>
<%= "#{language.name} (#{language.code.upcase})" %>

<%= translation %>

<% end %>
<% if entry.notes.present? %>

Context & Notes

<%= entry.notes %>

<% end %>
<%= link_to "View Entry", entry_path(entry), class: "text-xs font-bold text-indigo-600 px-3 py-2 rounded-md border border-indigo-200 bg-indigo-50 hover:bg-indigo-100 transition ml-auto" %>
<% end %>
<% end %>

Recent Entries

<% @recent_entries.each do |entry| %> <%= link_to entry_path(entry), class: "block p-4 rounded-lg border border-slate-200 hover:border-indigo-300 transition" do %>
<%= format_entry_category(entry) %>
<%= entry.fi.presence || entry.en.presence || entry.sv.presence || entry.no.presence || entry.ru.presence || entry.de.presence || "Untitled" %>
<%= entry.created_at.strftime("%B %-d, %Y") %>
<% end %> <% end %>