Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee295be6a7 | ||
|
|
d161677155 | ||
|
|
8229dbf4c2 | ||
|
|
3de069f41d | ||
|
|
ab3a649646 |
Generated
+1
-1
@@ -2948,7 +2948,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "portal"
|
||||
version = "0.3.14"
|
||||
version = "0.3.17"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arc-swap",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "portal"
|
||||
version = "0.3.14"
|
||||
version = "0.3.17"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
|
||||
@@ -92,6 +92,18 @@ pub async fn sweep(state: &AppState) -> anyhow::Result<()> {
|
||||
Some(a) => a,
|
||||
};
|
||||
|
||||
// Content is the source of truth while the window is still
|
||||
// open: a corrected date or place flows into the record, so the
|
||||
// followup fires on the schedule the page actually announces.
|
||||
if answer.state == schema.initial && answer.responses != responses {
|
||||
let mut refreshed = answer.clone();
|
||||
refreshed.responses = responses.clone();
|
||||
if let Some(store) = &store {
|
||||
store.put(&id, serde_json::to_vec(&refreshed)?.into()).await?;
|
||||
tracing::info!(question = %q.id, "event record refreshed from content");
|
||||
}
|
||||
}
|
||||
|
||||
if answer.state == schema.initial && now_ms >= ends {
|
||||
let target = "awaiting_summary";
|
||||
let payload = serde_json::json!({ "to": target, "item": id, "by": "portal" });
|
||||
|
||||
+16
-1
@@ -1244,6 +1244,20 @@ fn AlternativeCard(
|
||||
.into_any();
|
||||
}
|
||||
|
||||
if req.kind == "hidden" {
|
||||
// A carrier value only — no label row, or a
|
||||
// preset key reads as a second visible field.
|
||||
return view! {
|
||||
<input
|
||||
id=field_id
|
||||
type="hidden"
|
||||
prop:value=move || sig.get()
|
||||
on:input=move |ev| sig.set(event_target_value(&ev))
|
||||
/>
|
||||
}
|
||||
.into_any();
|
||||
}
|
||||
|
||||
view! {
|
||||
<label class="field" for=label_for>
|
||||
{label_text}
|
||||
@@ -1571,7 +1585,8 @@ fn ItemCard(item: serde_json::Value) -> impl IntoView {
|
||||
</div>
|
||||
}
|
||||
})}
|
||||
{description.map(|d| view! { <p class="item-card-description">{d}</p> })}
|
||||
{description
|
||||
.map(|d| view! { <p class="item-card-description" inner_html=render_inline_markdown(&d)></p> })}
|
||||
{audio.map(|src| view! { <audio class="item-card-audio" controls preload="none" src=src></audio> })}
|
||||
{(!extra.is_empty())
|
||||
.then(|| {
|
||||
|
||||
Reference in New Issue
Block a user