1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-01 17:38:37 +00:00
miniflux-v2/internal/template/templates/common/feed_list.html
Sangeeth Sudheer e40446ad3c fix(ui): Redirect correctly post feed removal from category feeds list
Currently, removing a feed from `/category/{id}/feeds` redirects incorrectly to `/feeds`. This change fixes it so that
removing a feed will now correctly redirect to `/category/{id}/feeds`. Removing a feed from `/feeds` is unaffected and
will work as it does currently.

To fix this, a new UI endpoint `/category/{categoryID}/feed/{feedID}/remove` is added and a corresponding handler method
to validate and perform the removal from DB.
2025-01-27 17:43:54 -08:00

98 lines
5.8 KiB
HTML

{{ define "feed_list" }}
<div class="items">
{{ range .feeds }}
<article
class="item feed-item {{ if ne .ParsingErrorCount 0 }}feed-parsing-error{{ else if ne .UnreadCount 0 }}feed-has-unread{{ end }}"
aria-labelledby="feed-title-{{ .ID }} feed-entries-counter"
tabindex="-1"
>
<header class="item-header" dir="auto">
<h2 id="feed-title-{{ .ID }}" class="item-title">
<a href="{{ route "feedEntries" "feedID" .ID }}">
{{ if and (.Icon) (gt .Icon.IconID 0) }}
<img src="{{ route "icon" "iconID" .Icon.IconID }}" width="16" height="16" loading="lazy" alt="">
{{ end }}
{{ if .Disabled }} 🚫 {{ end }}
{{ .Title }}
</a>
</h2>
<span id="feed-entries-counter" class="feed-entries-counter">
<span aria-hidden="true">(</span>
<span class="sr-only">{{ plural "page.unread_entry_count" .UnreadCount .UnreadCount }}</span>
<span aria-hidden="true">{{ .UnreadCount }}</span>
<span aria-hidden="true">/</span>
<span class="sr-only">{{ plural "page.total_entry_count" .NumberOfVisibleEntries .NumberOfVisibleEntries }}</span>
<span aria-hidden="true">{{ .NumberOfVisibleEntries }}</span>
<span aria-hidden="true">)</span>
</span>
<span class="category">
<a id="feed-category-{{ .ID }}"
href="{{ route "categoryEntries" "categoryID" .Category.ID }}"
aria-label="{{ t "page.category_label" .Category.Title }}"
>
{{ .Category.Title }}
</a>
</span>
</header>
<div class="item-meta">
<ul class="item-meta-info">
<li class="item-meta-info-site-url" dir="auto">
<a href="{{ .SiteURL | safeURL }}" title="{{ .SiteURL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="{{ $.user.MarkReadOnView }}">{{ domain .SiteURL }}</a>
</li>
<li class="item-meta-info-checked-at">
{{ t "page.feeds.last_check" }} <time datetime="{{ isodate .CheckedAt }}" title="{{ isodate .CheckedAt }}">{{ elapsed $.user.Timezone .CheckedAt }}</time>
</li>
{{ $nextCheckDuration := duration .NextCheckAt }}
{{ if ne $nextCheckDuration "" }}
<li class="item-meta-info-next-check-at">
{{ t "page.feeds.next_check" }} <time datetime="{{ isodate .NextCheckAt }}" title="{{ isodate .NextCheckAt }}">{{ $nextCheckDuration }}</time>
</li>
{{ end }}
</ul>
<ul class="item-meta-icons">
<li class="item-meta-icons-refresh">
<a href="{{ route "refreshFeed" "feedID" .ID }}"
aria-describedby="feed-title-{{ .ID }}">{{ icon "refresh" }}<span class="icon-label">{{ t "menu.refresh_feed" }}</span></a>
</li>
<li class="item-meta-icons-edit">
<a href="{{ route "editFeed" "feedID" .ID }}"
aria-describedby="feed-title-{{ .ID }}">{{ icon "edit" }}<span class="icon-label">{{ t "menu.edit_feed" }}</span></a>
</li>
<li class="item-meta-icons-remove">
<button
aria-describedby="feed-title-{{ .ID }}"
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" }}"
{{ if $.categoryID }}
data-url="{{ route "removeCategoryFeed" "categoryID" $.categoryID "feedID" .ID }}"
{{ else }}
data-url="{{ route "removeFeed" "feedID" .ID }}"
{{ end }}>{{ icon "delete" }}<span class="icon-label">{{ t "action.remove" }}</span></button>
</li>
{{ if .UnreadCount }}
<li class="item-meta-icons-mark-as-read">
<button
aria-describedby="feed-title-{{ .ID }}"
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" .ID }}">{{ icon "read" }}<span class="icon-label">{{ t "menu.mark_all_as_read" }}</span></button>
</li>
{{ end }}
</ul>
</div>
{{ if ne .ParsingErrorCount 0 }}
<div class="parsing-error">
<strong title="{{ .ParsingErrorMsg }}" class="parsing-error-count">{{ plural "page.feeds.error_count" .ParsingErrorCount .ParsingErrorCount }}</strong>
- <small class="parsing-error-message">{{ .ParsingErrorMsg }}</small>
</div>
{{ end }}
</article>
{{ end }}
</div>
{{ end }}