feeds.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. {{ define "title"}}{{ t "page.feeds.title" }} ({{ .total }}){{ end }}
  2. {{ define "content"}}
  3. <section class="page-header">
  4. <h1>{{ t "page.feeds.title" }} ({{ .total }})</h1>
  5. <ul>
  6. <li>
  7. <a href="{{ route "addSubscription" }}">{{ t "menu.add_feed" }}</a>
  8. </li>
  9. <li>
  10. <a href="{{ route "export" }}">{{ t "menu.export" }}</a>
  11. </li>
  12. <li>
  13. <a href="{{ route "import" }}">{{ t "menu.import" }}</a>
  14. </li>
  15. <li>
  16. <a href="{{ route "refreshAllFeeds" }}">{{ t "menu.refresh_all_feeds" }}</a>
  17. </li>
  18. </ul>
  19. </section>
  20. {{ if not .feeds }}
  21. <p class="alert">{{ t "alert.no_feed" }}</p>
  22. {{ else }}
  23. <div class="items">
  24. {{ range .feeds }}
  25. <article class="item {{ if ne .ParsingErrorCount 0 }}feed-parsing-error{{ end }}">
  26. <div class="item-header">
  27. <span class="item-title">
  28. {{ if .Icon }}
  29. <img src="{{ route "icon" "iconID" .Icon.IconID }}" width="16" height="16" loading="lazy" alt="{{ .Title }}">
  30. {{ end }}
  31. {{ if .Disabled }} 🚫 {{ end }}
  32. <a href="{{ route "feedEntries" "feedID" .ID }}">{{ .Title }}</a>
  33. </span>
  34. <span class="feed-entries-counter">
  35. (<span title="{{ t "page.feeds.unread_counter" }}">{{ .UnreadCount }}</span>/<span title="{{ t "page.feeds.read_counter" }}">{{ .ReadCount }}</span>)
  36. </span>
  37. <span class="category">
  38. <a href="{{ route "categoryEntries" "categoryID" .Category.ID }}">{{ .Category.Title }}</a>
  39. </span>
  40. </div>
  41. <div class="item-meta">
  42. <ul>
  43. <li>
  44. <a href="{{ .SiteURL }}" title="{{ .SiteURL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ domain .SiteURL }}</a>
  45. </li>
  46. <li>
  47. {{ t "page.feeds.last_check" }} <time datetime="{{ isodate .CheckedAt }}" title="{{ isodate .CheckedAt }}">{{ elapsed $.user.Timezone .CheckedAt }}</time>
  48. </li>
  49. </ul>
  50. <ul>
  51. <li>
  52. <a href="{{ route "refreshFeed" "feedID" .ID }}">{{ t "menu.refresh_feed" }}</a>
  53. </li>
  54. <li>
  55. <a href="{{ route "editFeed" "feedID" .ID }}">{{ t "menu.edit_feed" }}</a>
  56. </li>
  57. <li>
  58. <a href="#"
  59. data-confirm="true"
  60. data-label-question="{{ t "confirm.question" }}"
  61. data-label-yes="{{ t "confirm.yes" }}"
  62. data-label-no="{{ t "confirm.no" }}"
  63. data-label-loading="{{ t "confirm.loading" }}"
  64. data-url="{{ route "removeFeed" "feedID" .ID }}">{{ t "action.remove" }}</a>
  65. </li>
  66. </ul>
  67. </div>
  68. {{ if ne .ParsingErrorCount 0 }}
  69. <div class="parsing-error">
  70. <strong title="{{ .ParsingErrorMsg }}" class="parsing-error-count">{{ plural "page.feeds.error_count" .ParsingErrorCount .ParsingErrorCount }}</strong>
  71. - <small class="parsing-error-message">{{ .ParsingErrorMsg }}</small>
  72. </div>
  73. {{ end }}
  74. </article>
  75. {{ end }}
  76. </div>
  77. {{ end }}
  78. {{ end }}