Lines
8.33 %
Functions
25 %
Branches
100 %
use crate::app::App;
use crate::form::{Form, FormSubmit, validate};
use crate::modal::{ConfirmAction, Modal};
use crate::view::Tab;
pub(super) fn execute_confirm(app: &mut App, action: ConfirmAction) {
match action {
ConfirmAction::DeleteTransaction(id) => {
app.submit_delete_transaction(&id);
}
pub(super) fn submit_form(app: &mut App, form: Form) {
match validate(&form) {
Err(msg) => {
app.set_status(msg);
app.overlays.push(Modal::Form(form));
Ok(FormSubmit::Report {
kind,
from,
to,
chart,
}) => {
app.switch_tab(Tab::Reports);
app.fetch_report(kind, &from, &to, &chart);
Ok(FormSubmit::ConfigSet { key, value }) => {
if !app.submit_config_set(&key, &value) {
Ok(FormSubmit::CommodityCreate { symbol, name }) => {
if !app.submit_commodity_create(&symbol, &name) {
Ok(FormSubmit::CommodityConvert {
amount_num_denom,
amount_str,
from_label,
to_label,
if !app.submit_commodity_convert(
&amount_num_denom,
&amount_str,
&from,
&from_label,
&to,
&to_label,
) {
Ok(FormSubmit::AccountCreate { name, parent }) => {
if !app.submit_account_create(&name, parent.as_deref()) {
Ok(FormSubmit::TransactionCreate { note, date, splits }) => {
if !app.submit_transaction_create(&splits, ¬e, &date) {
Ok(FormSubmit::TransactionEdit {
id,
note,
date,
splits,
if !app.submit_transaction_edit(&id, &splits, ¬e, &date) {
Ok(FormSubmit::AccountTag {
account_id,
name,
value,
if !app.submit_account_tag(&account_id, &name, &value) {
Ok(FormSubmit::TransactionTag {
transaction_id,
if !app.submit_transaction_tag(&transaction_id, &name, &value) {