diff --git a/R/buchungen_mod.R b/R/buchungen_mod.R index 4f98b22..8c0ddd8 100644 --- a/R/buchungen_mod.R +++ b/R/buchungen_mod.R @@ -23,6 +23,7 @@ buchungenServer <- function(id, conn) { postings_data <- reactiveVal(read_buch_tabelle(conn)) details_data <- reactiveVal(NULL) selected_trans_id <- reactiveVal(NULL) + current_main_idx <- reactiveVal(NULL) # Trigger-Objekt für das Modal: enthält post_id und einen Counter # Der Counter erzwingt eine Reaktion, auch wenn die gleiche ID zweimal geklickt wird @@ -34,12 +35,15 @@ buchungenServer <- function(id, conn) { # Haupttabelle rendern output$buchungen_table <- renderReactable({ req(postings_data()) - f_reactable(daten = postings_data(), coldefs = coldef_entries_tabelle, selection = "single") + f_reactable(daten = postings_data(), coldefs = coldef_entries_tabelle, + selection = "single", + defaultSelected = current_main_idx()) }) # Details laden wenn Zeile gewählt wird sel_details <- reactive(getReactableState("buchungen_table", "selected")) observeEvent(sel_details(), ignoreInit = T, { + current_main_idx(getReactableState("buchungen_table", "selected")) t_id <- postings_data()[sel_details(), "entry_id"] %>% pull() selected_trans_id(t_id) details_data(read_buch_tabelle(conn, trans_id = t_id)) @@ -59,7 +63,7 @@ buchungenServer <- function(id, conn) { # Event: Detail editieren (Klick auf Detail-Tabelle) sel_detail <- reactive(getReactableState("details_table", "selected")) observeEvent(sel_detail(), ignoreInit = T, { - p_id <- details_data()$id[sel] + p_id <- details_data()$id[sel_detail()] modal_trigger(list(post_id = p_id, counter = modal_trigger()$counter + 1)) }) diff --git a/db/development.sqlite b/db/development.sqlite index b27b36b..ae0bf5a 100644 Binary files a/db/development.sqlite and b/db/development.sqlite differ