diff --git a/app.R b/app.R index e941659..1421158 100644 --- a/app.R +++ b/app.R @@ -72,7 +72,7 @@ ui <- page_sidebar( uiOutput("status_message"), textOutput("status_message2"), uiOutput("display_log"), - actionButton("shieesh", "Задачи: нет активных"), + actionButton("tasks_shieesh", "Задачи: нет активных"), position = "left", open = list(mobile = "always") ), @@ -1232,7 +1232,7 @@ server <- function(input, output, session) { # TASKS --------------------------------------- ## show button watcher ------------------------- - observeEvent(input$shieesh, { + observeEvent(input$tasks_shieesh, { con <- db$make_db_connection(scheme(),"nested_tables") on.exit(db$close_db_connection(con, "nested_tables"), add = TRUE) @@ -1241,11 +1241,7 @@ server <- function(input, output, session) { DBI::dbGetQuery(con, glue::glue("SELECT * FROM tasks WHERE task_main_key = '{values$main_key}'")) |> dplyr::mutate(dplyr::across(c("task_datetime_created", "task_datetime_last_updated", "task_datetime_completed"), as.POSIXct)) } else { - get_default_task() - } - - if (nrow(values$tasks_data) == 0) { - values$tasks_data <- get_default_task() + NULL } values$tasks_id_selector <- NULL @@ -1255,15 +1251,21 @@ server <- function(input, output, session) { show_modal_for_tasks <- function() { - tasks_selector <- values$tasks_data |> - dplyr::filter(task_status != "completed") |> - dplyr::pull(task_id) + if (!is.null(values$tasks_data)) { - tasks_selector <- unique(c(values$tasks_id_selector, tasks_selector)) - tasks_selector <- sort(tasks_selector) + tasks_selector <- values$tasks_data |> + dplyr::filter(task_status != "completed") |> + dplyr::pull(task_id) - if (length(values$tasks_id_selector) == 0) { - values$tasks_id_selector <- if (length(tasks_selector) == 0) NULL else tasks_selector[[1]] + tasks_selector <- unique(c(values$tasks_id_selector, tasks_selector)) + tasks_selector <- sort(tasks_selector) + + if (length(values$tasks_id_selector) == 0) { + values$tasks_id_selector <- if (length(tasks_selector) == 0) NULL else tasks_selector[[1]] + } + + } else { + tasks_selector <- NULL } # ui @@ -1271,14 +1273,18 @@ server <- function(input, output, session) { subroup_scheme <- mhcs()$get_scheme("tasks") |> dplyr::filter(form_id != "dummy") - tab <- bslib::nav_panel( - title = "no name provided", - purrr::pmap( - .l = dplyr::distinct(subroup_scheme, form_id, form_label, form_type), - .f = utils$render_forms, - main_scheme = subroup_scheme + tab <- if (length(tasks_selector) > 0) { + bslib::nav_panel( + title = "no name provided", + purrr::pmap( + .l = dplyr::distinct(subroup_scheme, form_id, form_label, form_type), + .f = utils$render_forms, + main_scheme = subroup_scheme + ) ) - ) + } else { + bslib::nav_panel("", div("Нет доступных записей.", br(), "Необходимо создать новую запись.")) + } ui <- layout_sidebar( sidebar = tagList( @@ -1327,7 +1333,7 @@ server <- function(input, output, session) { con <- db$make_db_connection(scheme(),"tasks_saving_button") on.exit(db$close_db_connection(con, "tasks_saving_button"), add = TRUE) - id_and_types_list <- schms$example_of_scheme$get_id_type_list("tasks") + id_and_types_list <- mhcs()$get_id_type_list("tasks") input_types <- unname(id_and_types_list) input_ids <- names(id_and_types_list) @@ -1452,6 +1458,8 @@ server <- function(input, output, session) { dplyr::pull(task_id) updateSelectInput(inputId = "hhhhhhh", choices = tasks_selector, selected = values$tasks_id_selector) + removeModal() + show_modal_for_tasks() }) observeEvent(input$tasks_add_autoreview, { @@ -1469,17 +1477,18 @@ server <- function(input, output, session) { dplyr::pull(task_id) updateSelectInput(inputId = "hhhhhhh", choices = tasks_selector, selected = values$tasks_id_selector) + removeModal() + show_modal_for_tasks() }) - update_task_button_count <- function(con) { if ("tasks" %in% DBI::dbListTables(con)) { tasks_num <- DBI::dbGetQuery(con, glue::glue("SELECT COUNT ('task_id') FROM tasks WHERE task_main_key = '{values$main_key}' AND task_status = 'active'")) |> pull() if (tasks_num > 0) { - updateActionButton(inputId = "shieesh", label = paste("активных задач:", tasks_num)) + updateActionButton(inputId = "tasks_shieesh", label = paste("активных задач:", tasks_num)) } else { - updateActionButton(inputId = "shieesh", label = "Задачи: нет активных") + updateActionButton(inputId = "tasks_shieesh", label = "Задачи: нет активных") } } }