Releases: insightsengineering/teal
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.
v0.10.0
New features
- Allow passing
MultiAssayExperiment
to theteal::init
usingmae_dataset
function or through
the connectors. - Refactored filter panel to use
MultiAssayExperiment
objects. Filters can be set on a subject level
(colData
ofMAE
object) and on a experiment level (colData
androwData
of an assay). - Added
cdse_dataset_connector
to create delayed data objects fromCDSE
. - Added
datasetdb_dataset_connector
to create delayed data objects fromDataSetDB
. - Added
ricepass_connection
to create delayed data objects fromentimICE
viaricepass
. - Refactor of the filter panel:
- Simplified setting of initial filter state without need to specify "choices" or "range" named list element depending on the variable class.
Dataset
type determines an appearance and a functionality of related filters and filters summary.Datasets
are passed (by reference) fromDDL
toFilteredData
skipping extracting data and
their attributes.- Redesigned variable filter labels in "Active Filter Variables" panel.
- Fully testable server functions.
Bug fixes
- Fixed the bug caused by calling
mutate_dataset
multiple times on the sameDatasetConnector
orDataset
object. - Fixed a bug that caused the output of
get_code
function to not reproduce its raw data set. - Changed
filter_spec
to allow no variable selection upon app initialization, where the first possible value was previously selected.
Enhancements
modules
parameter ofteal::init
function can also receive alist
exceptroot_modules
function call.- Added
split
andmerge
methods to theJoinKeys
object. - Added
all_choices()
as a possible argument to theselected
parameter offilter_spec
,select_spec
andchoices_selected
indicating that all choices are selected. - The
append
method of aCodeClass
object has been modified to print a warning message when the argument does not result in any code being added because it is duplicated. - Implemented delayed functionality to the mutate method of the
Dataset
andDatasetConnector
objects. - Modified
teal_data
to return aCDISCData
object whenever any of its arguments is a type ofCDISCData
object. - Updated filters to show both levels of a logical variable TRUE/FALSE even if one is missing from the original array.
Miscellaneous
- Updated
LICENCE
andREADME
with new package references. - Added a method
get_hash
to theDataset
class returning the MD5 hash of the object stored inside theDataset
object. - Replaced
random.cdisc.data
withscda
in examples and tests. - Implemented functionality to store
JoinKeys
inDataset
andDatasetConnector
classes. - Added
error_on_lintr: TRUE
to.lintr
- The pipe operator
%>%
is now exported such that downstream code and packages can use it. - Removed hyperlinks to the
rice
package from the documentation.
v0.9.5
- Added informational stop message when using
mutate_data
withRelationalDataConnector
. - Modified
as_cdisc
to behave similarly tocdisc_dataset
when called on aDataset
object. - Changed the displayed format of the data name and the column name in
data_extract_spec
UI elements. Both are now compressed to<data name>.<column name>
if they don't change during runtime of the app. - Added
ADSAFTTE
to the list of recognized ADaM dataset names. - Added another example to
data_extract_spec
's doc string showcasing app users can choose a variable used for filtering in the encoding panel. - Added CSS styling to tool tips in teal modules.
- Fixed an edge case error when creating a filter on variable with all missing values crashed the app.
- Fixed a bug that crashes app whenever a
Date
ordatetime
column is selected from afilter_spec
.