dashboardpage - shiny icons r
Agregar un logotipo de la empresa al encabezado ShinyDashboard (2)
Aquí está mi truco (ponga su logotipo, como se mencionó anteriormente, en un subdirectorio www
de su directorio de aplicaciones).
Debido a que dashboardHeader()
espera un elemento de etiqueta de tipo li
y clase dropdown
, podemos pasar dichos elementos en lugar de dropdownMenu
s:
library(shiny)
library(shinydashboard)
dbHeader <- dashboardHeader(title = "My Dashboard",
tags$li(a(href = ''http://shinyapps.company.com'',
icon("power-off"),
title = "Back to Apps Home"),
class = "dropdown"),
tags$li(a(href = ''http://www.company.com'',
img(src = ''company_logo.png'',
title = "Company Home", height = "30px"),
style = "padding-top:10px; padding-bottom:10px;"),
class = "dropdown"))
server <- function(input, output) {}
shinyApp(
ui = dashboardPage(
dbHeader,
dashboardSidebar(),
dashboardBody()
),
server = server
)
Tan curioso, ¿hay alguna manera de agregar un logotipo de la empresa al encabezado de un ShinyDashboard? Mientras miro la documentation , se describe cómo cambiar el "logotipo" en el CSS, esto es simplemente configurando lo que va en la esquina superior izquierda, por lo que puedo ver y me gustaría mantener mi título allí.
No estoy usando los menús desplegables, por lo que me gustaría agregar el logotipo de mi empresa en la parte superior derecha donde se encuentra el cuadro rojo.
¿Alguien tiene alguna idea de cómo se puede hacer con Shinydashboard? Gracias.
He estado trabajando con un poco de pirateo para esto (y sé que no lo pediste, pero aquí hay un logotipo que puedes hacer clic)
library(shiny)
library(shinydashboard)
dbHeader <- dashboardHeader()
dbHeader$children[[2]]$children <- tags$a(href=''http://mycompanyishere.com'',
tags$img(src=''logo.png'',height=''60'',width=''200''))
dashboardPage(
dbHeader,
dashboardSidebar(),
dashboardBody()
)
Así que esto anida una etiqueta brillante dentro del encabezado. La segunda ranura en este objeto brillante en particular es la ranura del logotipo (Necesitará un ''logo.png'' en su carpeta / www / en el directorio de la aplicación)
EDITAR:
Acabo de verificar y, a partir de ahora, este truco ya no debería ser necesario, puede insertar el html directamente desde la función DashboardHeader a través del title=
parámetro, (Antes, ese parámetro solo aplicaba texto),
Creo que la respuesta podría seguir siendo útil como método para modificar las funciones brillantes existentes en las que las cosas ESTÁN codificadas.
Aquí está el método ahora:
dashboardPage(
dashboardHeader(title = tags$a(href=''http://mycompanyishere.com'',
tags$img(src=''logo.png'')))
o, agregando un poco más de magia al logotipo (también uso mi logotipo como barra de carga):
# Takes a location ''href'', an image location ''src'', a loading gif ''loadingsrc''
# height, width and alt text, and produces a loading logo that activates while
# Shiny is busy
loadingLogo <- function(href, src, loadingsrc, height = NULL, width = NULL, alt = NULL) {
tagList(
tags$head(
tags$script(
"setInterval(function(){
if ($(''html'').attr(''class'')==''shiny-busy'') {
$(''div.busy'').show();
$(''div.notbusy'').hide();
} else {
$(''div.busy'').hide();
$(''div.notbusy'').show();
}
},100)")
),
tags$a(href=href,
div(class = "busy",
img(src=loadingsrc,height = height, width = width, alt = alt)),
div(class = ''notbusy'',
img(src = src, height = height, width = width, alt = alt))
)
)
}
dashboardBody(
dashboardHeader(title = loadingLogo(''http://mycompanyishere.com'',
''logo.png'',
''loader.gif''),
dashboardSidebar(),
dashboardBody()
)