diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 73cf921..d123989 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,8 +10,7 @@
-
-
+
@@ -53,6 +52,7 @@
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
"Cargo.Run bookkeeper.executor": "Run",
"DefaultHtmlFileTemplate": "HTML File",
+ "PowerShell.deploy.ps1.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.git.unshallow": "true",
"RunOnceActivity.rust.reset.selective.auto.import": "true",
@@ -133,6 +133,15 @@
+
+
+
+
+
+
+
+
+
@@ -158,7 +167,9 @@
-
+
+
+
@@ -288,7 +299,15 @@
1740216327515
-
+
+
+ 1741618500678
+
+
+
+ 1741618500678
+
+
@@ -322,7 +341,8 @@
-
+
+
diff --git a/bookkeeper/Cargo.lock b/bookkeeper/Cargo.lock
index 972b434..fb6e299 100644
--- a/bookkeeper/Cargo.lock
+++ b/bookkeeper/Cargo.lock
@@ -481,7 +481,7 @@ dependencies = [
[[package]]
name = "bookkeeper"
-version = "0.3.0"
+version = "0.4.0"
dependencies = [
"bcrypt",
"chrono",
diff --git a/bookkeeper/Cargo.toml b/bookkeeper/Cargo.toml
index 49dea79..3daf444 100644
--- a/bookkeeper/Cargo.toml
+++ b/bookkeeper/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "bookkeeper"
-version = "0.3.0"
+version = "0.4.0"
edition = "2021"
[dependencies]
diff --git a/bookkeeper/src/main.rs b/bookkeeper/src/main.rs
index f5a02b7..ea83b21 100644
--- a/bookkeeper/src/main.rs
+++ b/bookkeeper/src/main.rs
@@ -538,6 +538,25 @@ fn translate(trans: Form) -> transaction::ActiveModel {
record
}
+#[get("/stock/")]
+async fn get_stock(
+ conn: Connection<'_, Db>,
+ id: i32,
+ cookies: &CookieJar<'_>,
+) -> Result {
+ if !verify(cookies) {
+ return Err(Status::Forbidden);
+ }
+ let row = TE::find()
+ .filter(transaction::Column::Code.eq(id))
+ .one(conn.into_inner()).await.unwrap();
+ match row {
+ None => Ok(String::from("")),
+ Some(row) => Ok(row.name),
+ }
+}
+
+
async fn run_migrations(rocket: Rocket) -> fairing::Result {
let conn = &Db::fetch(&rocket).unwrap().conn;
let _ = migration::Migrator::up(conn, None).await;
@@ -565,7 +584,7 @@ async fn rocket() -> _ {
"/",
routes![
index, add, get_add, get_tx, post_tx, delete_tx, login_page, login_post, post_ftx,
- get_ftx
+ get_ftx, get_stock
],
)
.mount("/static", FileServer::from("static"))
diff --git a/bookkeeper/templates/index.html.j2 b/bookkeeper/templates/index.html.j2
index 7177a40..e6abeae 100644
--- a/bookkeeper/templates/index.html.j2
+++ b/bookkeeper/templates/index.html.j2
@@ -130,6 +130,7 @@
}
document.getElementById('modal-content').innerHTML = await response.text();
openModal($target);
+ injectCodeEvent();
});
document.getElementById('ftx').addEventListener('click', async () => {
@@ -140,6 +141,7 @@
}
document.getElementById('modal-content').innerHTML = await response.text();
openModal($target);
+ injectCodeEvent();
});
(document.querySelectorAll('.modify-row') || []).forEach(($cl) => {
@@ -209,6 +211,20 @@
}
}
+ function injectCodeEvent() {
+ const $target = document.getElementById('code');
+ $target.addEventListener('blur', (event) => {
+ fetch(`/stock/${$target.value}`).then((resp) => {
+ return resp.text();
+ }).then((text) => {
+ if (text.trim().length > 0) {
+ const $update = document.getElementById('name');
+ $update.value = text;
+ }
+ })
+ });
+ }
+