eff2698664
* Slightly improve the media experience - Use a grid to display the list of media - Add icons for non-image media preview - Paginate the gallery - Add links to the gallery in the editor and in the profile settings to make it more discoverable when you need it Fixes #432 * Allow video and audio tags in SafeString Otherwise we can't display their preview, nor show them in articles Also show controls by default for these two elements * Show fallback images for audio and unknown files, to make them more visible * Add a new constructor to SafeString when the input is trusted and doesn't need to be escaped. And use it to generate media previews. * Make it possible to insert video/audio in articles
39 lines
1.4 KiB
HTML
39 lines
1.4 KiB
HTML
@use plume_models::medias::{Media, MediaCategory};
|
|
@use plume_models::safe_string::SafeString;
|
|
@use templates::base;
|
|
@use template_utils::*;
|
|
@use routes::*;
|
|
|
|
@(ctx: BaseContext, media: Media)
|
|
|
|
@:base(ctx, i18n!(ctx.1, "Media details"), {}, {}, {
|
|
<h1>@i18n!(ctx.1, "Media details")</h1>
|
|
<section>
|
|
<a href="@uri!(medias::list: page = _)">@i18n!(ctx.1, "Go back to the gallery")</a>
|
|
</section>
|
|
|
|
<section>
|
|
<figure class="media">
|
|
@Html(media.html(ctx.0).unwrap_or(SafeString::new("")))
|
|
<figcaption>@media.alt_text</figcaption>
|
|
</figure>
|
|
<div>
|
|
<p>
|
|
@i18n!(ctx.1, "Markdown syntax")
|
|
<small>@i18n!(ctx.1, "Copy it into your articles, to insert this media:")</small>
|
|
</p>
|
|
<code>@media.markdown(ctx.0).unwrap_or(SafeString::new(""))</code>
|
|
</div>
|
|
<div>
|
|
@if media.category() == MediaCategory::Image {
|
|
<form class="inline" method="post" action="@uri!(medias::set_avatar: id = media.id)">
|
|
<input class="button" type="submit" value="@i18n!(ctx.1, "Use as avatar")">
|
|
</form>
|
|
}
|
|
<form class="inline" method="post" action="@uri!(medias::delete: id = media.id)">
|
|
<input class="button" type="submit" value="@i18n!(ctx.1, "Delete")">
|
|
</form>
|
|
</div>
|
|
</section>
|
|
})
|