aboutsummaryrefslogtreecommitdiff
path: root/internal/template/templates/views/feed_entries.html
blob: 9235ac60ce98350b0938f4b5427d71bcf9756189 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
{{ 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 class="alert alert-error">
    <h3>{{ t "alert.feed_error" }}</h3>
    <p>{{ t .feed.ParsingErrorMsg }}</p>
</div>
{{ end }}

{{ if not .entries }}
    {{ if .showOnlyUnreadEntries }}
        <p class="alert">{{ t "alert.no_unread_entry" }}</p>
    {{ else }}
        <p 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 }}