From 2ff2d07b5ed265d0f4ce095002484fe771e51dae Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 25 Dec 2023 21:06:47 +0100 Subject: watchlist and some small fixes --- server/src/routes/ui/node.rs | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'server/src/routes/ui/node.rs') diff --git a/server/src/routes/ui/node.rs b/server/src/routes/ui/node.rs index 7f80ea2..795effa 100644 --- a/server/src/routes/ui/node.rs +++ b/server/src/routes/ui/node.rs @@ -12,7 +12,7 @@ use crate::{ database::Database, routes::{ api::AcceptJson, - progress::rocket_uri_macro_r_player_watched, + progress::{rocket_uri_macro_r_player_watched, UrlWatchedState}, ui::{ account::session::Session, assets::AssetRole, @@ -114,17 +114,24 @@ markup::define! { h1 { @node.title } @if node.media.is_some() { a.play[href=&uri!(r_player(id, PlayerConfig::default()))] { "Watch now" }} @if !matches!(node.kind.unwrap_or_default(), NodeKind::Collection | NodeKind::Channel) { - @match udata.watched { - WatchedState::None | - WatchedState::Progress(_) => { - form.mark_watched[method="POST", action=uri!(r_player_watched(id, true))] { - input[type="submit", value="Mark Watched"]; - } + @if matches!(udata.watched, WatchedState::None | WatchedState::Pending | WatchedState::Progress(_)) { + form.mark_watched[method="POST", action=uri!(r_player_watched(id, UrlWatchedState::Watched))] { + input[type="submit", value="Mark Watched"]; } - WatchedState::Watched => { - form.mark_unwatched[method="POST", action=uri!(r_player_watched(id, false))] { - input[type="submit", value="Mark Unwatched"]; - } + } + @if matches!(udata.watched, WatchedState::Watched) { + form.mark_unwatched[method="POST", action=uri!(r_player_watched(id, UrlWatchedState::None))] { + input[type="submit", value="Mark Unwatched"]; + } + } + @if matches!(udata.watched, WatchedState::None) { + form.mark_unwatched[method="POST", action=uri!(r_player_watched(id, UrlWatchedState::Pending))] { + input[type="submit", value="Add to Watchlist"]; + } + } + @if matches!(udata.watched, WatchedState::Pending) { + form.mark_unwatched[method="POST", action=uri!(r_player_watched(id, UrlWatchedState::None))] { + input[type="submit", value="Remove from Watchlist"]; } } } @@ -199,6 +206,7 @@ markup::define! { } @match udata.watched { WatchedState::None => {} + WatchedState::Pending => { p.pending { "Watchlisted" } } WatchedState::Progress(x) => { p.progress { "Watched up to " @format_duration(x) } } WatchedState::Watched => { p.watched { "Watched" } } } -- cgit v1.2.3-70-g09d2