Also adds a parameter to `md_to_html` to only render inline elements (so that we don't have titles or images in blog descriptions). And moves the delete button for the blog on the edition page. I still have to update the SQLite migration once others PRs with migrations will be merged. Also, there will be a problem when you edit a blog while not owning its banner or icon: when validating they will be reset to their default values… I don't see a good solution to this until we have a better way to handle uploads with Rocket (the same is probably happening for articles btw). And the icon/banner are not federated yet, I don't know if I should add it to this PR or if it can come after?   Fixes #453 Fixes #454
25 lines
825 B
HTML
25 lines
825 B
HTML
@use template_utils::*;
|
|
@use plume_models::medias::*;
|
|
|
|
@(ctx: BaseContext, id: &str, title: String, optional: bool, medias: Vec<Media>, selected: Option<i32>)
|
|
|
|
<label for="@id">
|
|
@title
|
|
@if optional {
|
|
<small>@i18n!(ctx.1, "Optional")</small>
|
|
}
|
|
</label>
|
|
<select id="@id" name="@id">
|
|
<option value="none" @if selected.is_none() { selected }>@i18n!(ctx.1, "None")</option>
|
|
@for media in medias {
|
|
@if media.category() == MediaCategory::Image {
|
|
<option value="@media.id" @if selected.map(|c| c == media.id).unwrap_or(false) { selected }>
|
|
@if !media.alt_text.is_empty() {
|
|
@media.alt_text
|
|
} else {
|
|
@media.content_warning.unwrap_or(i18n!(ctx.1, "No description"))
|
|
}
|
|
</option>
|
|
}
|
|
}
|
|
</select> |