diff --git a/app.R b/app.R index 01d1d4a..848dcfa 100644 --- a/app.R +++ b/app.R @@ -33,14 +33,12 @@ box::use( box::use(app/forms) box::use(app/tasks) -# SETTINGS ================================ -HEADER_TEXT <- config::get("form_name") - # refactor LATER --------- vv <- unlist(config::get()$form_schemes) enabled_schemes <- names(vv) vvvv <- unname(vv) names(enabled_schemes) <- vvvv +# ------------------------ # CHECK FOR PANDOC # TEMP ! NEED TO HANDLE @@ -54,9 +52,9 @@ schms <- readRDS("scheme.rds") # UI ======================= ui <- page_sidebar( - # title = HEADER_TEXT, + # title = config::get("form_name"), title = tagList( - h4(HEADER_TEXT, style = "margin-top: .5rem"), + h4(config::get("form_name"), style = "margin-top: .5rem"), popover( span( config::get("form_app_version"), @@ -64,7 +62,7 @@ ui <- page_sidebar( style = "color: #9c9c9c"), title = "about", placement = "left", - p("a"), p("b") + tagList(span("здесь пока ничего нет"), br(), span("вот")) ) ), theme = bs_theme(version = 5, preset = "bootstrap"), @@ -77,7 +75,7 @@ ui <- page_sidebar( uiOutput("status_message"), textOutput("status_message2"), uiOutput("display_log"), - actionButton("tasks-shieesh", "Задачи: нет активных"), + actionButton("tasks-display_task_modal", "Задачи: нет активных"), position = "left", open = list(mobile = "always") ), @@ -92,7 +90,7 @@ if (AUTH_ENABLED) { shinymanager::secure_app( status = "primary", tags_top = tags$div( - tags$h3(HEADER_TEXT, style = "align:center"), + tags$h3(config::get("form_name"), style = "align:center"), # tags$img( # src = "https://www.r-project.org/logo/Rlogo.png", width = 100 # ) @@ -145,6 +143,7 @@ server <- function(input, output, session) { } } + # update user name values$current_user <- ifelse(AUTH_ENABLED, res_auth$user, "anonymous") if (showing_buttons) { @@ -168,7 +167,7 @@ server <- function(input, output, session) { main_key = NULL, nested_key = NULL, nested_form_id = NULL, - tasks_id_selector = NULL, + tasks_id = NULL, current_user = NULL ) @@ -195,6 +194,8 @@ server <- function(input, output, session) { selected = scheme() ), "Для начала работы нужно создать новую запись или загрузить существующую!", + # сво + strong("tasks"), # загрузка панели для работы с базой данных uiOutput("admin_buttons_panel") ) diff --git a/app/tasks.R b/app/tasks.R index 375231f..3a4ea4b 100644 --- a/app/tasks.R +++ b/app/tasks.R @@ -32,17 +32,36 @@ server <- function(id, values, scheme, mhcs) { dplyr::filter(task_status != "completed") |> dplyr::pull(task_id) - tasks_selector <- unique(c(values$tasks_id_selector, tasks_selector)) + tasks_selector <- unique(c(values$tasks_id, 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]] + if (length(values$tasks_id) == 0) { + values$tasks_id <- if (length(tasks_selector) == 0) NULL else tasks_selector[[1]] } } else { tasks_selector <- NULL } + ## new tasks ---------------- + get_default_task <- function() { + + tibble::tibble( + task_id = paste0(format(Sys.time(), "%Y%m%d%H%M%S"), "_", values$main_key), + task_main_key = values$main_key, + task_status = "active", + task_title = "НОВАЯ ЗАДАЧА", + task_description = "", + task_due_date = NA, + task_user_created = values$current_user, + task_datetime_created = Sys.time(), + task_user_last_updated = NA, + task_datetime_last_updated = NA, + task_user_completed = NA, + task_datetime_completed = NA + ) + } + # ui -------------------- # очень большой костыль subroup_scheme <- mhcs()$get_scheme("tasks") |> @@ -64,7 +83,7 @@ server <- function(id, values, scheme, mhcs) { ui <- layout_sidebar( sidebar = tagList( - selectizeInput(ns("hhhhhhh"), label = "what", choices = tasks_selector, selected = values$tasks_id_selector), + selectizeInput(ns("tasks_id_selector"), label = "ID задачи:", choices = tasks_selector, selected = values$tasks_id), actionButton(ns("tasks_create_new_task"), "new_task"), actionButton(ns("tasks_add_autoreview"), "add autotask"), actionButton(ns("tasks_DT_VIEW"), "DT") @@ -84,7 +103,7 @@ server <- function(id, values, scheme, mhcs) { # button logic --------------------- ## отображение окна ----------------- - observeEvent(input$shieesh, { + observeEvent(input$display_task_modal, { con <- db$make_db_connection(scheme(),"nested_tables") on.exit(db$close_db_connection(con, "nested_tables"), add = TRUE) @@ -97,26 +116,26 @@ server <- function(id, values, scheme, mhcs) { NULL } - values$tasks_id_selector <- NULL + values$tasks_id <- NULL show_modal_for_tasks() }) ## изменение выбранной задачи ------- - observeEvent(input$hhhhhhh, { - req(input$hhhhhhh) - req(values$tasks_id_selector) + observeEvent(input$tasks_id_selector, { + req(input$tasks_id_selector) + req(values$tasks_id) # выбранный ключ в форме - перемещаем в RV - values$tasks_id_selector <- input$hhhhhhh + values$tasks_id <- input$tasks_id_selector }) ## обновление формы при измененнии id ключа ------ - observeEvent(values$tasks_id_selector, { + observeEvent(values$tasks_id, { df <- values$tasks_data |> - dplyr::filter(task_id == values$tasks_id_selector) + dplyr::filter(task_id == values$tasks_id) forms$load_data_to_form( df = df, @@ -157,16 +176,16 @@ server <- function(id, values, scheme, mhcs) { df <- values$tasks_data - df[df$task_id == values$tasks_id_selector,]$task_status <- exported_df$task_status - df[df$task_id == values$tasks_id_selector,]$task_title <- exported_df$task_title - df[df$task_id == values$tasks_id_selector,]$task_description <- exported_df$task_description - df[df$task_id == values$tasks_id_selector,]$task_due_date <- exported_df$task_due_date - df[df$task_id == values$tasks_id_selector,]$task_user_last_updated <- values$current_user - df[df$task_id == values$tasks_id_selector,]$task_datetime_last_updated <- Sys.time() + df[df$task_id == values$tasks_id,]$task_status <- exported_df$task_status + df[df$task_id == values$tasks_id,]$task_title <- exported_df$task_title + df[df$task_id == values$tasks_id,]$task_description <- exported_df$task_description + df[df$task_id == values$tasks_id,]$task_due_date <- exported_df$task_due_date + df[df$task_id == values$tasks_id,]$task_user_last_updated <- values$current_user + df[df$task_id == values$tasks_id,]$task_datetime_last_updated <- Sys.time() if (exported_df$task_status == "completed") { - df[df$task_id == values$tasks_id_selector,]$task_user_completed <- values$current_user - df[df$task_id == values$tasks_id_selector,]$task_datetime_completed <- Sys.time() + df[df$task_id == values$tasks_id,]$task_user_completed <- values$current_user + df[df$task_id == values$tasks_id,]$task_datetime_completed <- Sys.time() } values$tasks_data <- df @@ -189,9 +208,9 @@ server <- function(id, values, scheme, mhcs) { dplyr::filter(task_status != "completed") |> dplyr::pull(task_id) - selector <- ifelse(!values$tasks_id_selector %in% tasks_selector, tasks_selector[1], values$tasks_id_selector) + selector <- ifelse(!values$tasks_id %in% tasks_selector, tasks_selector[1], values$tasks_id) - updateSelectInput(inputId = "hhhhhhh", choices = tasks_selector, selected = selector) + updateSelectInput(inputId = "tasks_id_selector", choices = tasks_selector, selected = selector) }) @@ -228,36 +247,18 @@ server <- function(id, values, scheme, mhcs) { }) - ## functions ---------------------------------- - get_default_task <- function() { - - tibble::tibble( - task_id = paste0(format(Sys.time(), "%Y%m%d%H%M%S"), "_", values$main_key), - task_main_key = values$main_key, - task_status = "active", - task_title = "new task", - task_description = "description", - task_due_date = NA, - task_user_created = values$current_user, - task_datetime_created = Sys.time(), - task_user_last_updated = NA, - task_datetime_last_updated = NA, - task_user_completed = NA, - task_datetime_completed = NA - ) - } - + ## с observeEvent(input$tasks_create_new_task, { new_task <- get_default_task() values$tasks_data <- rbind(values$tasks_data, new_task) - values$tasks_id_selector <- new_task$task_id + values$tasks_id <- new_task$task_id tasks_selector <- values$tasks_data |> dplyr::filter(task_status != "completed") |> dplyr::pull(task_id) - updateSelectInput(inputId = "hhhhhhh", choices = tasks_selector, selected = values$tasks_id_selector) + updateSelectInput(inputId = "tasks_id_selector", choices = tasks_selector, selected = values$tasks_id) removeModal() show_modal_for_tasks() }) @@ -270,13 +271,13 @@ server <- function(id, values, scheme, mhcs) { new_task$task_due_date <- Sys.Date() + 28 values$tasks_data <- rbind(values$tasks_data, new_task) - values$tasks_id_selector <- new_task$task_id + values$tasks_id <- new_task$task_id tasks_selector <- values$tasks_data |> dplyr::filter(task_status != "completed") |> dplyr::pull(task_id) - updateSelectInput(inputId = "hhhhhhh", choices = tasks_selector, selected = values$tasks_id_selector) + updateSelectInput(inputId = "tasks_id_selector", choices = tasks_selector, selected = values$tasks_id) removeModal() show_modal_for_tasks() }) @@ -287,7 +288,7 @@ server <- function(id, values, scheme, mhcs) { #' @export update_task_button_count <- function(con, values, ns) { - inputID <- "shieesh" + inputID <- "display_task_modal" if (!missing(ns)) inputID <- ns(inputID) if ("tasks" %in% DBI::dbListTables(con)) { diff --git a/config.yml b/config.yml index 5692b82..310105c 100644 --- a/config.yml +++ b/config.yml @@ -8,6 +8,7 @@ prod: form_auth_enabled: false form_schemes: example_of_scheme: Тестовая база данных + main_register: АВЗ и АМИЛОИОДОЗЫ devel: form_app_configure_path: _devel/antifib