feat: empty screen when no tasks

This commit is contained in:
2026-04-23 10:27:04 +03:00
parent a9bbaf4504
commit 985cf99f5f

59
app.R
View File

@@ -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 = "Задачи: нет активных")
}
}
}