bupaverse/processanimateR

processanimater-legend : disappears - shinydashboard - multiple tabs - animate process

urvikalia opened this issue · 5 comments

When multiple animate process (process map) are placed in different tabs on shiny dashboard, the legends disappear for the animation on second tab. Wanted to check if it is a know limitation or there is a workaround for it.

legends disappear on the second tab "resource map".
steps to reproduce : click on process map tab and then resource map tab.
Screenshot 2020-12-02 at 3 53 48 PM

sampleCode.pdf

Probably the issue might be because of something else. As simply placing multiple animations on the fluid page doesn't create a problem, but having it within different tab panels does.

Do you have a reproducible example? Then, I could explore this when I find time (not in the next weeks). It may be due to some wrong selectors or colliding element identifiers.

@fmannhardt thanks. attached is a reproducible example. Click on the other tab and legends go away for the resource Tab.

`

Note: currently both the process maps are the same

Simple shiny dashboard

library(shiny)
library(shinydashboard)
library(edeaR)
library(processanimateR)
library(bupaR)

eventlog <- patients
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(
sidebarMenu(
menuItem("Process Map", tabName = "process", icon = icon("dashboard")),
menuItem("Resource Map", tabName = "resource", icon = icon("dashboard"))

)

),
dashboardBody(

fluidPage(tabItems(
  tabItem(tabName = "process",
          processanimaterOutput("process")),
  tabItem(tabName = "resource",
          processanimaterOutput("process2"))
  
)) 

))

server <- function(input, output) {

data <- reactive({
eventlog
})

output$process <- renderProcessanimater(expr = {
graph <- processmapR::process_map(data(), render = F)
model <-
DiagrammeR::add_global_graph_attrs(graph,
attr = "rankdir",
value = NULL,
attr_type = "graph")

animate_process(
  data(),
  model,
  mode = "absolute",
  legend = "color",
  mapping = token_aes(
    color = token_scale(
      "handling",
      scale = "ordinal",
      range = RColorBrewer::brewer.pal(5, "YlOrBr")
    )
  ),
  duration = 60
)

})

output$process2 <- renderProcessanimater(expr = {
graph <- processmapR::process_map(data(), render = F)
model <-
DiagrammeR::add_global_graph_attrs(graph,
attr = "rankdir",
value = NULL,
attr_type = "graph")
animate_process(
data(),
model,
mode = "absolute",
legend = "color",
mapping = token_aes(
color = token_scale(
"handling",
scale = "ordinal",
range = RColorBrewer::brewer.pal(5, "YlOrBr")
)
),
duration = 60
)

})
}

shinyApp(ui, server)
`

Sorry for the long delay. This was relatively easy to fix. I pushed it to the dev branch.

Thanks, felix