From 93dabe4f1d5f2d1f8d662e62e7da4b028480458d Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 8 May 2025 10:12:26 +0200 Subject: [PATCH 1/4] version bump - new hosted app --- CITATION.cff | 5 ++++- DESCRIPTION | 4 ++-- NEWS.md | 6 ++++++ R/app_version.R | 2 +- R/hosted_version.R | 2 +- R/sysdata.rda | Bin 2071 -> 2003 bytes SESSION.md | 11 ++--------- 7 files changed, 16 insertions(+), 14 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index ff5aba86..c496e4a4 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -9,8 +9,11 @@ type: software license: AGPL-3.0-or-later title: 'FreesearchR: A free and open-source browser based data analysis tool for researchers with publication ready output' -version: 25.5.1 +version: 25.5.2 doi: 10.5281/zenodo.14527429 +identifiers: +- type: url + value: https://app.FreesearchR.org/ abstract: Easily evaluate and analysis clinical health data in your browser on a server or on your own device. Import data from multiple sources, summarise, modify and visualise data and export key metrics and regression analysis results in a publication diff --git a/DESCRIPTION b/DESCRIPTION index 534b0dc4..eea064ef 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: A free and open-source browser based data analysis tool for researchers with publication ready output -Version: 25.5.1 +Version: 25.5.2 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), @@ -78,7 +78,7 @@ Suggests: shinytest, covr, cffr -URL: https://github.com/agdamsbo/FreesearchR, https://agdamsbo.github.io/FreesearchR/ +URL: https://github.com/agdamsbo/FreesearchR, https://agdamsbo.github.io/FreesearchR/, https://app.FreesearchR.org/ BugReports: https://github.com/agdamsbo/FreesearchR/issues VignetteBuilder: knitr Config/testthat/edition: 3 diff --git a/NEWS.md b/NEWS.md index d8a2c68e..a0957d86 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# FreesearchR 25.5.2 + +- *FIX*: correct export of plots. The solution in the last version broke more than it solved. + +A privately hosted version is now live on app.freesearchr.org. For now, it is hosted on Hetzner with Yunohost. + # FreesearchR 25.5.1 - *FIX*: correct export of single variable plot. diff --git a/R/app_version.R b/R/app_version.R index 724053ed..eca6bb3a 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'25.5.1' +app_version <- function()'25.5.2' diff --git a/R/hosted_version.R b/R/hosted_version.R index 10ceeee5..5feb2555 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.5.1-250507' +hosted_version <- function()'v25.5.2-250508' diff --git a/R/sysdata.rda b/R/sysdata.rda index 9d97392cb8bf29437d1432cef550f4e440288987..edbaddb43178806072ea17b3f33bac4cbf758414 100644 GIT binary patch literal 2003 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 BzjOcq diff --git a/SESSION.md b/SESSION.md index eb1735f3..ba863786 100644 --- a/SESSION.md +++ b/SESSION.md @@ -11,11 +11,11 @@ |collate |en_US.UTF-8 | |ctype |en_US.UTF-8 | |tz |Europe/Copenhagen | -|date |2025-05-05 | +|date |2025-05-08 | |rstudio |2024.12.1+563 Kousa Dogwood (desktop) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |quarto |1.6.40 @ /usr/local/bin/quarto | -|FreesearchR |25.5.1.250505 | +|FreesearchR |25.5.2.250508 | -------------------------------------------------------------------------------- @@ -81,7 +81,6 @@ |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.4.1) | |keyring |1.3.2 |2023-12-11 |CRAN (R 4.4.0) | |knitr |1.50 |2025-03-16 |CRAN (R 4.4.1) | -|labeling |0.4.3 |2023-08-29 |CRAN (R 4.4.1) | |later |1.4.2 |2025-04-08 |CRAN (R 4.4.1) | |lattice |0.22-7 |2025-04-02 |CRAN (R 4.4.1) | |lifecycle |1.0.4 |2023-11-07 |CRAN (R 4.4.1) | @@ -113,8 +112,6 @@ |purrr |1.0.4 |2025-02-05 |CRAN (R 4.4.1) | |quarto |1.4.4 |2024-07-20 |CRAN (R 4.4.0) | |R6 |2.6.1 |2025-02-15 |CRAN (R 4.4.1) | -|ragg |1.4.0 |2025-04-10 |CRAN (R 4.4.1) | -|rankinPlot |1.1.0 |2023-01-30 |CRAN (R 4.4.0) | |rbibutils |2.3 |2024-10-04 |CRAN (R 4.4.1) | |RColorBrewer |1.1-3 |2022-04-03 |CRAN (R 4.4.1) | |Rcpp |1.0.14 |2025-01-12 |CRAN (R 4.4.1) | @@ -127,7 +124,6 @@ |REDCapR |1.4.0 |2025-01-11 |CRAN (R 4.4.1) | |reformulas |0.4.0 |2024-11-03 |CRAN (R 4.4.1) | |remotes |2.5.0 |2024-03-17 |CRAN (R 4.4.1) | -|rempsyc |0.1.9 |2025-02-01 |CRAN (R 4.4.1) | |renv |1.1.4 |2025-03-20 |CRAN (R 4.4.1) | |report |0.6.1 |2025-02-07 |CRAN (R 4.4.1) | |rio |1.2.3 |2024-09-25 |CRAN (R 4.4.1) | @@ -145,8 +141,6 @@ |shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.4.0) | |shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) | |stringi |1.8.7 |2025-03-27 |CRAN (R 4.4.1) | -|systemfonts |1.2.2 |2025-04-04 |CRAN (R 4.4.1) | -|textshaping |1.0.0 |2025-01-20 |CRAN (R 4.4.1) | |tibble |3.2.1 |2023-03-20 |CRAN (R 4.4.0) | |tidyr |1.3.1 |2024-01-24 |CRAN (R 4.4.1) | |tidyselect |1.2.1 |2024-03-11 |CRAN (R 4.4.0) | @@ -155,7 +149,6 @@ |urlchecker |1.0.1 |2021-11-30 |CRAN (R 4.4.1) | |usethis |3.1.0 |2024-11-26 |CRAN (R 4.4.1) | |vctrs |0.6.5 |2023-12-01 |CRAN (R 4.4.0) | -|viridisLite |0.4.2 |2023-05-02 |CRAN (R 4.4.1) | |vroom |1.6.5 |2023-12-05 |CRAN (R 4.4.0) | |withr |3.0.2 |2024-10-28 |CRAN (R 4.4.1) | |writexl |1.5.4 |2025-04-15 |CRAN (R 4.4.1) | From ab22a3a7e5a14f70bba95bb674378b73813e1eef Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 8 May 2025 10:12:36 +0200 Subject: [PATCH 2/4] bug on plot export --- R/data_plots.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/data_plots.R b/R/data_plots.R index 9ccdd989..8401bf87 100644 --- a/R/data_plots.R +++ b/R/data_plots.R @@ -395,7 +395,9 @@ data_visuals_server <- function(id, content = function(file) { if (inherits(rv$plot,"patchwork")){ plot <- rv$plot - } else { + } else if (inherits(rv$plot,"ggplot")){ + plot <- rv$plot + }else { plot <- rv$plot[[1]] } @@ -421,7 +423,6 @@ data_visuals_server <- function(id, ) } - #' Select all from vector but #' #' @param data vector From bb866d6125869013cfb03b02c79633276087d441 Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 8 May 2025 10:12:49 +0200 Subject: [PATCH 3/4] a little ui spacing --- inst/apps/FreesearchR/app.R | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/inst/apps/FreesearchR/app.R b/inst/apps/FreesearchR/app.R index 5951a04b..5e7a78cb 100644 --- a/inst/apps/FreesearchR/app.R +++ b/inst/apps/FreesearchR/app.R @@ -10,7 +10,7 @@ #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'25.5.1' +app_version <- function()'25.5.2' ######## @@ -1969,7 +1969,9 @@ data_visuals_server <- function(id, content = function(file) { if (inherits(rv$plot,"patchwork")){ plot <- rv$plot - } else { + } else if (inherits(rv$plot,"ggplot")){ + plot <- rv$plot + }else { plot <- rv$plot[[1]] } @@ -1995,7 +1997,6 @@ data_visuals_server <- function(id, ) } - #' Select all from vector but #' #' @param data vector @@ -3954,7 +3955,7 @@ is_identical_to_previous <- function(data, no.name = TRUE) { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v25.5.1-250507' +hosted_version <- function()'v25.5.2-250508' ######## @@ -9397,7 +9398,12 @@ ui_elements <- list( fluidRow( shiny::column( width = 9, - data_summary_ui(id = "data_summary") + data_summary_ui(id = "data_summary"), + shiny::br(), + shiny::br(), + shiny::br(), + shiny::br(), + shiny::br() ), shiny::column( width = 3, From 1613386096bb9657d1912f6ef03feca5b41f5d0c Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 8 May 2025 11:38:02 +0200 Subject: [PATCH 4/4] loading animation --- .Rbuildignore | 2 +- .gitignore | 3 +- CITATION.cff | 13 +++++++ DESCRIPTION | 3 +- NEWS.md | 2 + R/sysdata.rda | Bin 2003 -> 2120 bytes SESSION.md | 13 +++++++ inst/apps/FreesearchR/app.R | 73 +++++++++++++++++++++++------------- renv.lock | 34 +++++++++++++++++ 9 files changed, 113 insertions(+), 30 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index 4ffec2b9..94927477 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -14,6 +14,6 @@ ^data-raw$ ^CITATION\.cff$ ^app_hosted$ -^app$ +^app*$ ^page$ ^demo$ diff --git a/.gitignore b/.gitignore index c5e7bc8f..96f86282 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,8 @@ inst/shiny-examples/casting/functions.R functions.R docs inst/doc -app_hosted +app_dev +app_stable app page demo diff --git a/CITATION.cff b/CITATION.cff index c496e4a4..29f48145 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -977,6 +977,19 @@ references: email: alboukadel.kassambara@gmail.com year: '2025' doi: 10.32614/CRAN.package.ggcorrplot +- type: software + title: shinyjs + abstract: 'shinyjs: Easily Improve the User Experience of Your Shiny Apps in Seconds' + notes: Imports + url: https://deanattali.com/shinyjs/ + repository: https://CRAN.R-project.org/package=shinyjs + authors: + - family-names: Attali + given-names: Dean + email: daattali@gmail.com + orcid: https://orcid.org/0000-0002-5645-3493 + year: '2025' + doi: 10.32614/CRAN.package.shinyjs - type: software title: styler abstract: 'styler: Non-Invasive Pretty Printing of R Code' diff --git a/DESCRIPTION b/DESCRIPTION index eea064ef..87cc929d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -62,7 +62,8 @@ Imports: eulerr, ggforce, RcppArmadillo, - ggcorrplot + ggcorrplot, + shinyjs Suggests: styler, devtools, diff --git a/NEWS.md b/NEWS.md index a0957d86..07731215 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,8 @@ - *FIX*: correct export of plots. The solution in the last version broke more than it solved. +- *NEW*: added simple loading animation. + A privately hosted version is now live on app.freesearchr.org. For now, it is hosted on Hetzner with Yunohost. # FreesearchR 25.5.1 diff --git a/R/sysdata.rda b/R/sysdata.rda index edbaddb43178806072ea17b3f33bac4cbf758414..57d54ffe4019c0943ba03653e6099750f677ab1c 100644 GIT binary patch literal 2120 zcmV-O2)Fk_T4*^jL0KkKS+Ga33jh-S|KR`sXaz!l|KNXXpTNKW|L{Nn2mlBH;0Yfs z)>*sMI4FQL4R9V*os1|nASQrlO%p~b=0sCGsP#QV(Hl_H)D0OkG?Pr!8mE&WBOt1K z(UGDPPfBejBM8DU2nGW}G!0J(MJfQu8USPf01W^D000D`^Nk1h$H3z5-29MPM z0LTCX)Bpe+WWh8t85tQgGy$N$76bxYQMT@%ws}#QwsS$ckhMg0_*G z_IsAV2%2Dl5fB%d0^>0=yX23q?}F|}@$h$0X!~sLk{3-rzUQ*q1fNKwSHEP;s9+JF z{cnYU+Nm}onVFZJlORnq4OA`#j-aL!#c*SC9||#1u3-GkHV=Fr)>Lpr1cpb5w>)T{ z)_p7cIph1*n>ibE z5IhPk%20E~8m_vbhHFCBHQ&1Y{JSR1?u#**Z9`=U`j9M$fGUM5z57u_W`V5;02x4v zgd(a$5d{=v2oO?0sR&3<;gS$Kkw9p(5>?!whF2}4KMWV^3X7MQjbD;$T=3n*Ap?&c z^xnv;B8ZS;2$4k;1qiDoSh6gNv0{jTuz9>~v!^1?*kK~@X|;sTa%qsLIIyi=R1CVB z>#K5T;6)S#HDQ&`Qr|l?G}BY20SeP6%sO_2G(`|BjnK;`X`KZlaG(x}4Fr-YX%Q2L zGU}VBR5qhK7K1~qM-a|TEQ{bVZ*=N%GU9CA&1DJ=m${tFmxKqh6|DSq6W+ER^u3i3 ztKsRA_^_?+miJ(5M+Fi<&PNFcO4#DL1(?-@g{#*fb~xBp6Q7?IMwYgZMnX(Q$`xYI zfIbt&aK|Z`f`%MS*^?1r@n+#On>xZ9fdEJl5F|IU2G)c;4bbL5(V6h^yHN`&y5gFU zl4PNQC{a?lwMI79;g#AO*%XZCaWMjvX)HikV&flDR!keo5b3f)u!w^YQaoA)`#?rn zeWdKL;>dLH;kwFEwzO(AqbRb1moVmoCT#3to%Q3}rkVkIctd~5Buh{WY7jz^r7fi- z36zy)RzXRSupn*eXEF;So<9r$gq&^gQyDf@D87%AaK-{fgCV0TO1cje=(GhF?X}+} z6xo5Q80yjHNR&Y(kP2t292UE8;SAjB#8*hf^p$}+rk<#U=}*RSF@Z5Fb*B`nzd>X~J%!2EQL z1N-XrnV9kRVD~(GU}Jc!9jkM@7;3;{O5594x#dk|^YX4scP3Mq`CmlyN(s)HM1`LF zROA#}$RFV9R?d;?*L)1Vh_CaK^>=eF{LshDwbUD`ETx0C7Mj;YY+UvAIijtFpPXA6Wfi1@bccd%y6nfG&A{`bly@A8#&m0z zG)Vz1jEu174d74AgBh;KP^9fG+zQ}?U%M@Xh-Vkw{+hO`YM6?p*p%2Vqk521L4)rT zefo0h*=;z6rov5rBZl2jnCKdcDqKYfrtG!y*`?D)(4$RAD>-tIX4B}%9V^OlZswNi zZ!r?<9P|mt^-#^*T`L+re4YyhbeK`UszP;`oJtJ0RMkhC6NbWh&?EA{9i4J!*8qkN z%!TBcXI3a~deT^Cc_fhAF~4iAAiAerD%iUxxlpzNZqvVF+gqaq1&L!=k-z+g5HcF| zrjs!V3g-he)Rl0MZ%4T;dV&%AthI5Fo|_8H$&pi5^Vf~$f8CL1~m`^+H%uFFKd zYs)=IM|v9UKH|EgsQs3_pI-Dj`BmBh*C86)Dbk zfq8Acn^;g@OC!UUEZodIVL8U#SZP&mF&fQ6{^`r82WEq7^+Bb@1+pPZt}I(X2@awe zm6>mf4dpqtRqXZ{${9ZgW8FH=+uqBdVt|Q%j_+Mp~gL&0DV*LN|*l!+kmH z6hcT^bqP^cDO10Dz;^92b(J&`ghq1flV)je?6r6FLzvm7!pmsOIQ4jUuXE@^8se-` ymX+zKM`=>lamSKxZA~oZdNqf1t0)Api=S}!f!iP^h!6xH_`8xR!i0r_J&0Iy$>ah6 literal 2003 zcmV;^2Q2tPT4*^jL0KkKS*L*KqyQ01|G@wMXaz!l|KNXXp1{BV|M)@x2m#;-e=Lz< z;N%9SAYVK@s;E?0lePe_RrOieTzXaF9d00003KmY-y zBTOLEKxhCB0000005oU-B1s~iB=b~hriOu`=z*XB05mkv(8vZ%63yh|lxP8YmX_)NTATr zl~9oZ!a9aPkgl+Zs#}#AUJ!gn^_hh*VXkvcXK1GjXjiWe<^FOsdo~GfP}gM$uFD{G z*p-q*gp`vcOP}KY-@b^*W5Wd7+Ftaqw%bK0*h^zb&)i-7@-{GwL;D1a$c%Gk;eBxR z=i6mdgnmEfUMp9qIKXSzSnp=w{b;Ahp+hZE>SXGG(kkx6$1IOnRC#}vn>t7}fE9r%JSa8&{-qDU|#Bq9nSAc0U-0sTY}H6Wsv&nU;dhz7UE zY}nL6)qta~ug}f3STgMB#Xv8=B?*!NB!ET)go7g_N>NHsP+Fl%6-8R4X=Hoe6t}I!z(8<*qik zTSUye##2f*$s;94CTAMV;`Msb%4NKb!sltOaOZnugVYk7%Ntbzp$BCP1i=C%tkxl3 z2n3P_=N^hFq|!nw+ECQmu;|1lA;p@2P?C-cjzm$b)tpUc9P^!;RuZg85NbCfw8UB3N5NEGN2nES-VWgp| z3Kpp;1gdC2F>GCO1cq7yqnfKu7aS?2JpUG3O#)JbRB0nbT|HFm$yB2K(mg7uDak0? zSJ}RN(TgQIz1e`$AdLbvh*m;Sh=oLGssadhN}vSg(v@3I6yZfUV+fQ1D6lNJDBSI) zE>4TqMIy+IP{OOf?R&jly?ydxOgTbCQMQAGeeAA|c=F(X9^l4q~8IDUbB5 zlc4IMO!ZUzH562jhgzLsM25ybXwN*_ccU^a?aXyDZ3e^h_r&TDhup8MYm6M8dM$SUW zODqk;i;F|yZMYWlCdG}vV;RpZ>u&t@L(^>aIv?54^an+fg_bH zOfr?>lD*~)x3@U9Kx7J<(cntq);OHn+a`xwa=fRMXF#{6K0d7Q*A~@avA@aGucj=4 z*A?1?#@4~6L+FaJd4|d+dyLNIBCPLPs?;!7jdeev@6iDy>C%RJXv!D28-}K63J8$X zxU_%BZRUQn;&-?cSJLYO2&%5!K3ItDF^oVlvlSTR$Zo$>&b=tF5? zCO4J*Fz9!iHdi}N;_QanQwbrKQaYVmF>?9wn;aBTx#)0=C}C@=_rU>SB!^TDcHR!> z=BnEm)qM2ro-CQ1LxJUgC0UB&6okbu({no}hFp_o{Pfn@i|MO|UAK&FTWc)><4s7I zPnKyNyesb0ENDQ@c;@XekD|oK#^9`V->_eUxN+%Bjhut7m1$UxI", "Repository": "CRAN" }, + "shinyjs": { + "Package": "shinyjs", + "Version": "2.1.0", + "Source": "Repository", + "Title": "Easily Improve the User Experience of Your Shiny Apps in Seconds", + "Authors@R": "person(\"Dean\", \"Attali\", email = \"daattali@gmail.com\", role = c(\"aut\", \"cre\"), comment= c(ORCID=\"0000-0002-5645-3493\"))", + "Description": "Perform common useful JavaScript operations in Shiny apps that will greatly improve your apps without having to know any JavaScript. Examples include: hiding an element, disabling an input, resetting an input back to its original value, delaying code execution by a few seconds, and many more useful functions for both the end user and the developer. 'shinyjs' can also be used to easily call your own custom JavaScript functions from R.", + "URL": "https://deanattali.com/shinyjs/", + "BugReports": "https://github.com/daattali/shinyjs/issues", + "Depends": [ + "R (>= 3.1.0)" + ], + "Imports": [ + "digest (>= 0.6.8)", + "jsonlite", + "shiny (>= 1.0.0)" + ], + "Suggests": [ + "htmltools (>= 0.2.9)", + "knitr (>= 1.7)", + "rmarkdown", + "shinyAce", + "shinydisconnect", + "testthat (>= 0.9.1)" + ], + "License": "MIT + file LICENSE", + "VignetteBuilder": "knitr", + "RoxygenNote": "7.1.1", + "Encoding": "UTF-8", + "NeedsCompilation": "no", + "Author": "Dean Attali [aut, cre] ()", + "Maintainer": "Dean Attali ", + "Repository": "CRAN" + }, "sodium": { "Package": "sodium", "Version": "1.4.0",