waiter 0.2.4 2021-10-04

  • Added httr_progress function to use the waitress or the attendant instead of httr::progress.
  • Added withProgressWaitress, setProgressWaitress, and incProgressWairess analogous to the same functions in shiny.
  • Added withProgressAttendant, incProgressAttendant, and setProgressAttendant.
  • Fix major issue with Hostess, it was basically broken #108.
  • Add withWaiter as requested in #105

waiter 0.2.3 2021-07-21

  • Fix #95 with different CSS for full screen (position: fixed).
  • Fix CSS injection that repeatedly injected CSS to hide recalculating effect.
  • Remove magrittr in favour of R native pipe.
  • Add active bindings for many of the waiter components, see ?Waiter.
  • Prep deprecation of functions with underscores in favour of camel case (only for that which are to be used in the shiny UI).
  • Deprecate the logo argument it is no longer used and can be easily achieved in other ways.
  • Add triggerWaiter to trigger the waiter without going through the server.
  • Implement webpack for waiter, minifies and optimises code.
  • Deprecate spinners argument of use_waiter function. All CSS is bundled with webpack.
  • Performance improvements with use of maps instead of arrays.
  • Improve documentation, new site.
  • Added function autoWaiter to easily add waiter to dynamic Shiny-rendered elements from the UI.
  • Use webpack and packer to minify and optimise hostess code.
  • Added attendant progress bars, for easy progress display without bringing in additional dependencies.
  • Document JavaScript internals

waiter 0.2.2 2021-06-25

  • Remove console.log
  • Add image argument to the waiter, allows using a background image on the waiter.
  • Fix hide_on_render #94

waiter 0.2.1 2021-05-05

  • Fixed waiter_hide_on_render see #79.
  • Added waiter_preloader shows the full page loading screen when the app is loaded and automatically removes it when all the UI is rendered: only runs once. #82
  • Remove logging of shiny event, #83
  • Fix stewart, broken due to removal of progress.js #81
  • Added fadeout effect on waiter overlays, #53
  • Improve waiter screen responsiveness.

waiter 0.2.0 2021-01-14

  • Better infinite waitress se #63
  • Add infinite hostess see #67 thanks to Víctor Granda
  • Remove deprecated functions:
    • show_waiter_on_load in favour of waiter_show_on_load
    • hide_waiter_on_drawn in favour of waiter_hide_on_drawn
    • hide_waiter in favour of waiter_hide
    • update_waiter in favour of waiter_update
    • show_waiter in favour of waiter_show
    • All functions of the Butler in favour of the Waitress
    • hostess_init in favour of Hostess$init
    • hostess_set in favour of Hostess$set
    • browse_waiters and browse_waitresses in favour of the online demo.
    • call_waitress in favour of Waitress$new()
  • Fix bug on shiny disconnected see #68
  • Change CSS of waiter overlays so it’s more responsive and better centered.
  • Remove pleasewait.js dependency.
  • Remove rstudioapi dependency; assumes most users have moved up from version 1.2
  • Fixed bug where waiter_show_on_load ran Shiny.setInputValue before shiny connected #73 + correct the erroneous example in the README
  • Document CSS and spinner placement in waiter.

waiter 0.1.3 2020-09-13

  • Added hide_on_error, and hide_on_silent_error to the Waiter to control whether the waiter should be removed when the underlying plot/table/or other throws an error. Silent errors are those raised by req and validate/need.
  • Added events waiter_shown and waiter_hidden fired when the loading screen with waiter is shown or hidden.

waiter 0.1.2 2020-07-12

  • Much improved spinners API.
  • Allow previewing the spinners with preview_spinner.
  • Spinner kit no longer force prints, print method added for this.
  • Added ability to automatically show and hide the loading screen when the server is busy/idle with waiter_on_busy
  • Remove include_js argument to simplify API

waiter 0.1.1 Unreleased

