Skip to content

Commit 39d588d

Browse files
committed
2 parents 4e0c454 + 62c4ca6 commit 39d588d

10 files changed

Lines changed: 770 additions & 208 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- This file is no longer used --->
12
name: tweet
23

34
on:

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
.Renviron
22
.Rproj.user
33
*.Rproj
4-
*.html
4+
*.html
5+
dashboard_files
6+
dashboard.rmarkdown
7+
temp*
8+
*_files/*
9+
.Rhistory

R/create_reactable.R

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
2+
row_details <- function(index, df) {
3+
df <- df[index, ]
4+
# function that creates class based on colum name
5+
df_field <- function(name, ...) {
6+
if (any(is.na(...))) NULL
7+
else tagList(div(class = "detail-label", name), ...)
8+
}
9+
10+
detail <- div(
11+
class = "tbl-detail",
12+
div(class = "detail-header",
13+
span(class = "detail-title", df$NAME)),
14+
div(class = "detail-description", df$SERVICE_TYPE_CD),
15+
16+
bscols(
17+
div(
18+
# column left
19+
df_field('Last Updated', df$VACANCY_LAST_UPDATE),
20+
df_field("Phone", df$PHONE),
21+
df_field("Website", df$WEBSITE),
22+
df_field("Email", df$EMAIL),
23+
df_field("Address", df$ADDRESS_1),
24+
df_field('Address 2', df$ADDRESS_2),
25+
df_field('City', df$CITY),
26+
df_field('ECE_CERTIFICATION_YN', df$ECE_CERTIFICATION_YN),
27+
df_field('ELF', df$ELF_PROGRAMMING_YN),
28+
df_field('IS_INCOMPLETE_IND', df$IS_INCOMPLETE_IND),
29+
df_field('IS_CCFRI_AUTH', df$IS_CCFRI_AUTH)
30+
),
31+
div(
32+
# column right
33+
df_field(
34+
'Map',
35+
df |>
36+
leaflet() |>
37+
addProviderTiles(providers$CartoDB.Voyager) |>
38+
#addProviderTiles(providers$CartoDB.Positron) |>
39+
addCircleMarkers(lng = ~LONGITUDE, lat = ~LATITUDE)
40+
)
41+
)
42+
),
43+
bscols(
44+
div(
45+
df_field(
46+
"Vacancy type",
47+
reactable(
48+
df |>
49+
select(contains('VACANCY_SRVC_')) |>
50+
pivot_longer(
51+
everything(),
52+
names_to = 'Age Group',
53+
values_to = 'Vacancy?',
54+
names_prefix = 'VACANCY_SRVC_'
55+
) |>
56+
mutate(`Vacancy?` = ifelse(!is.na(`Vacancy?`), 'Y', 'N'))
57+
,
58+
pagination = FALSE,
59+
defaultColDef = colDef(headerClass = "header"),
60+
class = "vacancy-table",
61+
theme = reactableTheme(cellPadding = "8px 12px")
62+
)
63+
)
64+
),
65+
div(
66+
df_field(
67+
'Language',
68+
reactable(
69+
df |>
70+
select(contains('LANG_')) |>
71+
pivot_longer(everything(), names_to = 'Language', values_to = 'Y/N') |>
72+
mutate(
73+
Language = str_remove_all(Language, 'LANG_') |>
74+
str_remove_all('_YN'),
75+
`Y/N` = ifelse(!is.na(`Y/N`), 'Y', 'N'))
76+
,
77+
pagination = FALSE,
78+
defaultColDef = colDef(headerClass = "header"),
79+
class = "vacancy-table",
80+
theme = reactableTheme(cellPadding = "8px 12px")
81+
)
82+
)
83+
)
84+
)
85+
)
86+
detail
87+
}
88+
89+
create_coldefs <- function(df) {
90+
# columns to hide from unested view
91+
hide <- df |>
92+
select(
93+
contains('VACANCY'), -VACANCY_LAST_UPDATE,
94+
LONGITUDE, LATITUDE,
95+
SERVICE_TYPE_CD,
96+
ADDRESS_1, PHONE,
97+
`ADDRESS_2`, WEBSITE, EMAIL,
98+
99+
ECE_CERTIFICATION_YN,
100+
ELF_PROGRAMMING_YN,
101+
IS_INCOMPLETE_IND, IS_CCFRI_AUTH,
102+
popup,
103+
contains('LANG_')
104+
105+
) |>
106+
colnames() %>%
107+
setNames(., .) |>
108+
map(
109+
~colDef(
110+
show = FALSE
111+
)
112+
)
113+
114+
show <- list(
115+
VACANCY_LAST_UPDATE = colDef(name = 'Last Updated'),
116+
NAME = colDef(name = 'Name'),
117+
CITY = colDef(name = 'City')
118+
)
119+
120+
coldefs <- purrr::list_flatten(list(hide, show))
121+
return(coldefs)
122+
}

0 commit comments

Comments
 (0)