Skip to content

Commit

Permalink
feat: Ajout du composant header_dsfr
Browse files Browse the repository at this point in the history
Tags : feat, doc, test

Pourquoi ?

- permettre l'utilisation du composant header_dsfr

Quoi ?

- Ajout du template nécessaires pour le header_dsfr
- Ajout d'un flat_header.Rmd pour l'implementation du header_dsfr (doc + test)
- modification du fluidPage_dsfr : rajout du parametre header
- modification du tempalte fluidPage : rajout du parametre header
- ajout d'un header à l'application de demo

Tickets

ticket #35
  • Loading branch information
MurielleDelmotte committed Aug 10, 2022
1 parent ad0759e commit 7d80947
Show file tree
Hide file tree
Showing 20 changed files with 459 additions and 5 deletions.
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export(add_dsfr_deps)
export(column_dsfr)
export(fluidPage_dsfr)
export(fluidRow_dsfr)
export(header_dsfr)
export(parse_html)
export(radioButtons_dsfr)
export(run_app)
Expand Down
6 changes: 6 additions & 0 deletions R/app_ui.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ app_ui <- function(request) {
golem_add_external_resources(),
# Your application UI logic
fluidPage_dsfr(
header = header_dsfr(intitule = "Intitule",
officiel = "Officiel",
nom_site_service = "Nom du site / service",
baseline = "baseline - precisions sur l organisation",
class = "fr-m-1w"
),
title = "Exemple shiny dsfr",
h1("Exemple d'utilisation de {shinygouv}"),
fluidRow_dsfr(
Expand Down
7 changes: 7 additions & 0 deletions R/fluidpage_dsfr.R
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#' fluidPage_dsfr
#'
#' @param ... element a inclure dans la page
#' @param header l entete de la page
#' @param theme pas implemente
#' @param lang pas implemente
#' @param title titre de la page
Expand All @@ -15,6 +16,10 @@
#'
#' @examples
#' my_page <- fluidPage_dsfr(
#' header = header_dsfr(
#' intitule = "Prefet de",
#' officiel = "Bretagne",
#' ),
#' title = "Gouv",
#' htmltools::div("test")
#' )
Expand All @@ -26,6 +31,7 @@
#' }
fluidPage_dsfr <- function(
...,
header = NULL,
title = NULL,
theme = NULL,
lang = NULL
Expand All @@ -34,6 +40,7 @@ fluidPage_dsfr <- function(
# TODO theme et lang
# check les params
ui <- fluidPage_dsfr_template(
header = tagList(header),
title = tagList(title),
body = tagList(
...
Expand Down
4 changes: 3 additions & 1 deletion R/fluidpage_dsfr_template.R
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# WARNING - Generated by {fusen} from /dev/v1.7.2/composant/flat_fluidpage.Rmd: do not edit by hand

#' fluidPage_dsfr_template
#'
#' @param header entete de la page
#' @param title titre de la page
#' @param body body
#'
#' @importFrom htmltools htmlTemplate
#' @return html
#' @noRd
fluidPage_dsfr_template <- function(
header,
title,
body
){
Expand All @@ -20,6 +21,7 @@ fluidPage_dsfr_template <- function(
"fluidpage.html",
package = "shinygouv"
),
header = header,
title = title,
body = body
)
Expand Down
41 changes: 41 additions & 0 deletions R/header_dsfr.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# WARNING - Generated by {fusen} from /dev/v1.7.2/composant/flat_header.Rmd: do not edit by hand

#' header_dsfr
#'
#' @param intitule la partie "intitule" du bloc marque
#' @param officiel la partie "officiel" du bloc marque
#' @param url l url de redirection - optionnel
#' @param titre le texte de description de l url - optionnel
#' @param nom_site_service le nom du site ou du service - optionnel
#' @param baseline le texte sous le nom de site/service - optionnel
#' @param class un classe a ajouter si necessaire ("fr-m-1w" correspond a une margin de 1w sur tous les cotés) - optionnel, par defaut "fr-container" (centré) (voir le Systeme de design de l'Etat "fondamentaux-techniques/espacements")
#' @return html
#' @export
#'
#' @examples

#' header_dsfr(
#' intitule = "Prefet de",
#' officiel = "Bretagne",
#' )
header_dsfr <- function(
intitule, officiel, url = "/", titre = NULL, nom_site_service = NULL, baseline = NULL, class = "fr-container"
) {

# check les params
assertthat::assert_that(is.character(intitule))
assertthat::assert_that(is.character(officiel))
#TODO verifier que l url est valide

header_dsfr_template(
class = class,
intitule = intitule,
officiel = officiel,
url = url,
titre = titre,
nom_site_service = nom_site_service,
baseline = baseline
) %>%
parse_html()

}
34 changes: 34 additions & 0 deletions R/header_dsfr_template.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# WARNING - Generated by {fusen} from /dev/v1.7.2/composant/flat_header.Rmd: do not edit by hand

#' header_dsfr_template
#' @param intitule la partie "intitule" du bloc marque
#' @param officiel la partie "officiel" du bloc marque
#' @param url l url de redirection
#' @param titre le texte de description de l url
#' @param nom_site_service le nom du site ou du service - optionnel
#' @param baseline le texte sous le nom de site/service - optionnel
#' @param class un classe a ajouter si necessaire (".fr-m-1w" pour #TODO) - optionnel
#' @importFrom htmltools htmlTemplate
#' @return html
#' @noRd
header_dsfr_template <- function(
intitule, officiel, url, titre, nom_site_service, baseline, class
){

htmltools::htmlTemplate(
filename = system.file(
"v1.7.2",
"composant",
"entete.html",
package = "shinygouv"
),
class = class,
intitule = intitule,
officiel = officiel,
url = url,
titre = titre,
nom_site_service = nom_site_service,
baseline = baseline
)
}

11 changes: 10 additions & 1 deletion dev/documentation/fluidpage_dsfr.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Ensuite, vient la traduction avec `htmlTemplate` :

```{r eval = FALSE, echo = TRUE}
fluidPage_dsfr_template <- function(
header,
title,
body
){
Expand All @@ -45,13 +46,14 @@ fluidPage_dsfr_template <- function(
"fluidpage.html",
package = "shinygouv"
),
header = NULL
title = title,
body = body
)
}
```

Les paramètres `title` et `body` sont repris dans le html pour pouvoir le créer.
Les paramètres `header`, `title` et `body` sont repris dans le html pour pouvoir le créer.


# fluidPage_dsfr
Expand All @@ -66,6 +68,7 @@ Petit détail technique, le `parse_html` permet de s'assurer de retrouver une st
```{r eval = FALSE, echo = TRUE}
fluidPage_dsfr <- function(
...,
header = NULL,
title = NULL,
theme = NULL,
lang = NULL
Expand All @@ -74,6 +77,7 @@ fluidPage_dsfr <- function(
# TODO theme et lang
# check les params
ui <- fluidPage_dsfr_template(
header = tagList(header),
title = tagList(title),
body = tagList(
...
Expand All @@ -82,11 +86,16 @@ fluidPage_dsfr <- function(
parse_html(zone = "/html") %>%
add_dsfr_deps()
ui
}
```

```{r examples-fluidPage_dsfr, eval = FALSE}
my_page <- fluidPage_dsfr(
header = header_dsfr(
intitule = "Prefet de",
officiel = "Bretagne",
),
title = "Gouv",
htmltools::div("test")
)
Expand Down
34 changes: 34 additions & 0 deletions dev/documentation/header-dsfr.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: "header dsfr"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{header-dsfr}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```

```{r setup}
library(shinygouv)
```

<!-- WARNING - This vignette is generated by {fusen} from /dev/v1.7.2/composant/flat_header.Rmd: do not edit by hand -->

# header_dsfr_template









# header_dsfr

24 changes: 22 additions & 2 deletions dev/v1.7.2/composant/flat_fluidpage.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,14 @@ Ensuite, vient la traduction avec `htmlTemplate` :

```{r function-fluidPage_dsfr_template}
#' fluidPage_dsfr_template
#'
#' @param header entete de la page
#' @param title titre de la page
#' @param body body
#'
#' @importFrom htmltools htmlTemplate
#' @return html
fluidPage_dsfr_template <- function(
header,
title,
body
){
Expand All @@ -44,6 +45,7 @@ fluidPage_dsfr_template <- function(
"fluidpage.html",
package = "shinygouv"
),
header = header,
title = title,
body = body
)
Expand All @@ -53,6 +55,7 @@ fluidPage_dsfr_template <- function(

```{r, eval=FALSE, echo=TRUE}
fluidPage_dsfr_template <- function(
header,
title,
body
){
Expand All @@ -64,19 +67,21 @@ fluidPage_dsfr_template <- function(
"fluidpage.html",
package = "shinygouv"
),
header = NULL
title = title,
body = body
)
}
```

Les paramètres `title` et `body` sont repris dans le html pour pouvoir le créer.
Les paramètres `header`, `title` et `body` sont repris dans le html pour pouvoir le créer.

```{r tests-fluidPage_dsfr_template}
test_that("fluidPage_dsfr_template works", {
expect_true(inherits(fluidPage_dsfr_template, "function"))
test <- fluidPage_dsfr_template(
header = NULL,
title = "titre",
body = NULL
)
Expand All @@ -99,6 +104,7 @@ Petit détail technique, le `parse_html` permet de s'assurer de retrouver une st
#' fluidPage_dsfr
#'
#' @param ... element a inclure dans la page
#' @param header l entete de la page (voir `header_dsfr()`)
#' @param theme pas implemente
#' @param lang pas implemente
#' @param title titre de la page
Expand All @@ -112,6 +118,7 @@ Petit détail technique, le `parse_html` permet de s'assurer de retrouver une st
#' @examples
fluidPage_dsfr <- function(
...,
header = NULL,
title = NULL,
theme = NULL,
lang = NULL
Expand All @@ -120,6 +127,7 @@ fluidPage_dsfr <- function(
# TODO theme et lang
# check les params
ui <- fluidPage_dsfr_template(
header = tagList(header),
title = tagList(title),
body = tagList(
...
Expand All @@ -135,6 +143,7 @@ fluidPage_dsfr <- function(
```{r, eval=FALSE, echo=TRUE}
fluidPage_dsfr <- function(
...,
header = NULL,
title = NULL,
theme = NULL,
lang = NULL
Expand All @@ -143,6 +152,7 @@ fluidPage_dsfr <- function(
# TODO theme et lang
# check les params
ui <- fluidPage_dsfr_template(
header = tagList(header),
title = tagList(title),
body = tagList(
...
Expand All @@ -151,12 +161,17 @@ fluidPage_dsfr <- function(
parse_html(zone = "/html") %>%
add_dsfr_deps()
ui
}
```


```{r examples-fluidPage_dsfr, eval=FALSE}
my_page <- fluidPage_dsfr(
header = header_dsfr(
intitule = "Prefet de",
officiel = "Bretagne",
),
title = "Gouv",
htmltools::div("test")
)
Expand All @@ -171,6 +186,10 @@ shiny::shinyApp(
```{r tests-fluidPage_dsfr}
test_that("fluidPage_dsfr works", {
test <- fluidPage_dsfr(
header = header_dsfr(
intitule = "Prefet de",
officiel = "Bretagne",
),
title = "Gouv",
body = htmltools::div("test")
)
Expand Down Expand Up @@ -241,6 +260,7 @@ test_that("fluidPage_dsfr_template works", {
expect_true(inherits(fluidPage_dsfr_template, "function"))
test <- fluidPage_dsfr_template(
header = NULL,
title = "titre",
body = NULL
)
Expand Down
Loading

0 comments on commit 7d80947

Please sign in to comment.