mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2025-09-12 09:59:39 +02:00
76 lines
1.8 KiB
R
76 lines
1.8 KiB
R
|
plot_download_ui <- regression_ui <- function(id, ...) {
|
||
|
ns <- shiny::NS(id)
|
||
|
|
||
|
shiny::tagList(
|
||
|
shinyWidgets::noUiSliderInput(
|
||
|
inputId = ns("plot_height"),
|
||
|
label = "Plot height (mm)",
|
||
|
min = 50,
|
||
|
max = 300,
|
||
|
value = 100,
|
||
|
step = 1,
|
||
|
format = shinyWidgets::wNumbFormat(decimals = 0),
|
||
|
color = datamods:::get_primary_color()
|
||
|
),
|
||
|
shinyWidgets::noUiSliderInput(
|
||
|
inputId = ns("plot_width"),
|
||
|
label = "Plot width (mm)",
|
||
|
min = 50,
|
||
|
max = 300,
|
||
|
value = 100,
|
||
|
step = 1,
|
||
|
format = shinyWidgets::wNumbFormat(decimals = 0),
|
||
|
color = datamods:::get_primary_color()
|
||
|
),
|
||
|
shiny::selectInput(
|
||
|
inputId = ns("plot_type"),
|
||
|
label = "File format",
|
||
|
choices = list(
|
||
|
"png",
|
||
|
"tiff",
|
||
|
"eps",
|
||
|
"pdf",
|
||
|
"jpeg",
|
||
|
"svg"
|
||
|
)
|
||
|
),
|
||
|
shiny::br(),
|
||
|
# Button
|
||
|
shiny::downloadButton(
|
||
|
outputId = ns("download_plot"),
|
||
|
label = "Download plot",
|
||
|
icon = shiny::icon("download")
|
||
|
)
|
||
|
)
|
||
|
}
|
||
|
|
||
|
plot_download_server <- function(id,
|
||
|
data,
|
||
|
file_name = "reg_plot",
|
||
|
...) {
|
||
|
shiny::moduleServer(
|
||
|
id = id,
|
||
|
module = function(input, output, session) {
|
||
|
# ns <- session$ns
|
||
|
|
||
|
|
||
|
|
||
|
output$download_plot <- shiny::downloadHandler(
|
||
|
filename = paste0(file_name, ".", input$plot_type),
|
||
|
content = function(file) {
|
||
|
shiny::withProgress(message = "Saving the plot. Hold on for a moment..", {
|
||
|
ggplot2::ggsave(
|
||
|
filename = file,
|
||
|
plot = data,
|
||
|
width = input$plot_width,
|
||
|
height = input$plot_height,
|
||
|
dpi = 300,
|
||
|
units = "mm", scale = 2
|
||
|
)
|
||
|
})
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
)
|
||
|
}
|