aboutsummaryrefslogtreecommitdiff
path: root/editor/actions.ml
diff options
context:
space:
mode:
Diffstat (limited to 'editor/actions.ml')
-rwxr-xr-xeditor/actions.ml96
1 files changed, 96 insertions, 0 deletions
diff --git a/editor/actions.ml b/editor/actions.ml
new file mode 100755
index 0000000..c02584f
--- /dev/null
+++ b/editor/actions.ml
@@ -0,0 +1,96 @@
+open StdLabels
+open Brr
+open Brr_note
+
+type button_actions =
+ { edit : 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 edit_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-pen")
+ ]
+ ] in
+
+ let edit_event =
+ Evr.on_el
+ Ev.click
+ Evr.unit
+ edit_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") ]
+ ]
+ ; edit_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-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") ]
+ ]
+ ; 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") ]
+ ]
+ ; 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
+ { edit = (edit_button, edit_event)
+ }