refactor: extract inline JS to modules

This commit is contained in:
2026-05-25 01:16:02 +02:00
parent 83f64a1dfe
commit 6932d4b8d0
12 changed files with 608 additions and 220 deletions

View File

@@ -1,6 +1,6 @@
{{define "title"}}Watch {{.Anime.Title}}{{end}}
{{define "content"}}
{{if .WatchlistIDs}}<script>initWatchlist({{.WatchlistIDs}})</script>{{end}}
{{if .WatchlistIDs}}<script>window.__WATCHLIST_IDS__={{.WatchlistIDs}}</script>{{end}}
{{$anime := .Anime}}
{{$episodes := .Episodes}}
{{$currentEpID := .CurrentEpID}}
@@ -28,16 +28,48 @@
</div>
<div data-content class="hidden absolute z-50 min-w-40 bg-background-button shadow-[var(--shadow-card)] right-0 top-full mt-2">
<div class="flex flex-col py-1">
<button data-unstyled-button class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover" onclick="updateWatchlist({{$anime.MalID}}, 'watching', 'Watching', '{{$anime.Title}}', this)">
<button
data-unstyled-button
data-watchlist-update
data-mal-id="{{$anime.MalID}}"
data-watchlist-status="watching"
data-watchlist-display="Watching"
data-watchlist-title="{{$anime.Title}}"
class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover disabled:opacity-50"
>
<span class="text-sm text-foreground">Watching</span>
</button>
<button data-unstyled-button class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover" onclick="updateWatchlist({{$anime.MalID}}, 'completed', 'Completed', '{{$anime.Title}}', this)">
<button
data-unstyled-button
data-watchlist-update
data-mal-id="{{$anime.MalID}}"
data-watchlist-status="completed"
data-watchlist-display="Completed"
data-watchlist-title="{{$anime.Title}}"
class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover disabled:opacity-50"
>
<span class="text-sm text-foreground">Completed</span>
</button>
<button data-unstyled-button class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover" onclick="updateWatchlist({{$anime.MalID}}, 'plan_to_watch', 'Plan to Watch', '{{$anime.Title}}', this)">
<button
data-unstyled-button
data-watchlist-update
data-mal-id="{{$anime.MalID}}"
data-watchlist-status="plan_to_watch"
data-watchlist-display="Plan to Watch"
data-watchlist-title="{{$anime.Title}}"
class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover disabled:opacity-50"
>
<span class="text-sm text-foreground">Plan to Watch</span>
</button>
<button data-unstyled-button class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover" onclick="updateWatchlist({{$anime.MalID}}, 'dropped', 'Dropped', '{{$anime.Title}}', this)">
<button
data-unstyled-button
data-watchlist-update
data-mal-id="{{$anime.MalID}}"
data-watchlist-status="dropped"
data-watchlist-display="Dropped"
data-watchlist-title="{{$anime.Title}}"
class="flex w-full items-center px-5 py-2.5 transition-colors focus:outline-none hover:bg-surface-hover disabled:opacity-50"
>
<span class="text-sm text-foreground">Dropped</span>
</button>
{{template "watchlist_remove_button" dict