dashboardHeader()
. Thanks @zhanxw.This release is a patch to fix an issue preventing the release of Shiny 1.7.0. Thanks @wch.
{waiter}
package but no user impact. Thanks @JohnCoene.This release is a patch without major changes.
dashboardPage()
shiny::navlistPanel()
in dashboardControlbar()
not behaving as expected.userBox()
is not working. Introduced in 2.0.0.This release is a major step for shinydashboardPlus. It is also a significant breaking change compared to the latest CRAN version. Overall this release will simplify the transition from shinydashboard to shinydashboardPlus and bring more consistency, more interactivity between components. Below is the changelog.
starBlock()
to max
and value
.boxPlus()
to align with {bs4Dash}
boxPlus()
. This is now part of the new boxPlusSidebar()
boxPlus()
. It is now part of the dropdownItemList()
boxPlus()
. This is to reduce the number of parameters of cards. Now part of boxPlusLabel()
dropdownItemList()
icon must be provided as shiny::icon()
and not a simple string containing the icon name. This is to be consistent with {shinydashboard}dashboardFooter()
dashboardPagePlus()
. They now belong to dashboardSidebarPlus()
to Align with {shinydashboard}dashboardSidebarPlus()
: replace rightSidebar by controlbar (align with {bs4Dash}). Rename enable_preloader to preloader and loading_duration to durationrightSidebar()
to dashboardControlbar()
to align with {bs4Dash}dashboardHeaderPlus()
. This is now part of dashboardControlbar()
as disable like in {shinydashboard}. rightSidebarIcon becomes
controlbarIcon that accepts shiny::icon
instead of a simple string containing the icon name to be consistent with {shinydashboard}. left_menu becomes leftUi like in {bs4Dash}rightSiderbarMenu()
, rightSidebarTablist()
, rightSidebarTabItem()
, rightSidebarPanel()
and rightSidebarTabContent()
. They are now replaces by dashboardControlbar()
, controlbarMenu()
and controlbarItem()
rightSidebarMenuItem()
, menuIcon()
and menuInfo()
boxPlus()
to box()
, dashboardPagePlus()
to dashboardPage()
and
dashboardHeaderPlus()
to dashboardHeader()
dropdownBlock()
icon expects a shiny::icon()
and not a simple string containing the icon name. This is to be consistent with {shinydashboard}gradientBox()
icon expects a shiny::icon()
and not a simple string containing the icon name. This is to be consistent with {shinydashboard}descriptionBlock()
icon expects a shiny::icon()
and not a simple string containing the icon name. This is to be consistent with {shinydashboard}navPillsItem()
: pillName becomes left, pillText becomes right,
pillColor becomes color, pillIcon becomes icon and expects a shiny::icon()
. Add inputId so that the item behaves like an action buttonproductListItem()
: productTitle becomes title, productPrice becomes subtitle, priceColor becomes colortimelineItem()
, timelineStart()
and timelineEnd()
, icon expects a shiny::icon()
and not a simple string containing the icon name. This is to be consistent with {shinydashboard}userListItem()
, user_name becomes title, description becomes subtitledropdownItemList()
becomes boxDropdown()
. dropdownItem()
becomes boxDropdownItem()
userPostToolItemList()
becomes userPostTagItems()
. userPostToolItem()
becomes userPostTagItem()
boxProfileItemList()
. boxProfile()
gets a new parameter bordered, inherited from the old boxProfileItemList()
boxProfile()
, title becomes mandatoryboxProfileItem()
boxComment()
: src and title are mandatorywidgetUserBox()
becomes userBox()
for more naming consistencygradientBox()
for consistency with {bs4Dash}box()
userBox()
. Remove background. Replace backgroundUrl by backgroundImage. Reworked type parameteraccordion()
id. We should distinguish between TRUE inputs (sliderInput) and secondary inputs (that you can use for interactivity)...accordionItem()
. This is to be consistent with AdminLTE2 classes and {shinydashboard}attachmentBlock()
: src becomes image and titleUrl becomes href. image is mandatorysocialButton()
: url becomes href and type becomes icon (expect shiny::icon
)productListItem()
: src becomes image to be consistent with {shinydashboard}timelineItemMedia()
: src becomes image to be consistent with {shinydashboard}userListItem()
: src becomes image to be consistent with {shinydashboard}userPost()
: src becomes image to be consistent with {shinydashboard}. image and author are mandatoryuserPostMedia()
: src becomes image to be consistent with {shinydashboard}. image is mandatoryverticalProgress()
to progressBar()
userMessage()
: src becomes image to be consistent with {shinydashboard}. side becomes type (semantic)dashboardUser()
: src becomes image to be consistent with {shinydashboard}userBox()
: src becomes image to be consistent with {shinydashboard}socialBox()
: src becomes image to be consistent with {shinydashboard}boxComment()
: src becomes image to be consistent with {shinydashboard}boxProfile()
: src becomes image to be consistent with {shinydashboard}boxDropdownItem()
: url becomes href to be consistent with {shinydashboard}.
name is removednavPillsItem()
: active becomes selectedupdateUserMessages()
functionupdateAccordion()
to toggle accordion()
on the client{waiter}
for custom preloaderstaskItem()
, notificationItem()
and messageItem()
boxDropdownItem()
, that behaves like an action button if passedupdateNavPills()
to programmatically change the selected item in navPills()
dashboardPage()
. This allows to use the awsesome {fresh}
package. See here for more details.skinSelector()
to allow dynamically change the dashboard skin on the client side.updateControlbarMenu()
to programmatically change the selected controlbar itemdashboardControlbar()
to be able to use updateControlbar()
dashboardSidebar()
to be able to use updateSidebar()
dashboardSidebar()
(reworked shinydashboard sidebar)boxLabel()
to add text labels in box()
boxSidebar()
: access the status via input$id. Add updateBoxSidebar()
to toggle the box sidebaroptions
parameter to dashboardPage()
. See here for the
list of available optionsbox()
with updateBox()
(see #10 and #69, @happyshows and @daatali)box()
accordion()
(default to 12)collapsed = FALSE
not working for dashboardControlbar.input$sidebarCollapsed
.box()
...accordionItem()
(Setting title to NULL would prevent the item
to be able to collapse ...)accordion()
id becomes inputId. accordionItem()
id parameter is removedappButton()
: this is a classic shiny actionButton, with improved styling.attachmentBlock()
change number_color, number_icon, margin_bottom and rightBorder to camelcase params
in descriptionBlock()
descriptionBlock()
only need the name of the icon ('times') instead of the full class (like fa fa-times)userMessages()
and userMessage()
dashboardBadge()
: use in elements like appButton()
. This is different from
dashboardLabel()
widgetUserBox()
. Thanks @terpsruleboxPlus()
. Thanks @jmw86069 for the suggestionaccordion()
id. Thanks @RegaCaskaflipBox()
. Thanks @vinpogowidgetUserBox()
.
Prevent from ugly renderingcarousel()
item is displayed when it is generated via a shiny Output function. Thanks @daattali for the reportsetShadow()
, setPulse()
, setShake()
and
setZoom()
, since they are contained in shinyEffectsboxPlus()
headers: navy, teal, orange, maroon, black and purplerightSidebar()
: useful if we do not want to
embed elements in tabs.dashboardFooter()
dashboardUser()
, dashboardUserItem()
, renderUser()
and userOutput()
carousel()
and carouselItem()
dashboardHeaderPlus()
title was NULLflipBox()
boxPlus()
function: set up with the following arguments
"enable_sidebar", "sidebar_content", "sidebar_width", "sidebar_background" and
"sidebar_start_open"dashboardHeaderPlus()
to include elements
in the left part of the navbar. (In addition to what you can already do in the
right part with shinydashboard)dropdownBlock()
to include shiny input elements in a navbar left menu
(optimized for all screen sizes)dashboardHeaderPlus()
).
If TRUE, the navbar is fixed-top. (static-top by default)setZoom()
function (similar as setShadow()
)setPulse()
functionsetShake()
functiondashboardPagePlus()
(custom preloader)shinydashboardPlusGallery()
dashboardLabel()
userPost()
to show or hide comments when the
application starts.appButton()
open a new window when clickedsocialButton()
open a new window when clickedsocialBox()
socialBox()
socialBox()
in case there are more than 2 comments (avoid "infinite" height boxes)timelineItem()
footer when NULLuserPostMedia()
dropdownBlock()
icon not displaying)rightSidebar()
. When the function was called without
any element, it triggered an error because the number of items was 0starBlock()
, navPillsItem()
and the socialBlock()
title does not reload
or redirect at the top of the pageattachmentBlock()
link open a new page in a new tab (target = "_blank")dropdownItem()
(boxPlus()
): "target" is replaced by "url".rightSidebar()
function: remove rightSidebarTabList()
, rightSidebarTabItem()
and
rightSidebarPanel()
from the user interface. See here to discover how to set up
a new rightSidebar()
rightSidebar()
(set to 230 pixels by default) to
improve customization.setShadow()
to set shadow and hover effects on any elementsrightSidebarTabContent()
: see #4dashboardPagePlus()
verticalProgress()
bars!rightSidebar()
: rightSidebarMenu()
, rightSidebarMenuItem()
, menuIcon()
and menuInfo()
(see shinydashboardPlusGallery()
)boxPlus()
: add dropdownItemList()
, dropdownItem()
and dropdownDivider()
functions (see shinydashboardPlusGallery()
)timelineItemMedia()
and userPostMedia()
timeLineBlock()
either inside or outside a boxuserPostToolItemList()
, userPostToolItem()
, userPostMedia()
,
userPostToolItem()
boxProfileItemList()
, boxProfileItem()
shinydashboardPlusGallery()
shinydashboardPlusGallery()
rightSidebar()
boxPlus()
gradientBox()
, widgetUserBox()
, socialBox()
boxPad()
, attachmentBlock()
, descriptionBlock()
, productList()
,
navPills()
, todoList()
, userList()
, boxComment()
appButton()
and socialButton()
(NOTE: these are not inputButtons!)starBlock()
, loadingState()
, blockQuote()
, dashboardLabel()
dashboardHeaderPlus()
,
dashboardPagePlus()