devel #1

Merged
madeliri merged 11 commits from devel into main 2026-04-24 16:00:04 +03:00
3 changed files with 58 additions and 55 deletions
Showing only changes of commit 0c3c35936e - Show all commits

19
app.R
View File

@@ -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")
)

View File

@@ -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)) {

View File

@@ -8,6 +8,7 @@ prod:
form_auth_enabled: false
form_schemes:
example_of_scheme: Тестовая база данных
main_register: АВЗ и АМИЛОИОДОЗЫ
devel:
form_app_configure_path: _devel/antifib