shiny 0.6.0 -------------------------------------------------------------------------------- * `tabsetPanel()` can be directed to start with a specific tab selected. * Fix bug where multiple file uploads with 3 or more files result in incorrect data. * Add `withTags()` function. * Add dateInput and dateRangeInput. * `shinyServer()` now takes an optional `session` argument, which is used for communication with the session object. * Add functions to update values of existing inputs on a page, instead of replacing them entirely. * Allow listening on domain sockets. * Added `actionButton()` to Shiny. * The server can now send custom JSON messages to the client. On the client side, functions can be registered to handle these messages. * Callbacks can be registered to be called at the end of a client session. * Add ability to set priority of observers and outputs. Each priority level gets its own queue. * Fix bug where the presence of a submit button would prevent sending of metadata until the button was clicked. * `reactiveTimer()` and `invalidateLater()` by default no longer invalidate reactive objects after the client session has closed. * Shiny apps can be run without a server.r and ui.r file. shiny 0.5.0 -------------------------------------------------------------------------------- * Switch from websockets package for handling websocket connections to httpuv. * New method for detecting hidden output objects. Instead of checking that height and width are 0, it checks that the object or any ancestor in the DOM has style display:none. * Add `clientData` reactive values object, which carries information about the client. This includes the hidden status of output objects, height/width plot output objects, and the URL of the browser. * Add `parseQueryString()` function. * Add `renderImage()` function for sending arbitrary image files to the client, and its counterpart, `imageOutput()`. * Add support for high-resolution (Retina) displays. * Fix bug #55, where `renderTable()` would throw error with an empty data frame. shiny 0.4.1 -------------------------------------------------------------------------------- * Fix bug where width and height weren't passed along properly from `reactivePlot` to `renderPlot`. * Fix bug where infinite recursion would happen when `reactivePlot` was passed a function for width or height. shiny 0.4.0 -------------------------------------------------------------------------------- * Added suspend/resume capability to observers. * Output objects are automatically suspended when they are hidden on the user's web browser. * `runGist()` accepts GitHub's new URL format, which includes the username. * `reactive()` and `observe()` now take expressions instead of functions. * `reactiveText()`, `reactivePlot()`, and so on, have been renamed to `renderText()`, `renderPlot()`, etc. They also now take expressions instead of functions. * Fixed a bug where empty values in a numericInput were sent to the R process as 0. They are now sent as NA. shiny 0.3.1 -------------------------------------------------------------------------------- * Fix issue #91: bug where downloading files did not work. * Add [[<- operator for shinyoutput object, making it possible to assign values with `output[['plot1']] <- ...`. * Reactive functions now preserve the visible/invisible state of their returned values. shiny 0.3.0 -------------------------------------------------------------------------------- * Reactive functions are now evaluated lazily. * Add `reactiveValues()`. * Using `as.list()` to convert a reactivevalues object (like `input`) to a list is deprecated. The new function `reactiveValuesToList()` should be used instead. * Add `isolate()`. This function is used for accessing reactive functions, without them invalidating their parent contexts. * Fix issue #58: bug where reactive functions are not re-run when all items in a checkboxGroup are unchecked. * Fix issue #71, where `reactiveTable()` would return blank if the first element of a data frame was NA. * In `plotOutput`, better validation for CSS units when specifying width and height. * `reactivePrint()` no longer displays invisible output. * `reactiveText()` no longer displays printed output, only the return value from a function. * The `runGitHub()` and `runUrl()` functions have been added, for running Shiny apps from GitHub repositories and zip/tar files at remote URLs. * Fix issue #64, where pressing Enter in a textbox would cause a form to submit. shiny 0.2.4 -------------------------------------------------------------------------------- * `runGist` has been updated to use the new download URLs from https://gist.github.com. * Shiny now uses `CairoPNG()` for output, when the Cairo package is available. This provides better-looking output on Linux and Windows. shiny 0.2.3 -------------------------------------------------------------------------------- * Ignore request variables for routing purposes shiny 0.2.2 -------------------------------------------------------------------------------- * Fix CRAN warning (assigning to global environment) shiny 0.2.1 -------------------------------------------------------------------------------- * [BREAKING] Modify API of `downloadHandler`: The `content` function now takes a file path, not writable connection, as an argument. This makes it much easier to work with APIs that only write to file paths, not connections. shiny 0.2.0 -------------------------------------------------------------------------------- * Fix subtle name resolution bug--the usual symptom being S4 methods not being invoked correctly when called from inside of ui.R or server.R shiny 0.1.14 -------------------------------------------------------------------------------- * Fix slider animator, which broke in 0.1.10 shiny 0.1.13 -------------------------------------------------------------------------------- * Fix temp file leak in reactivePlot shiny 0.1.12 -------------------------------------------------------------------------------- * Fix problems with runGist on Windows * Add feature for on-the-fly file downloads (e.g. CSV data, PDFs) * Add CSS hooks for app-wide busy indicators shiny 0.1.11 -------------------------------------------------------------------------------- * Fix input binding with IE8 on Shiny Server * Fix issue #41: reactiveTable should allow print options too * Allow dynamic sizing of reactivePlot (i.e. using a function instead of a fixed value) shiny 0.1.10 -------------------------------------------------------------------------------- * Support more MIME types when serving out of www * Fix issue #35: Allow modification of untar args * headerPanel can take an explicit window title parameter * checkboxInput uses correct attribute `checked` instead of `selected` * Fix plot rendering with IE8 on Shiny Server shiny 0.1.9 -------------------------------------------------------------------------------- * Much less flicker when updating plots * More customizable error display * Add `includeText`, `includeHTML`, and `includeMarkdown` functions for putting text, HTML, and Markdown content from external files in the application's UI. shiny 0.1.8 -------------------------------------------------------------------------------- * Add `runGist` function for conveniently running a Shiny app that is published on gist.github.com. * Fix issue #27: Warnings cause reactive functions to stop executing. * The server.R and ui.R filenames are now case insensitive. * Add `wellPanel` function for creating inset areas on the page. * Add `bootstrapPage` function for creating new Twitter Bootstrap based layouts from scratch. shiny 0.1.7 -------------------------------------------------------------------------------- * Fix issue #26: Shiny.OutputBindings not correctly exported. * Add `repeatable` function for making easily repeatable versions of random number generating functions. * Transcode JSON into UTF-8 (prevents non-ASCII reactivePrint values from causing errors on Windows). shiny 0.1.6 -------------------------------------------------------------------------------- * Import package dependencies, instead of attaching them (with the exception of websockets, which doesn't currently work unless attached). * conditionalPanel was animated, now it is not. * bindAll was not correctly sending initial values to the server; fixed. shiny 0.1.5 -------------------------------------------------------------------------------- * BREAKING CHANGE: JS APIs Shiny.bindInput and Shiny.bindOutput removed and replaced with Shiny.bindAll; Shiny.unbindInput and Shiny.unbindOutput removed and replaced with Shiny.unbindAll. * Add file upload support (currently only works with Chrome and Firefox). Use a normal HTML file input, or call the `fileInput` UI function. * Shiny.unbindOutputs did not work, now it does. * Generally improved robustness of dynamic input/output bindings. * Add conditionalPanel UI function to allow showing/hiding UI based on a JS expression; for example, whether an input is a particular value. Also works in raw HTML (add the `data-display-if` attribute to the element that should be shown/hidden). * htmlOutput (CSS class `shiny-html-output`) can contain inputs and outputs. shiny 0.1.4 -------------------------------------------------------------------------------- * Allow Bootstrap tabsets to act as reactive inputs; their value indicates which tab is active * Upgrade to Bootstrap 2.1 * Add `checkboxGroupInput` control, which presents a list of checkboxes and returns a vector of the selected values * Add `addResourcePath`, intended for reusable component authors to access CSS, JavaScript, image files, etc. from their package directories * Add Shiny.bindInputs(scope), .unbindInputs(scope), .bindOutputs(scope), and .unbindOutputs(scope) JS API calls to allow dynamic binding/unbinding of HTML elements shiny 0.1.3 -------------------------------------------------------------------------------- * Introduce Shiny.inputBindings.register JS API and InputBinding class, for creating custom input controls * Add `step` parameter to numericInput * Read names of input using `names(input)` * Access snapshot of input as a list using `as.list(input)` * Fix issue #10: Plots in tabsets not rendered shiny 0.1.2 -------------------------------------------------------------------------------- Initial private beta release!