mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-29 20:44:25 +00:00
delegate result handle to the transaction initiator
This commit is contained in:
parent
a1f2d57b6d
commit
47e2bc4617
18
src/app.rs
18
src/app.rs
@ -120,7 +120,11 @@ impl App {
|
|||||||
match Database::records(&transaction) {
|
match Database::records(&transaction) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
browser.restore(&transaction, &record.id);
|
if let Err(e) =
|
||||||
|
browser.restore(&transaction, &record.id)
|
||||||
|
{
|
||||||
|
todo!("{e}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => todo!("{e}"),
|
||||||
@ -158,7 +162,11 @@ impl App {
|
|||||||
match Database::delete(&transaction, &record.id) {
|
match Database::delete(&transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
browser.clean(&transaction, &record.id);
|
if let Err(e) =
|
||||||
|
browser.clean(&transaction, &record.id)
|
||||||
|
{
|
||||||
|
todo!("{e}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => todo!("{e}"),
|
||||||
}
|
}
|
||||||
@ -168,10 +176,12 @@ impl App {
|
|||||||
match Database::add(&transaction) {
|
match Database::add(&transaction) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
// Delegate save action to childs
|
||||||
browser.save(
|
if let Err(e) = browser.save(
|
||||||
&transaction,
|
&transaction,
|
||||||
&Database::last_insert_id(&transaction),
|
&Database::last_insert_id(&transaction),
|
||||||
);
|
) {
|
||||||
|
todo!("{e}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => todo!("{e}"),
|
||||||
}
|
}
|
||||||
|
@ -191,54 +191,84 @@ impl Browser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn clean(&self, tx: &Transaction, app_id: &i64) {
|
pub fn clean(&self, transaction: &Transaction, app_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_id) {
|
match Database::records(transaction, app_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
match Database::delete(tx, &record.id) {
|
match Database::delete(transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
// @TODO
|
if let Err(e) = self.window.clean(transaction, &record.id) {
|
||||||
// self.header.clean(record.id);
|
return Err(e.to_string());
|
||||||
self.window.clean(tx, &record.id);
|
}
|
||||||
self.widget.clean(tx, &record.id);
|
|
||||||
|
if let Err(e) = self.widget.clean(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @TODO
|
||||||
|
if let Err(e) = self.header.clean(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
} */
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restore(&self, tx: &Transaction, app_id: &i64) {
|
pub fn restore(&self, transaction: &Transaction, app_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_id) {
|
match Database::records(transaction, app_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
// Delegate restore action to childs
|
// Delegate restore action to childs
|
||||||
// @TODO
|
if let Err(e) = self.widget.restore(transaction, &record.id) {
|
||||||
// self.header.restore(record.id);
|
return Err(e.to_string());
|
||||||
self.window.restore(tx, &record.id);
|
}
|
||||||
self.widget.restore(tx, &record.id);
|
|
||||||
|
if let Err(e) = self.window.restore(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @TODO
|
||||||
|
if let Err(e) = self.header.restore(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
} */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, tx: &Transaction, app_id: &i64) {
|
pub fn save(&self, transaction: &Transaction, app_id: &i64) -> Result<(), String> {
|
||||||
match Database::add(tx, app_id) {
|
match Database::add(transaction, app_id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
let id = Database::last_insert_id(transaction);
|
||||||
let id = Database::last_insert_id(tx);
|
|
||||||
|
|
||||||
// @TODO
|
// Delegate save action to childs
|
||||||
// self.header.save(id);
|
if let Err(e) = self.widget.save(transaction, &id) {
|
||||||
self.window.save(tx, &id);
|
return Err(e.to_string());
|
||||||
self.widget.save(tx, &id);
|
}
|
||||||
|
|
||||||
|
if let Err(e) = self.window.save(transaction, &id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @TODO
|
||||||
|
if let Err(e) = self.header.save(transaction, &id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
} */
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
@ -31,25 +31,27 @@ impl Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn clean(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn clean(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_browser_id) {
|
match Database::records(transaction, app_browser_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
match Database::delete(tx, &record.id) {
|
match Database::delete(transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restore(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn restore(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_browser_id) {
|
match Database::records(transaction, app_browser_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
// Restore widget
|
// Restore widget
|
||||||
@ -61,13 +63,15 @@ impl Widget {
|
|||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn save(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::add(
|
match Database::add(
|
||||||
tx,
|
transaction,
|
||||||
app_browser_id,
|
app_browser_id,
|
||||||
&self.gobject.default_width(),
|
&self.gobject.default_width(),
|
||||||
&self.gobject.default_height(),
|
&self.gobject.default_height(),
|
||||||
@ -75,11 +79,13 @@ impl Widget {
|
|||||||
) {
|
) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
// Delegate save action to childs
|
||||||
// let id = self.database.last_insert_id(tx);
|
// let id = self.database.last_insert_id(transaction);
|
||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
@ -80,43 +80,58 @@ impl Window {
|
|||||||
self.tab.update();
|
self.tab.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn clean(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn clean(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_browser_id) {
|
match Database::records(transaction, app_browser_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
match Database::delete(tx, &record.id) {
|
match Database::delete(transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
self.tab.clean(tx, &record.id);
|
if let Err(e) = self.tab.clean(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restore(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn restore(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::records(tx, app_browser_id) {
|
match Database::records(transaction, app_browser_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
// Delegate restore action to childs
|
// Delegate restore action to childs
|
||||||
self.tab.restore(tx, &record.id);
|
if let Err(e) = self.tab.restore(transaction, &record.id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, tx: &Transaction, app_browser_id: &i64) {
|
pub fn save(&self, transaction: &Transaction, app_browser_id: &i64) -> Result<(), String> {
|
||||||
match Database::add(tx, app_browser_id) {
|
match Database::add(transaction, app_browser_id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
// Delegate save action to childs
|
||||||
self.tab.save(tx, &Database::last_insert_id(tx));
|
if let Err(e) = self
|
||||||
|
.tab
|
||||||
|
.save(transaction, &Database::last_insert_id(transaction))
|
||||||
|
{
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
@ -213,46 +213,66 @@ impl Tab {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn clean(&self, tx: &Transaction, app_browser_window_id: &i64) {
|
pub fn clean(
|
||||||
match Database::records(tx, app_browser_window_id) {
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
match Database::records(transaction, app_browser_window_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
match Database::delete(tx, &record.id) {
|
match Database::delete(transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
for (_, item) in self.index.borrow().iter() {
|
for (_, item) in self.index.borrow().iter() {
|
||||||
item.label.clean(tx, &record.id);
|
if let Err(e) = item.label.clean(transaction, &record.id) {
|
||||||
// @TODO item.page.clean(tx, &record.id);
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
// @TODO item.page.clean(transaction, &record.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restore(&self, tx: &Transaction, app_browser_window_id: &i64) {
|
pub fn restore(
|
||||||
match Database::records(tx, app_browser_window_id) {
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
match Database::records(transaction, app_browser_window_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
let item = self.append(None, record.is_current);
|
let item = self.append(None, record.is_current);
|
||||||
// Delegate restore action to childs
|
// Delegate restore action to childs
|
||||||
item.label.restore(tx, &record.id);
|
if let Err(e) = item.label.restore(transaction, &record.id) {
|
||||||
// item.page.restore(tx, record.id);
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
// item.page.restore(transaction, record.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, tx: &Transaction, app_browser_window_id: &i64) {
|
pub fn save(
|
||||||
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
let mut page_number = 0;
|
let mut page_number = 0;
|
||||||
|
|
||||||
for (_, item) in self.index.borrow().iter() {
|
for (_, item) in self.index.borrow().iter() {
|
||||||
match Database::add(
|
match Database::add(
|
||||||
tx,
|
transaction,
|
||||||
app_browser_window_id,
|
app_browser_window_id,
|
||||||
&match self.widget.gobject().current_page() {
|
&match self.widget.gobject().current_page() {
|
||||||
Some(number) => number == page_number,
|
Some(number) => number == page_number,
|
||||||
@ -261,18 +281,22 @@ impl Tab {
|
|||||||
) {
|
) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
// Delegate save action to childs
|
||||||
let id = Database::last_insert_id(tx);
|
let id = Database::last_insert_id(transaction);
|
||||||
|
|
||||||
item.label.save(tx, &id);
|
if let Err(e) = item.label.save(transaction, &id) {
|
||||||
|
return Err(e.to_string());
|
||||||
|
}
|
||||||
|
|
||||||
// @TODO
|
// @TODO
|
||||||
// item.page.save()
|
// item.page.save()
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
page_number += 1;
|
page_number += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
@ -35,25 +35,35 @@ impl Label {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
pub fn clean(&self, tx: &Transaction, app_browser_window_tab_id: &i64) {
|
pub fn clean(
|
||||||
match Database::records(tx, app_browser_window_tab_id) {
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_tab_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
match Database::records(transaction, app_browser_window_tab_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
match Database::delete(tx, &record.id) {
|
match Database::delete(transaction, &record.id) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate clean action to childs
|
// Delegate clean action to childs
|
||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn restore(&self, tx: &Transaction, app_browser_window_tab_id: &i64) {
|
pub fn restore(
|
||||||
match Database::records(tx, app_browser_window_tab_id) {
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_tab_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
match Database::records(transaction, app_browser_window_tab_id) {
|
||||||
Ok(records) => {
|
Ok(records) => {
|
||||||
for record in records {
|
for record in records {
|
||||||
self.pin(record.is_pinned);
|
self.pin(record.is_pinned);
|
||||||
@ -62,18 +72,26 @@ impl Label {
|
|||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn save(&self, tx: &Transaction, app_browser_window_tab_id: &i64) {
|
pub fn save(
|
||||||
match Database::add(tx, app_browser_window_tab_id, &self.is_pinned()) {
|
&self,
|
||||||
|
transaction: &Transaction,
|
||||||
|
app_browser_window_tab_id: &i64,
|
||||||
|
) -> Result<(), String> {
|
||||||
|
match Database::add(transaction, app_browser_window_tab_id, &self.is_pinned()) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
// Delegate save action to childs
|
// Delegate save action to childs
|
||||||
// nothing yet..
|
// nothing yet..
|
||||||
}
|
}
|
||||||
Err(e) => todo!("{e}"),
|
Err(e) => return Err(e.to_string()),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update(&self, title: Option<&GString>) {
|
pub fn update(&self, title: Option<&GString>) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user