Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: implementation footer_dsfr #142

Merged
merged 3 commits into from
Aug 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,15 @@ export(checkboxGroupInput_dsfr)
export(checkboxInput_dsfr)
export(column_dsfr)
export(convert_to_dsfr)
export(fileInput_dsfr)
export(dateRangeInput_dsfr)
export(fileInput_dsfr)
export(fluidPage_dsfr)
export(fluidRow_dsfr)
export(footer_bottom_dsfr)
export(footer_dsfr)
export(footer_extra_url_body_dsfr)
export(footer_extra_url_bottom_dsfr)
export(footer_li_dsfr)
export(get_dsfr_version)
export(header_dsfr)
export(modalDialog_dsfr)
Expand Down
5 changes: 5 additions & 0 deletions R/app_ui.R
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ app_ui <- function(request) {
nom_site_service = "Bienvenue sur l\'application de d\u00e9monstration de {shinygouv}",
baseline = "https://github.com/spyrales/shinygouv"
),
footer = footer_dsfr(
intitule = span("D\u00e9mo", br(), "de", br(), "{shinygouv}"),
description = "Une application de d\u00e9monstration de {shinygouv}",
accessibilite = "non"
),
navbarPanel_dsfr(
title = "inputs d\'ui",
mod_input_ui_ui("input_ui_1")
Expand Down
2 changes: 1 addition & 1 deletion R/column_dsfr.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WARNING - Generated by {fusen} from dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand

#' column_dsfr
#'
Expand Down
4 changes: 2 additions & 2 deletions R/fluidpage_dsfr.R
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# WARNING - Generated by {fusen} from dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand

#' fluidPage_dsfr
#'
#' @param ... element a inclure dans la page
#' @param header l entete de la page (voir `header_dsfr()`)
#' @param footer contenu du pied de page
#' @param footer contenu du pied de page (voir `footer_dsfr()`)
#' @param theme pas implemente
#' @param lang pas implemente
#' @param title titre de la page
Expand Down
2 changes: 1 addition & 1 deletion R/fluidpage_dsfr_template.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WARNING - Generated by {fusen} from dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand

#' fluidPage_dsfr_template
#' @param header entete de la page
Expand Down
2 changes: 1 addition & 1 deletion R/fluidrow_dsfr.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WARNING - Generated by {fusen} from dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand

#' fluidRow_dsfr
#'
Expand Down
62 changes: 62 additions & 0 deletions R/footer_bottom_dsfr.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_footer.Rmd: do not edit by hand

#' footer_bottom_dsfr
#'
#' Il se compose des éléments suivants:
#'- la liste de liens liés aux obligations légales. Cette liste doit être définie en fonction du site, toutefois les liens & contenus suivants sont obligatoires : “accessibilité : non/partiellement/totalement conforme”, mentions légales, données personnelles et gestion des cookies. - obligatoire.
#' - une mention de la licence - obligatoire “Sauf mention contraire, tous les contenus de ce site sont sous licence etalab-2.0”
#'
#' @param accessibilite le type d'accessibilité (non/partiellement/totalement conforme)
#' @param lien_accessibilite lien url vers l'accessibilite
#' @param lien_mentions_legales lien url vers les mentions légales
#' @param lien_donnees_personnelles lien url vers les données personnelles
#' @param lien_gestion_cookies lien url vers la gestion des cookies
#' @param ... d'autre liens de références (voir `footer_li_dsfr()`)
#'
#' @return html
#' @rdname footer_dsfr
#' @export
footer_bottom_dsfr <-
function(accessibilite = "non",
...,
lien_accessibilite = "#",
lien_mentions_legales = "#",
lien_donnees_personnelles = "#",
lien_gestion_cookies = "#") {


assertthat::assert_that(is.character(accessibilite))
assertthat::assert_that(is.character(lien_accessibilite))
assertthat::assert_that(is.character(lien_mentions_legales))
assertthat::assert_that(is.character(lien_donnees_personnelles))
assertthat::assert_that(is.character(lien_gestion_cookies))

if ( isFALSE(accessibilite %in% c("non", "partiellement", "totalement conforme"))){
stop("l accessibilite doit etre 'non', 'partiellement' ou 'totalement conforme'")
}

contenu <- list(...)
htmltools::htmlTemplate(
filename = system.file(
get_dsfr_version(with_v = TRUE),
"composant",
"piedpage_bottom.html",
package = "shinygouv"
),
accessibilite = accessibilite,
lien_accessibilite = lien_accessibilite,
lien_mentions_legales = lien_mentions_legales,
lien_donnees_personnelles = lien_donnees_personnelles,
lien_gestion_cookies = lien_gestion_cookies,
bottom_list = purrr::map(contenu, ~ {
footer_one_li(
id = .x$id,
href = .x$href,
titre = .x$titre,
texte = .x$texte,
type = "bottom"
)
})
)
}

189 changes: 189 additions & 0 deletions R/footer_dsfr.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_footer.Rmd: do not edit by hand

#' footer_dsfr

#' Il se compose des éléments suivants:
#' - un bloc marque, voir la charte de marque
#' - un texte de présentation - optionnel.
#' - 4 liens de références de l'écosystème institutionnel - obligatoires.
#'- la liste de liens liés aux obligations légales. Cette liste doit être définie en fonction du site, toutefois les liens & contenus suivants sont obligatoires : “accessibilité : non/partiellement/totalement conforme”, mentions légales, données personnelles et gestion des cookies. - obligatoire.
#' - une mention de la licence - obligatoire “Sauf mention contraire, tous les contenus de ce site sont sous licence etalab-2.0”
#'
#' Il est possible d'ajouter des url supplémentaires dans le corps et le bas du pied de page.
#'
#' @param intitule la partie "intitule" du bloc marque
#' @param description un texte de présentation - optionnel
#' @param accessibilite le type d'accessibilité (non/partiellement/totalement conforme)
#' @param lien_accessibilite lien url vers l'accessibilite
#' @param lien_mentions_legales lien url vers les mentions légales
#' @param lien_donnees_personnelles lien url vers les données personnelles
#' @param lien_gestion_cookies lien url vers la gestion des cookies
#' @param add_extra_url_body url supplementaire a ajouter au corps du pied de page (voir `footer_extra_url_body_dsfr()`)
#' @param add_extra_url_bottom url supplementaire a ajouter au bas du pied de page (voir `footer_extra_url_bottom_dsfr()`)
#'
#' @return html
#' @export
#' @rdname footer_dsfr
#' @examples
#' if (interactive()) {
#' library(shiny)
#' shinyApp(
#' ui = fluidPage_dsfr(
#' footer = footer_dsfr(
#' intitule = "Territoire",
#' description = "une description",
#' accessibilite = "non",
#' add_extra_url_body = footer_extra_url_body_dsfr(
#' footer_li_dsfr(
#' href = "https://siteinternet.fr",
#' titre = "siteinternet.fr.fr - nouvelle fenêtre",
#' texte = "siteinternet.fr.fr", type = "body"
#' ),
#' footer_li_dsfr(
#' href = "https://siteinternet.fr",
#' titre = "siteinternet.fr.fr - nouvelle fenêtre",
#' texte = "siteinternet.fr.fr", type = "body"
#' )
#' ),
#' add_extra_url_bottom = footer_extra_url_bottom_dsfr(
#'
#' footer_li_dsfr(
#' href = "https://siteinternet.fr",
#' titre = "siteinternet.fr.fr - nouvelle fenêtre",
#' texte = "siteinternet.fr.fr", type = "bottom"
#' )
#' )
#' ),
#' tabsetPanel_dsfr(
#' "coucou",
#' tabPanel_dsfr(
#' id = "tab1",
#' title = "Une prems tab",
#' content = tagList(h3("Coucou"),
#' plotOutput("plot"))
#' ),
#' tabPanel_dsfr(
#' id = "tab2",
#' title = "Une deuxieme tab",
#' content = tagList(h3("Salut"),
#' plotOutput("plot2"))
#' )
#' )
#' ),
#' server = function(input, output) {
#' output$plot <- renderPlot({
#' plot(cars)
#' })
#' output$plot2 <- renderPlot({
#' plot(iris)
#' })
#' }
#' )
#' }
footer_dsfr <- function(
intitule = NULL ,
description = NULL ,
accessibilite = "non",
lien_accessibilite = "#",
lien_mentions_legales = "#",
lien_donnees_personnelles = "#",
lien_gestion_cookies = "#",
add_extra_url_body = NULL,
add_extra_url_bottom = NULL) {


if ( isFALSE(accessibilite %in% c("non", "partiellement", "totalement conforme"))){
stop("l accessibilite doit etre 'non', 'partiellement' ou 'totalement conforme'")
}

assertthat::assert_that(is.character(lien_accessibilite))
assertthat::assert_that(is.character(lien_mentions_legales))
assertthat::assert_that(is.character(lien_donnees_personnelles))
assertthat::assert_that(is.character(lien_gestion_cookies))



footer_dsfr_template(
intitule = intitule,
description = description,
footer_body = add_extra_url_body,
footer_bottom = add_extra_url_bottom,
accessibilite = accessibilite,
lien_accessibilite = lien_accessibilite,
lien_mentions_legales = lien_mentions_legales,
lien_donnees_personnelles = lien_donnees_personnelles,
lien_gestion_cookies = lien_gestion_cookies
)
}


#' footer_extra_url_body_dsfr
#'
#' Permet d'ajouter des liends/url dans le corps du pied de page
#'
#' @param ... d'autres liens de références (voir `footer_li_dsfr()`)
#'
#' @return html
#' @rdname footer_dsfr
#' @export
#' @examples
#' footer_extra_url_body_dsfr(
#' footer_li_dsfr(href = "http://siteinternet.fr", texte = "siteinternet.fr", type = "body"),
#' footer_li_dsfr(href = "http://siteinternet.fr", texte = "siteinternet.fr", type = "body"))
footer_extra_url_body_dsfr <- function(...) {
tagList(...)

}



#' footer_li_dsfr
#'
#' Permet de créer la balise html pour ajouter un lien en fonction de sa destination (body/bottom)
#'
#' @param href une url
#' @param texte le texte
#' @param id un identifiant (optionnel)
#' @param titre le titre de l infobulle (optionnel)
#' @param type le type de rendu de l url (body/bottom, par defaut body)
#'
#' @rdname footer_dsfr
#'
#' @return html
#'
#' @export
#' @examples
#' footer_li_dsfr(href = "http://siteinternet.fr", texte = "siteinternet.fr", type = "body")
#' footer_li_dsfr(href = "http://siteinternet.fr", texte = "siteinternet.fr", type = "bottom")
footer_li_dsfr <- function(id = NULL,
href,
titre = NULL,
texte,
type = "body") {

if (type == "body"){
target = "target='_blank'"
ttype = "content"
} else if (type == "bottom"){
target = NULL
ttype = "bottom"
} else {
stop("Dans footer_li_dsfr, type doit etre 'body' ou 'bottom'")
}

htmltools::htmlTemplate(
filename = system.file(
get_dsfr_version(with_v = TRUE),
"composant",
"piedpage_content.html",
package = "shinygouv"
),
id = id,
href = href,
titre = titre,
texte = texte,
type = ttype,
target = target
) |> parse_html()
}

51 changes: 51 additions & 0 deletions R/footer_dsfr_template.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_footer.Rmd: do not edit by hand

#' footer_dsfr_template
#'
#' @param intitule la partie "intitule" du bloc marque
#' @param description un texte de présentation - optionnel
#' @param footer_body le corps du footer
#' @param footer_bottom le bas du footer
#' @param accessibilite le type d'accessibilité (non/partiellement/totalement conforme)
#' @param lien_accessibilite lien url vers l'accessibilite
#' @param lien_mentions_legales lien url vers les mentions légales
#' @param lien_donnees_personnelles lien url vers les données personnelles
#' @param lien_gestion_cookies lien url vers la gestion des cookies
#'
#' @importFrom htmltools htmlTemplate
#' @return html
#' @noRd
footer_dsfr_template <- function(
intitule ,
description ,
footer_body, footer_bottom,
accessibilite = "non",
lien_accessibilite = "#",
lien_mentions_legales = "#",
lien_donnees_personnelles = "#",
lien_gestion_cookies = "#"
) {

htmltools::htmlTemplate(
filename = system.file(
get_dsfr_version(with_v = TRUE),
"composant",
"piedpage.html",
package = "shinygouv"
),
intitule = intitule ,
description = description,
footer_body = footer_body,
footer_bottom = footer_bottom,
accessibilite = accessibilite,
lien_accessibilite = lien_accessibilite,
lien_mentions_legales = lien_mentions_legales,
lien_donnees_personnelles = lien_donnees_personnelles,
lien_gestion_cookies = lien_gestion_cookies
) |> parse_html()
}





17 changes: 17 additions & 0 deletions R/footer_extra_url_bottom_dsfr.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_footer.Rmd: do not edit by hand

#' footer_extra_url_bottom_dsfr
#'
#' Permet d'ajouter des liends/url dans le bas du pied de page
#'
#' @param ... d'autre liens de références (voir `footer_li_dsfr()`)
#'
#' @return html
#' @rdname footer_dsfr
#' @export
footer_extra_url_bottom_dsfr <-
function(...) {
tagList(...)

}

2 changes: 1 addition & 1 deletion R/layout_dsfr_template.R
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# WARNING - Generated by {fusen} from dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand
# WARNING - Generated by {fusen} from /dev/flat_composants/flat_fluidpage.Rmd: do not edit by hand

#' layout_dsfr_template
#'
Expand Down
Loading
Loading