diff --git a/app.R b/app.R index 59c5b17..4836592 100644 --- a/app.R +++ b/app.R @@ -81,7 +81,7 @@ ui <- dashboardPage( #menuItem("Habitats", tabName = "3", icon = icon("atlas")), #menuItem("Ingestion", tabName = "3", icon = icon("utensils")), selectInput("modelSelect", "Select MESO model", choices = c(""), selected = NULL, multiple = FALSE), - #downloadButton("download", "", icon = icon("download")), + downloadButton("download", "", icon = icon("download")), uiOutput("pressureList") ) ), @@ -621,32 +621,9 @@ server <- function(input, output, session) { }) - export <- function(model) { + export <- function(model, fPath) { - #Get the network graph - l1 <- orca(prepPlot("ba", "Bio-Assemblage"), "tmp/layer1.png") - l2 <- orca(prepPlot("op", "Output Processes"),"tmp/layer2.png") - l3 <- orca(prepPlot("es", "Ecosystem Services"), "tmp/layer3.png") - - #Save pressure list, confidence levels, node and edge tables in xlsx - l <- list( - pressures = .selections$pressStatus, - nodes = model$p_es$nodes, - edges = model$p_es$edges, - settings = as.data.frame(cbind(names(.resistanceScores), .resistanceScores), stringsAsFactors = FALSE) - ) - - xl <- write.xlsx(l, "tmp/dataset.xlsx") - - print("saving xlsx file export tmp/dataset.xlsx") - - zipFile <- zipr(paste0("tmp/MESO-", format(Sys.time(), "%m%d_%H%M"), ".zip"), c("tmp/layer1.png", "tmp/layer2.png", "tmp/layer3.png", "tmp/dataset.xlsx")) - - print(paste("zip file complete", zipFile)) - file.remove("tmp/layer1.png") - file.remove("tmp/layer2.png") - file.remove("tmp/layer3.png") - file.remove("tmp/dataset.xlsx") + return(zipFile) } @@ -660,19 +637,49 @@ server <- function(input, output, session) { ) output$download <- downloadHandler( - filename = paste0("MESO-", format(Sys.time(), "%m%d_%H%M"), ".zip"), + filename = function() {paste0("MESO-", format(Sys.time(), "%m%d_%H%M"), ".zip")}, content = function(file) { - #showModal( - # modalDialog( - # fluidRow( - # column(width = 12) %>% withSpinner(type = 5, proxy.height = "200px") - # ), - # footer=div() - # ) - #) - fName <- export(modelList[[.selections$model]]) - file.copy(fName, file) - #removeModal() + showModal( + modalDialog( + fluidRow( + column(width = 12) %>% withSpinner(type = 5, proxy.height = "200px") + ), + footer=div() + ) + ) + + oldDir <- getwd() + + tmp <- tempfile("") + + print(tmp) + dir.create(tmp) + + setwd(tmp) + + #Get the network graph + l1 <- orca(prepPlot("ba", "Bio-Assemblage"), "layer1.png") + l2 <- orca(prepPlot("op", "Output Processes"),"layer2.png") + l3 <- orca(prepPlot("es", "Ecosystem Services"),"layer3.png") + + + #Save pressure list, confidence levels, node and edge tables in xlsx + l <- list( + pressures = .selections$pressStatus, + nodes = modelList[[.selections$model]]$p_es$nodes, + edges = modelList[[.selections$model]]$p_es$edges, + settings = as.data.frame(cbind(names(.resistanceScores), .resistanceScores), stringsAsFactors = FALSE) + ) + xl <- write.xlsx(l, "dataset.xlsx") + + zipFile <- zipr(file, c("layer1.png", "layer2.png", "layer3.png", "dataset.xlsx")) + + print(paste("zip file complete", zipFile)) + + setwd(oldDir) + unlink(tmp) + + removeModal() }, contentType = "application/zip" )