rstudio/shiny — pull request #352 by jmcphers (2013-12-30 17:46:03+00:00)
Title: Add Shiny Showcase mode

This change adds a showcase mode to Shiny applications. Showcase mode can be entered in any of the following ways. In least to greatest priority order:

- Setting `DefaultShowcaseMode: 1` in an app's `DESCRIPTION` file.
- Passing the `showcase.mode = 1` parameter to `runApp`.
- Adding `showcase=1` to the querystring.

Any app can be run under showcase mode. Apps can prevent users from setting showcase mode on the URL by setting `AllowShowcaseModeOverride: FALSE` in `DESCRIPTION`; this value is the default for apps running under Shiny Server.

In showcase mode, markup describing the app's metadata and code is emitted during `renderPage`. Shiny also emits reactive log events to the client (using a custom message of type `reactlog`), which are used at runtime to flash the parts of the code that are participating in a reactive event.

Several layouts are supported, and are chosen at runtime based on the width of the browser and which metadata elements the app has provided. When the app's code is displayed alongside it, the app may be scaled so that there is enough horizontal room for both the app and its code.

(I noticed there was another PR open that adds jQuery UI. The jQuery UI library included in this PR has been stripped down to just the core interactions and the specific effects used by showcase mode. It needs to be reconciled with the jQuery UI instance added in the other PR.)