diff --git a/R/shiny-state.R b/R/shiny-state.R index 6a245851eb3a9e07bc8b157c50ebb726e3ad0975..c70cafd05d388829819ea965ed0fdf7a83cd895e 100644 --- a/R/shiny-state.R +++ b/R/shiny-state.R @@ -29,6 +29,17 @@ GUI_ALL_INPUTS <- c(GUI_SELECT_INPUTS, GUI_RADIO_INPUTS) +add_new_def_tag <- function(old_tags,how_many) { + ind <- which(grepl(r"(^F\d+$)",old_tags)) + st_num <- if (length(ind)>0L) { + old_def_tags <- old_tags[ind] + tag_nums <- gsub(r"(^F(\d+)$)",r"(\1)",old_def_tags) + max(as.integer(tag_nums)) + + + } else 0L + c(old_tags,paste0('F',(st_num + 1L):(st_num + how_many))) +} #' @export create_stub_gui <- function() { @@ -253,7 +264,8 @@ gen_dfiles_tab <- function(gui) { curr_tag <- gui$datatab$tag res <- data.table(file=curr_file,tag=curr_tag) - res[,tag:=as.factor(tag)] + ## res[,tag:=as.factor(tag)] + res } diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index 36d645d314f27ce931076c0fe1d7d9ee153115ca..f0d5655dc7f2ab8901e9f02cda841b35d43f8d4f 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -1028,12 +1028,11 @@ mk_shinyscreen_server <- function(projects,init) { nb <- length(curr_file) nd <- length(new_file) res_file <- c(curr_file,new_file) - res_tag <- c(curr_tag,paste0('F',(nb + 1):(nb + nd))) res_adduct <- c(curr_adduct,rep(NA_character_,nd)) res_set <- c(curr_set,rep(NA_character_,nd)) rvs$gui$datatab$file <- res_file - rvs$gui$datatab$tag <- res_tag + rvs$gui$datatab$tag <- add_new_def_tag(as.character(rvs$gui$datatab$tag),nd) rvs$gui$datatab$adduct <- res_adduct rvs$gui$datatab$set <- res_set } @@ -1060,8 +1059,8 @@ mk_shinyscreen_server <- function(projects,init) { df <- DT::editData(df, input$datafiles_cell_edit, rownames = F) - rvs$gui$datatab$file <- df$file - rvs$gui$datatab$tag <- df$tag + rvs$gui$datatab$file <- as.character(df$file) + rvs$gui$datatab$tag <- as.character(df$tag) }, label = "datafiles-edit")