blob: 3b17daed32eb1d95796900f2382599d237864933 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
open StdLabels
open Brr
open Brr_note
type button_actions =
{ delete : El.t * (unit Note.event)
}
let populate_menu () =
match Blog.Sidebar.get () with
| None -> None
| Some element ->
let () = Blog.Sidebar.clean element in
let uri = Brr.Window.location Brr.G.window in
let delete_button = El.button
~at:At.[ class' (Jstr.v "action-button") ]
[ El.i
[]
~at:At.[ class' (Jstr.v "fa")
; class' (Jstr.v "fa-2x")
; class' (Jstr.v "fa-trash")
]
] in
let delete_event =
Evr.on_el
Ev.click
Evr.unit
delete_button in
let pages =
List.map (Storage.get_ids ())
~f:(fun name ->
let target =
Jstr.( (Brr.Uri.path uri)
+ (Jstr.v "?page=")
+ name) in
El.li
[ El.a
~at:[At.href target]
[ El.txt name ] ]
) in
let childs =
[ El.button
~at:At.[class' (Jstr.v "action-button")]
[ El.i
[]
~at:At.[ class' (Jstr.v "fa")
; class' (Jstr.v "fa-2x")
; class' (Jstr.v "fa-home") ]
]
; El.button
~at:At.[class' (Jstr.v "action-button")]
[ El.i
[]
~at:At.[ class' (Jstr.v "fa")
; class' (Jstr.v "fa-2x")
; class' (Jstr.v "fa-plus") ]
]
; El.button
~at:At.[class' (Jstr.v "action-button")]
[ El.i
[]
~at:At.[ class' (Jstr.v "fa")
; class' (Jstr.v "fa-2x")
; class' (Jstr.v "fa-download") ]
]
; delete_button
; El.button
~at:At.[class' (Jstr.v "action-button")]
[ El.i
[]
~at:At.[ class' (Jstr.v "fa")
; class' (Jstr.v "fa-2x")
; class' (Jstr.v "fa-cog") ]
]
; El.hr ()
; El.ul
pages
] in
let () = El.append_children element childs in
Some
{ delete = (delete_button, delete_event)
}
|