151 lines
6.5 KiB
HTML
151 lines
6.5 KiB
HTML
{{ define "title"}}{{ .feed.Title }} ({{ .total }}){{ end }}
|
|
|
|
{{ define "page_header"}}
|
|
<section class="page-header" aria-labelledby="page-header-title">
|
|
<h1 id="page-header-title" dir="auto">
|
|
<a href="{{ .feed.SiteURL | safeURL }}" title="{{ .feed.SiteURL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="{{ .user.MarkReadOnView }}">{{ .feed.Title }}</a>
|
|
<span aria-hidden="true">({{ .total }})</span>
|
|
</h1>
|
|
<span class="sr-only">
|
|
{{ if .showOnlyUnreadEntries }}
|
|
{{ plural "page.unread_entry_count" .total .total }}
|
|
{{ else }}
|
|
{{ plural "page.total_entry_count" .total .total }}
|
|
{{ end }}
|
|
</span>
|
|
<nav aria-label="{{ .feed.Title }} {{ t "menu.title" }}">
|
|
<ul>
|
|
{{ if .entries }}
|
|
<li>
|
|
<a href="#"
|
|
data-action="markPageAsRead"
|
|
data-label-question="{{ t "confirm.question" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}"
|
|
data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">{{ icon "mark-page-as-read" }}{{ t "menu.mark_page_as_read" }}</a>
|
|
</li>
|
|
<li>
|
|
<a href="#"
|
|
data-confirm="true"
|
|
data-label-question="{{ t "confirm.question" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}"
|
|
data-url="{{ route "markFeedAsRead" "feedID" .feed.ID }}">{{ icon "mark-all-as-read" }}{{ t "menu.mark_all_as_read" }}</a>
|
|
</li>
|
|
{{ end }}
|
|
{{ if .showOnlyUnreadEntries }}
|
|
<li>
|
|
<a href="{{ route "feedEntriesAll" "feedID" .feed.ID }}">{{ icon "show-all-entries" }}{{ t "menu.show_all_entries" }}</a>
|
|
</li>
|
|
{{ else }}
|
|
<li>
|
|
<a href="{{ route "feedEntries" "feedID" .feed.ID }}">{{ icon "show-unread-entries" }}{{ t "menu.show_only_unread_entries" }}</a>
|
|
</li>
|
|
{{ end }}
|
|
<li>
|
|
<a href="#"
|
|
data-confirm="true"
|
|
data-label-question="{{ t "confirm.question.refresh" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}"
|
|
data-url="{{ route "refreshFeed" "feedID" .feed.ID }}?forceRefresh=true"
|
|
data-no-action-url="{{ route "refreshFeed" "feedID" .feed.ID }}?forceRefresh=false">{{ icon "refresh" }}{{ t "menu.refresh_feed" }}</a>
|
|
</li>
|
|
<li>
|
|
<a href="{{ route "editFeed" "feedID" .feed.ID }}">{{ icon "edit" }}{{ t "menu.edit_feed" }}</a>
|
|
</li>
|
|
<li>
|
|
<a href="#"
|
|
data-confirm="true"
|
|
data-action="remove-feed"
|
|
data-label-question="{{ t "confirm.question" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}"
|
|
data-url="{{ route "removeFeed" "feedID" .feed.ID }}"
|
|
data-redirect-url="{{ route "feeds" }}">{{ icon "delete" }}{{ t "action.remove_feed" }}</a>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
</section>
|
|
{{ end }}
|
|
|
|
{{ define "content"}}
|
|
{{ if ne .feed.ParsingErrorCount 0 }}
|
|
<div role="alert" class="alert alert-error">
|
|
<h3>{{ t "alert.feed_error" }}</h3>
|
|
<p>{{ t .feed.ParsingErrorMsg }}</p>
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ if not .entries }}
|
|
{{ if .showOnlyUnreadEntries }}
|
|
<p role="alert" class="alert">{{ t "alert.no_unread_entry" }}</p>
|
|
{{ else }}
|
|
<p role="alert" class="alert">{{ t "alert.no_feed_entry" }}</p>
|
|
{{ end }}
|
|
{{ else }}
|
|
<div class="pagination-top">
|
|
{{ template "pagination" .pagination }}
|
|
</div>
|
|
<div class="items">
|
|
{{ range .entries }}
|
|
<article
|
|
class="item entry-item {{ if $.user.EntrySwipe }}entry-swipe{{ end }} item-status-{{ .Status }}"
|
|
data-id="{{ .ID }}"
|
|
aria-labelledby="entry-title-{{ .ID }}"
|
|
>
|
|
<header class="item-header" dir="auto">
|
|
<h2 id="entry-title-{{ .ID }}" class="item-title">
|
|
<a
|
|
{{ if $.showOnlyUnreadEntries }}
|
|
href="{{ route "unreadFeedEntry" "feedID" .Feed.ID "entryID" .ID }}"
|
|
{{ else }}
|
|
href="{{ route "feedEntry" "feedID" .Feed.ID "entryID" .ID }}"
|
|
{{ end }}
|
|
>
|
|
{{ if ne .Feed.Icon.IconID 0 }}
|
|
<img src="{{ route "icon" "iconID" .Feed.Icon.IconID }}" width="16" height="16" loading="lazy" alt="{{ .Feed.Title }}">
|
|
{{ else }}
|
|
<span class="sr-only">{{ .Feed.Title }}</span>
|
|
{{ end }}
|
|
{{ .Title }}
|
|
</a>
|
|
</h2>
|
|
<span class="category">
|
|
<a
|
|
href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}"
|
|
aria-label="{{ t "page.category_label" .Feed.Category.Title }}"
|
|
>
|
|
{{ .Feed.Category.Title }}
|
|
</a>
|
|
</span>
|
|
</header>
|
|
{{ template "item_meta" dict "user" $.user "entry" . "hasSaveEntry" $.hasSaveEntry }}
|
|
</article>
|
|
{{ end }}
|
|
</div>
|
|
<section class="page-footer">
|
|
{{ if .entries }}
|
|
<ul>
|
|
<li>
|
|
<a href="#"
|
|
data-action="markPageAsRead"
|
|
data-label-question="{{ t "confirm.question" }}"
|
|
data-label-yes="{{ t "confirm.yes" }}"
|
|
data-label-no="{{ t "confirm.no" }}"
|
|
data-label-loading="{{ t "confirm.loading" }}"
|
|
data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">{{ icon "mark-page-as-read" }}{{ t "menu.mark_page_as_read" }}</a>
|
|
</li>
|
|
</ul>
|
|
{{ end }}
|
|
</section>
|
|
<div class="pagination-bottom">
|
|
{{ template "pagination" .pagination }}
|
|
</div>
|
|
{{ end }}
|
|
|
|
{{ end }}
|