Cesar
Cesar

Reputation: 585

Shiny sidebar menu - using submenus to organize selectinputs

I am trying to create a dashboard using shiny.

My idea is to create just one dashboard screen on the body. However, I would like to separate each input selection inside a submenu:

For example:

Menu

When I click on the submenu to scroll down (red circle), I would like that appears an inputselect.

Menu2

I am using this script:

convertMenuItem <- function(mi,tabName) {
  mi$children[[1]]$attribs['data-toggle']="tab"
  mi$children[[1]]$attribs['data-value'] = tabName
  if(length(mi$attribs$class)>0 && mi$attribs$class=="treeview"){
    mi$attribs$class=NULL
  }
  mi
}

ui <- dashboardPage(
  dashboardHeader(title = "Menu", 
                  dropdownMenu(type = "messages",
                               messageItem(from = "Menu", message = "Welcome"))),

  dashboardSidebar(collapsed = TRUE,
                   sidebarMenu( id = "tabs",
                                convertMenuItem(menuItem("Dashboard", tabName = "dashboard",icon = icon("dashboard"), selected=T,
                                                         menuItem("Catergoria de Conta", newTab = FALSE),
                                                         menuItem("Unidades",  newTab = FALSE )),"charts"))),

How do I create this input inside the menuitem:

selectInput("continents", "Selecione as contas",choices = levels(tbl1$`Contas Resultado`), multiple = TRUE,selected = "Europe"))

Upvotes: 0

Views: 880

Answers (1)

Cesar
Cesar

Reputation: 585

Solved.

ui <- dashboardPage(
  dashboardHeader(title = "Menu", 
                  dropdownMenu(type = "messages",
                               messageItem(from = "Menu", message = "Welcome"))),

  dashboardSidebar(collapsed = TRUE,
                   sidebarMenu( id = "tabs",
                                convertMenuItem(menuItem("Dashboard", tabName = "dashboard",icon = icon("dashboard"), selected=T,
                                                         menuItem("Catergoria de Conta", newTab = FALSE**,selectInput(inputId = "mcm", label = "Some label", multiple = TRUE, choices = unique(tbl1$`Contas Resultado`)))**,menuItem("Unidades",  newTab = FALSE )),"charts"))),

Upvotes: 1

Related Questions