creates a table in Shiny which the cells are hyper reference (links) buttons. This function is similar to hrefTab, but that function only creates a single row of link buttons, and this function creates a table of rows.
The table has two columns, the first column is row names, second column is different link buttons.
hrefTable(
item_titles,
item_labels,
item_hrefs,
item_title_colors = "#0275d8",
item_bg_colors = "#337ab7",
item_text_colors = "white",
Id = NULL,
first_col_name = "Category",
second_col_name = "Options",
title = "A Table buttons with links",
title_color = "#0275d8",
target_blank = FALSE,
...
)
vector of strings, a vector of titles for table row names
list, a list of character vectors to specify button labels in each table row, one vector per row
list, a list of character vectors to specify button hrefs links in each table row, one vector per row
a single character value or a character vector to specify button title text colors of each row name
a single character value or a list, a list of character vectors to specify button background colors in each table row, one vector per row
a single character value or a list, a list of character vectors to specify button text colors in each table row, one vector per row
optional ID
first column name
second column name
title of this table
table title color
bool, whether to add target="_blank"
to the link?
other HTML param you want to pass to the table
HTML elements
item_titles
, item_labels
, item_hrefs
must have the same
length. Each vector in item_labels
, item_hrefs
must also have the same
length. For example, if we want to make a table of two rows, the first row
has 1 cell and the second row has 2 cells:
hrefTable(
item_titles = c("row 1", "row 2"),
item_labels = list(c("cell 1"), c("cell 1", "cell 2")),
item_hrefs = list(c("link1"), c("link1", "link2")
)
If item_title_colors
, item_text_colors
are given more than one value,
the list must have the same length as item_titles
, and length of each vector
in the list must match the vector in item_labels
in the same order.
If item_title_colors
is given more than one value, the vector must have
the same length as item_titles
.
Use ""
to occupy the space if you do not want a label contains a link,
e.g item_hrefs = list(c("https://www.google.com/"), c("", ""))
If a label does not have a link, you cannot click it and there is no hovering effects.
if(interactive()){
ui <- fluidPage(
hrefTable(
title = "default",
item_titles = c("workflow 1", "unclickable"),
item_labels = list(c("tab 1"), c("tab 3", "tab 4")),
item_hrefs = list(c("https://www.google.com/"), c("", ""))
),
hrefTable(
title = "Change button color and text color",
item_titles = c("workflow 1", "No links"),
item_labels = list(c("tab 1"), c("tab 3", "tab 4")),
item_hrefs = list(c("https://www.google.com/"), c("", "")),
item_bg_colors = list(c("blue"), c("red", "orange")),
item_text_colors = list(c("black"), c("yellow", "green"))
),
hrefTable(
title = "Change row name colors and width",
item_titles = c("Green", "Red", "Orange"),
item_labels = list(c("tab 1"), c("tab 3", "tab 4"), c("tab 5", "tab 6", "tab 7")),
item_hrefs = list(
c("https://www.google.com/"),
c("", ""),
c("https://www.google.com/", "https://www.google.com/", "")
),
item_title_colors = c("green", "red", "orange"),
style = "width: 50%"
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
}