Skip to content

Releases: insightsengineering/teal

v0.16.0

24 Feb 03:36
3c8ffab
Compare
Choose a tag to compare

New features

  • Possible to call ui_teal and srv_teal directly in any application by delivering data argument as a reactive returning teal_data object (#669).
  • Since introduction of ui_teal and srv_teal functions, the id argument in init is being deprecated (#1438).
  • Introduce ui_session_info and srv_session_info shiny module to create the user session info and teal app lockfile download button.
  • Introduced teal_transform_module to provide a way to interactively modify data delivered to teal_module's server and to decorate module outputs, along with a vignette to demonstrate its usage (#1228, #1384).
  • Introduced a new argument once = FALSE in teal_data_module to possibly reload data during a run time.
  • Possibility to download lockfile to restore app session for reproducibility (#479).
  • Datasets which name starts with . are ignored when module's datanames is set as "all".
  • Added warning when reserved datanames, such as all and .raw_data are being used.
  • Added add_custom_server() to allow adding custom server logic to the main shiny server function of a teal app.

Breaking changes

  • Setting datanames() on data passed to teal application no longer has effect. In order to change teal_module's
    datanames one should modify module$datanames.
  • landing_popup_module() is deprecated. Please use add_landing_modal() function to add a landing popup for your teal application.
  • teal no longer re-export %>%. Please load library(magrittr) instead or use |> from base.
  • build_app_title will be removed in the future release. Please use the modify_title() function to change the title for your teal application.
  • The title, header, and footer arguments of the init() function are deprecated. Please use the modify_title, modify_header, and modify_footer respectively.

Enhancement

  • Enhanced a system of data validation and a display of error messages.
  • Easier way of to call javascript events by setting $(document).ready(function() { ... }) (#1114).
  • Provided progress bar for modules loading and data filtering during teal app startup.
  • Filter mapping display has a separate icon in the tab.
  • Environment of the data passed to the teal_module's server consists unfiltered datasets contained in .raw_data.

What's Changed

Read more

v0.16.0-rc2: 1494 fix note (#1495)

18 Feb 20:13
6daa390
Compare
Choose a tag to compare
fixes #1494 
RHUB workflow
https://github.com/insightsengineering/teal/actions/runs/13372139467

v0.15.2

07 Mar 23:33
06a0a58
Compare
Choose a tag to compare

Bug fixes

  • Fixed a bug in handling datanames of modules that crashed module-specific applications when filtering child datasets.

What's Changed

Full Changelog: v0.15.1...v0.15.2

v0.15.1

22 Feb 23:26
bcef4f9
Compare
Choose a tag to compare

Bug fixes

  • Fixed a bug that stopped the module_specific feature when a teal module specified datanames of length more than 1.

Miscellaneous

  • Updated links in vignettes

v0.15.0

09 Feb 16:23
e3a369b
Compare
Choose a tag to compare

New features

  • Added landing_popup_module function which creates a module that will display a popup when the app starts. The popup will block access to the app until it is dismissed.
  • Filter state snapshots can now be uploaded from file. See ?snapshot.
  • Added as_tdata function to facilitate migration of modules to the new teal_data class.
  • Added build_app_title function to facilitate adding favicons to app title.

Breaking changes

  • data argument in init now accepts only teal_data and teal_data_module.
  • tdata has been deprecated and replaced with teal_data. Support for tdata passed to the data argument in module(server) will be removed in the next release.
  • module(ui) argument no longer accepts data and datasets arguments. All data dependent logic should be set in the server function.
  • module(server) argument deprecated datasets argument. teal_modules' server functions should accept data (teal_data) instead.
  • Changed the order of formal arguments in init. filter now comes directly after modules, before title.

Miscellaneous

  • Enhanced a module validation checks so that it won't throw messages about data argument unnecessarily.
  • Added argument to teal_slices and made modifications to init to enable tagging teal_slices with an app id to safely upload snapshots from disk.
  • FilteredData no longer stores pre-processing code in specific slots. Code is now attached as attribute. Adjusted appropriately.

Bug fixes

  • Removed Report previewer module from mapping matrix display in filter manager.
  • Specified minimal version of package dependencies.

v0.14.0

14 Aug 13:42
bf6262b
Compare
Choose a tag to compare

New features

  • Enabled module specific filter panel. See module_specific in teal::teal_slices documentation.
  • Enabled capturing and resetting application filter state with snapshots. See ?snapshot.
  • Enabled reporter_previewer_module to customize default values through srv_args.
  • Enabled passing own reporter_previewer_module in a list of modules to override default one.

Breaking changes

  • Specifying filter argument in teal::init requires teal_slices object now. Details in documentation of teal::init.
  • Soft deprecated filters argument in module and replaced it with datanames. Details in documentation of teal::module

Miscellaneous

  • Removed scda package dependency from examples.

What's Changed

Full Changelog: v0.13.0...v0.14.0

v0.13.0

22 May 18:10
9b5498d
Compare
Choose a tag to compare

Breaking changes

  • The use of datasets argument in modules has been deprecated and will be removed in a future release. Please use data argument instead. data is of type tdata; see "Creating custom modules" vignettes and function documentation of teal::new_tdata for further details.
  • Due to deprecation of chunks in teal.code, the teal framework now uses their replacement (qenv) instead. The documentation in teal has been updated to reflect this and custom modules written with chunks should be updated to use qenv.
  • Due to deprecation of chunks in teal.code, get_rcode, get_rcode_srv, and get_rcode_ui have been removed.

New features

  • Added the validate_inputs function that transfers input validation messages to app output.
  • modules argument of init accepts teal_module type of object. There is no need to wrap up a single module in modules() or list().
  • Updated module_nested_tabs so that only active modules are calculated in a teal app.

Miscellaneous

  • Updated examples to use scda.2022.
  • Added R session information into a link in the footer of teal applications.
  • Added data hashing step using rlang instead of digest package to calculate the hash (which has been moved from teal.data and teal.slice). There is now an explicit hashing check in the reproducible code output.
  • Removed deprecated functions: root_modules, default_filter, bookmarkableShinyApp, as well as deprecated logging mechanism, including the functions log_app_usage and .log.
  • Updated the "Teal and Bootstrap Themes" vignette to provide more details customizing a teal app with bslib::run_with_themer.
  • Removed outdated diagram from srv_nested_tabs documentation.
  • Changed default values of header and footer arguments in init to empty text.

What's Changed

New Contributors

Full Changelog: v0.12.0...v0.13.0

v0.12.0

14 Oct 01:25
19e1529
Compare
Choose a tag to compare

New features

  • Added the support for custom bslib bootstrap themes in teal::init apps, please read more in the new teal-bs-themes vignette.

Enhancements

  • Added the option to choose which variables can be filtered in the filter panel by using the filterable attributes for the per-dataset lists in the filter argument of init.
  • Updated teal_module to have data argument which receives a list of reactive filter data with "code" and "join_keys" attributes.
  • Updated teal_module to have filter_panel_api argument which receives a FilterPanelAPI object.
  • Updated the internals of module_teal to reflect changes in teal.slice.
  • Updated vignettes and README content.

Breaking changes

  • Updated teal_module to no longer receive datasets object in the ... argument. In order to use datasets in the teal_module please specify datasets explicitly.
  • Deprecated merge_expression argument in get_rcode_srv function and removed it in get_rcode function.
  • Deprecated session argument in get_rcode function.

Miscellaneous

  • Enhanced the burger button so it is disabled when the filter panel is not used.

What's Changed

Full Changelog: v0.11.1...v0.12.0

v0.11.1

09 Jun 14:31
d8b1e24
Compare
Choose a tag to compare

Enhancements

  • Added new function reporter_previewer_module to wrap the teal.reporter package previewer functionality as a teal module.
  • Updated teal to support modules which include reporting. If any module which supports reporting is included then a reporter_previewer_module is included.
  • Added default arguments to module() and the server argument is now a function where the second argument can be ... or datasets.

Breaking changes

  • Deprecated bookmarkableShinyApp. In future releases the teal framework will stop supporting shiny bookmarking (which has not officially been supported); it may be officially supported in the future. Note the filter panel in teal.slice retains its ability to save and restore its state if used in a standalone shiny app with bookmarking.

Miscellaneous

  • Added a template to the pkgdown configuration.
  • Removed unneeded shinytest app tests.
  • Updated package authors.
  • Added package vignettes.

v0.10.1

29 Jan 18:14
Compare
Choose a tag to compare

Breaking changes

  • Changed the HTML identifiers of teal modules - now each nested module receives its own shiny namespace.
  • Deprecated all functions related to connectors that have been moved to their own separate packages.
  • Removed raw_dataset, raw_dataset_connector, named_dataset, named_dataset_file, named_dataset_connector, relational_dataset, relational_dataset_file, relational_dataset_connector, key, as_cdisc, as_cdisc_relational.
  • Removed rcd_connection and rcd_data; scda_dataset_connectors can be passed into cdisc_data and teal_data directly.
  • Replaced rcd_dataset_connector and rcd_cdisc_dataset_connector with scda_dataset_connector and scda_cdisc_dataset_connector respectively.
  • Renamed teal_show_js_log option into teal.show_js_log to match options naming convention.
  • Removed %is_in% and stop_shiny internal utility functions.

New features

Logging

  • Added support for logging using the logger package.
  • Added a new function register_logger, which registers a logger in a given namespace.
  • Added trace and info levels log messages to the teal framework.
  • Added pid and shiny session token into footnote so app developers can identify logs for apps.

Other

  • Added print methods to the DatasetConnector, RelationalData, RelationalDataconnector and JoinKeys classes and added input validation to the implementation of the print method that was already in the Dataset object.

  • Added public facing constructor functions for CDISCDataConnector, RelationalDataConnector, and DataConnection classes.

  • Modified data_extract_spec to allow both the filter and select parameters to be NULL, which results in the data_extract_ui acting as if a filter_spec with all variables as possible choices had been supplied as the filter argument and a select_spec with the multiple parameter set to TRUE had been supplied as the select argument.

  • Added support of the full screen for a module when the filters argument is equal NULL.

  • Added support for shiny::moduleServer passed to the server parameter of teal::module.

  • Added teal.threshold_slider_vs_checkboxgroup as an R option: if a categorical variable has more than this number of unique values, the filter panel uses a drop-down select input instead of a checkbox group.

  • Extended the FilteredData API to allow managing filter states programmatically and not only from the UI of a teal application.

  • Hid the buttons to remove filters from all datasets and each dataset when there are no active filters.

  • Updated init to accept RelationalData, data.frame, MultiAssayExperiment, Dataset, DatasetConnector, list or a function returning a named list as data input.

Bug fixes

  • choices_selected now correctly removes duplicates from the array passed to its choices parameter.
  • Fixed call returned by FilterState in case of using MultiAssayExperiment::subsetByColData. Now single condition for variable containing NA values is !is.na(var) & var == <condition>.
  • Fixed data loading of DatasetConnector being dependent on other Dataset or DatasetConnector objects.
  • Fixed restoring a bookmarked filter state of teal application.
  • Refactored module_nested_tabs to fix the issue with the filter panel not reacting to an input change in a nested module.
  • updateOptionalSelectInput no longer sets input to NULL when logical value is passed to selected.
  • Fixed setting JoinKeys when key name between two Dataset object differs.
  • Fixed printing of the JavaScript console logs to the R console when teal.show_js_log = TRUE.

Miscellaneous

  • Soft-deprecate mae_dataset() in favor of more general dataset() constructor.
  • Added a vignette describing the modifications to teal applications users can apply using R options.
  • Added default values to the label argument of select_spec and filter_spec.
  • Added validation to FilteredDataset::get_data to accept logical input only.
  • Changed references to outdated functions of teal.devel in the documentation.
  • Introduced a Teal prefix to all public R6 classes to avoid name collisions with other packages.
  • Removed dependency on utils.nest and replaced its functionality in teal with equivalents from the checkmate package and base R.
  • Replaced the old shiny server functions of DataConnection, RelationalDataConnector, DatasetConnector, and RelationalData with the shiny::moduleServer equivalents.
  • Running a teal application via ui_teal_with_splash and srv_teal_with_splash is now no longer recommended because it doesn't support new features (e.g. logging, bookmarking). Use init instead.
  • Updated the R version requirement to >= 4.0.
  • Updated the "filter panel collapse" icon to remove warnings when using shiny version >= 1.7.
  • Removed some of the non-exported, debugging modules.
  • Updated the footer tag style to be less visible.