@use plume_models::medias::*; @use templates::base; @use template_utils::*; @use routes::*; @(ctx: BaseContext, medias: Vec<Media>, page: i32, n_pages: i32) @:base(ctx, i18n!(ctx.1, "Your media"), {}, {}, { <h1>@i18n!(ctx.1, "Your media")</h1> <div> <a href="@uri!(medias::new)" class="inline-block button">@i18n!(ctx.1, "Upload")</a> </div> @if medias.is_empty() { <p>@i18n!(ctx.1, "You don't have any media yet.")</p> } <div class="cards spaced"> @for media in medias { <div class="card"> <div class="cover media-preview @media.category().to_string()" @if media.category() == MediaCategory::Image { style="background-image: url('@media.url(ctx.0).unwrap_or_default()')" } ></div> <main> <p class="p-summary">@media.alt_text</p> @if let Some(cw) = media.content_warning { <p>@i18n!(ctx.1, "Content warning: {0}"; cw)</p> } </main> <footer> <form action="@uri!(medias::delete: id = media.id)" class="inline" method="POST"> <input type="submit" value="@i18n!(ctx.1, "Delete")"/> </form> — <a href="@uri!(medias::details: id = media.id)">@i18n!(ctx.1, "Details")</a> </footer> </div> } </div> @paginate(ctx.1, page, n_pages) })