26 lines
		
	
	
		
			855 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			855 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
@use plume_models::medias::*;
 | 
						|
@use crate::template_utils::*;
 | 
						|
 | 
						|
@(ctx: BaseContext, id: &str, title: String, optional: bool, medias: Vec<Media>, selected: Option<i32>)
 | 
						|
 | 
						|
<label for="@id" dir="auto">
 | 
						|
	@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 } dir="auto">
 | 
						|
                @if !media.alt_text.is_empty() {
 | 
						|
                    @media.alt_text
 | 
						|
                } else {
 | 
						|
                    @media.content_warning.unwrap_or(i18n!(ctx.1, "No description"))
 | 
						|
                }
 | 
						|
            </option>
 | 
						|
        }
 | 
						|
    }
 | 
						|
</select>
 |