Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Round numbers intelligently in domain data. (#316)
* RC 2.1.0 (#314) * Link to app conditionally On main pkgdown site, link to main app; on dev site, link to dev app. * point gsm at v1.9.2 * Replaced inputs on the left and swapped out overview and scatterplot modules (#144) * #138: modified inputs (excluding participants) and text meta data on the left-hand side #139: replaced table and scatterplots on the overview tab (click actions not yet included) #143: partial completion of showing and hiding inputs based on tab selection. * #143 * Use dev gsm for dev gsmApp. * Document and style. * Document and style. * Delete unused data. * Cleaner coding with tidyeval. And related namespacing, etc. * Remove lazydata refs. * Remove unused functions. For now we'll leave them commented, until they're updated/replaced. * No longer use qs. * Remove code duplications. Sometime in the conflict resolution I managed to duplicate some code. * Remove unused parameters. * Disable more (currently) unused fns. * Update R/initialize_metric_select.R Co-authored-by: Jon Harmon <jon.harmon1@gilead.com> * PR #144: removed now-unecessary css code that had interfered with the study overview table. * Rename columns via select Safer this way. --------- Co-authored-by: Jon Harmon <jon.harmon@atorusresearch.com> Co-authored-by: Jon Harmon <jon.harmon1@gilead.com> * Remove unused files. (#156) Closes #155. * Metric details module refactor and new module names (#161) * #152: prefixed all module functions with mod_ #151: swapped widgets into mod_metric_details_server * Implement parameter naming standard - Variables that are filtered by inputs should use `by` to explain which inputs they were filtered by. - *Arguments* should describe the shape, not whether the thing is filtered (because the function doesn't require a certain filtering technique, just a shape). - For now, when we filtered by a set "Site" value for `GroupLevel`, I just used the word "Site" in the var name. I'm not 100% sold on this yet. * Placeholders until we reimlement the tables. * Lots of cleaning. * Sync site between inputs. * Refactor for easier maintenance. Until a thing is used in two places, keep it out of server. I also refactored a few other things, although there's more to go. * Fix documentation And move "default" args to `app.R`, so we still have an easy test without providing a weird thing. * Apply Gilead style. --------- Co-authored-by: Jon Harmon <jon.harmon@atorusresearch.com> * Update actions for better pkgdown (#157) Check how this impacts #147 once main rebuilds/publishes. * Add a function to run with sample data. (#166) Oops, I forgot we came up with a simple fix for removing the sample data from the main runner! Closes #153. * Smarter Metric Details Only load Metric Details tabs when they're viewed, but make them persistent (in the background) afterwards. That way the javascript can continue to communicate properly and the modules can update one another. Closes #164. * Add a comment to PRs with deployment URL. (#171) * Add a comment to PRs with deployment URL. Closes #167 * Remove the comment with the URL when the PR is closed and the app is deleted. I can't test this one until I close the PR, unfortunately. * Attempt to cache packages. (#172) * Attempt to cache packages. * Hmm, actually implement that. * Add a comment to force rerun. Now to see if this still takes about 2 minutes for the install step... * Use DESCRIPTION for hash key. * Attempt to cache properly. More to learn... * Properly set the user-package-installation directory. * Always update the cache. And divide restore vs save more formally. * Cleaner caching. * Always re-cache. * Fix 160 and fix 143 (#174) * #160: added metric meta data card. * #160: added event trigger to show / hide cards * #160: added participant table to the site details tab. * #160: modified site details module with new data model (excluding site_details_meta_data_list) #143: hide / show filters based on tab selection; also included action triggers for the scatterplots and participant table on the metric details tab. * #160: updated some documentation about the new dfAnayticsInput, shared-params, etc. * Standardizations. --------- Co-authored-by: Jon Harmon <jon.harmon@atorusresearch.com> * Rename from gsmApp to gsm.app. (#175) * Rename from gsmApp to gsm.app. * Make shinyapps happy about app name. * Re-delete empty file. * Finish reconciliation. * Make sure kableExtra gets installed. (#177) May be worth pushing this up to gsm as a harder requirement. * Dotless links for shinyapps.io. (#183) * Add sample data. I don't think this is likely to be the final format/home for this data, but it's a useful start. Also updated table_participants_by_site() to filter by MetricID when available. Closes #189. Closes #186. * Document. * Fix 173 & 176 (#188) * Reduced some clutter from the style arguments by modifying the card class to include a border. * Added `FilteryLatestSnapshotDate()` to run_sample_gsm_app.R * #173: Changed taglist function names to temporary naming convention (`taglist_`). Also added the site_meta_data taglist back to the `mod_site_details_server`. * #176: For the analysis output ont he metric details tab, I added some JS that updates the site selector based on a click for the table. I also added some JS / CSS to highlight the row that's selected and de-emphasize the other rows. I need to clean up the JS and work out some janky performance when switching between tabs. * #176: Analysis output table highlight and click actions. Created JS scripts and moved them to inst/js to support the feature. * Added global definition for FIlterByLatestSnapshotDate (so devtools::check() didn't get grumpy) * Update R/ui.R Co-authored-by: Jon Harmon <jon.harmon1@gilead.com> * Update inst/js/tableClick.js Co-authored-by: Jon Harmon <jon.harmon1@gilead.com> --------- Co-authored-by: Jon Harmon <jon.harmon1@gilead.com> * Deal with missing Flags on tab 1. Closes #192. * Pull code into function. * Add participant metadata. I also turned the server function into a function factory while I was at it, and renamed it and ui. Closes #178. Begins to address #185. * Repair documentation. * Un-export nearly everything. It's much better to export too little than too much. Remove everything except the working apps from the export list. We will add individual modules back to the export list as they're made ready to work on their own. Closes #184. * Add tests for Participant Details. * Remove explicit shiny namespacing. * Implement Metric Summary. Closes #179 * Remove leftover experiment. * Expand reactivity principle. * Fix 201 others (#206) * fix-201: Table now sorts according to metric in descending order. * #201 and #202 * #204: added `gsm::MakeParamLabelsList` to participants cards. I also added it to `taglist_site_meta_data`, which needed clean label names as well. * A few minor adjustments to documentation and adding namespace for dplyr::desc * Updated tests * Refactor column renaming. --------- Co-authored-by: Jon Harmon <jon.harmon@atorusresearch.com> * Fix 180 (#209) * #180 * #180 * Made some minor changes (and reversed some others) to make it pass tests. --------- Co-authored-by: Jon Harmon <jon.harmon@atorusresearch.com> * Udpate issue/PR templates To better match the kinds of things we do here. * Clean up styles. (#210) * Clean up styles. * Continued cleaning. * Obsessively standardize. * Modularized Participant Data * Delete unused files and functions. * Update snapshot. * Redocument. * Principle: Module files. * R CMD Check 100% * Clean up sample_data creation. Closes #217. * Try to make GitHub acknowledge the capitalization change. * Change name in two steps so it looks like more than capitalization. * Add clindata to Suggests. This is a temporary fix. shinyapps claims we need it (and failed to deploy without it), but we shouldn't need it there; we use it to produce data, but we don't use it in "real" code (nor tests, docs, etc). * Delete rsconnect folder. I didn't notice that this was lurking in the app. * Get rid of extraneous files for shinyapps. No need for shinyapps to worry about these. * Test and document html dependencies. Closes #229. * Fix 219 (#222) * Validate inputs. Set up the UI in the UI. - Closes #219. - Related to #158 * Don't sync metric input yet. * Fully test validation. * More streamlining. * Keep purely UI things in UI. * Additional cleaning and standardization. * Clean up documentation. * Add ability to expand things. Also fixed a bug with the participant drop-down menu truncating at 1000 subjects. * Fix docs and tests. * expect_cleaned_html helper * More code cleaning. * Implement tests & docs for mod_ActionList_UI Closes #230 * Don't export until/unless we have to. * Test mod_ActionList_UI Closes #230. * Clean up participant domain table (#241) * Test mod_DataTableCard_Server Test and document `mod_DataTableCard_Server()` and `mod_DataTableCard_UI()`. Closes #231 * Apply styling. * Replace mod_DataTableCard_* with mod_ParticipantDomain_* Closes #212 * Remove testing artefact. * Module-ize Scatter Plot & Scatter Plot Set. Closes #197. Closes #220 (mostly closed already) * Migrate to ~full bslib. (#246) Also implemented StudyInfo as much as I plan to do so. Closes #158. * More conflict resolution. * Remove unused sync. I'm about 80% sure this isn't used anywhere anymore. Deleting it doesn't appear to break anything. I can add it back if later testing shows that it causes problems. * Return the evaluated reactive for Analysis Output. * Document and test mod_ScatterPlot_UI * Standardize strID to id. shiny::testServer() breaks if the first argument to a module's server function isn't "id". * Document & test mod_ScatterPlot_Server & related functions. * Test & document out_KRIColor. * Document & test out_MetadataList * Validate tests and docs for out_ParticipantMetadata. * Rename and test out_SiteParticipants. * Test & document out_Sidebar. * Test and document out_MainTabs. * Test and document gsmApp_UI. * Standardize mod_ActionList_UI docs. * Test and document mod_MetricDetails_UI. * Test and document mod_ParticipantDetails_UI. * Standardize mod_ParticipantDomain_UI test and docs. * Standardize mod_ParticipantMetricSummary_UI tests & docs. * Standardize mod_ScatterPlot_UI tests and docs. * Standardize mod_ScatterPlotSet_UI tests & docs. * Add tests and docs for mod_SiteDetails_UI, and standardize several related things. * Standardize test format across UI functions. * Test and document Server functions (#254) * Standardize error messages. Remove devtools dependency. * Specify shiny 1.6+. * Document gsmapp_abort. * Sync "None" more intelligently. Closes #252. * Document and standardize srvr_SyncInput. * Test utils-shiny. * Rename srvr_PopulateParticipantSelect to srvr_InitializeParticipantSelect * Automate row/column counts in data docs. * Standardize, document, and test make_lStudy(). * Document and standardize data_Validate.R * Update @return to @returns everywhere per https://r-pkgs.org/man.html#fn10 * Test and document mod_ActionList_Server(). * Test, document, and standardize mod_ParticipantDomain_Server(). * Tests and docs for mod_ScatterPlotSet_Server. * Tests and docs for mod_ParticipantMetricSummary_Server. * Tests and docs for mod_StudyOverview_Server. * Test & document mod_MetricDetails_Server. * Test & document mod_SiteDetails_Server. * Test & document mod_ParticipantDetails_Server. * Test and document gsmApp_Server (kinda). * Parameter standardization. * run_gsm_app docs and styles (#256) * Standardize run_gsm_app() docs. * Apply style. * Fix choose_article() docs. * End-to-end testing with shinytest2. (#259) * End-to-end testing with shinytest2. Unfortunately, shinytest2 requires special setup + for the package to be installed, so I set this to only run if a shinytest2.test option is set. Closes #255. * Update `participants-002_.png` * These IDs are hard-set now. * Tag run_sample_gsm_app() with nocov. * Be smarter about IDs. * Rerun shinytest2 tests with changes. * Remove duplicate entry from .Rbuildignore. * Standardize extra IDs. * Add a proper id to tabset for test-navigation. Closes #258. * Deal with shinytest2 snapshots during normal testing. * Run shinytest2 tests via workflow. * Load package for file tests. * Add chromote with min version to suggests. * Use an app file for shinytest2. I'm going to open an issue on shinytest2 to figure out why this isn't the recommended method, it's way cleaner. I also pretty much emptied out the json snapshots, since those values are tested elsewhere. I really just want screenshots, but shinytest2 wants to make variants of the app on different systems for that, and it seems to work fine without those variants, so this method "tricks" it. * Add {here} to Suggests. * Explicitly set the reporter. WIll need to roll back the fake bad test if this works. * Fail louder. * Actually fail on failure, but also give info. * Clean up test for real use. * Mod_ScatterPlot as proper Shiny input (#261) * Clean up mod_ScatterPlot and friends. * Document helpers. * Abstract widget plot input code. * Run shinytest2 tests as part of normal test suite. * Cleaner check/covr check in test app. * This way it still works for things like "TRUE" in the env var. * Prep for gsm.app 2.0 release (#265) * Updated README. Note: The URL for the released version of the app is wrong until this version (with the updated name) is released. Closes #262. * Update news. * Re-knit README.md. * Spelling. * Clean pkgdown. * Redocument post merge. * Style. * tweaks to get the app running * asdf * Cleaner SnapshotDate filtering. * Only show Participants at Site. Closes #228. * Prevent "Ghost" (invalid) selection from sticking in menu. * Sync Site from Widgets (#269) Update Site dropdown when the input value changes outside Shiny. Closes #263. * Implement loading indicators (#270) Show progress indicators during fetch. Closes #267. * Final checks for v2.0.0. (#271) Closes #262. * Require gsm 2.1+. (#273) * Peg to gsm release tag. (#274) * Version from gsm. (#276) * Increment dev version. (#278) Helpful for differentiating between prod and dev websites, etc. * Install latest tag. (#280) Install `@*release` for prod. Also tweaked some wording around prod vs dev. Closes #279. * Add sidebar and function args. (#285) Add optional arguments to allow users to customize the UI and/or server of the resulting Shiny app. This will allow users to add logging functionality, for example. tests/testthat/apps/logging/app.R contains an app that creates a logfile, as a proof of concept. * Clean things up for readability. (#287) * Clean things up for readability. * Add gt to Imports to elevate from gsm Suggests. * Implement MetricTable module (#290) * Implement MetricTable module Wrap gsm::Report_MetricTable() into a Shiny module. This adds these features: - Basic interactivity from gt (column resizers, highlight on hover, sorting, pagination). - Pass in a row to highlight (to show the selection). - Return the selected row when the user clicks. The module is mostly generalized to work for any gt table, but full generalization will come in a future PR (when we use it for a second table). Closes #187. * More implementation of gtIO. * Update WORDLIST. * Use fixed gsm. The DESCRIPTION should get switched back to @dev before this gets merged, but this will allow tests to pass. * Use dev gsm. * Use Report_StudyInfo() in sidebar. (#291) * Use Report_StudyInfo() in sidebar. See Gilead-BioStats/gsm#1905 for a ticket that would make this quite a bit simpler. Closes #288. * Update with latest gsm. I kept the old KRI flag badge colors as "light" iterations for upcoming dev, even though they aren't currently used. * Update gsm. * Update StudyOverview to use modules. (#292) * Update StudyOverview to use modules. Turn the KRI count pills into toggle inputs. Closes #243. * Call output function. * Abstract WidgetOutput. * Add a favicon (I was sick of the error in the browser console). * Implement GroupOverview input. * Add footnote about clicking GroupOverview. * Use favawesome's icon format. Use a clipboard icon for PRs. * Update tests. A lot of the functionality has moved into the new modules. Document new functions. * Reconcile changes and update screenshots. * Focus screenshot tests. * Reload on reset. * Update sample data. (#293) * Update sample data. Closes #207. * Finish updating data. * Use an example participant who actually exists in the data in example. * Get all domain data. Resave with better compression. * One more set of tests to fix. * Give datasets more descriptive names. * Use gt update for Analysis Output (#298) * Update sample data. Closes #207. * Finish updating data. * Use an example participant who actually exists in the data in example. * Get all domain data. Resave with better compression. * One more set of tests to fix. * Give datasets more descriptive names. * Use updated {gt} for Analysis Output. Closes #294. * Update tests to reflect changes. * Make R CMD Check happy. * Allow favicon to switch easily, and switch it for PR/dev. * Reference ENV properly. Update data-raw in anticipation of Gilead-BioStats/gsm#1915 * Remove kableExtra req. * Implement mod_SiteParticipants (#302) * Update sample data. Closes #207. * Finish updating data. * Use an example participant who actually exists in the data in example. * Get all domain data. Resave with better compression. * One more set of tests to fix. * Give datasets more descriptive names. * Use updated {gt} for Analysis Output. Closes #294. * Update tests to reflect changes. * Make R CMD Check happy. * Allow favicon to switch easily, and switch it for PR/dev. * Reference ENV properly. Update data-raw in anticipation of Gilead-BioStats/gsm#1915 * Remove kableExtra req. * Begin work on mod_SiteParticipants * Implement mod_SiteParticipants - Closes #208. - Closes #248. * Document. * Apply css for interactive gt more cleanly. Use pointer cursor for clickable gt rows. * Use gt in mod_ParticipantDomain (#303) * Use gt in mod_ParticipantDomain Eliminates the DT dependency! Closes #289. * Update mod_gtBidirectional_Server to accept multiple select. * React to *all* clicks in Group Overview table. (#305) - Closes #297. * Refined Selection in Widget Plots (#307) * Refined Selection in Widget Plots Differentiate between "nothing selected yet" and "everything deselected" in widget plots. I also cleaned up and hopefully stabilized the screenshot tests. - Closes #301. * That function isn't actually widgetPlot-specific anymore. * Update news in preparation for release. (#304) * Update news in preparation for release. * Use "old" R for shinyapps. This ensures that renv doesn't freak out when shinyapps.io has the not-quite-bleeding-edge version of R (like it does when a new version of R is first released). * Bump dev version to reset cache. * Remove deprecated "save-always". * Standardize htmlwidgets and related JS. * gsm 2.1.2 * Increment version number to 2.1.0 * Update sample data for gsm 2.1.2. * Style. * Redocument sample data. --------- Co-authored-by: Spencer Childress <spencer.c.childress@gmail.com> Co-authored-by: Taylor Rodgers <76186904+taylorrodgers@users.noreply.github.com> Co-authored-by: Laura Maxwell <laura.maxwell1@gilead.com> * Increment version number to 2.1.0.9000 * Round numbers intelligently in domain data. Closes #313. --------- Co-authored-by: Spencer Childress <spencer.c.childress@gmail.com> Co-authored-by: Taylor Rodgers <76186904+taylorrodgers@users.noreply.github.com> Co-authored-by: Laura Maxwell <laura.maxwell1@gilead.com>
- Loading branch information