Just barely get the data saveable again
Starting to see some pretty serious limitations already.
This commit is contained in:
parent
56d0a53666
commit
c075b7ed6e
|
@ -275,26 +275,40 @@ impl DayEdit {
|
||||||
s.set_orientation(gtk::Orientation::Vertical);
|
s.set_orientation(gtk::Orientation::Vertical);
|
||||||
s.set_hexpand(true);
|
s.set_hexpand(true);
|
||||||
|
|
||||||
/*, move |weight| {
|
|
||||||
on_update_record(Record {
|
|
||||||
id: id.clone(),
|
|
||||||
data: ft_core::TraxRecord::Weight(ft_core::Weight { date, weight }),
|
|
||||||
})
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*, move |weight| {
|
|
||||||
on_put_record(ft_core::TraxRecord::Weight(ft_core::Weight {
|
|
||||||
date,
|
|
||||||
weight,
|
|
||||||
}));
|
|
||||||
}*/
|
|
||||||
|
|
||||||
s.append(
|
s.append(
|
||||||
&ActionGroup::builder()
|
&ActionGroup::builder()
|
||||||
.primary_action("Save", {
|
.primary_action("Save", {
|
||||||
let s = s.clone();
|
let s = s.clone();
|
||||||
|
let records = records.clone();
|
||||||
move || {
|
move || {
|
||||||
println!("weight value: {:?}", s.imp().weight.value());
|
println!("saving to database");
|
||||||
|
let weight_record = records.iter().find_map(|record| match record {
|
||||||
|
Record {
|
||||||
|
id,
|
||||||
|
data: ft_core::TraxRecord::Weight(w),
|
||||||
|
} => Some((id, w)),
|
||||||
|
_ => None,
|
||||||
|
});
|
||||||
|
|
||||||
|
let weight = s.imp().weight.value();
|
||||||
|
|
||||||
|
if let Some(weight) = weight {
|
||||||
|
match weight_record {
|
||||||
|
Some((id, _)) => on_update_record(Record {
|
||||||
|
id: id.clone(),
|
||||||
|
data: ft_core::TraxRecord::Weight(ft_core::Weight {
|
||||||
|
date,
|
||||||
|
weight,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
None => {
|
||||||
|
on_put_record(ft_core::TraxRecord::Weight(ft_core::Weight {
|
||||||
|
date,
|
||||||
|
weight,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.secondary_action("Cancel", on_cancel)
|
.secondary_action("Cancel", on_cancel)
|
||||||
|
|
|
@ -54,6 +54,7 @@ impl DayDetailView {
|
||||||
|
|
||||||
*s.imp().date.borrow_mut() = date;
|
*s.imp().date.borrow_mut() = date;
|
||||||
*s.imp().records.borrow_mut() = records;
|
*s.imp().records.borrow_mut() = records;
|
||||||
|
*s.imp().app.borrow_mut() = Some(app);
|
||||||
|
|
||||||
s.append(&s.imp().container);
|
s.append(&s.imp().container);
|
||||||
|
|
||||||
|
@ -105,6 +106,7 @@ impl DayDetailView {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_put_record(&self) -> Box<dyn Fn(ft_core::TraxRecord)> {
|
fn on_put_record(&self) -> Box<dyn Fn(ft_core::TraxRecord)> {
|
||||||
|
let s = self.clone();
|
||||||
let app = self.imp().app.clone();
|
let app = self.imp().app.clone();
|
||||||
Box::new(move |record| {
|
Box::new(move |record| {
|
||||||
let app = app.clone();
|
let app = app.clone();
|
||||||
|
@ -118,23 +120,29 @@ impl DayDetailView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
s.view();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_update_record(&self) -> Box<dyn Fn(Record<ft_core::TraxRecord>)> {
|
fn on_update_record(&self) -> Box<dyn Fn(Record<ft_core::TraxRecord>)> {
|
||||||
|
let s = self.clone();
|
||||||
let app = self.imp().app.clone();
|
let app = self.imp().app.clone();
|
||||||
Box::new(move |record| {
|
Box::new(move |record| {
|
||||||
let app = app.clone();
|
let app = app.clone();
|
||||||
glib::spawn_future_local({
|
glib::spawn_future_local({
|
||||||
async move {
|
async move {
|
||||||
|
println!("record: {:?}", record);
|
||||||
match &*app.borrow() {
|
match &*app.borrow() {
|
||||||
Some(app) => {
|
Some(app) => {
|
||||||
let _ = app.update_record(record).await;
|
let _ = app.update_record(record).await;
|
||||||
}
|
}
|
||||||
None => {}
|
None => {
|
||||||
|
println!("no app!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
s.view();
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue