album/templates/search.rs.html
2023-01-28 12:51:34 +01:00

45 lines
1.9 KiB
HTML

@use super::{base_html, data_positions_html, photo_link_html};
@use crate::models::Coord;
@use crate::server::{Context, PhotoLink};
@use crate::server::search::SearchQuery;
@(context: &Context, query: &SearchQuery, n: usize, photos: &[PhotoLink], coords: &[(Coord, i32)])
@:base_html(context, "Search", &[], {}, {
<main>
<h1>Search@if n > 0 { <small class="n_hits">(@n hits)</small>}</h1>
<form class="search" action="/search/" method="get">
<label for="s_q" accesskey="s" title="Search">🔍</label>
<div class="refs">
@for p in &query.p {
<label class="@if !p.inc {not }p">@p.item.person_name <input type="checkbox" name="p" value="@if !p.inc {!}@p.item.slug" checked/></label>
}
@for t in &query.t {
<label class="@if !t.inc {not }t">@t.item.tag_name <input type="checkbox" name="t" value="@if !t.inc {!}@t.item.slug" checked/></label>
}
@for l in &query.l {
<label class="@if !l.inc {not }l">@l.item.place_name <input type="checkbox" name="l" value="@if !l.inc {!}@l.item.slug" checked/></label>
}
@if let Some(pos) = &query.pos {
<label@if !pos { class="not"}>pos <input type="checkbox" name="pos" value="@if !pos {!}t" checked/></label>
}
<input id="s_q" name="q" type="search"/>
</div>
<div class="time">
<span><input type="date" name="since_date" value="@query.since.date_val()">
<input type="time" name="since_time" value="@query.since.time_val()" step="1"></span>
-
<span><input type="date" name="until_date" value="@query.until.date_val()">
<input type="time" name="until_time" value="@query.until.time_val()" step="1"></span>
</div>
</form>
@if !query.q.is_empty() {
<p>Sorry, no raw queries supported yet.
Try selection some suggestions
(javascript is needed for this, sorry again).</p>
}
<div class="group"@:data_positions_html(coords)>
@for p in photos {@:photo_link_html(p)}
</div>
</main>
})