URL Parameters
url-parameters.Rmddashboardr can sync filter state to URL query parameters, enabling shareable links that restore a specific view of the dashboard.
Enabling URL Parameters
Add enable_url_params() to your dashboard to activate
URL deep linking. This requires enable_inputs() to also be
active (inputs must exist for URL parameters to control).
The simplest way is to set url_params = TRUE on
enable_inputs():
page <- create_page("Analysis") %>%
add_input(
input_id = "region",
type = "select_multiple",
label = "Region",
filter_var = "region",
options = c("North", "South", "East", "West")
) %>%
add_viz(
type = "bar",
x_var = "category",
cross_tab_filter_vars = "region"
)When enable_url_params() is included, the dashboard
will:
- Read filter state from the URL on page load
- Update the URL as the user changes filters
- Support tab navigation via URL hash fragments
URL Format
Filter values are stored as query parameters using the filter variable name:
dashboard.html?region=North,South&year=2020
- Multiple selected values are comma-separated
- Parameter names match the
filter_varvalues from your inputs - Tab state is stored in the URL hash:
dashboard.html#TabName
Sharing Pre-Filtered Links
You can construct URLs manually to share a specific dashboard view:
https://example.com/dashboard.html?region=North&year=2020,2021#Demographics
This link would:
- Set the region filter to “North”
- Set the year filter to “2020” and “2021”
- Navigate to the “Demographics” tab
Nested Tabs
For dashboards with nested tabgroups, use / to specify
the tab path:
dashboard.html#Demographics/Age
This activates the “Demographics” parent tab and then the “Age” child tab.
Example Dashboard
data <- data.frame(
region = rep(c("North", "South", "East", "West"), each = 25),
year = rep(2018:2022, 20),
value = round(rnorm(100, 50, 15))
)
dashboard <- create_dashboard(
title = "Regional Analysis",
data = data
) %>%
add_page(
create_page("Overview") %>%
add_input(
input_id = "region_filter",
type = "select_multiple",
label = "Region",
filter_var = "region",
options = c("North", "South", "East", "West")
) %>%
add_input(
input_id = "year_filter",
type = "select_multiple",
label = "Year",
filter_var = "year",
options = as.character(2018:2022)
) %>%
add_viz(
type = "bar",
x_var = "region",
title = "By Region",
cross_tab_filter_vars = c("region", "year")
)
)After generating this dashboard, users can share links like:
docs/index.html?region=North,South&year=2020