barebones freetext field
This commit is contained in:
parent
4e2fab67c5
commit
7b2ca09133
4 changed files with 37 additions and 2 deletions
3
migrations/demo.db/0006_contact-text-body.sql
Normal file
3
migrations/demo.db/0006_contact-text-body.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
alter table contacts
|
||||||
|
add column
|
||||||
|
text_body text;
|
||||||
3
migrations/each_user/0006_contact-text-body.sql
Normal file
3
migrations/each_user/0006_contact-text-body.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
alter table contacts
|
||||||
|
add column
|
||||||
|
text_body text;
|
||||||
|
|
@ -93,6 +93,12 @@ mod get {
|
||||||
.fetch_all(pool)
|
.fetch_all(pool)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
|
let text_body: Option<String> =
|
||||||
|
sqlx::query!("select text_body from contacts where id = $1", contact_id)
|
||||||
|
.fetch_one(pool)
|
||||||
|
.await?
|
||||||
|
.text_body;
|
||||||
|
|
||||||
Ok(layout.render(
|
Ok(layout.render(
|
||||||
Some(vec!["/static/contact.css", "/static/journal.css"]),
|
Some(vec!["/static/contact.css", "/static/journal.css"]),
|
||||||
html! {
|
html! {
|
||||||
|
|
@ -149,6 +155,13 @@ mod get {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@if let Some(text_body) = text_body {
|
||||||
|
@if text_body.len() > 0 {
|
||||||
|
#text_body { (PreEscaped(markdown::to_html(&text_body))) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
(journal_section(pool, &entries).await?)
|
(journal_section(pool, &entries).await?)
|
||||||
},
|
},
|
||||||
))
|
))
|
||||||
|
|
@ -190,6 +203,14 @@ mod get {
|
||||||
.manually_freshened_at
|
.manually_freshened_at
|
||||||
.clone()
|
.clone()
|
||||||
.map_or("".to_string(), |m| m.to_rfc3339());
|
.map_or("".to_string(), |m| m.to_rfc3339());
|
||||||
|
|
||||||
|
let text_body: String =
|
||||||
|
sqlx::query!("select text_body from contacts where id = $1", contact_id)
|
||||||
|
.fetch_one(pool)
|
||||||
|
.await?
|
||||||
|
.text_body
|
||||||
|
.unwrap_or(String::new());
|
||||||
|
|
||||||
Ok(layout.render(Some(vec!["/static/contact.css"]), html! {
|
Ok(layout.render(Some(vec!["/static/contact.css"]), html! {
|
||||||
form hx-ext="response-targets" {
|
form hx-ext="response-targets" {
|
||||||
div {
|
div {
|
||||||
|
|
@ -240,6 +261,7 @@ mod get {
|
||||||
input type="button" value="Add" x-on:click="addresses.push({ label: new_label, value: new_address }); new_label = ''; new_address = ''";
|
input type="button" value="Add" x-on:click="addresses.push({ label: new_label, value: new_address }); new_label = ''; new_address = ''";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
textarea name="text_body" { (text_body) }
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
@ -279,6 +301,7 @@ mod put {
|
||||||
manually_freshened_at: String,
|
manually_freshened_at: String,
|
||||||
address_label: Option<Vec<String>>,
|
address_label: Option<Vec<String>>,
|
||||||
address_value: Option<Vec<String>>,
|
address_value: Option<Vec<String>>,
|
||||||
|
text_body: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn contact(
|
pub async fn contact(
|
||||||
|
|
@ -307,10 +330,17 @@ mod put {
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let text_body = if payload.text_body.is_empty() {
|
||||||
|
None
|
||||||
|
} else {
|
||||||
|
Some(payload.text_body)
|
||||||
|
};
|
||||||
|
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
"update contacts set (birthday, manually_freshened_at) = ($1, $2) where id = $3",
|
"update contacts set (birthday, manually_freshened_at, text_body) = ($1, $2, $3) where id = $4",
|
||||||
birthday,
|
birthday,
|
||||||
manually_freshened_at,
|
manually_freshened_at,
|
||||||
|
text_body,
|
||||||
contact_id
|
contact_id
|
||||||
)
|
)
|
||||||
.execute(pool)
|
.execute(pool)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abb
|
||||||
body {
|
body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
font-size: 24px;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue