Using the Announcement Shiny Module

Mohammed Ali

2024-01-08

Overview

Purpose

This Shiny Module displays announcements for app users at the top of an application. It is a great location for administrative announcements, feature release notes, or any other global user messages.

Features

Usage

Shiny Module Overview

Shiny modules consist of a pair of functions that modularize, or package, a small piece of reusable functionality. The UI function is called directly by the user to place the UI in the correct location (as with other shiny UI objects). The module server function that is called only once to set it up using the module name as a function inside the server function (i.e. user-local session scope. The first function argument is a string that represents the module id (the same id used in module UI function). Additional arguments can be supplied by the user based on the specific shiny module that is called. There can be additional helper functions that are a part of a shiny module.

The announcements Shiny Module is a part of the periscope2 package and does not have any public functions. See below for configuration details.

Usage

Announcements Banner Example

Announcements configuration file

Announcements Banner Configuration File
# Inside program\global.R

set_app_parameters(title              = "periscope Example Application",
                   app_info           = HTML("Demonstrate periscope features and generated application layout"),
                   log_level          = "DEBUG",
                   app_version        = "1.0.0",
                   loading_indicator  = list(html = spin_1(), color = 'rgba(22, 65, 124, 0.3)'),
                   announcements_file = "./program/config/announce.yaml")

Sample Application

For a complete running shiny example application using the announcements module you can create and run a periscope2 sample application using:

library(periscope2)

app_dir = tempdir()
create_application(name = 'mysampleapp', location = app_dir, sample_app = TRUE)
runApp(paste(app_dir, 'mysampleapp', sep = .Platform$file.sep))


Vignettes