refactor: push all global vars to globla options

This commit is contained in:
2026-06-16 15:40:46 +03:00
parent df740c4f71
commit 4c50473c7e
2 changed files with 26 additions and 30 deletions

View File

@@ -1,6 +1,13 @@
.on_load = function(ns) {
check_and_init_scheme()
# set global settings:
set_global_options(
shiny.host = "0.0.0.0",
shiny.port = 1338,
APP.DEBUG = FALSE
)
}
@@ -8,9 +15,6 @@
#' @description костыли для упрощения работы себе
set_global_options = function(
SYMBOL_DELIM = "; ",
APP.DEBUG = FALSE,
# shiny.host = "127.0.0.1",
# shiny.port = 1338,
...
) {
@@ -33,17 +37,21 @@ set_global_options = function(
options(
SYMBOL_DELIM = SYMBOL_DELIM,
# form.db_path = config::get("form_db_path"),
APP.DEBUG = APP.DEBUG,
# shiny.host = shiny.host,
# shiny.port = shiny.port,
...
)
}
# global vars ------------------------------------
#' @export
AUTH_ENABLED <- config::get("form_auth_enabled")
#' @export
#' TODO: нормальный разворот
ENABLED_SCHEMES <- unlist(config::get()$form_schemes)
ENABLED_SCHEMES <- stats::setNames(names(ENABLED_SCHEMES), ENABLED_SCHEMES)
# -------------------------------------------------
#' @export
check_and_init_scheme = function() {

34
app.R
View File

@@ -9,7 +9,6 @@ box::use(
# modules
box::use(
R/modules/utils,
R/modules/global_options,
R/modules/db,
R/modules/data_validation,
R/app/forms,
@@ -18,23 +17,12 @@ box::use(
R/modules/data_manipulations[is_this_empty_value]
)
# set global settings:
global_options$set_global_options(
shiny.host = "0.0.0.0",
shiny.port = 1338,
APP.DEBUG = FALSE
)
# global vars:
# TODO: загружается автоматически при загрузке всего модуля, нужно ли засирать файл?
# глобальные переменные и проверка/инициация схемы:
box::use(
R/modules/global_options[AUTH_ENABLED]
R/modules/global_options[AUTH_ENABLED, ENABLED_SCHEMES],
)
enabled_schemes <- unlist(config::get()$form_schemes)
enabled_schemes <- setNames(names(enabled_schemes), enabled_schemes)
# load schemes object:
schms <- readRDS("temp/scheme.rds")
SCHMS <- readRDS("temp/scheme.rds")
# CHECK FOR PANDOC ----------
# rmarkdown::find_pandoc(dir = "/opt/homebrew/bin/")
@@ -131,7 +119,7 @@ server <- function(input, output, session) {
forms_access <- stringr::str_split_1(string, ", ")
# check if exists
exists <- forms_access %in% enabled_schemes
exists <- forms_access %in% ENABLED_SCHEMES
if (!all(exists)) {
cli::cli_warn(c("these forms is not exist:", paste("- ", forms_access[!exists])))
}
@@ -188,7 +176,7 @@ server <- function(input, output, session) {
nested_form_id = NULL,
tasks_id = NULL,
current_user = NULL,
user_form_access = enabled_schemes
user_form_access = ENABLED_SCHEMES
)
scheme <- reactiveVal(NULL) # наименование выбранной схемы
@@ -216,16 +204,16 @@ server <- function(input, output, session) {
allowed_schemas <- if (is.na(res)) {
NA # нет доступа
} else if (res == "all") {
enabled_schemes # все схемы
ENABLED_SCHEMES # все схемы
} else {
enabled_schemes[enabled_schemes == res] # только указанные
ENABLED_SCHEMES[ENABLED_SCHEMES == res] # только указанные
}
# переопределяем переменные
main_form_is_empty(ifelse(is.na(res), "empty", "main_menu"))
values$user_form_access <- allowed_schemas
scheme(values$user_form_access[1])
mhcs(schms[[values$user_form_access[1]]])
mhcs(SCHMS[[values$user_form_access[1]]])
})
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -325,7 +313,7 @@ server <- function(input, output, session) {
observeEvent(input$schmes_selector, {
scheme(input$schmes_selector)
mhcs(schms[[input$schmes_selector]])
mhcs(SCHMS[[input$schmes_selector]])
})
@@ -781,7 +769,7 @@ server <- function(input, output, session) {
need(values$main_key, "⚠️ Необходимо указать id пациента!")
)
span(
strong("Таблица: "), names(enabled_schemes)[enabled_schemes == scheme()],
strong("Таблица: "), names(ENABLED_SCHEMES)[ENABLED_SCHEMES == scheme()],
br(),
strong("ID: "), values$main_key
)
@@ -1042,7 +1030,7 @@ server <- function(input, output, session) {
list_of_df[["meta"]] <- dplyr::tribble(
~`Параметр` , ~`Значение`,
"Пользователь" , values$current_user,
"Название базы" , names(enabled_schemes)[enabled_schemes == scheme()],
"Название базы" , names(ENABLED_SCHEMES)[ENABLED_SCHEMES == scheme()],
"id базы" , scheme(),
"id формы" , config::get("form_id"),
"ver формы" , config::get("form_app_version"),