Releases: insightsengineering/teal
v0.16.0
New features
- Possible to call
ui_teal
andsrv_teal
directly in any application by deliveringdata
argument as areactive
returningteal_data
object (#669). - Since introduction of
ui_teal
andsrv_teal
functions, theid
argument ininit
is being deprecated (#1438). - Introduce
ui_session_info
andsrv_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 toteal_module
'sserver
and to decorate module outputs, along with a vignette to demonstrate its usage (#1228, #1384). - Introduced a new argument
once = FALSE
inteal_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 whenmodule
'sdatanames
is set as"all"
. - Added warning when reserved
datanames
, such asall
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()
ondata
passed to teal application no longer has effect. In order to changeteal_module
's
datanames
one should modifymodule$datanames
. landing_popup_module()
is deprecated. Please useadd_landing_modal()
function to add a landing popup for your teal application.teal
no longer re-export%>%
. Please loadlibrary(magrittr)
instead or use|>
frombase
.build_app_title
will be removed in the future release. Please use themodify_title()
function to change the title for your teal application.- The
title
,header
, andfooter
arguments of theinit()
function are deprecated. Please use themodify_title
,modify_header
, andmodify_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 theteal_module
's server consists unfiltered datasets contained in.raw_data
.
What's Changed
- Create CLA Workflow by @cicdguy in #1134
- Inherit core workflow secrets by @cicdguy in #1141
- 445 unify html tags by @kartikeyakirar in #1122
- 52 standardise optional notation by @kartikeyakirar in #1121
- Introduce shinytest2 by @vedhav in #1127
- 503
$get_html_rvest
method forTealAppDriver
by @m7pr in #1158 - 503 shinytest2 for session info link in bottom of the page by @m7pr in #1145
- 503 shinytest2 for
Show R code
modal by @m7pr in #1146 $active_module_element_text
methodTealAppDriver
by @m7pr in #1167- 503 shinytest2 fixes bug with setting numeric range by @averissimo in #1152
- register teal.logger handlers; replace few loggers with base by @pawelru in #1081
- 503 shinytest2 for
teal_data_module
by @averissimo in #1148 - Update bootstrap-themes-in-teal.Rmd by @abodoni in #1170
- 503 Applying suggestions by @averissimo in #1161
- 503 shinytest2 for
landing_popup_module
by @m7pr in #1138 - Migrate to new API calls on
TealAppDriver
by @averissimo in #1174 - add wrapper for wait_for_value for output value. by @kartikeyakirar in #1172
- 1163 extend
TealAppDriver$new()
andTealAppDriver$click()
with$wait_for_idle()
calls by @m7pr in #1171 - 898 save app state version 3 by @chlebowa in #1011
- Adds extra parameters to methods that call
TealAppDriver$set_inputs
(shinytest2) by @averissimo in #1175 - Expose method in
TealAppDriver
that checks if elements are visible by @averissimo in #1182 - vbump teal.data by @pawelru in #1194
- update wait time to 5 secs by @donyunardi in #1196
- Adds double colon prefix to
platform_variant()
by @averissimo in #1198 - Tests wait for idle by default after setting module input by @averissimo in #1200
- Fixes bug on set_module_input by @averissimo in #1201
- 1203 rename
TealAppDriver$set_module_input
toTealAppDriver$set_active_module_input
by @m7pr in #1204 - add link to the video by @donyunardi in #1206
- Fixes integration tests when Chrome >=105 is not installed by @donyunardi in #1202
- New methods for
TealAppDriver
:get_active_module_*ws_output
by @m7pr in #1208 - Support Load Reporter by @Polkas in #1120
- Workflow propagation by @walkowif in #1144
- Fix shinytest2 app init on R 4.4.0+ by @vedhav in #1211
- vbump the
teal.reporter
dependency by @vedhav in #1213 - Extend the table fetcher to handle DT tables too by @vedhav in #1210
- 1128 remove fluff in imports by @m7pr in #1214
- 1154 deprecation for
show_rcode_modal
by @m7pr in #1217 - A method to check for page stability when shiny is not busy by @vedhav in #1222
- Fix the integration tests by alternative by @vedhav in #1237
- Improve progress bars by @chlebowa in #1236
- progress bars follow-up by @chlebowa in #1241
- Bumps
{rmarkdown}
minimal version by @averissimo in #1221 module_teal
documentation update by @kartikeyakirar in #1227- modify
hideSidebar
andshowSidebar
funcitons to work in embedded apps by @chlebowa in #1239 - 479 add
renv::snapshot()
for.lockfile
withfuture
+shiny::ExtendedTask
by @m7pr in #1232 - Update bootstrap-themes-in-teal.Rmd by @Alexandra01 in #1252
- Update teal-options.Rmd by @pawelru in #1254
- fix
noSuggests
check by @pawelru in #1259 - Workflow propagations by @walkowif in #1285
- add refs to rhub workflow by @pawelru in #1291
- Feature branch PR by @gogonzo in #1253
- Always position the teal util icons in the same place by @vedhav in #1296
- get_teal_bs_theme(): use checkmate for throw and check by @pawelru in #1318
- Config/Needs/verdepcheck cleanup; init() cleanup by @pawelru in #1313
- docs: correct get_client_timezone return value by @pawelru in #1314
- vbump deps by @pawelru in #1326
- check reactive using custom checkmate extension by @pawelru in #1324
- 1299 do not show datanames error if there are transformers passed to modules by @m7pr in #1319
- update readme by @pawelru in #1331
- datanames slot in
teal_transform_module
(ignore@datanames
) by @gogonzo in #1334 - vbump teal.logger by @pawelru in #1343
- Workflow propagations by @walkowif in #1332
module()$datanames
: unifycombined_datanames
no matter what's the length oftransformers
by @m7pr in #1344- 479 mirai lockfile@main by @gogonzo in #1263
- Change name of the raw (unfiltered object) by @gogonzo in #1342
- increase timeout for ci by @donyunardi in #1355
- 1304 handover error@main by @gogonzo in #1341
- Run GitHub Actions with
setup-r-dependencies
installation st...
v0.16.0-rc2: 1494 fix note (#1495)
fixes #1494 RHUB workflow https://github.com/insightsengineering/teal/actions/runs/13372139467
v0.15.2
Bug fixes
- Fixed a bug in handling
datanames
of modules that crashed module-specific applications when filtering child datasets.
What's Changed
- 1110 when no filters provided, report card should notify about it by @m7pr in #1111
- add options for strict testing by @pawelru in #1102
- Use
teal.data::get_code
instead ofteal.data:::get_code_dependency
by @m7pr in #1090 - name specific lintr in utils.R by @m7pr in #1118
- audit linter exceptions by @chlebowa in #1119
- 1125 bug fix@main by @chlebowa in #1126
- describe last patch in NEWS by @chlebowa in #1129
- Enables module-specific filters on
init
example by @averissimo in #1133 - [skip vbump] upversion v0.15.2 by @donyunardi in #1137
Full Changelog: v0.15.1...v0.15.2
v0.15.1
Bug fixes
- Fixed a bug that stopped the
module_specific
feature when ateal
module specifieddatanames
of length more than 1.
Miscellaneous
- Updated links in vignettes
v0.15.0
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 newteal_data
class. - Added
build_app_title
function to facilitate adding favicons to app title.
Breaking changes
data
argument ininit
now accepts onlyteal_data
andteal_data_module
.tdata
has been deprecated and replaced withteal_data
. Support fortdata
passed to thedata
argument inmodule(server)
will be removed in the next release.module(ui)
argument no longer acceptsdata
anddatasets
arguments. All data dependent logic should be set in the server function.module(server)
argument deprecateddatasets
argument.teal_module
s' server functions should acceptdata
(teal_data
) instead.- Changed the order of formal arguments in
init
.filter
now comes directly aftermodules
, beforetitle
.
Miscellaneous
- Enhanced a
module
validation checks so that it won't throw messages aboutdata
argument unnecessarily. - Added argument to
teal_slices
and made modifications toinit
to enable taggingteal_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
New features
- Enabled module specific filter panel. See
module_specific
inteal::teal_slices
documentation. - Enabled capturing and resetting application filter state with snapshots. See
?snapshot
. - Enabled
reporter_previewer_module
to customize default values throughsrv_args
. - Enabled passing own
reporter_previewer_module
in a list of modules to override default one.
Breaking changes
- Specifying
filter
argument inteal::init
requiresteal_slices
object now. Details in documentation ofteal::init
. - Soft deprecated
filters
argument inmodule
and replaced it withdatanames
. Details in documentation ofteal::module
Miscellaneous
- Removed
scda
package dependency from examples.
What's Changed
- 835 - get_rcode_*() starts new code chunks in newlines by @m7pr in #836
- documentation typo in get_rcode by @m7pr in #841
- Update workflows by @walkowif in #820
- Update workflows by @walkowif in #842
- Rewrite unclear sentence in creating-custom-modules.Rmd by @m7pr in #854
- Workflow propagations by @walkowif in #855
- Decouple scda by @gogonzo in #858
- extend default report previewer by @gogonzo in #849
- Refactor of the filter panel by @gogonzo in #851
- 355 rename module_add to allow_add by @kartikeyakirar in #863
- Move TealReportCard to teal by @gogonzo in #865
- 298 reset button by @chlebowa in #859
- typo in creating-custom-modules.Rmd by @m7pr in #853
- 382 rename internal functions by @chlebowa in #868
- restart auto by @gogonzo in #873
- restart auto by @gogonzo in #874
- fix r-universe deployment by @gogonzo in #875
- Update install by @gogonzo in #876
- 870 some bugs@main by @chlebowa in #872
- 818 documentation cleanup by @m7pr in #869
- 867 modify mapping matrix by @chlebowa in #879
- 769 replace filters argument by @chlebowa in #877
- handling initial teal_slice by @gogonzo in #880
- fix by @gogonzo in #881
- 884 disappear cog icon by @chlebowa in #886
- add placeholders to managers by @chlebowa in #887
- 410 note experimental by @chlebowa in #888
- update install guide; add getting help; pkg name lowercase by @pawelru in #890
- move gif to man dir by @pawelru in #894
- release 0.14.0 [skip vbump] [skip spelling] by @donyunardi in #897
Full Changelog: v0.13.0...v0.14.0
v0.13.0
Breaking changes
- The use of
datasets
argument inmodules
has been deprecated and will be removed in a future release. Please usedata
argument instead.data
is of typetdata
; see "Creating custom modules" vignettes and function documentation ofteal::new_tdata
for further details. - Due to deprecation of
chunks
inteal.code
, theteal
framework now uses their replacement (qenv
) instead. The documentation inteal
has been updated to reflect this and custom modules written withchunks
should be updated to useqenv
. - Due to deprecation of
chunks
inteal.code
,get_rcode
,get_rcode_srv
, andget_rcode_ui
have been removed.
New features
- Added the
validate_inputs
function that transfers input validation messages to app output. modules
argument ofinit
acceptsteal_module
type of object. There is no need to wrap up a single module inmodules()
orlist()
.- 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 ofdigest
package to calculate the hash (which has been moved fromteal.data
andteal.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 functionslog_app_usage
and.log
. - Updated the "Teal and Bootstrap Themes" vignette to provide more details customizing a
teal
app withbslib::run_with_themer
. - Removed outdated diagram from
srv_nested_tabs
documentation. - Changed default values of
header
andfooter
arguments ininit
to empty text.
What's Changed
- [skip vbump] Dev version with 9xxx by @arkadiuszbeer in #763
- use scda.2022 by @nikolas-burkoff in #766
- Add sessionInfo by @nikolas-burkoff in #767
- Teal refactor by @nikolas-burkoff in #768
- Add coverage badge by @walkowif in #772
- Enable checks for
workflow_dispatch
event by @walkowif in #773 - add hashing by @mhallal1 in #774
- Fix failing test by @gogonzo in #777
- 757 remove deprecated@main by @chlebowa in #780
- remove root_modules function by @donyunardi in #754
- Remove soft-deprecated function log_app_usage and .log by @chlebowa in #781
- Remove soft deprecated function
bookmarkableShinyApp
by @chlebowa in #782 shinyvalidate
improvements by @chlebowa in #786shinyvalidate
improvements reopened by @chlebowa in #788- Badges and contribution guidelines by @insights-engineering-bot in #790
- docs by @mhallal1 in #791
- convert check to assert by @pawelru in #795
- Update bootstrap vignette by @asbates in #798
- Fix deprecation warning in tests by @nikolas-burkoff in #797
- fix failing tests on R 4.3 by @gogonzo in #800
- fix bug in
validate_inputs
by @chlebowa in #793 - Add diagram, update NEWS by @donyunardi in #801
- Update check as-cran and default landing page by @walkowif in #805
- teal reactivity solution 2 by @mhallal1 in #806
- add teal.gallery ref to readme by @pawelru in #810
- Documentation fixes for release review by @asbates in #819
- 723 default header@main by @chlebowa in #824
- Revert removal of get_rcode by @asbates in #828
- release 0.13.0 [skip vbump] by @donyunardi in #832
New Contributors
- @walkowif made their first contribution in #772
- @donyunardi made their first contribution in #754
- @asbates made their first contribution in #798
Full Changelog: v0.12.0...v0.13.0
v0.12.0
New features
- Added the support for custom
bslib
bootstrap themes inteal::init
apps, please read more in the newteal-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 thefilter
argument ofinit
. - Updated
teal_module
to havedata
argument which receives a list of reactive filter data with"code"
and"join_keys"
attributes. - Updated
teal_module
to havefilter_panel_api
argument which receives aFilterPanelAPI
object. - Updated the internals of
module_teal
to reflect changes inteal.slice
. - Updated vignettes and README content.
Breaking changes
- Updated
teal_module
to no longer receivedatasets
object in the...
argument. In order to usedatasets
in theteal_module
please specifydatasets
explicitly. - Deprecated
merge_expression
argument inget_rcode_srv
function and removed it inget_rcode
function. - Deprecated
session
argument inget_rcode
function.
Miscellaneous
- Enhanced the burger button so it is disabled when the filter panel is not used.
What's Changed
- [skip vbump] by @gogonzo in #666
- Contribution guide updates by @insights-engineering-bot in #671
- 443 rcycle@main by @Polkas in #637
- changes for filter panel constuctor by @nikolas-burkoff in #670
- docs: replaced links to github with links to API pkgdown sites by @kpagacz in #675
- revert - full input cycle by @Polkas in #677
- 654 pass reactive data@main by @gogonzo in #674
- DESC and README by @denisovan31415 in #684
- Update Rbuildignore and add auto-updates by @insights-engineering-bot in #685
- fix test by @mhallal1 in #688
- filter_panel_api by @mhallal1 in #692
- Fix when
module(..., filters = NULL)
by @gogonzo in #694 - feat: added support for events from the filter panel by @kpagacz in #681
- Update pre-commit config to detect
_pkgdown.y[a]ml
by @insights-engineering-bot in #699 - Update staged_dependencies.yaml for teal.modules.helios by @danielinteractive in #696
- pass join keys object into the module by @nikolas-burkoff in #697
- Update font awesome icon labels for FA 6 by @cicdguy in #704
- Remove _FILTERED by @nikolas-burkoff in #702
- Update documentation workflow by @insights-engineering-bot in #706
- review css by @Polkas in #703
- update vignettes by @mhallal1 in #705
- Update including-mae-data-in-teal.Rmd by @nikolas-burkoff in #725
- add set filter by @nikolas-burkoff in #724
- Update check.yaml by @arkadiuszbeer in #723
- fix R cmd check --as-cran by @nikolas-burkoff in #730
- teal - bs345 by @Polkas in #727
- NEWS by @mhallal1 in #745
- Update teal.Rmd by @Polkas in #759
- [skip vbump] Release for version 0.12.0 by @insights-engineering-bot in #761
Full Changelog: v0.11.1...v0.12.0
v0.11.1
Enhancements
- Added new function
reporter_previewer_module
to wrap theteal.reporter
package previewer functionality as ateal
module. - Updated
teal
to supportmodules
which include reporting. If anymodule
which supports reporting is included then areporter_previewer_module
is included. - Added default arguments to
module()
and theserver
argument is now a function where the second argument can be...
ordatasets
.
Breaking changes
- Deprecated
bookmarkableShinyApp
. In future releases theteal
framework will stop supporting shiny bookmarking (which has not officially been supported); it may be officially supported in the future. Note the filter panel inteal.slice
retains its ability to save and restore its state if used in a standaloneshiny
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
Breaking changes
- Changed the
HTML
identifiers ofteal
modules - now each nested module receives its ownshiny
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
andrcd_data
;scda_dataset_connectors
can be passed intocdisc_data
andteal_data
directly. - Replaced
rcd_dataset_connector
andrcd_cdisc_dataset_connector
withscda_dataset_connector
andscda_cdisc_dataset_connector
respectively. - Renamed
teal_show_js_log
option intoteal.show_js_log
to match options naming convention. - Removed
%is_in%
andstop_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
andJoinKeys
classes and added input validation to the implementation of the print method that was already in theDataset
object. -
Added public facing constructor functions for
CDISCDataConnector
,RelationalDataConnector
, andDataConnection
classes. -
Modified
data_extract_spec
to allow both thefilter
andselect
parameters to beNULL
, which results in thedata_extract_ui
acting as if afilter_spec
with all variables as possible choices had been supplied as thefilter
argument and aselect_spec
with themultiple
parameter set toTRUE
had been supplied as theselect
argument. -
Added support of the full screen for a
module
when thefilters
argument is equalNULL
. -
Added support for
shiny::moduleServer
passed to theserver
parameter ofteal::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 ateal
application. -
Hid the buttons to remove filters from all datasets and each dataset when there are no active filters.
-
Updated
init
to acceptRelationalData
,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 itschoices
parameter.- Fixed call returned by
FilterState
in case of usingMultiAssayExperiment::subsetByColData
. Now single condition for variable containingNA
values is!is.na(var) & var == <condition>
. - Fixed data loading of
DatasetConnector
being dependent on otherDataset
orDatasetConnector
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 toNULL
whenlogical
value is passed toselected
.- Fixed setting
JoinKeys
when key name between twoDataset
object differs. - Fixed printing of the
JavaScript
console logs to theR
console whenteal.show_js_log = TRUE
.
Miscellaneous
- Soft-deprecate
mae_dataset()
in favor of more generaldataset()
constructor. - Added a vignette describing the modifications to
teal
applications users can apply usingR
options. - Added default values to the
label
argument ofselect_spec
andfilter_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 publicR6
classes to avoid name collisions with other packages. - Removed dependency on
utils.nest
and replaced its functionality inteal
with equivalents from thecheckmate
package and baseR
. - Replaced the old
shiny
server functions ofDataConnection
,RelationalDataConnector
,DatasetConnector
, andRelationalData
with theshiny::moduleServer
equivalents. - Running a
teal
application viaui_teal_with_splash
andsrv_teal_with_splash
is now no longer recommended because it doesn't support new features (e.g. logging, bookmarking). Useinit
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.