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> |