From f4d4499547a680d919e8ff9c4d885d50eea28cb8 Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 18 Dec 2025 12:59:57 +0100 Subject: [PATCH 1/4] feat: new nice landing page --- DESCRIPTION | 2 + R/footer_ui.R | 30 ++++ R/hosted_version.R | 2 +- R/landing_page_ui.R | 253 +++++++++++++++++++++++++++ R/theme.R | 2 + R/ui_elements.R | 17 +- inst/translations/translation_da.csv | 31 +++- inst/translations/translation_de.csv | 31 +++- inst/translations/translation_sv.csv | 31 +++- inst/translations/translation_sw.csv | 31 +++- man/landing_page_ui.Rd | 17 ++ 11 files changed, 434 insertions(+), 13 deletions(-) create mode 100644 R/footer_ui.R create mode 100644 R/landing_page_ui.R create mode 100644 man/landing_page_ui.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 7b46a25b..975a78f5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -107,11 +107,13 @@ Collate: 'data-summary.R' 'data_plots.R' 'datagrid-infos-mod.R' + 'footer_ui.R' 'helpers.R' 'hosted_version.R' 'html_dependency_freesearchr.R' 'import-file-ext.R' 'import_globalenv-ext.R' + 'landing_page_ui.R' 'launch_FreesearchR.R' 'missings-module.R' 'plot-download-module.R' diff --git a/R/footer_ui.R b/R/footer_ui.R new file mode 100644 index 00000000..55066191 --- /dev/null +++ b/R/footer_ui.R @@ -0,0 +1,30 @@ +footer_ui <- function(i18n) { + tagList( + shiny::tags$footer( + style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", + shiny::p( + style = "margin: 1", + i18n$t("Data is only stored for analyses and deleted when the app is closed.") + ), + shiny::p( + style = "margin: 1", + i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") + ), + # shiny::p( + # style = "margin: 1; color: #888;", + div( + style = "display: inline-flex; align-items: center; gap: 1px;", + shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( + style = "display: inline-block;", + class = c("smart-dropdown", "text-select"), + shiny::uiOutput(outputId = "language_select") + ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") + ), + br(), + p( + style = "display: inline-flex; align-items: center; gap: 1px;", + hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), + ) + ) + ) +} diff --git a/R/hosted_version.R b/R/hosted_version.R index 82f879ce..78db913a 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.12.6-251212' +hosted_version <- function()'v25.12.6-251218' diff --git a/R/landing_page_ui.R b/R/landing_page_ui.R new file mode 100644 index 00000000..c6e123ed --- /dev/null +++ b/R/landing_page_ui.R @@ -0,0 +1,253 @@ +#' Tag list of elements for the FreesearchR landing page +#' +#' @param i18n i18n function loaded in the UI +#' +#' @returns tag list +#' +landing_page_ui <- function(i18n) { + tagList( + # Header section + div( + class = "container-fluid py-4", + # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", + div( + class = "row align-items-center", + div( + class = "col-md-8", + h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), + h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), + style = "font-weight: 300; opacity: 0.95;") + ), + div( + class = "col-md-4 text-end", + img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") + ) + ) + ), + + # Main content + div( + class = "container my-5", + + # Introduction text + div( + class = "row mb-5", + div( + class = "col-12 text-center", + p( + class = "lead", + i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), + style = "font-size: 1.2rem; color: #555;" + ) + ) + ), + + # Core Features Section + h2(i18n$t("Core Features"), class = "text-center mb-4", + style = "color: #1E4A8F; font-weight: 600;"), + + div( + class = "row g-4 mb-5", + + # Import Data + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none; transition: transform 0.2s;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("file-import") + ), + h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") + ) + ) + ) + ), + + # Data Management + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("pen-to-square") + ), + h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") + ) + ) + ) + ), + + # Descriptive Statistics + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("magnifying-glass-chart") + ), + h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") + ) + ) + ) + ) + ), + + # Advanced Features Section + h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", + style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), + + div( + class = "row g-3 mb-5", + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) + ) + ) + ), + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) + ) + ) + ) + ), + + # Export & Learning Section + div( + class = "row mb-5", + div( + class = "col-12", + div( + class = "card shadow", + style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", + div( + class = "card-body p-4", + h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), + div( + class = "row text-center", + div( + class = "col-md-4", + p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) + ) + ) + ) + ) + ) + )#, + + # Footer links + # div( + # class = "row mt-5 pt-4 border-top", + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://agdamsbo.github.io/FreesearchR/", + # target = "_blank", + # class = "btn btn-outline-primary", + # fa("book"), " ", i18n$t("Full Documentation") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", + # target = "_blank", + # class = "btn btn-outline-success", + # fa("comments"), " ", i18n$t("Share Feedback") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "mailto:info@freesearchr.org", + # class = "btn btn-outline-info", + # fa("envelope"), " ", i18n$t("Contact Us") + # ) + # ) + # ), + # + # # Translation notice + # div( + # class = "row mt-4", + # div( + # class = "col-12 text-center", + # p( + # class = "text-muted small", + # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) + # ) + # ) + # ) + ), + + # Custom CSS for hover effects + tags$style(HTML(" + .hover-card:hover { + transform: translateY(-5px); + box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; + } + ")) + ) +} + +# Example usage in a Shiny app with nav_panel: +# +# ui <- page_navbar( +# title = "FreesearchR", +# theme = bs_theme( +# version = 5, +# bootswatch = "flatly", +# primary = "#2C3E50", +# base_font = font_google("Roboto") +# ), +# nav_panel( +# title = i18n$t("Home"), +# landing_page_ui(i18n) +# ), +# nav_panel( +# title = i18n$t("Import Data"), +# # Import data UI +# ), +# # ... other nav_panels +# ) diff --git a/R/theme.R b/R/theme.R index 2bcc2699..7f812de2 100644 --- a/R/theme.R +++ b/R/theme.R @@ -40,6 +40,7 @@ custom_theme <- function(..., ) } + FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -111,3 +112,4 @@ gg_theme_export <- function() { plot.title = ggplot2::element_text(size = 24) ) } + diff --git a/R/ui_elements.R b/R/ui_elements.R index e2781099..0c005766 100644 --- a/R/ui_elements.R +++ b/R/ui_elements.R @@ -25,14 +25,15 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - shiny::column(width = 2), - shiny::column( - width = 8, - # shiny::uiOutput(outputId = "language_select"), - htmlOutput("intro_text") - # shiny::includeHTML(i18n$t("www/intro.html")) - # shiny::markdown(readLines(i18n$t("www/intro.md"))) - ), + landing_page_ui(i18n=i18n), + # shiny::column(width = 2), + # shiny::column( + # width = 8, + # # shiny::uiOutput(outputId = "language_select"), + # htmlOutput("intro_text") + # # shiny::includeHTML(i18n$t("www/intro.html")) + # # shiny::markdown(readLines(i18n$t("www/intro.md"))) + # ), shiny::column(width = 2) ) ), diff --git a/inst/translations/translation_da.csv b/inst/translations/translation_da.csv index 945ea908..33b7e0af 100644 --- a/inst/translations/translation_da.csv +++ b/inst/translations/translation_da.csv @@ -137,7 +137,6 @@ "Generate area-proportional Euler diagrams to display set relationships","Generer proportionelt Euler-diagram for at vise forhold mellem forskellige kategoriske observationer" "Documentation","Dokumentation" "Data is only stored for analyses and deleted when the app is closed.","Data opbevares alene til brug i analyser og slettes så snart appen lukkes." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Overvej at [køre ***FreesearchR*** lokalt](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) hvis du arbejder med personfølsomme data." "Feedback","Feedback" "License: AGPLv3","Licens: AGPLv3" "Source","Kilde" @@ -309,3 +308,33 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Export as comprehensive reports","Export as comprehensive reports" +"Get Modified Data","Get Modified Data" +"Save your processed datasets","Save your processed datasets" +"Reproducible Code","Reproducible Code" +"Learn and reproduce results","Learn and reproduce results" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." +"(Read more)","(Read more)" diff --git a/inst/translations/translation_de.csv b/inst/translations/translation_de.csv index 5c4e9162..29723e8f 100644 --- a/inst/translations/translation_de.csv +++ b/inst/translations/translation_de.csv @@ -234,7 +234,6 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -309,3 +308,33 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Export as comprehensive reports","Export as comprehensive reports" +"Get Modified Data","Get Modified Data" +"Save your processed datasets","Save your processed datasets" +"Reproducible Code","Reproducible Code" +"Learn and reproduce results","Learn and reproduce results" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." +"(Read more)","(Read more)" diff --git a/inst/translations/translation_sv.csv b/inst/translations/translation_sv.csv index 5bf08438..0f804ed2 100644 --- a/inst/translations/translation_sv.csv +++ b/inst/translations/translation_sv.csv @@ -234,7 +234,6 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -309,3 +308,33 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Export as comprehensive reports","Export as comprehensive reports" +"Get Modified Data","Get Modified Data" +"Save your processed datasets","Save your processed datasets" +"Reproducible Code","Reproducible Code" +"Learn and reproduce results","Learn and reproduce results" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." +"(Read more)","(Read more)" diff --git a/inst/translations/translation_sw.csv b/inst/translations/translation_sw.csv index 2fe4651c..f2bd4839 100644 --- a/inst/translations/translation_sw.csv +++ b/inst/translations/translation_sw.csv @@ -137,7 +137,6 @@ "Generate area-proportional Euler diagrams to display set relationships","Generate area-proportional Euler diagrams to display set relationships" "Documentation","Documentation" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" "Source","Source" @@ -309,3 +308,33 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Export as comprehensive reports","Export as comprehensive reports" +"Get Modified Data","Get Modified Data" +"Save your processed datasets","Save your processed datasets" +"Reproducible Code","Reproducible Code" +"Learn and reproduce results","Learn and reproduce results" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." +"(Read more)","(Read more)" diff --git a/man/landing_page_ui.Rd b/man/landing_page_ui.Rd new file mode 100644 index 00000000..5e66498c --- /dev/null +++ b/man/landing_page_ui.Rd @@ -0,0 +1,17 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/landing_page_ui.R +\name{landing_page_ui} +\alias{landing_page_ui} +\title{Tag list of elements for the FreesearchR landing page} +\usage{ +landing_page_ui(i18n) +} +\arguments{ +\item{i18n}{i18n function loaded in the UI} +} +\value{ +tag list +} +\description{ +Tag list of elements for the FreesearchR landing page +} From 818c19eb29e26d440ca3ffe96e2370eae4a26c5b Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 18 Dec 2025 13:01:26 +0100 Subject: [PATCH 2/4] new version --- DESCRIPTION | 2 +- NEWS.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 975a78f5..12350034 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: FreesearchR Title: Easy data analysis for clinicians -Version: 25.12.6 +Version: 25.12.7 Authors@R: c( person("Andreas Gammelgaard", "Damsbo",email="agdamsbo@clin.au.dk", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-7559-1154")), diff --git a/NEWS.md b/NEWS.md index e2bb2c50..85c4b538 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# FreesearchR 25.12.7 + +*NEW* The landing page was overhauled for a nicer intro and better overview with focus on the basic functions. + # FreesearchR 25.12.6 *NEW* Export missingness table directly. From 8a58a001299421ee78c2c96ab5253a7c872972ee Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 18 Dec 2025 13:20:25 +0100 Subject: [PATCH 3/4] reviesed landing --- CITATION.cff | 65 +---------- R/app_version.R | 2 +- R/hosted_version.R | 2 +- R/landing_page_ui.R | 34 +++--- R/sysdata.rda | Bin 2908 -> 2859 bytes SESSION.md | 26 ++--- inst/translations/translation_da.csv | 13 ++- inst/translations/translation_de.csv | 13 ++- inst/translations/translation_sv.csv | 13 ++- inst/translations/translation_sw.csv | 13 ++- renv.lock | 163 --------------------------- 11 files changed, 60 insertions(+), 284 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 947447f8..9b8ca753 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,7 +8,7 @@ message: 'To cite package "FreesearchR" in publications use:' type: software license: AGPL-3.0-or-later title: 'FreesearchR: Easy data analysis for clinicians' -version: 25.12.6 +version: 25.12.7 doi: 10.5281/zenodo.14527429 identifiers: - type: url @@ -1140,69 +1140,6 @@ references: email: bradleysaul@fastmail.com year: '2025' doi: 10.32614/CRAN.package.smd -- type: software - title: doconv - abstract: 'doconv: Document Conversion to ''PDF'' or ''PNG''' - notes: Imports - url: https://github.com/ardata-fr/doconv - repository: https://CRAN.R-project.org/package=doconv - authors: - - family-names: Gohel - given-names: David - email: david.gohel@ardata.fr - year: '2025' - doi: 10.32614/CRAN.package.doconv -- type: software - title: locatexec - abstract: 'locatexec: Detection and Localization of Executable Files' - notes: Imports - url: https://github.com/ardata-fr/locatexec - repository: https://CRAN.R-project.org/package=locatexec - authors: - - family-names: Gohel - given-names: David - email: david.gohel@ardata.fr - year: '2025' - doi: 10.32614/CRAN.package.locatexec -- type: software - title: magick - abstract: 'magick: Advanced Graphics and Image-Processing in R' - notes: Imports - url: https://docs.ropensci.org/magick/ - repository: https://CRAN.R-project.org/package=magick - authors: - - family-names: Ooms - given-names: Jeroen - email: jeroenooms@gmail.com - orcid: https://orcid.org/0000-0002-4035-0289 - year: '2025' - doi: 10.32614/CRAN.package.magick -- type: software - title: pdftools - abstract: 'pdftools: Text Extraction, Rendering and Converting of PDF Documents' - notes: Imports - url: https://ropensci.r-universe.dev/pdftools - repository: https://CRAN.R-project.org/package=pdftools - authors: - - family-names: Ooms - given-names: Jeroen - email: jeroenooms@gmail.com - orcid: https://orcid.org/0000-0002-4035-0289 - year: '2025' - doi: 10.32614/CRAN.package.pdftools -- type: software - title: qpdf - abstract: 'qpdf: Split, Combine and Compress PDF Files' - notes: Imports - url: https://docs.ropensci.org/qpdf/ - repository: https://CRAN.R-project.org/package=qpdf - authors: - - family-names: Ooms - given-names: Jeroen - email: jeroenooms@gmail.com - orcid: https://orcid.org/0000-0002-4035-0289 - year: '2025' - doi: 10.32614/CRAN.package.qpdf - type: software title: styler abstract: 'styler: Non-Invasive Pretty Printing of R Code' diff --git a/R/app_version.R b/R/app_version.R index 098f2ac8..675b0bb4 100644 --- a/R/app_version.R +++ b/R/app_version.R @@ -1 +1 @@ -app_version <- function()'25.12.6' +app_version <- function()'25.12.7' diff --git a/R/hosted_version.R b/R/hosted_version.R index 78db913a..df017ffc 100644 --- a/R/hosted_version.R +++ b/R/hosted_version.R @@ -1 +1 @@ -hosted_version <- function()'v25.12.6-251218' +hosted_version <- function()'v25.12.7-251218' diff --git a/R/landing_page_ui.R b/R/landing_page_ui.R index c6e123ed..62716fa1 100644 --- a/R/landing_page_ui.R +++ b/R/landing_page_ui.R @@ -16,7 +16,13 @@ landing_page_ui <- function(i18n) { class = "col-md-8", h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), - style = "font-weight: 300; opacity: 0.95;") + style = "font-weight: 300; opacity: 0.95;"), + p( + class = "lead", + i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), + style = "font-size: 1.2rem; color: #555;" + ) ), div( class = "col-md-4 text-end", @@ -25,23 +31,23 @@ landing_page_ui <- function(i18n) { ) ), - # Main content + # # Main content div( class = "container my-5", # Introduction text - div( - class = "row mb-5", - div( - class = "col-12 text-center", - p( - class = "lead", - i18n$t("Start with FreesearchR for basic data evaluation and analysis."), - i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), - style = "font-size: 1.2rem; color: #555;" - ) - ) - ), + # div( + # class = "row mb-5", + # div( + # class = "col-12 text-center", + # p( + # class = "lead", + # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), + # style = "font-size: 1.2rem; color: #555;" + # ) + # ) + # ), # Core Features Section h2(i18n$t("Core Features"), class = "text-center mb-4", diff --git a/R/sysdata.rda b/R/sysdata.rda index d1c8f1da5a5e5235cd13b780a9248a1692b305c9..a99aa3a9f10d5cf2cc695621b51e9da2efeb8573 100644 GIT binary patch literal 2859 zcmV+`3)J*NT4*^jL0KkKSuNh~ga8{8f5QL&Xazw3|KNXb-@w2B|L{Nn03Zkf;0&J@ z>q}#Bcn&=^6aaDnUIEcShy@HaG5}2)03ZcV&}lJ5+MlUCOw{y&kkR5#Q_&l0L8<5h zh*Q%{nN!r$^(U0tY8nBc8fX9j0QCo`Q#2{+YCr%1qiO&d85%SI00004nn;B;Ca3Br z=|_~)K+rVWh9G1zXaMy901R=VplH)0O&VkdCI|oqfY2Ib1_a0vB@l<9G=_nMJtouu z0009J3?K~`rH+X-iY^mG#X?(cC+!MX14f&f(U@Rkzb6xzlHStK2iUgV&Bi*@%_|;{JmU3 zakeDb9Nu1XVrrQD9aYk=?10mrRm;i9n=n|R&BKt#sqhJY*GCLu5knS~U}^=l&=F{u z3=|On12#zrkvXttQ;7sAon07H^_9602x+JWmDU)Pn1qNg6E^}F(F~xnN=i6mJ4;%{ zpX*PHR>q8-Ij95sR)cRMXa(Y zOTAj7q$;X3y3A5kw1U8i$#7~^7S}QiOtZrZ_7F|MNx7z;nB&;S@z!P6zFMQ5nDgsf zKSJ?ol56Fo70IsxMN&dU2NX(*B!~_?dblxcUoT(-yATyK006K+K#*WaNI?M>KvJS2 zsD7fNIbfm%nWYzSC?j^>;nvha)PgE(>}2X~aqss1nsE^viJvqwajdqbEm2Z3sALL- z2&IexLWrtKSg=vH1&j!)6)RAS1hlPfp->i2AFbi+^qWN#=KB(K>|1g6b-Tu&KAg+T zOj2O*yW-p`uyTdD&k@4imv$UlZ7%kvjxNp~6cY`Ox2!iuTx*vyyN1N`wYjZw?;6N) zoOQj$HkYdk%`#NyT%Be)&fY3Abk!9eHF$JlC|g66=Q_=7BN2d35TQ~kRt_Pd-Aqg= zst#GHR+Md4RZDwT1)Z3o6KOL+BHe`DHCjYDMtoh}G|Z(TlmyfhFEY^uoz)&okx3=6 z#LB%na4Ab*3?fb_hK9hB7#ApNjH@{X zTMGu!Alt1-SPP4)4QX|OfG`7@vk=b=yj&7W03944!+T)#bvhr(Pnz}a3$Pt#p1R1=- zLkkxRdfC?+-LD(Ux~fH%m2+3SyD}#ihU*6ec8Qn*1E55vV8oF`MKDqo6PR-C9X)H> zSonJS^ZOq=<#70V0(Z5O!TVvn)obYiK4~ z){Gi40;+X7j4n4B1eByZvm97ZMUfDhOEH$yx9Zjl1o1*g$khTd2^e_oK@bkd<--8M zs1{K4vL3d5+?$)x<8S7McA}SWxI8yzV4S-QVPz6+rK!g~g1>0Cl*O!+7sDy}L zu3w;&SxHyE#%Ai4jegFF43kPKv11Chm5DU`W*#J!f+y^y>P3RQvxJzBt81ne`hIS~ zv|egkYiOIzPR+ctR0|cP+RWSu!KE9~xhZ&n~Mp)TeDKtz-dA<(*dGNQ1&RN!-4HTtq8n#h# ziUUWnZj-(`O>N^3P4U0$yOiW=45j3zNj4oOZp*9F#%bKGZK8~Ls@a~|pKMHG#5CQ@&Bd72F zo;|`pzh($P2nhIJe9tZDKnMuUv-Ac zydUz8`Vs!xB!$BSdt$icJI=y+Zgq6fA`sZRg#ckSjknB}^Al!)|C-8bq^ND)L;CaZ zREYxLo;MqQd1js&ZeF8GQ@&2@n|zyn0`x`^!7p6cXtVB4MVSQ@MK)wsuNS7F*@e~v z@fcdEiaM*&i(@Yvvr@D1@39#aLq|PtSCU%9SjnR`5kg%B_d41KHsx%F-6yM8Hv?Qm zDh~Rly*CV~m6C^J)ViVWr8G>9l0bPSBj(*T30&^GAO0c)*sSLTkS-KBZ?tqD+JxPK zG^$iy2@R6}o(rk>EA)Dq1Y4bffi$xE#b-O(EOWZOM`W5!gNFzvfm|vrlx=>R_fxUE zNPQl?{I9-(Av<)V&^@012Hv7D%rQkP=W&+1r`nYqXbcQZ zHYMmdQ7*;agg%#1WKJ8OHg&T0vG&p~Y?4N&vzMo>ZxQk#IKGA<1(92oRh3n}bU=h& zk~0u{kGYwb8q7zOa?d#mCRH2FIxQV=(_iv)GO-moYdsz`P<#BNRN<*Sug#aFoqFLJ(X>-%-!DgxaPad?%`ZeL5En!y(9lAMLdta{Ql z4f1gqb8+sO0mx>xe6M=RJ#9V3@nseL~$Ul zT-d7~Lfay0A8B3u3@+T!{HmQHNvo_C6v}tLjlSGD<(3V!5MYX>5 z*#rwoB1DI7y`%|2m(~*yr!ILq#xki@RYxN}cBRwZ523Fi0l@K3tD#xMA{!lO literal 2908 zcmV-i3#0TxT4*^jL0KkKSxPzNH~<_@|H1$NXa&H3|KNXb-@w2B|L{NnAOHvf;0*s4 z7fTl7$EqNrkPQH!ed-6$00B}T4NQOp00;@B^kmdxrL~LiG(6QesTu$P0000005v?C2`ZWgl+eV`FD=srh5>ks|4Nmpm@>np6>Zb_mM@m~seZO09zk{yB8?~o5 z@hya=nHqZVyjnywh}f7>51b^Gg8#(D8k9`2o4g9QycOMYPCm9ymguJ7VTFU!24!g%3*E48#8ZW%BpCquPl}mc^&5lNM``m%(H6tX){hS zRaru>Am^hzWQ->-g|PTWl>-Wf#VDAQxQer=#c!{R9@T= zFyVknqZx5BK{CixcAQjhqbecWQ>Q$d>3Vd4NNYNDVwFbJbxc*6O}8?MB@yQD=h`C@q@XFwE3UQ4lquz>sJr3MNpffORM$mJsUUnh|4y ziIFtX{Cn+SG%8;x9O4OA+j|q=*({xPC zZMm3H*nuIdGJ_JSYiK4~){Gi40;+R4j4ma{K_w{;xr>#B1W*wPl%_FHizuW{q>=D7 zNJez9lEb#t5rB0)>@W(6NCg@N6QNCNg0|dR)?{YK}*qwdo5`1V7hWaLn#$hlDSQG-) zlEMN;5P{tOy@uNX*GX1dHT{|-Fq&0WV#JkNm5DXmVc3$S zM1QhgWLPW0RNaL~$hTHY=XiRYJEGc@wzi4BZIenQ1r|e8sIV*{d=bSF6wiPLdH}F$ zwuas+0U9SZ|rTYBGq}jTTK4 z84nM)+s7U2cR0&A)1ji2qikzyD5;DFk5b(|vsBjG_jNo+>Uwd-3N?z#a5e#;_LD@u|&N3JP0xp2tC!Q6a`@PdsWMG$RYMM0? zy`Shcy*BAQRTb<0TR4kFF|7+E}J`kl0HNh z?8DeG&N$M!Z9if)5YZM7Pija{>GE|7`dE%U*2MwLkB_yXNgoI=nG;PPKZiyvI*6m< zzln$>S_=w#gkxmdWcBw2^sw1ad;du9ko(#u0^x!`#8(`LsO%?}=T}68LK_!JKpe?c zjkm0)OJbo@w26L8C#K??Q|3R99`#6&E%CndZ;b9wR$G^-(v-t|-^!EM=;L2t~MIoVWCDaHWWJI*h4onNY+`!!d8A&eN0~l##MX4$GbhbklYO_nk{*APE^JhJBT?ro#39a8qK7w5Tv9 zmSJG9`B{sF&wDQSYnZw2NgCkZ9$m9!1pTBdlqSG}$g-v-MQ&VPLKmcr#2(}5&Q~8@iAa~C zS?Q$$b(Kc*POc0`DC--3$Fob3Q`gWCUvJm55l|NDJj=kYgL3vc`K%Fcxhcxy)(5>KP~SHZ zhc_SBe@J!cKA%jdz^Ej7Sem>Jf_!Q_g*_>z+#6=0AvHj|t<{wwAS+(#s3_P&tLKZf z<_^0OoAF8p<}5M2Ob1b-7BxB8_k!2AHjOpMp*SICtaHkqu_mxnKHpq}3ndoOjDouO zu~s~hZIMv=%I~Pct<4^Ejq!T!memv@)1@bK4GG4I&=R9T4TVm#u7q}M#TnhDT_)RS zX*4vZV{)M$Xn8Db+NJq&&9>>2G$PYWDn!PW$tP)-1 zN4Xb{`w(F!%{VA=7sgrFio5gK>6Jymu40|8vJ~$cwdY3eUid4}{G)klBb`(=DnQ=Y zQBHy);#G;>tjZ&*nL?-_K$C*2t?YBuY!pbKg;HI+hu#O^KzPlDG#KU|_`8xR!i0iR G&mq8Qa6dZ$ diff --git a/SESSION.md b/SESSION.md index 919f71e1..333511a4 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-12-12 | +|date |2025-12-18 | |rstudio |2025.09.2+418 Cucumberleaf Sunflower (desktop) | |pandoc |3.6.4 @ /opt/homebrew/bin/ (via rmarkdown) | |quarto |1.7.30 @ /usr/local/bin/quarto | -|FreesearchR |25.12.6.251212 | +|FreesearchR |25.12.7.251218 | -------------------------------------------------------------------------------- @@ -26,8 +26,6 @@ |apexcharter |0.4.4 |2024-09-06 |CRAN (R 4.4.1) | |askpass |1.2.1 |2024-10-04 |CRAN (R 4.4.1) | |assertthat |0.2.1 |2019-03-21 |CRAN (R 4.4.1) | -|attachment |0.4.5 |2025-03-14 |CRAN (R 4.4.1) | -|attempt |0.3.1 |2020-05-03 |CRAN (R 4.4.1) | |backports |1.5.0 |2024-05-23 |CRAN (R 4.4.1) | |base64enc |0.1-3 |2015-07-28 |CRAN (R 4.4.1) | |bayestestR |0.17.0 |2025-08-29 |CRAN (R 4.4.1) | @@ -56,6 +54,7 @@ |colorspace |2.1-2 |2025-09-22 |CRAN (R 4.4.1) | |commonmark |2.0.0 |2025-07-07 |CRAN (R 4.4.1) | |crayon |1.5.3 |2024-06-20 |CRAN (R 4.4.1) | +|crul |1.6.0 |NA |NA | |curl |7.0.0 |2025-08-19 |CRAN (R 4.4.1) | |data.table |1.17.8 |2025-07-10 |CRAN (R 4.4.1) | |datamods |1.5.3 |2024-10-02 |CRAN (R 4.4.1) | @@ -65,8 +64,6 @@ |devtools |2.4.6 |2025-10-03 |CRAN (R 4.4.1) | |DHARMa |0.4.7 |2024-10-18 |CRAN (R 4.4.1) | |digest |0.6.39 |2025-11-19 |CRAN (R 4.4.3) | -|dockerfiler |0.2.5 |2025-05-07 |CRAN (R 4.4.1) | -|doconv |0.3.3 |2025-08-18 |CRAN (R 4.4.1) | |doParallel |1.0.17 |2022-02-07 |CRAN (R 4.4.0) | |dplyr |1.1.4 |2023-11-17 |CRAN (R 4.4.0) | |DT |0.34.0 |2025-09-02 |CRAN (R 4.4.1) | @@ -89,10 +86,11 @@ |foreach |1.5.2 |2022-02-02 |CRAN (R 4.4.0) | |foreign |0.8-90 |2025-03-31 |CRAN (R 4.4.1) | |Formula |1.2-5 |2023-02-24 |CRAN (R 4.4.1) | -|FreesearchR |25.12.6 |NA |NA | +|FreesearchR |25.12.7 |NA |NA | |fs |1.6.6 |2025-04-12 |CRAN (R 4.4.1) | |gdtools |0.4.4 |2025-10-06 |CRAN (R 4.4.1) | |generics |0.1.4 |2025-05-09 |CRAN (R 4.4.1) | +|gfonts |0.2.0 |NA |NA | |ggalluvial |0.12.5 |2023-02-22 |CRAN (R 4.4.0) | |ggcorrplot |0.1.4.1 |2023-09-05 |CRAN (R 4.4.0) | |ggforce |0.5.0 |2025-06-18 |CRAN (R 4.4.1) | @@ -111,6 +109,7 @@ |htmlTable |2.4.3 |2024-07-21 |CRAN (R 4.4.0) | |htmltools |0.5.9 |2025-12-04 |CRAN (R 4.4.3) | |htmlwidgets |1.6.4 |2023-12-06 |CRAN (R 4.4.0) | +|httpcode |0.3.0 |NA |NA | |httpuv |1.6.16 |2025-04-16 |CRAN (R 4.4.1) | |IDEAFilter |0.2.1 |2025-07-29 |CRAN (R 4.4.1) | |insight |1.4.4 |2025-12-06 |CRAN (R 4.4.3) | @@ -121,21 +120,15 @@ |KernSmooth |2.23-26 |2025-01-01 |CRAN (R 4.4.1) | |keyring |1.4.1 |2025-06-15 |CRAN (R 4.4.1) | |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.4 |2025-08-27 |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) | -|litedown |0.8 |2025-11-02 |CRAN (R 4.4.1) | |lme4 |1.1-38 |2025-12-02 |CRAN (R 4.4.3) | -|locatexec |0.1.1 |2021-05-19 |CRAN (R 4.4.0) | |lubridate |1.9.4 |2024-12-08 |CRAN (R 4.4.1) | -|magick |2.9.0 |2025-09-08 |CRAN (R 4.4.1) | |magrittr |2.0.4 |2025-09-12 |CRAN (R 4.4.1) | -|markdown |2.0 |2025-03-23 |CRAN (R 4.4.1) | |MASS |7.3-65 |2025-02-28 |CRAN (R 4.4.1) | |Matrix |1.7-4 |2025-08-28 |CRAN (R 4.4.1) | |memoise |2.0.1 |2021-11-26 |CRAN (R 4.4.0) | -|mgcv |1.9-4 |2025-11-07 |CRAN (R 4.4.1) | |mime |0.13 |2025-03-17 |CRAN (R 4.4.1) | |minqa |1.2.8 |2024-08-17 |CRAN (R 4.4.1) | |mvtnorm |1.3-3 |2025-01-10 |CRAN (R 4.4.1) | @@ -152,7 +145,6 @@ |parameters |0.28.3 |2025-11-25 |CRAN (R 4.4.3) | |patchwork |1.3.2 |2025-08-25 |CRAN (R 4.4.1) | |pbmcapply |1.5.1 |2022-04-28 |CRAN (R 4.4.1) | -|pdftools |3.6.0 |2025-09-10 |CRAN (R 4.4.1) | |performance |0.15.3 |2025-12-01 |CRAN (R 4.4.3) | |phosphoricons |0.2.1 |2024-04-08 |CRAN (R 4.4.0) | |pillar |1.11.1 |2025-09-17 |CRAN (R 4.4.1) | @@ -167,7 +159,6 @@ |proxy |0.4-27 |2022-06-09 |CRAN (R 4.4.1) | |ps |1.9.1 |2025-04-12 |CRAN (R 4.4.1) | |purrr |1.2.0 |2025-11-04 |CRAN (R 4.4.1) | -|qpdf |1.4.1 |2025-07-02 |CRAN (R 4.4.1) | |qqconf |1.3.2 |2023-04-14 |CRAN (R 4.4.0) | |qqplotr |0.0.7 |2025-09-05 |CRAN (R 4.4.1) | |quarto |1.5.1 |2025-09-04 |CRAN (R 4.4.1) | @@ -211,12 +202,12 @@ |sessioninfo |1.2.3 |2025-02-05 |CRAN (R 4.4.1) | |shiny |1.12.1 |2025-12-09 |CRAN (R 4.4.1) | |shiny.i18n |0.3.0 |2023-01-16 |CRAN (R 4.4.0) | -|shiny2docker |0.0.3 |2025-06-28 |CRAN (R 4.4.1) | |shinybusy |0.3.3 |2024-03-09 |CRAN (R 4.4.0) | |shinyjs |2.1.0 |2021-12-23 |CRAN (R 4.4.0) | |shinyTime |1.0.3 |2022-08-19 |CRAN (R 4.4.0) | |shinyWidgets |0.9.0 |2025-02-21 |CRAN (R 4.4.1) | |smd |0.8.0 |2025-02-12 |CRAN (R 4.4.1) | +|sourcetools |0.1.7-1 |2023-02-01 |CRAN (R 4.4.1) | |stringi |1.8.7 |2025-03-27 |CRAN (R 4.4.1) | |stringr |1.6.0 |2025-11-04 |CRAN (R 4.4.1) | |stRoke |25.9.2 |2025-09-30 |CRAN (R 4.4.1) | @@ -230,9 +221,11 @@ |tidyselect |1.2.1 |2024-03-11 |CRAN (R 4.4.0) | |timechange |0.3.0 |2024-01-18 |CRAN (R 4.4.1) | |toastui |0.4.0 |2025-04-03 |CRAN (R 4.4.1) | +|triebeard |0.4.1 |NA |NA | |tweenr |2.0.3 |2024-02-26 |CRAN (R 4.4.0) | |twosamples |2.0.1 |2023-06-23 |CRAN (R 4.4.1) | |tzdb |0.5.0 |2025-03-15 |CRAN (R 4.4.1) | +|urltools |1.7.3.1 |NA |NA | |usethis |3.2.1 |2025-09-06 |CRAN (R 4.4.1) | |uuid |1.2-1 |2024-07-29 |CRAN (R 4.4.1) | |V8 |8.0.1 |2025-10-10 |CRAN (R 4.4.1) | @@ -246,5 +239,4 @@ |xml2 |1.5.1 |2025-12-01 |CRAN (R 4.4.3) | |xtable |1.8-4 |2019-04-21 |CRAN (R 4.4.1) | |yaml |2.3.11 |2025-11-28 |CRAN (R 4.4.3) | -|yesno |0.1.3 |2024-07-26 |CRAN (R 4.4.1) | |zip |2.3.3 |2025-05-13 |CRAN (R 4.4.1) | diff --git a/inst/translations/translation_da.csv b/inst/translations/translation_da.csv index 33b7e0af..e97773e2 100644 --- a/inst/translations/translation_da.csv +++ b/inst/translations/translation_da.csv @@ -312,11 +312,9 @@ "A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" "Core Features","Core Features" "Import Data","Import Data" -"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." "Data Management","Data Management" "Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." "Descriptive Statistics","Descriptive Statistics" -"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." "Additional Capabilities","Additional Capabilities" "Data Visualization","Data Visualization" "Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" @@ -324,11 +322,8 @@ "Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" "Export & Learn","Export & Learn" "Download Results","Download Results" -"Export as comprehensive reports","Export as comprehensive reports" "Get Modified Data","Get Modified Data" -"Save your processed datasets","Save your processed datasets" "Reproducible Code","Reproducible Code" -"Learn and reproduce results","Learn and reproduce results" "Full Documentation","Full Documentation" "Share Feedback","Share Feedback" "Contact Us","Contact Us" @@ -336,5 +331,11 @@ "Home","Home" "Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." "When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." "(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_de.csv b/inst/translations/translation_de.csv index 29723e8f..fcc88539 100644 --- a/inst/translations/translation_de.csv +++ b/inst/translations/translation_de.csv @@ -312,11 +312,9 @@ "A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" "Core Features","Core Features" "Import Data","Import Data" -"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." "Data Management","Data Management" "Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." "Descriptive Statistics","Descriptive Statistics" -"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." "Additional Capabilities","Additional Capabilities" "Data Visualization","Data Visualization" "Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" @@ -324,11 +322,8 @@ "Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" "Export & Learn","Export & Learn" "Download Results","Download Results" -"Export as comprehensive reports","Export as comprehensive reports" "Get Modified Data","Get Modified Data" -"Save your processed datasets","Save your processed datasets" "Reproducible Code","Reproducible Code" -"Learn and reproduce results","Learn and reproduce results" "Full Documentation","Full Documentation" "Share Feedback","Share Feedback" "Contact Us","Contact Us" @@ -336,5 +331,11 @@ "Home","Home" "Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." "When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." "(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_sv.csv b/inst/translations/translation_sv.csv index 0f804ed2..a47c4fc8 100644 --- a/inst/translations/translation_sv.csv +++ b/inst/translations/translation_sv.csv @@ -312,11 +312,9 @@ "A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" "Core Features","Core Features" "Import Data","Import Data" -"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." "Data Management","Data Management" "Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." "Descriptive Statistics","Descriptive Statistics" -"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." "Additional Capabilities","Additional Capabilities" "Data Visualization","Data Visualization" "Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" @@ -324,11 +322,8 @@ "Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" "Export & Learn","Export & Learn" "Download Results","Download Results" -"Export as comprehensive reports","Export as comprehensive reports" "Get Modified Data","Get Modified Data" -"Save your processed datasets","Save your processed datasets" "Reproducible Code","Reproducible Code" -"Learn and reproduce results","Learn and reproduce results" "Full Documentation","Full Documentation" "Share Feedback","Share Feedback" "Contact Us","Contact Us" @@ -336,5 +331,11 @@ "Home","Home" "Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." "When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." "(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/translations/translation_sw.csv b/inst/translations/translation_sw.csv index f2bd4839..19b99451 100644 --- a/inst/translations/translation_sw.csv +++ b/inst/translations/translation_sw.csv @@ -312,11 +312,9 @@ "A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" "Core Features","Core Features" "Import Data","Import Data" -"Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try sample data. Multiple sources supported for maximum flexibility." "Data Management","Data Management" "Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." "Descriptive Statistics","Descriptive Statistics" -"Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and handle missing observations effectively." "Additional Capabilities","Additional Capabilities" "Data Visualization","Data Visualization" "Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" @@ -324,11 +322,8 @@ "Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" "Export & Learn","Export & Learn" "Download Results","Download Results" -"Export as comprehensive reports","Export as comprehensive reports" "Get Modified Data","Get Modified Data" -"Save your processed datasets","Save your processed datasets" "Reproducible Code","Reproducible Code" -"Learn and reproduce results","Learn and reproduce results" "Full Documentation","Full Documentation" "Share Feedback","Share Feedback" "Contact Us","Contact Us" @@ -336,5 +331,11 @@ "Home","Home" "Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." "When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." -"Consider running the FreesearchR app locally if working with sensitive data.","Consider running the FreesearchR app locally if working with sensitive data." "(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/renv.lock b/renv.lock index 7d0e3eb6..6841ab5e 100644 --- a/renv.lock +++ b/renv.lock @@ -2556,39 +2556,6 @@ "Maintainer": "Folashade Daniel ", "Repository": "CRAN" }, - "doconv": { - "Package": "doconv", - "Version": "0.3.3", - "Source": "Repository", - "Type": "Package", - "Title": "Document Conversion to 'PDF' or 'PNG'", - "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\"), person(\"David\", \"Hajage\", role = \"ctb\", comment = \"initial powershell code\") )", - "Description": "It provides the ability to generate images from documents of different types. Three main features are provided: functions for generating document thumbnails, functions for performing visual tests of documents and a function for updating fields and table of contents of a 'Microsoft Word' or 'RTF' document. In order to work, 'LibreOffice' must be installed on the machine and or 'Microsoft Word'. If the latter is available, it can be used to produce PDF documents or images identical to the originals; otherwise, 'LibreOffice' is used and the rendering can be sometimes different from the original documents.", - "License": "MIT + file LICENSE", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", - "Imports": [ - "magick", - "pdftools", - "locatexec", - "processx", - "tools" - ], - "Depends": [ - "R (>= 4.0.0)" - ], - "Suggests": [ - "tinytest", - "testthat", - "webshot2" - ], - "BugReports": "https://github.com/ardata-fr/doconv/issues", - "SystemRequirements": "LibreOffice, Microsoft Word", - "NeedsCompilation": "no", - "Author": "David Gohel [aut, cre], ArData [cph], David Hajage [ctb] (initial powershell code)", - "Maintainer": "David Gohel ", - "Repository": "CRAN" - }, "downlit": { "Package": "downlit", "Version": "0.4.5", @@ -5340,26 +5307,6 @@ "Maintainer": "Achim Zeileis ", "Repository": "CRAN" }, - "locatexec": { - "Package": "locatexec", - "Version": "0.1.1", - "Source": "Repository", - "Type": "Package", - "Title": "Detection and Localization of Executable Files", - "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\") )", - "Description": "A set of functions to locate some programs available on the user machine. The package provides functions to locate 'Node.js', 'npm', 'LibreOffice', 'Microsoft Word', 'Microsoft PowerPoint', 'Microsoft Excel', 'Python', 'pip', 'Mozilla Firefox' and 'Google Chrome'. User can test the availability of a program with eventually a version and call it with function system2() or system(). This allows the use of a single function to retrieve the path to a program regardless of the operating system and its configuration.", - "License": "MIT + file LICENSE", - "Encoding": "UTF-8", - "RoxygenNote": "7.1.1", - "Imports": [ - "utils" - ], - "BugReports": "https://github.com/ardata-fr/locatexec/issues", - "NeedsCompilation": "no", - "Author": "David Gohel [aut, cre], ArData [cph]", - "Maintainer": "David Gohel ", - "Repository": "CRAN" - }, "lubridate": { "Package": "lubridate", "Version": "1.9.4", @@ -5406,54 +5353,6 @@ "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", "Repository": "CRAN" }, - "magick": { - "Package": "magick", - "Version": "2.9.0", - "Source": "Repository", - "Type": "Package", - "Title": "Advanced Graphics and Image-Processing in R", - "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", - "Description": "Bindings to 'ImageMagick': the most comprehensive open-source image processing library available. Supports many common formats (png, jpeg, tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur, etc). All operations are vectorized via the Magick++ STL meaning they operate either on a single frame or a series of frames for working with layers, collages, or animation. In RStudio images are automatically previewed when printed to the console, resulting in an interactive editing environment. Also includes a graphics device for creating drawing onto images using pixel coordinates.", - "License": "MIT + file LICENSE", - "URL": "https://docs.ropensci.org/magick/ https://ropensci.r-universe.dev/magick", - "BugReports": "https://github.com/ropensci/magick/issues", - "SystemRequirements": "ImageMagick++: ImageMagick-c++-devel (rpm) or libmagick++-dev (deb)", - "VignetteBuilder": "knitr", - "Depends": [ - "R (>= 4.1.0)" - ], - "Imports": [ - "Rcpp (>= 0.12.12)", - "magrittr", - "curl" - ], - "LinkingTo": [ - "Rcpp" - ], - "Suggests": [ - "av", - "spelling", - "jsonlite", - "methods", - "knitr", - "rmarkdown", - "rsvg", - "webp", - "pdftools", - "ggplot2", - "gapminder", - "IRdisplay", - "tesseract", - "gifski" - ], - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", - "Language": "en-US", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: )", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "magrittr": { "Package": "magrittr", "Version": "2.0.4", @@ -6322,38 +6221,6 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, - "pdftools": { - "Package": "pdftools", - "Version": "3.6.0", - "Source": "Repository", - "Type": "Package", - "Title": "Text Extraction, Rendering and Converting of PDF Documents", - "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", - "Description": "Utilities based on 'libpoppler' for extracting text, fonts, attachments and metadata from a PDF file. Also supports high quality rendering of PDF documents into PNG, JPEG, TIFF format, or into raw bitmap vectors for further processing in R.", - "License": "MIT + file LICENSE", - "URL": "https://ropensci.r-universe.dev/pdftools, https://docs.ropensci.org/pdftools/", - "BugReports": "https://github.com/ropensci/pdftools/issues", - "SystemRequirements": "Poppler C++ API: libpoppler-cpp-dev (deb) or poppler-cpp-devel (rpm), and poppler-data (rpm/deb) package.", - "Encoding": "UTF-8", - "Imports": [ - "Rcpp (>= 0.12.12)", - "qpdf" - ], - "LinkingTo": [ - "Rcpp" - ], - "Suggests": [ - "png", - "webp", - "tesseract", - "testthat" - ], - "RoxygenNote": "7.3.2", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: )", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "performance": { "Package": "performance", "Version": "0.15.3", @@ -7069,36 +6936,6 @@ "Author": "Matteo Fasiolo [aut, cre], Ben Griffiths [aut], Simon N. Wood [ctb], Margaux Zaffran [ctb], Yannig Goude [ctb], Raphael Nedellec [ctb]", "Repository": "CRAN" }, - "qpdf": { - "Package": "qpdf", - "Version": "1.4.1", - "Source": "Repository", - "Type": "Package", - "Title": "Split, Combine and Compress PDF Files", - "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Ben\", \"Raymond\", role = \"ctb\"), person(\"Jay Berkenbilt\", role = \"cph\", comment = \"Author of libqpdf\"))", - "Description": "Content-preserving transformations transformations of PDF files such as split, combine, and compress. This package interfaces directly to the 'qpdf' C++ library and does not require any command line utilities. Note that 'qpdf' does not read actual content from PDF files: to extract text and data you need the 'pdftools' package.", - "License": "Apache License 2.0", - "URL": "https://docs.ropensci.org/qpdf/ https://ropensci.r-universe.dev/qpdf", - "BugReports": "https://github.com/ropensci/qpdf/issues", - "Encoding": "UTF-8", - "Imports": [ - "Rcpp", - "askpass", - "curl" - ], - "LinkingTo": [ - "Rcpp" - ], - "RoxygenNote": "7.2.1", - "Suggests": [ - "testthat" - ], - "SystemRequirements": "libjpeg", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Ben Raymond [ctb], Jay Berkenbilt [cph] (Author of libqpdf)", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "qqconf": { "Package": "qqconf", "Version": "1.3.2", From 4fbe9dbc41d531e993fa4910245d6ebb1501596a Mon Sep 17 00:00:00 2001 From: Andreas Gammelgaard Damsbo Date: Thu, 18 Dec 2025 13:25:26 +0100 Subject: [PATCH 4/4] new version ready --- app_docker/Dockerfile | 2 +- app_docker/app.R | 360 ++++++++++++++++++--- app_docker/renv.lock | 163 ---------- app_docker/translations/translation_da.csv | 32 +- app_docker/translations/translation_de.csv | 32 +- app_docker/translations/translation_sv.csv | 32 +- app_docker/translations/translation_sw.csv | 32 +- inst/apps/FreesearchR/app.R | 360 ++++++++++++++++++--- 8 files changed, 761 insertions(+), 252 deletions(-) diff --git a/app_docker/Dockerfile b/app_docker/Dockerfile index c4564945..e81d0317 100644 --- a/app_docker/Dockerfile +++ b/app_docker/Dockerfile @@ -1,5 +1,5 @@ FROM rocker/geospatial:4.4.1 -RUN apt-get update -y && apt-get install -y cmake make libcurl4-openssl-dev libicu-dev libssl-dev pandoc zlib1g-dev libsecret-1-dev libxml2-dev libx11-dev libmagick++-dev gsfonts libjpeg-dev libpoppler-cpp-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libpng-dev libtiff-dev libwebp-dev libfftw3-dev && rm -rf /var/lib/apt/lists/* +RUN apt-get update -y && apt-get install -y cmake make libcurl4-openssl-dev libicu-dev libssl-dev pandoc zlib1g-dev libsecret-1-dev libxml2-dev libx11-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libharfbuzz-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libfftw3-dev && rm -rf /var/lib/apt/lists/* RUN mkdir -p /usr/local/lib/R/etc/ /usr/lib/R/etc/ RUN echo "options(renv.config.pak.enabled = FALSE, repos = c(CRAN = 'https://cran.rstudio.com/'), download.file.method = 'libcurl', Ncpus = 4)" | tee /usr/local/lib/R/etc/Rprofile.site | tee /usr/lib/R/etc/Rprofile.site RUN R -e 'install.packages("remotes")' diff --git a/app_docker/app.R b/app_docker/app.R index a6dd12ce..c5b12b88 100644 --- a/app_docker/app.R +++ b/app_docker/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpaYL5kU/file9c7113e28000.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpfypcRk/file94c84b9cb1cb.R ######## i18n_path <- here::here("translations") @@ -41,10 +41,9 @@ library(shinyWidgets) library(gtsummary) library(bsicons) library(rlang) -# library(datamods) -# library(toastui) # library(phosphoricons) library(shiny.i18n) +library(fontawesome) ## Translation init i18n <- shiny.i18n::Translator$new(translation_csvs_path = i18n_path) @@ -63,7 +62,7 @@ i18n$set_translation_language("en") #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'25.12.6' +app_version <- function()'25.12.7' ######## @@ -3625,6 +3624,42 @@ construct_col_summary <- function(data) { } +######## +#### Current file: /Users/au301842/FreesearchR/R//footer_ui.R +######## + +footer_ui <- function(i18n) { + tagList( + shiny::tags$footer( + style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", + shiny::p( + style = "margin: 1", + i18n$t("Data is only stored for analyses and deleted when the app is closed.") + ), + shiny::p( + style = "margin: 1", + i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") + ), + # shiny::p( + # style = "margin: 1; color: #888;", + div( + style = "display: inline-flex; align-items: center; gap: 1px;", + shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( + style = "display: inline-block;", + class = c("smart-dropdown", "text-select"), + shiny::uiOutput(outputId = "language_select") + ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") + ), + br(), + p( + style = "display: inline-flex; align-items: center; gap: 1px;", + hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), + ) + ) + ) +} + + ######## #### Current file: /Users/au301842/FreesearchR/R//helpers.R ######## @@ -4451,7 +4486,7 @@ data_types <- function() { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v25.12.6-251212' +hosted_version <- function()'v25.12.7-251218' ######## @@ -5505,6 +5540,271 @@ limit_data_size <- function(data, limit = NULL) { } +######## +#### Current file: /Users/au301842/FreesearchR/R//landing_page_ui.R +######## + +#' Tag list of elements for the FreesearchR landing page +#' +#' @param i18n i18n function loaded in the UI +#' +#' @returns tag list +#' +landing_page_ui <- function(i18n) { + tagList( + # Header section + div( + class = "container-fluid py-4", + # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", + div( + class = "row align-items-center", + div( + class = "col-md-8", + h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), + h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), + style = "font-weight: 300; opacity: 0.95;"), + p( + class = "lead", + i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), + style = "font-size: 1.2rem; color: #555;" + ) + ), + div( + class = "col-md-4 text-end", + img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") + ) + ) + ), + + # # Main content + div( + class = "container my-5", + + # Introduction text + # div( + # class = "row mb-5", + # div( + # class = "col-12 text-center", + # p( + # class = "lead", + # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), + # style = "font-size: 1.2rem; color: #555;" + # ) + # ) + # ), + + # Core Features Section + h2(i18n$t("Core Features"), class = "text-center mb-4", + style = "color: #1E4A8F; font-weight: 600;"), + + div( + class = "row g-4 mb-5", + + # Import Data + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none; transition: transform 0.2s;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("file-import") + ), + h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") + ) + ) + ) + ), + + # Data Management + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("pen-to-square") + ), + h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") + ) + ) + ) + ), + + # Descriptive Statistics + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("magnifying-glass-chart") + ), + h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") + ) + ) + ) + ) + ), + + # Advanced Features Section + h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", + style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), + + div( + class = "row g-3 mb-5", + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) + ) + ) + ), + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) + ) + ) + ) + ), + + # Export & Learning Section + div( + class = "row mb-5", + div( + class = "col-12", + div( + class = "card shadow", + style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", + div( + class = "card-body p-4", + h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), + div( + class = "row text-center", + div( + class = "col-md-4", + p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) + ) + ) + ) + ) + ) + )#, + + # Footer links + # div( + # class = "row mt-5 pt-4 border-top", + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://agdamsbo.github.io/FreesearchR/", + # target = "_blank", + # class = "btn btn-outline-primary", + # fa("book"), " ", i18n$t("Full Documentation") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", + # target = "_blank", + # class = "btn btn-outline-success", + # fa("comments"), " ", i18n$t("Share Feedback") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "mailto:info@freesearchr.org", + # class = "btn btn-outline-info", + # fa("envelope"), " ", i18n$t("Contact Us") + # ) + # ) + # ), + # + # # Translation notice + # div( + # class = "row mt-4", + # div( + # class = "col-12 text-center", + # p( + # class = "text-muted small", + # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) + # ) + # ) + # ) + ), + + # Custom CSS for hover effects + tags$style(HTML(" + .hover-card:hover { + transform: translateY(-5px); + box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; + } + ")) + ) +} + +# Example usage in a Shiny app with nav_panel: +# +# ui <- page_navbar( +# title = "FreesearchR", +# theme = bs_theme( +# version = 5, +# bootswatch = "flatly", +# primary = "#2C3E50", +# base_font = font_google("Roboto") +# ), +# nav_panel( +# title = i18n$t("Home"), +# landing_page_ui(i18n) +# ), +# nav_panel( +# title = i18n$t("Import Data"), +# # Import data UI +# ), +# # ... other nav_panels +# ) + + ######## #### Current file: /Users/au301842/FreesearchR/R//launch_FreesearchR.R ######## @@ -10005,6 +10305,7 @@ custom_theme <- function(..., ) } + FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -10078,6 +10379,7 @@ gg_theme_export <- function() { } + ######## #### Current file: /Users/au301842/FreesearchR/R//translate.R ######## @@ -10123,14 +10425,15 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - shiny::column(width = 2), - shiny::column( - width = 8, - # shiny::uiOutput(outputId = "language_select"), - htmlOutput("intro_text") - # shiny::includeHTML(i18n$t("www/intro.html")) - # shiny::markdown(readLines(i18n$t("www/intro.md"))) - ), + landing_page_ui(i18n=i18n), + # shiny::column(width = 2), + # shiny::column( + # width = 8, + # # shiny::uiOutput(outputId = "language_select"), + # htmlOutput("intro_text") + # # shiny::includeHTML(i18n$t("www/intro.html")) + # # shiny::markdown(readLines(i18n$t("www/intro.md"))) + # ), shiny::column(width = 2) ) ), @@ -12948,7 +13251,7 @@ ui <- bslib::page_fixed( # ui_elements$feedback, # ui_elements$docs, fillable = FALSE, - footer = shiny::uiOutput("footer_text_div") + footer = footer_ui(i18n) ) ) ) @@ -13116,36 +13419,9 @@ server <- function(input, output, session) { ) ) - output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) + # output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) }) - ## This is not working but kept to try to solve if deemed necessary - shiny::observe( - output$footer_text_div <- renderUI({ - shiny::tags$footer( - style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", - shiny::p( - style = "margin: 1", - i18n$t("Data is only stored for analyses and deleted when the app is closed."), shiny::markdown(i18n$t("Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.")) - ), - # shiny::p( - # style = "margin: 1; color: #888;", - div( - style = "display: inline-flex; align-items: center; gap: 1px;", - shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( - style = "display: inline-block;", - class = c("smart-dropdown", "text-select"), - shiny::uiOutput(outputId = "language_select") - ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") - ), - br(), - p( - style = "display: inline-flex; align-items: center; gap: 1px;", - hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), - ) - ) - }) - ) shiny::observeEvent(input$language_select, { bslib::accordion_panel_update(id = "acc_chars", title = i18n$t("Settings"), target = "acc_pan_chars") diff --git a/app_docker/renv.lock b/app_docker/renv.lock index 7d0e3eb6..6841ab5e 100644 --- a/app_docker/renv.lock +++ b/app_docker/renv.lock @@ -2556,39 +2556,6 @@ "Maintainer": "Folashade Daniel ", "Repository": "CRAN" }, - "doconv": { - "Package": "doconv", - "Version": "0.3.3", - "Source": "Repository", - "Type": "Package", - "Title": "Document Conversion to 'PDF' or 'PNG'", - "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\"), person(\"David\", \"Hajage\", role = \"ctb\", comment = \"initial powershell code\") )", - "Description": "It provides the ability to generate images from documents of different types. Three main features are provided: functions for generating document thumbnails, functions for performing visual tests of documents and a function for updating fields and table of contents of a 'Microsoft Word' or 'RTF' document. In order to work, 'LibreOffice' must be installed on the machine and or 'Microsoft Word'. If the latter is available, it can be used to produce PDF documents or images identical to the originals; otherwise, 'LibreOffice' is used and the rendering can be sometimes different from the original documents.", - "License": "MIT + file LICENSE", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", - "Imports": [ - "magick", - "pdftools", - "locatexec", - "processx", - "tools" - ], - "Depends": [ - "R (>= 4.0.0)" - ], - "Suggests": [ - "tinytest", - "testthat", - "webshot2" - ], - "BugReports": "https://github.com/ardata-fr/doconv/issues", - "SystemRequirements": "LibreOffice, Microsoft Word", - "NeedsCompilation": "no", - "Author": "David Gohel [aut, cre], ArData [cph], David Hajage [ctb] (initial powershell code)", - "Maintainer": "David Gohel ", - "Repository": "CRAN" - }, "downlit": { "Package": "downlit", "Version": "0.4.5", @@ -5340,26 +5307,6 @@ "Maintainer": "Achim Zeileis ", "Repository": "CRAN" }, - "locatexec": { - "Package": "locatexec", - "Version": "0.1.1", - "Source": "Repository", - "Type": "Package", - "Title": "Detection and Localization of Executable Files", - "Authors@R": "c( person(\"David\", \"Gohel\", role = c(\"aut\", \"cre\"), email = \"david.gohel@ardata.fr\"), person(given = \"ArData\", role = \"cph\") )", - "Description": "A set of functions to locate some programs available on the user machine. The package provides functions to locate 'Node.js', 'npm', 'LibreOffice', 'Microsoft Word', 'Microsoft PowerPoint', 'Microsoft Excel', 'Python', 'pip', 'Mozilla Firefox' and 'Google Chrome'. User can test the availability of a program with eventually a version and call it with function system2() or system(). This allows the use of a single function to retrieve the path to a program regardless of the operating system and its configuration.", - "License": "MIT + file LICENSE", - "Encoding": "UTF-8", - "RoxygenNote": "7.1.1", - "Imports": [ - "utils" - ], - "BugReports": "https://github.com/ardata-fr/locatexec/issues", - "NeedsCompilation": "no", - "Author": "David Gohel [aut, cre], ArData [cph]", - "Maintainer": "David Gohel ", - "Repository": "CRAN" - }, "lubridate": { "Package": "lubridate", "Version": "1.9.4", @@ -5406,54 +5353,6 @@ "Author": "Vitalie Spinu [aut, cre], Garrett Grolemund [aut], Hadley Wickham [aut], Davis Vaughan [ctb], Ian Lyttle [ctb], Imanuel Costigan [ctb], Jason Law [ctb], Doug Mitarotonda [ctb], Joseph Larmarange [ctb], Jonathan Boiser [ctb], Chel Hee Lee [ctb]", "Repository": "CRAN" }, - "magick": { - "Package": "magick", - "Version": "2.9.0", - "Source": "Repository", - "Type": "Package", - "Title": "Advanced Graphics and Image-Processing in R", - "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", - "Description": "Bindings to 'ImageMagick': the most comprehensive open-source image processing library available. Supports many common formats (png, jpeg, tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur, etc). All operations are vectorized via the Magick++ STL meaning they operate either on a single frame or a series of frames for working with layers, collages, or animation. In RStudio images are automatically previewed when printed to the console, resulting in an interactive editing environment. Also includes a graphics device for creating drawing onto images using pixel coordinates.", - "License": "MIT + file LICENSE", - "URL": "https://docs.ropensci.org/magick/ https://ropensci.r-universe.dev/magick", - "BugReports": "https://github.com/ropensci/magick/issues", - "SystemRequirements": "ImageMagick++: ImageMagick-c++-devel (rpm) or libmagick++-dev (deb)", - "VignetteBuilder": "knitr", - "Depends": [ - "R (>= 4.1.0)" - ], - "Imports": [ - "Rcpp (>= 0.12.12)", - "magrittr", - "curl" - ], - "LinkingTo": [ - "Rcpp" - ], - "Suggests": [ - "av", - "spelling", - "jsonlite", - "methods", - "knitr", - "rmarkdown", - "rsvg", - "webp", - "pdftools", - "ggplot2", - "gapminder", - "IRdisplay", - "tesseract", - "gifski" - ], - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", - "Language": "en-US", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: )", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "magrittr": { "Package": "magrittr", "Version": "2.0.4", @@ -6322,38 +6221,6 @@ "NeedsCompilation": "yes", "Repository": "CRAN" }, - "pdftools": { - "Package": "pdftools", - "Version": "3.6.0", - "Source": "Repository", - "Type": "Package", - "Title": "Text Extraction, Rendering and Converting of PDF Documents", - "Authors@R": "person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\"))", - "Description": "Utilities based on 'libpoppler' for extracting text, fonts, attachments and metadata from a PDF file. Also supports high quality rendering of PDF documents into PNG, JPEG, TIFF format, or into raw bitmap vectors for further processing in R.", - "License": "MIT + file LICENSE", - "URL": "https://ropensci.r-universe.dev/pdftools, https://docs.ropensci.org/pdftools/", - "BugReports": "https://github.com/ropensci/pdftools/issues", - "SystemRequirements": "Poppler C++ API: libpoppler-cpp-dev (deb) or poppler-cpp-devel (rpm), and poppler-data (rpm/deb) package.", - "Encoding": "UTF-8", - "Imports": [ - "Rcpp (>= 0.12.12)", - "qpdf" - ], - "LinkingTo": [ - "Rcpp" - ], - "Suggests": [ - "png", - "webp", - "tesseract", - "testthat" - ], - "RoxygenNote": "7.3.2", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: )", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "performance": { "Package": "performance", "Version": "0.15.3", @@ -7069,36 +6936,6 @@ "Author": "Matteo Fasiolo [aut, cre], Ben Griffiths [aut], Simon N. Wood [ctb], Margaux Zaffran [ctb], Yannig Goude [ctb], Raphael Nedellec [ctb]", "Repository": "CRAN" }, - "qpdf": { - "Package": "qpdf", - "Version": "1.4.1", - "Source": "Repository", - "Type": "Package", - "Title": "Split, Combine and Compress PDF Files", - "Authors@R": "c(person(\"Jeroen\", \"Ooms\", role = c(\"aut\", \"cre\"), email = \"jeroenooms@gmail.com\", comment = c(ORCID = \"0000-0002-4035-0289\")), person(\"Ben\", \"Raymond\", role = \"ctb\"), person(\"Jay Berkenbilt\", role = \"cph\", comment = \"Author of libqpdf\"))", - "Description": "Content-preserving transformations transformations of PDF files such as split, combine, and compress. This package interfaces directly to the 'qpdf' C++ library and does not require any command line utilities. Note that 'qpdf' does not read actual content from PDF files: to extract text and data you need the 'pdftools' package.", - "License": "Apache License 2.0", - "URL": "https://docs.ropensci.org/qpdf/ https://ropensci.r-universe.dev/qpdf", - "BugReports": "https://github.com/ropensci/qpdf/issues", - "Encoding": "UTF-8", - "Imports": [ - "Rcpp", - "askpass", - "curl" - ], - "LinkingTo": [ - "Rcpp" - ], - "RoxygenNote": "7.2.1", - "Suggests": [ - "testthat" - ], - "SystemRequirements": "libjpeg", - "NeedsCompilation": "yes", - "Author": "Jeroen Ooms [aut, cre] (ORCID: ), Ben Raymond [ctb], Jay Berkenbilt [cph] (Author of libqpdf)", - "Maintainer": "Jeroen Ooms ", - "Repository": "CRAN" - }, "qqconf": { "Package": "qqconf", "Version": "1.3.2", diff --git a/app_docker/translations/translation_da.csv b/app_docker/translations/translation_da.csv index 945ea908..e97773e2 100644 --- a/app_docker/translations/translation_da.csv +++ b/app_docker/translations/translation_da.csv @@ -137,7 +137,6 @@ "Generate area-proportional Euler diagrams to display set relationships","Generer proportionelt Euler-diagram for at vise forhold mellem forskellige kategoriske observationer" "Documentation","Dokumentation" "Data is only stored for analyses and deleted when the app is closed.","Data opbevares alene til brug i analyser og slettes så snart appen lukkes." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Overvej at [køre ***FreesearchR*** lokalt](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) hvis du arbejder med personfølsomme data." "Feedback","Feedback" "License: AGPLv3","Licens: AGPLv3" "Source","Kilde" @@ -309,3 +308,34 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Get Modified Data","Get Modified Data" +"Reproducible Code","Reproducible Code" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_de.csv b/app_docker/translations/translation_de.csv index 5c4e9162..fcc88539 100644 --- a/app_docker/translations/translation_de.csv +++ b/app_docker/translations/translation_de.csv @@ -234,7 +234,6 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -309,3 +308,34 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Get Modified Data","Get Modified Data" +"Reproducible Code","Reproducible Code" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_sv.csv b/app_docker/translations/translation_sv.csv index 5bf08438..a47c4fc8 100644 --- a/app_docker/translations/translation_sv.csv +++ b/app_docker/translations/translation_sv.csv @@ -234,7 +234,6 @@ "REDCap server export","REDCap server export" "Local or sample data","Local or sample data" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Documentation","Documentation" "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" @@ -309,3 +308,34 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Get Modified Data","Get Modified Data" +"Reproducible Code","Reproducible Code" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/app_docker/translations/translation_sw.csv b/app_docker/translations/translation_sw.csv index 2fe4651c..19b99451 100644 --- a/app_docker/translations/translation_sw.csv +++ b/app_docker/translations/translation_sw.csv @@ -137,7 +137,6 @@ "Generate area-proportional Euler diagrams to display set relationships","Generate area-proportional Euler diagrams to display set relationships" "Documentation","Documentation" "Data is only stored for analyses and deleted when the app is closed.","Data is only stored for analyses and deleted when the app is closed." -"Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.","Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data." "Feedback","Feedback" "License: AGPLv3","License: AGPLv3" "Source","Source" @@ -309,3 +308,34 @@ "Include group differences","Include group differences" "Error:","Error:" "Download table","Download table" +"Welcome to FreesearchR","Welcome to FreesearchR" +"A free data analysis tool for clinicians, students, and learners","A free data analysis tool for clinicians, students, and learners" +"Core Features","Core Features" +"Import Data","Import Data" +"Data Management","Data Management" +"Filter, modify, and create new variables. Prepare your data efficiently for analysis.","Filter, modify, and create new variables. Prepare your data efficiently for analysis." +"Descriptive Statistics","Descriptive Statistics" +"Additional Capabilities","Additional Capabilities" +"Data Visualization","Data Visualization" +"Create simple, clean plots for quick insights and overview","Create simple, clean plots for quick insights and overview" +"Regression Models","Regression Models" +"Build simple regression models for advanced analysis","Build simple regression models for advanced analysis" +"Export & Learn","Export & Learn" +"Download Results","Download Results" +"Get Modified Data","Get Modified Data" +"Reproducible Code","Reproducible Code" +"Full Documentation","Full Documentation" +"Share Feedback","Share Feedback" +"Contact Us","Contact Us" +"FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org","FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org" +"Home","Home" +"Start with FreesearchR for basic data evaluation and analysis.","Start with FreesearchR for basic data evaluation and analysis." +"When you need more advanced tools, you'll be better prepared to use R directly.","When you need more advanced tools, you'll be better prepared to use R directly." +"(Read more)","(Read more)" +"Run the FreesearchR app locally when working with sensitive data.","Run the FreesearchR app locally when working with sensitive data." +"Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.","Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility." +"Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.","Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively." +"Export results directly to your text editor","Export results directly to your text editor" +"Save your processed datasets for later","Save your processed datasets for later" +"Learn and reproduce results in R","Learn and reproduce results in R" +"When you need more advanced tools, you'll be prepared to use R directly.","When you need more advanced tools, you'll be prepared to use R directly." diff --git a/inst/apps/FreesearchR/app.R b/inst/apps/FreesearchR/app.R index 0f4e390e..9eeb24a1 100644 --- a/inst/apps/FreesearchR/app.R +++ b/inst/apps/FreesearchR/app.R @@ -1,7 +1,7 @@ ######## -#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpaYL5kU/file9c715011d086.R +#### Current file: /var/folders/9l/xbc19wxx0g79jdd2sf_0v291mhwh7f/T//RtmpfypcRk/file94c829f4964f.R ######## i18n_path <- system.file("translations", package = "FreesearchR") @@ -41,10 +41,9 @@ library(shinyWidgets) library(gtsummary) library(bsicons) library(rlang) -# library(datamods) -# library(toastui) # library(phosphoricons) library(shiny.i18n) +library(fontawesome) ## Translation init i18n <- shiny.i18n::Translator$new(translation_csvs_path = i18n_path) @@ -63,7 +62,7 @@ i18n$set_translation_language("en") #### Current file: /Users/au301842/FreesearchR/R//app_version.R ######## -app_version <- function()'25.12.6' +app_version <- function()'25.12.7' ######## @@ -3625,6 +3624,42 @@ construct_col_summary <- function(data) { } +######## +#### Current file: /Users/au301842/FreesearchR/R//footer_ui.R +######## + +footer_ui <- function(i18n) { + tagList( + shiny::tags$footer( + style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", + shiny::p( + style = "margin: 1", + i18n$t("Data is only stored for analyses and deleted when the app is closed.") + ), + shiny::p( + style = "margin: 1", + i18n$t("Run the FreesearchR app locally when working with sensitive data."), shiny::tags$a(i18n$t("(Read more)"), href = "https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine", target = "_blank", rel = "noopener noreferrer") + ), + # shiny::p( + # style = "margin: 1; color: #888;", + div( + style = "display: inline-flex; align-items: center; gap: 1px;", + shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( + style = "display: inline-block;", + class = c("smart-dropdown", "text-select"), + shiny::uiOutput(outputId = "language_select") + ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") + ), + br(), + p( + style = "display: inline-flex; align-items: center; gap: 1px;", + hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), + ) + ) + ) +} + + ######## #### Current file: /Users/au301842/FreesearchR/R//helpers.R ######## @@ -4451,7 +4486,7 @@ data_types <- function() { #### Current file: /Users/au301842/FreesearchR/R//hosted_version.R ######## -hosted_version <- function()'v25.12.6-251212' +hosted_version <- function()'v25.12.7-251218' ######## @@ -5505,6 +5540,271 @@ limit_data_size <- function(data, limit = NULL) { } +######## +#### Current file: /Users/au301842/FreesearchR/R//landing_page_ui.R +######## + +#' Tag list of elements for the FreesearchR landing page +#' +#' @param i18n i18n function loaded in the UI +#' +#' @returns tag list +#' +landing_page_ui <- function(i18n) { + tagList( + # Header section + div( + class = "container-fluid py-4", + # style = "background: linear-gradient(135deg, #1E4A8F 0%, #8A4FFF 100%); color: white;", + div( + class = "row align-items-center", + div( + class = "col-md-8", + h1(i18n$t("Welcome to FreesearchR"), style = "font-weight: 700; margin-bottom: 10px;"), + h4(i18n$t("A free data analysis tool for clinicians, students, and learners"), + style = "font-weight: 300; opacity: 0.95;"), + p( + class = "lead", + i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + i18n$t("When you need more advanced tools, you'll be prepared to use R directly."), + style = "font-size: 1.2rem; color: #555;" + ) + ), + div( + class = "col-md-4 text-end", + img(src = "FreesearchR-logo.png", style = "max-width: 200px; height: auto;") + ) + ) + ), + + # # Main content + div( + class = "container my-5", + + # Introduction text + # div( + # class = "row mb-5", + # div( + # class = "col-12 text-center", + # p( + # class = "lead", + # i18n$t("Start with FreesearchR for basic data evaluation and analysis."), + # i18n$t("When you need more advanced tools, you'll be better prepared to use R directly."), + # style = "font-size: 1.2rem; color: #555;" + # ) + # ) + # ), + + # Core Features Section + h2(i18n$t("Core Features"), class = "text-center mb-4", + style = "color: #1E4A8F; font-weight: 600;"), + + div( + class = "row g-4 mb-5", + + # Import Data + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none; transition: transform 0.2s;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("file-import") + ), + h4(i18n$t("Import Data"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Load data from spreadsheets, REDCap servers, or try with sample data. Multiple sources supported for maximum flexibility.") + ) + ) + ) + ), + + # Data Management + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("pen-to-square") + ), + h4(i18n$t("Data Management"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Filter, modify, and create new variables. Prepare your data efficiently for analysis.") + ) + ) + ) + ), + + # Descriptive Statistics + div( + class = "col-md-4", + div( + class = "card h-100 shadow-sm hover-card", + style = "border: none;", + div( + class = "card-body text-center p-4", + div( + style = "font-size: 3rem; color: #1E4A8F; margin-bottom: 15px;", + fa("magnifying-glass-chart") + ), + h4(i18n$t("Descriptive Statistics"), class = "card-title", style = "color: #2D2D42; font-weight: 600;"), + p( + class = "card-text", + i18n$t("Evaluate data with descriptive analyses, inspect correlations, and review missing observations effectively.") + ) + ) + ) + ) + ), + + # Advanced Features Section + h3(i18n$t("Additional Capabilities"), class = "text-center mb-4 mt-5", + style = "color: #2D2D42; font-weight: 500; font-size: 1.5rem;"), + + div( + class = "row g-3 mb-5", + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("chart-line"), " ", i18n$t("Data Visualization"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Create simple, clean plots for quick insights and overview")) + ) + ) + ), + div( + class = "col-md-6", + div( + class = "card shadow-sm", + style = "border-left: 4px solid #8A4FFF;", + div( + class = "card-body", + h5(fa("calculator"), " ", i18n$t("Regression Models"), class = "card-title", style = "color: #2D2D42;"), + p(class = "card-text small", i18n$t("Build simple regression models for advanced analysis")) + ) + ) + ) + ), + + # Export & Learning Section + div( + class = "row mb-5", + div( + class = "col-12", + div( + class = "card shadow", + style = "background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); border: none;", + div( + class = "card-body p-4", + h4(fa("download"), " ", i18n$t("Export & Learn"), class = "text-center mb-3", style = "color: #1E4A8F;"), + div( + class = "row text-center", + div( + class = "col-md-4", + p(strong(i18n$t("Download Results")), br(), i18n$t("Export results directly to your text editor")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Get Modified Data")), br(), i18n$t("Save your processed datasets for later")) + ), + div( + class = "col-md-4", + p(strong(i18n$t("Reproducible Code")), br(), i18n$t("Learn and reproduce results in R")) + ) + ) + ) + ) + ) + )#, + + # Footer links + # div( + # class = "row mt-5 pt-4 border-top", + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://agdamsbo.github.io/FreesearchR/", + # target = "_blank", + # class = "btn btn-outline-primary", + # fa("book"), " ", i18n$t("Full Documentation") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", + # target = "_blank", + # class = "btn btn-outline-success", + # fa("comments"), " ", i18n$t("Share Feedback") + # ) + # ), + # div( + # class = "col-md-4 text-center mb-3", + # a( + # href = "mailto:info@freesearchr.org", + # class = "btn btn-outline-info", + # fa("envelope"), " ", i18n$t("Contact Us") + # ) + # ) + # ), + # + # # Translation notice + # div( + # class = "row mt-4", + # div( + # class = "col-12 text-center", + # p( + # class = "text-muted small", + # em(i18n$t("FreesearchR is available in multiple languages. To help with translations, please contact us at info@freesearchr.org")) + # ) + # ) + # ) + ), + + # Custom CSS for hover effects + tags$style(HTML(" + .hover-card:hover { + transform: translateY(-5px); + box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; + } + ")) + ) +} + +# Example usage in a Shiny app with nav_panel: +# +# ui <- page_navbar( +# title = "FreesearchR", +# theme = bs_theme( +# version = 5, +# bootswatch = "flatly", +# primary = "#2C3E50", +# base_font = font_google("Roboto") +# ), +# nav_panel( +# title = i18n$t("Home"), +# landing_page_ui(i18n) +# ), +# nav_panel( +# title = i18n$t("Import Data"), +# # Import data UI +# ), +# # ... other nav_panels +# ) + + ######## #### Current file: /Users/au301842/FreesearchR/R//launch_FreesearchR.R ######## @@ -10005,6 +10305,7 @@ custom_theme <- function(..., ) } + FreesearchR_colors <- function(choose = NULL) { out <- c( primary = "#1E4A8F", @@ -10078,6 +10379,7 @@ gg_theme_export <- function() { } + ######## #### Current file: /Users/au301842/FreesearchR/R//translate.R ######## @@ -10123,14 +10425,15 @@ ui_elements <- function(selection) { ## Default just output "NULL" ## This could probably be achieved more legantly, but this works. dev_banner(), - shiny::column(width = 2), - shiny::column( - width = 8, - # shiny::uiOutput(outputId = "language_select"), - htmlOutput("intro_text") - # shiny::includeHTML(i18n$t("www/intro.html")) - # shiny::markdown(readLines(i18n$t("www/intro.md"))) - ), + landing_page_ui(i18n=i18n), + # shiny::column(width = 2), + # shiny::column( + # width = 8, + # # shiny::uiOutput(outputId = "language_select"), + # htmlOutput("intro_text") + # # shiny::includeHTML(i18n$t("www/intro.html")) + # # shiny::markdown(readLines(i18n$t("www/intro.md"))) + # ), shiny::column(width = 2) ) ), @@ -12948,7 +13251,7 @@ ui <- bslib::page_fixed( # ui_elements$feedback, # ui_elements$docs, fillable = FALSE, - footer = shiny::uiOutput("footer_text_div") + footer = footer_ui(i18n) ) ) ) @@ -13116,36 +13419,9 @@ server <- function(input, output, session) { ) ) - output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) + # output$intro_text <- renderUI(includeHTML(i18n$t("www/intro.html"))) }) - ## This is not working but kept to try to solve if deemed necessary - shiny::observe( - output$footer_text_div <- renderUI({ - shiny::tags$footer( - style = "background-color: #14131326; padding: 4px; text-align: center; bottom: 0; width: 100%;", - shiny::p( - style = "margin: 1", - i18n$t("Data is only stored for analyses and deleted when the app is closed."), shiny::markdown(i18n$t("Consider [running ***FreesearchR*** locally](https://agdamsbo.github.io/FreesearchR/#run-locally-on-your-own-machine) if working with sensitive data.")) - ), - # shiny::p( - # style = "margin: 1; color: #888;", - div( - style = "display: inline-flex; align-items: center; gap: 1px;", - shiny::tags$a(i18n$t("Documentation"), href = "https://agdamsbo.github.io/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), " | ", div( - style = "display: inline-block;", - class = c("smart-dropdown", "text-select"), - shiny::uiOutput(outputId = "language_select") - ), " | ", shiny::tags$a(i18n$t("Feedback"), href = "https://redcap.au.dk/surveys/?s=JPCLPTXYDKFA8DA8", target = "_blank", rel = "noopener noreferrer") - ), - br(), - p( - style = "display: inline-flex; align-items: center; gap: 1px;", - hosted_version(), " | ", shiny::tags$a(i18n$t("License: AGPLv3"), href = "https://github.com/agdamsbo/FreesearchR/blob/main/LICENSE.md", target = "_blank", rel = "noopener noreferrer"), " | ", shiny::tags$a(i18n$t("Source"), href = "https://github.com/agdamsbo/FreesearchR/", target = "_blank", rel = "noopener noreferrer"), - ) - ) - }) - ) shiny::observeEvent(input$language_select, { bslib::accordion_panel_update(id = "acc_chars", title = i18n$t("Settings"), target = "acc_pan_chars")