search.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. {{ define "title"}}{{ t "page.search.title" }} ({{ .total }}){{ end }}
  2. {{ define "page_header"}}
  3. <section class="page-header" aria-labelledby="page-header-title">
  4. <h1 id="page-header-title">{{ t "page.search.title" }} ({{ .total }})</h1>
  5. </section>
  6. {{ end }}
  7. {{ define "content"}}
  8. <search role="search">
  9. <form class="search-form" action="{{ routePath "/search" }}" aria-labelledby="search-input-label">
  10. <div class="search-input-row">
  11. <input type="search" name="q" id="search-input" aria-label="{{ t "search.label" }}" placeholder="{{ t "search.placeholder" }}" {{ if $.searchQuery }}value="{{ .searchQuery }}"{{ else }}autofocus{{ end }} required>
  12. <button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.loading" }}">{{ t "search.submit" }}</button>
  13. </div>
  14. <label class="search-filter"><input type="checkbox" name="unread" value="1" {{ if $.searchUnreadOnly }}checked{{ end }}> {{ t "menu.show_only_unread_entries" }}</label>
  15. </form>
  16. </search>
  17. {{ if $.searchQuery }}
  18. {{ if not .entries }}
  19. <p role="alert" class="alert alert-info">{{ t "alert.no_search_result" }}</p>
  20. {{ else }}
  21. <div class="pagination-top">
  22. {{ template "pagination" .pagination }}
  23. </div>
  24. <div class="items">
  25. {{ range .entries }}
  26. <article
  27. class="item entry-item {{ if $.user.EntrySwipe }}entry-swipe{{ end }} item-status-{{ .Status }}"
  28. data-id="{{ .ID }}"
  29. aria-labelledby="entry-title-{{ .ID }}"
  30. >
  31. <header class="item-header" dir="auto">
  32. <h2 id="entry-title-{{ .ID }}" class="item-title">
  33. <a href="{{ routePath "/search/entry/%d" .ID }}{{ queryString (dict "q" $.searchQuery "unread" $.searchUnreadOnly) }}">
  34. {{ if ne .Feed.Icon.IconID 0 }}
  35. <img src="{{ routePath "/feed-icon/%s" .Feed.Icon.ExternalIconID }}" width="16" height="16" loading="lazy" alt="{{ .Feed.Title }}">
  36. {{ else }}
  37. <span class="sr-only">{{ .Feed.Title }}</span>
  38. {{ end }}
  39. {{ .Title }}
  40. </a>
  41. </h2>
  42. <span class="category">
  43. <a href="{{ routePath "/category/%d/entries" .Feed.Category.ID }}">
  44. {{ .Feed.Category.Title }}
  45. </a>
  46. </span>
  47. </header>
  48. {{ template "item_meta" dict "user" $.user "entry" . "hasSaveEntry" $.hasSaveEntry }}
  49. </article>
  50. {{ end }}
  51. </div>
  52. <div class="pagination-bottom">
  53. {{ template "pagination" .pagination }}
  54. </div>
  55. {{ end }}
  56. {{ end }}
  57. {{ end }}