New Feature

  • Added theme-related functions (waiter_set_theme, waiter_get_theme, and waiter_unset_theme) to enable setting a global theme; making such that every waiter loading screen uses the same options (color, html, and logo). This can e overridden in individual waiter loading screens.
  • Added a new spin_google spinner
  • Added a convenience function transparent to easily create transparent waiter backgrounds.
  • Added a cheat sheet, thanks to JH Kim
  • Add ability to reduce load size of CSS (raised by issue #47), use_waiter takes a spinner argument to which one can specify any of 7 spinner CSS kits, by default all kits are loaded. One can know which kits should be specified by simply typing the spinner in the console, e.g.: spin_rotating_plane().
  • Fix waiter example.

Bug Fixes

  • Check if Rstudio 1.2 available, warn if not on attach, see #41 where waiter fails with earlier version of RStudio.
  • Change internal css class to avoid clash with shinydashboard, see #43.

waiter 0.1.0 2020-01-14

Version 0.1.0 sees great many changes. Nothing has been broken but has been deprecated. The steward and garcon family of functions have been added.

Waiter

All functions now start with waiter_.

  • The new waiter_show function deprecates show_waiter
  • The new waiter_hide function deprecates hide_waiter
  • The new waiter_update function deprecates update_waiter
  • The new waiter_show_on_load function deprecates show_waiter_on_load
  • The new waiter_hide_on_load function deprecates hide_waiter_on_load

The Reference class Waiter takes a new optional id first argument which takes one or more ids of elements to overlay the waiter over, the content of the waiter (html) becomes the second argument. If passing a list of ids one can pass a list of content html.


library(shiny)
library(waiter)

ui <- fluidPage(
  use_waiter(),
  actionButton("btn", "Render"),
  fluidRow(
    column(6, plotOutput("plot1")),
    column(6, plotOutput("plot2"))
  )
)

server <- function(input, output) {

  w <- Waiter$new(
    list("plot1", "plot2"),
    html = list(spin_1(), spin_2())
  )

  dataset <- reactive({
    input$btn
    w$show()
    Sys.sleep(2)
    runif(100)
  })

  output$plot1 <- renderPlot(plot(dataset()))
  output$plot2 <- renderPlot(plot(dataset()))

}

shinyApp(ui, server)

Waitress

The waitress also sees a lot of changes, again nothing has been broken.

  • call_waitress has been deprecated in favour of the Reference class, please use Waitress$new() instead.
  • The Waitress can now also be used as notification
  • Many methods have been renamed (deprecated) to more closely match shiny::Progress
  • Addition of the min and max arguments, one is no longer limited to percentages
  • Possibility to create an infinite progress bar (deprecates the butler)
  • Additional html argument on start method to add content on waitress

library(shiny)
library(waiter)

ui <- fluidPage(
  use_waitress(),
  actionButton("btn", "render"),
  plotOutput("plot")
)

server <- function(input, output) {

  w <- Waitress$new("#plot", min = 0, max = 10)

  output$plot <- renderPlot({
    input$btn

    w$start("LOADING")

    for(i in 1:10){
      Sys.sleep(.3)
      w$inc(1)
    }

    w$close()

    plot(runif(100))
  })

}

shinyApp(ui, server)

Hostess

The hostess is a new addition to the staff, it works hand in hand with waiter to allow you to layer a progress bar on top of the waiter (though it can be used on its own). Moreover the latter progress bars can be greatly customised.


library(shiny)
library(waiter)

ui <- fluidPage(
  use_waiter(),
  use_hostess(),
  waiter_show_on_load(
    color = "#f7fff7",
    hostess_loader(
      "loader", 
      preset = "circle", 
      text_color = "black",
      class = "label-center",
      center_page = TRUE
    )
  )
)

server <- function(input, output){
  hostess <- Hostess$new("loader")

  for(i in 1:10){
    Sys.sleep(runif(1) / 2)
    hostess$set(i * 10)
  }

  waiter_hide()
}

shinyApp(ui, server)