runGlassExample("connect-workflow") opens a Shiny page
designed to be published to Posit Connect. It demonstrates a practical
review workflow:
glassSelect() and
glassMultiSelect()glassTabsUI(orientation = "vertical", indicator = "solid")
guides users through intake, exploration, and approvalupdateGlassTabBadge() keeps tab badges aligned with the
filtered dataupdateGlassTabsUI() moves reviewers to the next stage
from server actionstheme = "auto" follows Bootstrap 5 / bslib light and
dark modesoverflow = "scroll", "multiline", and the
horizontal-only "menu" mode can be compared without leaving
the appglassPage() wrapper can be exercised in one
published sessionThe page includes an open test checklist. It is there to make a review session easy to repeat, not to turn the example into a wall of instructions.
The repository copy keeps a deployment manifest.json
generated by rsconnect::writeManifest(). It is left out of
the CRAN source package so an old package lock cannot override the
version a user has installed. When testing a repository build that is
newer than the CRAN release, install that build before regenerating the
manifest so Connect restores the same code:
The example is a self-contained Shiny app folder. In a package checkout, regenerate its manifest after installing the version you want to deploy:
rsconnect::writeManifest(appDir = "inst/examples/connect-workflow")
rsconnect::deployApp(
appDir = "inst/examples/connect-workflow",
appName = "glasstabs-connect-workflow",
appTitle = "glasstabs Connect Workflow"
)If you are deploying from an installed package, copy the example folder first:
example_dir <- system.file("examples", "connect-workflow", package = "glasstabs")
file.copy(example_dir, "connect-workflow", recursive = TRUE)
rsconnect::writeManifest(appDir = "connect-workflow")
rsconnect::deployApp(
appDir = "connect-workflow",
appName = "glasstabs-connect-workflow",
appTitle = "glasstabs Connect Workflow"
)The page uses a common Connect pattern: make the first screen the actual work surface, keep controls near the content they affect, and expose state through badges and compact metrics. That makes the app useful as a scheduled report, review queue, or operational handoff page without adding a separate landing screen.