diff options
author | Sébastien Dailly <sebastien@dailly.me> | 2022-02-07 16:09:50 +0100 |
---|---|---|
committer | Sébastien Dailly <sebastien@dailly.me> | 2022-02-07 16:43:33 +0100 |
commit | 37485464a4da41462fc285d03229221f44860397 (patch) | |
tree | 38e9969c62e865ba7d9e258eb8c5d22172496ded /editor/actions.ml | |
parent | 7c23b96ce5634550341b9554eda9d7c89a79e3c0 (diff) |
Changed the application structure in the editor
Diffstat (limited to 'editor/actions.ml')
-rwxr-xr-x | editor/actions.ml | 96 |
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) + } |