Added an MNR notification function which produces shiny notifications with MNR settings included

This commit is contained in:
2026-03-18 10:27:32 +00:00
parent 0e056cb9e4
commit 2aa6c4d447
5 changed files with 48 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ export(MNR.DB.Organisations)
export(MNR.DB.Users) export(MNR.DB.Users)
export(MNR.GeoPlot) export(MNR.GeoPlot)
export(attachResourcePaths) export(attachResourcePaths)
export(mnrNotification)
export(resourcePrefix) export(resourcePrefix)
export(use_mnr_ui) export(use_mnr_ui)
import(dplyr) import(dplyr)

View File

@@ -278,6 +278,8 @@ MNR.DB.Applications <- R6::R6Class(
) )
# Include user what-ifs # Include user what-ifs
| (user_match & organisation_id == -1 & state_whatif) | (user_match & organisation_id == -1 & state_whatif)
# Include organisation what-ifs
| (!user_match & organisation_match & app_submitter & state_whatif)
# Admin override # Admin override
| (!!flag_admin & organisation_id == -1) | (!!flag_admin & organisation_id == -1)
) %>% ) %>%

22
R/notification.R Normal file
View File

@@ -0,0 +1,22 @@
#' Displays a shiny notification with MNR specific settings
#'
#' @inheritParams shiny::showNotification
#' @param message Character string to display in the notification
#'
#' @export
mnrNotification <- function(
message, type = "message", session = shiny::getDefaultReactiveDomain()
) {
shiny::showNotification(
message,
type = type,
duration = ifelse(
type %in% c("warning", "error"),
getOption("mnr.error_duration", 30),
getOption("mnr.notify_duration", 15)
),
closeButton = TRUE,
session = session
)
}

View File

@@ -81,3 +81,7 @@ hr {
opacity: 1.0; opacity: 1.0;
width: 2px; width: 2px;
} }
.shiny-notification-close {
font-size: 2em !important;
}

19
man/mnrNotification.Rd Normal file
View File

@@ -0,0 +1,19 @@
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/notification.R
\name{mnrNotification}
\alias{mnrNotification}
\title{Displays a shiny notification with MNR specific settings}
\usage{
mnrNotification(message, type, session = shiny::getDefaultReactiveDomain())
}
\arguments{
\item{message}{Character string to display in the notification}
\item{type}{A string which controls the color of the notification. One of
"default" (gray), "message" (blue), "warning" (yellow), or "error" (red).}
\item{session}{Session object to send notification to.}
}
\description{
Displays a shiny notification with MNR specific settings
}