Merges default app options with the changes made in the UI
Arguments
- id
Shiny module ID
- input
Shiny input variable
- session
Shiny session variable
- FM_yaml_file
App configuration file with FM as main section.
- MOD_yaml_file
Module configuration file with MC as main section.
- id_UD
ID string for the upload data module used to handle uploads or the name of the list element in react_state where the data set is stored.
- react_state
Variable passed to server to allow reaction outside of module (
NULL
)
Value
List containing the current state of the DM module including default values from the yaml file as well as any changes made by the user. The structure of the list is defined below.
yaml: Contents of the yaml file.
MC: Module components of the yaml file.
DW: Data wrangling state
isgood: Boolean status of the state. FALSE if the dataset identified by id_UD is bad.
checksum: MD5 sum indicating if there was a change in the datasets within the view. Use this to trigger updates in respose to changes in this module.
button_counters: List of counters to detect button clicks.
code_previous: Loading code from the UD field.
current_view: View id of the current active data wrangling view.
UD: Copy of the
"UD"
field of theid_UD
from thereact_state
input.ui: Current value of form elements in the UI
ui_hold: List of hold elements to disable updates before a full ui referesh is complete.
view_cntr: Counter for tracking view ids, value contains the id of the last view created.
views: List of data wrangling views. Each view has the following structure:
checksum: MD5 sum of WDS
code: Code to generate WDS from start to finish
code_dw_only: Code for just the wrangling portion.
code_previous: Code to load data and assign to view object.
elements_table: Table of data wrangling elements.
id: Character id (
view_idx
)idx: Numeric id (
1
)isgood: Boolean status of the data view. False if evaluation fails
key: User key (short description)
view_ds_object_name: Object name for this data view
WDS: Current value of the data view with all of the successful commands in elements_table evaluated.
MOD_TYPE: Character data containing the type of module
"DW"
id: Character data containing the module id
FM_yaml_file: App configuration file with FM as main section.
MOD_yaml_file: Module configuration file with MC as main section. module in the session variable.
Examples
# Within shiny both session and input variables will exist,
# this creates examples here for testing purposes:
sess_res = DW_test_mksession(session=list())
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → UD: dest: file.path("config","report.docx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → UD: dest: file.path("config","report.pptx")
#> → UD: including file
#> → UD: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → UD: dest: file.path("config","report.yaml")
#> → UD: State initialized
#> → UD: module checksum updated:897d952fecbc804999396a96f9df4b20
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → DW: dest: file.path("config","report.docx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → DW: dest: file.path("config","report.pptx")
#> → DW: including file
#> → DW: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → DW: dest: file.path("config","report.yaml")
#> → DW: State initialized
#> → DW: module checksum updated:5b0f0b05ee3ac7336a74c564bb6efdad
#> → DW: module checksum updated:65801ab4b3c645aabf7edf91fc2f0d2c
#> → DW: module checksum updated:7fb2dd3b16b1780c4c24f64d658dd7c7
#> → DW: module checksum updated:5ab04ea00be44c0040695a4ed6243c90
#> → DW: module checksum updated:960db107cfe9db93578f79f0ae6283e2
#> → DW: module checksum updated:f0b5d122dcb04f207cba233253b61c4b
#> → DW: module checksum updated:189ed77a84bd9fcdd7b26abff8bea34a
#> → DW: module checksum updated:669ec77d50652669cd3fcfd949469b37
#> → DW: module checksum updated:dd6cafa0be3b6b195d230a11e9f07f9f
#> → DW: module checksum updated:5c2022c376ca8f56b839347156559890
#> → DW: module checksum updated:43640500a04674debd8e2399056c384a
#> → DW: module checksum updated:f81c45ac1ef4e7b43153d8c8eaf7aed6
#> → DW: module checksum updated:207cde891d98e20c4afbb7fb5fb0aba2
#> → DW: module checksum updated:0a673e81c01cbbf33533dd65d6baf9e3
#> → DW: module checksum updated:af3f3aefd0115ed9dfdd4d6ef9d5182f
#> → DW: module checksum updated:b0ccaee21e859322df0bf79d00c4b347
#> → DW: module checksum updated:2d3d6e9e38be6dea813b2d4d679e34b5
#> → DW: module checksum updated:2b60dd49b48a4e65200dc7241ad270e3
#> → DW: module checksum updated:3c92f397181a4fcdbdf2bd7dd7425e77
#> → DW: module checksum updated:92b81d7573def603649370b87c123b55
#> → DW: module checksum updated:9210264aabc0339e832b0c6bcfda32af
#> → DW: module checksum updated:fe62fde1e7e738a1a35c479de9d5007b
#> → DW: module checksum updated:ff3edcd4c1e58c96ea2707361916ffbc
#> → DW: module checksum updated:b6cdfcef0432c5d9b1fa2bd46122ffa2
#> → DW: module checksum updated:4fa4283f1fd8fd6cf6e6e7df0669723a
#> → DW: module checksum updated:cf3e139cef554b2d09dca619ee6aff41
#> → DW: module checksum updated:a9154d91a9e4b5d21f9585a6f68dd083
#> → DW: module checksum updated:4b5c6ad66658ddfa92d10ae1b0b7afa8
#> → DW: module checksum updated:591ac875a490b66a1fa7f4e7d4ba1c62
#> → DW: module checksum updated:afa3ca309cc3e6a48f542f4e8eadd54a
#> → DW: module checksum updated:5c918dd4f53a4f1e56115abb09c4f332
#> → DW: module checksum updated:159ddf8c8cd26b178dfda5434bbecfa1
#> → DW: module checksum updated:8bb3c97e700998f2f73353189bd07831
#> → DW: module checksum updated:a1eceffec3ff7d9f9961683b3d07088b
session = sess_res$session
input = sess_res$input
# Configuration files
FM_yaml_file = system.file(package = "formods", "templates", "formods.yaml")
MOD_yaml_file = system.file(package = "formods", "templates", "DW.yaml")
# We need to specify both the DW module id as well as the
# id of the UD module that feeds into it.
id = "DW"
id_UD = "UD"
# Creating an empty state object
state = DW_fetch_state(id = id,
input = input,
session = session,
FM_yaml_file = FM_yaml_file,
MOD_yaml_file = MOD_yaml_file,
id_UD = "UD",
react_state = NULL)