mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2026-06-19 04:27:30 +02:00
feat: added version check and banner. verbose version can be activated with global variabel on launch.
This commit is contained in:
parent
c23570ca54
commit
cfbee14dcb
8 changed files with 495 additions and 0 deletions
72
man/check_app_version.Rd
Normal file
72
man/check_app_version.Rd
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/version_check.R
|
||||
\name{check_app_version}
|
||||
\alias{check_app_version}
|
||||
\title{Run a startup version check and return a banner UI element}
|
||||
\usage{
|
||||
check_app_version(
|
||||
github_user,
|
||||
github_repo,
|
||||
app_version = NULL,
|
||||
verbose = FALSE
|
||||
)
|
||||
}
|
||||
\arguments{
|
||||
\item{github_user}{GitHub username or organisation that owns the repository.}
|
||||
|
||||
\item{github_repo}{Repository name. Also used as the package name for
|
||||
\code{utils::packageVersion()}.}
|
||||
|
||||
\item{app_version}{Optional fallback version string for environments where
|
||||
the package is not installed (e.g. shinyapps.io). Pass the result of your
|
||||
\code{app_version()} function here. Ignored when \code{packageVersion()}
|
||||
succeeds.}
|
||||
|
||||
\item{verbose}{Logical; if \code{TRUE} a banner is always returned.
|
||||
Defaults to \code{FALSE}.}
|
||||
}
|
||||
\value{
|
||||
A \code{shinyWidgets::alert()} UI element, or \code{NULL} when there
|
||||
is nothing to show (up to date in non-verbose mode).
|
||||
}
|
||||
\description{
|
||||
Call this \strong{outside} \code{server()} -- typically in
|
||||
\code{global.R} or at the top of \code{app.R} -- and embed the returned
|
||||
value directly in your UI definition. Because the check runs at startup
|
||||
the banner is present on first render with no loading delay, and no
|
||||
\code{uiOutput()} / \code{renderUI()} wiring is needed.
|
||||
}
|
||||
\details{
|
||||
\strong{Normal mode} (\code{verbose = FALSE}): returns a banner only when
|
||||
a newer version is available or when the check fails. Returns \code{NULL}
|
||||
when the app is up to date (Shiny silently ignores \code{NULL} in the UI).
|
||||
|
||||
\strong{Verbose / debug mode} (\code{verbose = TRUE}): always returns a
|
||||
banner -- including a success banner when up to date -- so you can confirm
|
||||
the check ran and inspect both version strings during development.
|
||||
}
|
||||
\examples{
|
||||
\dontrun{
|
||||
# global.R or top of app.R
|
||||
source("version_check.R")
|
||||
version_banner <- check_app_version(
|
||||
github_user = "my-org",
|
||||
github_repo = "my-shiny-app",
|
||||
app_version = app_version() # fallback for shinyapps.io
|
||||
)
|
||||
|
||||
# ui.R
|
||||
fluidPage(
|
||||
version_banner,
|
||||
# ... rest of UI
|
||||
)
|
||||
|
||||
# Verbose mode for development
|
||||
version_banner <- check_app_version(
|
||||
github_user = "my-org",
|
||||
github_repo = "my-shiny-app",
|
||||
app_version = app_version(),
|
||||
verbose = TRUE
|
||||
)
|
||||
}
|
||||
}
|
||||
32
man/dot-build_version_alert.Rd
Normal file
32
man/dot-build_version_alert.Rd
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/version_check.R
|
||||
\name{.build_version_alert}
|
||||
\alias{.build_version_alert}
|
||||
\title{Build a shinyWidgets::alert() UI element for the version banner}
|
||||
\usage{
|
||||
.build_version_alert(
|
||||
current,
|
||||
latest,
|
||||
update_available,
|
||||
github_user,
|
||||
github_repo
|
||||
)
|
||||
}
|
||||
\arguments{
|
||||
\item{current}{Current installed version string.}
|
||||
|
||||
\item{latest}{Latest GitHub release version string, or NULL when
|
||||
the check could not complete (e.g. no internet).}
|
||||
|
||||
\item{update_available}{Logical; whether latest > current.}
|
||||
|
||||
\item{github_user}{GitHub username / organisation.}
|
||||
|
||||
\item{github_repo}{Repository name.}
|
||||
}
|
||||
\value{
|
||||
A \code{shinyWidgets::alert()} UI element.
|
||||
}
|
||||
\description{
|
||||
Build a shinyWidgets::alert() UI element for the version banner
|
||||
}
|
||||
20
man/dot-get_latest_github_version.Rd
Normal file
20
man/dot-get_latest_github_version.Rd
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/version_check.R
|
||||
\name{.get_latest_github_version}
|
||||
\alias{.get_latest_github_version}
|
||||
\title{Fetch the latest release version from a GitHub repository}
|
||||
\usage{
|
||||
.get_latest_github_version(github_user, github_repo)
|
||||
}
|
||||
\arguments{
|
||||
\item{github_user}{GitHub username or organisation.}
|
||||
|
||||
\item{github_repo}{Repository name.}
|
||||
}
|
||||
\value{
|
||||
A character string with the version tag (e.g. "1.2.0"), or NULL on
|
||||
failure.
|
||||
}
|
||||
\description{
|
||||
Fetch the latest release version from a GitHub repository
|
||||
}
|
||||
14
man/dot-has_internet.Rd
Normal file
14
man/dot-has_internet.Rd
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/version_check.R
|
||||
\name{.has_internet}
|
||||
\alias{.has_internet}
|
||||
\title{Check internet connectivity}
|
||||
\usage{
|
||||
.has_internet()
|
||||
}
|
||||
\value{
|
||||
Logical; TRUE if an internet connection is available.
|
||||
}
|
||||
\description{
|
||||
Check internet connectivity
|
||||
}
|
||||
27
man/dot-resolve_app_version.Rd
Normal file
27
man/dot-resolve_app_version.Rd
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
% Generated by roxygen2: do not edit by hand
|
||||
% Please edit documentation in R/version_check.R
|
||||
\name{.resolve_app_version}
|
||||
\alias{.resolve_app_version}
|
||||
\title{Resolve the current app version}
|
||||
\usage{
|
||||
.resolve_app_version(package_name, app_version = NULL)
|
||||
}
|
||||
\arguments{
|
||||
\item{package_name}{Name of the package / repository.}
|
||||
|
||||
\item{app_version}{Optional fallback version string.}
|
||||
}
|
||||
\value{
|
||||
A character string with the version (e.g. "1.1.0"), or NULL if
|
||||
neither strategy succeeds.
|
||||
}
|
||||
\description{
|
||||
Tries two strategies in order:
|
||||
\enumerate{
|
||||
\item \code{utils::packageVersion(package_name)} -- works when the package
|
||||
is installed locally (development, local \code{runApp()}).
|
||||
\item \code{app_version} argument -- an explicit version string supplied by
|
||||
the caller, e.g. from an \code{app_version()} function bundled with the
|
||||
app. Used on shinyapps.io where the package is not installed.
|
||||
}
|
||||
}
|
||||
|
|
@ -9,6 +9,7 @@ launch_FreesearchR(
|
|||
data_limit_default = 1000,
|
||||
data_limit_upper = 1e+05,
|
||||
data_limit_lower = 1,
|
||||
check_app_version = FALSE,
|
||||
...
|
||||
)
|
||||
}
|
||||
|
|
@ -22,6 +23,9 @@ when loading data}
|
|||
|
||||
\item{data_limit_lower}{data set observations lower limit}
|
||||
|
||||
\item{check_app_version}{always attempt to check app version against latest
|
||||
release on GitHub. Default is FALSE}
|
||||
|
||||
\item{...}{passed on to \code{shiny::runApp()}}
|
||||
}
|
||||
\value{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue