introJsUI <- function(id) {
ns <- NS(id)
tags$li(
class = "dropdown",
actionLink(ns("intro"), label = NULL, icon = icon("info"))
)
}
introJs <- function(input, output, session) {
element <- c(
NA, "#tessa-strategy-reactive_ui", "#tessa-criteria-ui",
"#tessa-criteria-update", "#tessa-criteria-options", "#tessa-vis_panel-treemap",
"#tessa-vis_panel-plot", "#tessa-scenarios-table", "#tessa-scenarios-options",
"#tessa-results-table",
"#tessa-scoring-table", "#tessa-scoring-scale", "#tessa-scoring-tiebreak"
)
intro <- c(
paste("Welcome to the Tender Evaluation Scenario Tool (TEST).",
"This introduction provides a quick overviews of how to use the tool."),
paste("Select your tender evalution strategy from the drop down list.",
"You can also configure whether you want to include a maxmium",
"affordability constraint or minimum quality threshold."),
paste("Insert the technical criteria and associated weightings.",
"Right click on the table to insert new rows."),
paste("Click on the button to pass the criteria and weightings to the rest of the app"),
paste("These checkboxes control whether to rescale criteria when it is added,",
"whether to include a category column for sorting groups, and",
"whether to include a minimum threshold for individual criteria."),
paste("This treemap visualises the weightings. If the category variable is supplied,",
"then you can zoom into the treemap"),
paste("This visualises the outcome based on cost and quality"),
paste("You can generate outcomes from technical scenarios here"),
paste("You can add or remove scenarios using these buttons"),
paste("You can enter different price points into this table. The other fields are read only"),
paste("You can set the values against different confidence points.",
"It is recommended to use default values unless there is a very good reason not to"),
paste("You can choose between a 5-point and 4-point scale here"),
paste("You can choose the tiebreak rule here. If there is still a tie, then the winner is chosen at random.")
)
steps <- reactive(
data.frame(
element = element,
intro = intro
)
)
observeEvent(input$intro, {
introjs(
session = session,
options = list(steps = steps()),
events = list("onbeforechange" = readCallback("switchTabs"))
)
})
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.