45 lines
1.9 KiB
HTML
45 lines
1.9 KiB
HTML
@use super::{base, data_positions, photo_link};
|
|
@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(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(coords)>
|
|
@for p in photos {@:photo_link(p)}
|
|
</div>
|
|
</main>
|
|
})
|