diff --git a/app.R b/app.R index 1b7c107..11b1e24 100644 --- a/app.R +++ b/app.R @@ -586,7 +586,7 @@ server <- function(input, output, session) { } values$nested_key <- input[[schm$get_key_id(values$nested_form_id)]] - utils$clean_forms(values$nested_id_and_types, NS(values$nested_form_id)) + utils$clean_forms(values$nested_form_id, schm, NS(values$nested_form_id)) removeModal() show_modal_for_nested_form(con) @@ -646,10 +646,12 @@ server <- function(input, output, session) { con <- db$make_db_connection("confirm_create_new_main_key") on.exit(db$close_db_connection(con, "confirm_create_new_key"), add = TRUE) + new_main_key <- trimws(input[[schm$get_main_key_id]]) + existed_key <- db$get_keys_from_table("main", schm, con) # если введенный ключ уже есть в базе - if (input[[schm$get_main_key_id]] %in% existed_key) { + if (new_main_key %in% existed_key) { showNotification( sprintf("В базе уже запись с данным ключем."), type = "error" @@ -657,8 +659,8 @@ server <- function(input, output, session) { return() } - values$main_key <- input[[schm$get_main_key_id]] - utils$clean_forms(schm$get_id_type_list("main")) + values$main_key <- new_main_key + utils$clean_forms("main", schm) removeModal() }) @@ -681,7 +683,7 @@ server <- function(input, output, session) { observeEvent(input$clean_all_action, { # rewrite all inputs with empty data - utils$clean_forms(schm$get_id_type_list("main")) + utils$clean_forms("main", schm) values$main_key <- NULL removeModal() diff --git a/modules/utils.R b/modules/utils.R index 4dcce8f..9894000 100644 --- a/modules/utils.R +++ b/modules/utils.R @@ -318,10 +318,15 @@ update_forms_with_data <- function( } #' @export -clean_forms <- function(id_and_types_list, ns) { +clean_forms <- function( + table_name, + schm, + ns +) { # если передана ns() функция то подмеяем id для каждой формы в соответствии с пространством имен if (missing(ns)) ns <- NULL + id_and_types_list <- schm$get_id_type_list(table_name) purrr::walk2( .x = id_and_types_list, @@ -333,6 +338,7 @@ clean_forms <- function(id_and_types_list, ns) { form_id = x_id, form_type = x_type, value = get_empty_data(x_type), + scheme = schm$get_schema(table_name), ns = ns ) }