mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2026-06-19 04:27:30 +02:00
This commit is contained in:
parent
8a58a00129
commit
4fbe9dbc41
8 changed files with 761 additions and 252 deletions
|
|
@ -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")'
|
||||
|
|
|
|||
360
app_docker/app.R
360
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")
|
||||
|
|
|
|||
|
|
@ -2556,39 +2556,6 @@
|
|||
"Maintainer": "Folashade Daniel <fdaniel@microsoft.com>",
|
||||
"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 <david.gohel@ardata.fr>",
|
||||
"Repository": "CRAN"
|
||||
},
|
||||
"downlit": {
|
||||
"Package": "downlit",
|
||||
"Version": "0.4.5",
|
||||
|
|
@ -5340,26 +5307,6 @@
|
|||
"Maintainer": "Achim Zeileis <Achim.Zeileis@R-project.org>",
|
||||
"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 <david.gohel@ardata.fr>",
|
||||
"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: <https://orcid.org/0000-0002-4035-0289>)",
|
||||
"Maintainer": "Jeroen Ooms <jeroenooms@gmail.com>",
|
||||
"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' <https://poppler.freedesktop.org> 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: <https://orcid.org/0000-0002-4035-0289>)",
|
||||
"Maintainer": "Jeroen Ooms <jeroenooms@gmail.com>",
|
||||
"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 <https://qpdf.sourceforge.io/> 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: <https://orcid.org/0000-0002-4035-0289>), Ben Raymond [ctb], Jay Berkenbilt [cph] (Author of libqpdf)",
|
||||
"Maintainer": "Jeroen Ooms <jeroenooms@gmail.com>",
|
||||
"Repository": "CRAN"
|
||||
},
|
||||
"qqconf": {
|
||||
"Package": "qqconf",
|
||||
"Version": "1.3.2",
|
||||
|
|
|
|||
|
|
@ -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."
|
||||
|
|
|
|||
|
|
|
@ -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."
|
||||
|
|
|
|||
|
|
|
@ -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."
|
||||
|
|
|
|||
|
|
|
@ -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."
|
||||
|
|
|
|||
|
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue