... | ... |
@@ -10,7 +10,11 @@ downloadServer <- function(id, gs){ |
10 | 10 |
#Controls the Download button |
11 | 11 |
|
12 | 12 |
observe({ |
13 |
- |
|
13 |
+ if(is.null(gs())){ |
|
14 |
+ hide("downloadData") |
|
15 |
+ } else { |
|
16 |
+ show("downloadData") |
|
17 |
+ } |
|
14 | 18 |
}) |
15 | 19 |
|
16 | 20 |
output$downloadData <- downloadHandler( |
... | ... |
@@ -18,15 +22,15 @@ downloadServer <- function(id, gs){ |
18 | 22 |
paste("gsva_es-", Sys.Date(), ".csv", sep="") |
19 | 23 |
}, |
20 | 24 |
content = function(file) { |
21 |
- if("ExpressionSet" %in% class(gs)) |
|
25 |
+ if("ExpressionSet" %in% class(gs())) |
|
22 | 26 |
{ |
23 |
- expressionSetObs <- exprs(gs) |
|
27 |
+ expressionSetObs <- exprs(gs()) |
|
24 | 28 |
dataFrameObs <- as.data.frame(expressionSetObs) |
25 | 29 |
write.csv(dataFrameObs, file) |
26 | 30 |
} |
27 | 31 |
else |
28 | 32 |
{ |
29 |
- dataFrameObs <- as.data.frame(gs) |
|
33 |
+ dataFrameObs <- as.data.frame(gs()) |
|
30 | 34 |
write.csv(dataFrameObs, file) |
31 | 35 |
} |
32 | 36 |
} |
... | ... |
@@ -11,11 +11,11 @@ modalGSVAUI <- function(id){ |
11 | 11 |
) |
12 | 12 |
} |
13 | 13 |
|
14 |
-modalGSVAServer <- function(id, console.text, gsva.cancel){ |
|
14 |
+modalGSVAServer <- function(id, console.text, gsva.cancel, rout){ |
|
15 | 15 |
moduleServer( |
16 | 16 |
id, |
17 | 17 |
function(input, output, session){ |
18 |
- |
|
18 |
+ |
|
19 | 19 |
output$text <- renderText({ |
20 | 20 |
req(console.text()) |
21 | 21 |
max <- length(console.text()) |
... | ... |
@@ -29,7 +29,11 @@ modalGSVAServer <- function(id, console.text, gsva.cancel){ |
29 | 29 |
observeEvent(input$cancel, { |
30 | 30 |
removeModal() |
31 | 31 |
gsva.cancel(TRUE) |
32 |
- plan(multisession, gc=TRUE) |
|
32 |
+ write("", file=rout) |
|
33 |
+ # changing plan() is the only and recommended way to safely 'interrupt' a future process: |
|
34 |
+ # https://github.com/HenrikBengtsson/future/issues/93 |
|
35 |
+ plan(sequential) |
|
36 |
+ plan(multisession) |
|
33 | 37 |
}) |
34 | 38 |
} |
35 | 39 |
) |
... | ... |
@@ -9,6 +9,7 @@ plot2_Server <- function(id, eventData1, rv){ |
9 | 9 |
function(input, output, session){ |
10 | 10 |
|
11 | 11 |
output$plot2 <- renderPlotly({ |
12 |
+ req(eventData1()) |
|
12 | 13 |
rv$sample.c <- colnames(rv$gs)[eventData1()] |
13 | 14 |
data <- rv$dat.t[Sample==rv$sample.c] |
14 | 15 |
p <- ggplot(data = data, aes(x=value, color=Sample)) + |
... | ... |
@@ -89,7 +89,7 @@ function(input, output, session) { |
89 | 89 |
}) |
90 | 90 |
|
91 | 91 |
# PRINTING CONSOLE.TEXT |
92 |
- modalGSVAServer("modal.text", console.text, gsva.cancel) |
|
92 |
+ modalGSVAServer("modal.text", console.text, gsva.cancel, rout) |
|
93 | 93 |
|
94 | 94 |
# PLOT1 RENDER |
95 | 95 |
plot1_Server("plot1", rv) |
... | ... |
@@ -113,7 +113,7 @@ function(input, output, session) { |
113 | 113 |
plot3_Server("plot3", eventData2, rv, rv$matrix, rv$genesets) |
114 | 114 |
|
115 | 115 |
# DWN BTN |
116 |
- downloadServer("download", rv$gs) |
|
116 |
+ downloadServer("download", reactive(rv$gs)) |
|
117 | 117 |
|
118 | 118 |
# CLOSE BTN |
119 | 119 |
closeBtnServer("close", reactive(rv$gs)) |