NEWS.md
Wallace and the addition of basic functionality to demonstrate how modules can be used.common - the data structure passed between modules - has been changed from a list() containing spp <- reactiveValues() to an R6::R6Class().common not being inherently reactive, event triggers have been added using {gargoyle}
run_module() which can be used to run a single module.run_<app name>() or load_file_path
create_template() which can be used to create a skeleton app.show_loading_modal() which uses shinybusy to display a modal whilst slow functions are running.save_and_load() to automate adding the lines to modules which facilitate saving and loading of input values.core_ modules.parent_session to the modules enabling switching to the results, map and table tab from within modules and added show_table(), show_results() and show_table() to simplify code.rep_renv module to enable capturing dependencies.shiny::ExtendedTask().writeLog() to use icons for different events.save_and_load() to ignore manually added lines and fix indenting.metadata() to semi-automate adding code for reproducibility.<identifier>_f.R to prevent confusion between the function and module file.printVecAsis() when generating the Rmarkdown, removing the need to manually wrap strings in the .Rmd files.{shinyAce} to display formatted code in core_code module.select_query and select_async modules in the demonstration app have been re-written to use a different API.run_module() as it was not maintainable.asyncLog() to improve logging from inside async functions.run_<app name>() to take a load file as an argument which is loaded automatically.load_file_path containing the path to a save file will attempt to load it on app start up.create_template(), metadata() and save_and_load() more robust.global.R
printVecAsis() by using dput to support improved reproducibility e.g. by including dataframes directlyinclude_map is FALSE in create_template()
create_template() in teststype = warning
run buttons can be pressed using the Enter keycore_code module when no function existsregister_module() as it has not been refactored to work for created appscommon objects existlibrary() callsgargoyle:: and leaflet:: scopingplot_auto and plot_semi modules to the example app that run automatically and semi-automatically respectivelyasis chunks and example to plot_hist.Rmd
common$reset() and reset_data() to reset the common object and remove all outputscreate_template() and create_module() to include a downloadButton and downloadHandler to modules that is only visible once the module runs successfullycreate_template() and create_module() so that create_module() creates the module function and testsshinyWidgets::radioGroupButtons() for module selection menucreate_template()
select_query() and select_async()
R CMD check
create_module() now creates skeleton functions that include roxygen2 tagscreate_template() now creates testthat.R filecreate_module() module function calls for async apps containing a mapcommon (i.e. excluding common$tasks)