add post_form.eml.html

This commit is contained in:
Swrup 2022-04-19 00:06:23 +02:00
parent a6fc9b4346
commit d090934183
7 changed files with 48 additions and 48 deletions

View file

@ -25,30 +25,7 @@ let f request =
Click the map and make a new thread:
</span>
<br />
<div class="postForm">
<%s! Dream.form_tag ~action:"/" ~enctype:`Multipart_form_data request %>
<input type="hidden" id="lat-input" name="lat-input">
<input type="hidden" id="lng-input" name="lng-input">
<label for="subject" id="subject-label" class="form-label">Subject</label>
<input name="subject" type="text" class="form-control" id="subject" aria-labelledby="subject-label" />
<br />
<label for="thread-comment" id="thread-comment-label" class="form-label">Comment</label>
<textarea name="thread-comment" type="text" class="form-control" id="thread-comment" aria-labelledby="thread-comment-label"></textarea>
<br />
<label for="tags" id="tags-label" class="form-label">Tags</label>
<%s! Format.asprintf "%a" Pp_babillard.pp_checkboxes () %>
<input name="tags" type="text" class="form-control" id="tags" aria-labelledby="tags-label" />
<br />
<label for="file" id="file-label" class="form-label">Picture:</label>
<input id="file" name="file" aria-describedby="file-label" type="file" accept="image/png,image/jpeg,image/webp,image/gif">
<br />
<label for="alt" id="alt-label" class="form-label off">Image description:</label>
<input name="alt" type="text" class="form-control off" id="alt" aria-labelledby="alt-label" />
<br />
<button type="submit" class="btn btn-primary" id="submit-new-thread-button" disabled>Make Thread</button>
</form>
</div>
<%s! Post_form.f None request %>
</div>
</div>
</div>

View file

@ -13,6 +13,7 @@
emojid
login
permap
post_form
pp_babillard
register
report_page
@ -71,6 +72,12 @@
(action
(run dream_eml %{deps} --workspace %{workspace_root})))
(rule
(targets post_form.ml)
(deps post_form.eml.html)
(action
(run dream_eml %{deps} --workspace %{workspace_root})))
(rule
(targets register.ml)
(deps register.eml.html)

View file

@ -5,7 +5,7 @@ open Map
module Visibility = struct
let new_thread_div = find_by_id "new-thread"
let thread_comment = find_by_id "thread-comment"
let thread_comment = find_by_id "comment"
let thread_preview_div = find_by_id "thread-preview"
@ -99,7 +99,7 @@ let lat_input = find_by_id "lat-input"
let lng_input = find_by_id "lng-input"
let button = find_by_id "submit-new-thread-button"
let button = find_by_id "submit-button"
(* set input lat/lng when clicked*)
let on_click_set_latlng e =

View file

@ -10,7 +10,7 @@ let insert_quote el _event =
| None -> "no data-emojid on element"
| Some emojid -> Jstr.to_string emojid
in
let textarea = find_by_id "reply-comment" in
let textarea = find_by_id "comment" in
let inner_html = El.Prop.jstr (Jstr.of_string "innerHTML") in
let content = Jstr.to_string @@ El.prop inner_html textarea in
let new_content =

View file

@ -286,21 +286,21 @@ let babillard_post request =
| `Ok
[ ("alt", [ (_, alt) ])
; ("category", categories)
; ("comment", [ (_, comment) ])
; ("file", file)
; ("lat-input", [ (_, lat) ])
; ("lng-input", [ (_, lng) ])
; ("subject", [ (_, subject) ])
; ("tags", [ (_, tags) ])
; ("thread-comment", [ (_, comment) ])
]
| `Ok
( ("alt", [ (_, alt) ])
:: ("comment", [ (_, comment) ])
:: ("file", file)
:: ("lat-input", [ (_, lat) ])
:: ("lng-input", [ (_, lng) ])
:: ("subject", [ (_, subject) ])
:: ("tags", [ (_, tags) ])
:: ("thread-comment", [ (_, comment) ])
:: ([] as categories) ) -> (
let categories = List.map snd categories in
match (Float.of_string_opt lat, Float.of_string_opt lng) with
@ -348,8 +348,8 @@ let reply_post request =
match%lwt Dream.multipart request with
| `Ok
[ ("alt", [ (_, alt) ])
; ("comment", [ (_, comment) ])
; ("file", file)
; ("reply-comment", [ (_, comment) ])
; ("tags", [ (_, tags) ])
] -> (
let parent_id = Dream.param request "thread_id" in

33
src/post_form.eml.html Normal file
View file

@ -0,0 +1,33 @@
let f thread_id request =
% let action = match thread_id with |None -> "/" | Some id -> Format.sprintf "/thread/%s" id in
% let checkboxes = match thread_id with |None -> Format.asprintf "%a" Pp_babillard.pp_checkboxes () | Some _id -> "" in
<div class="post-form">
<%s! Dream.form_tag ~action ~enctype:`Multipart_form_data request %>
% begin if Option.is_none thread_id then
<input type="hidden" id="lat-input" name="lat-input">
<input type="hidden" id="lng-input" name="lng-input">
<label for="subject" id="subject-label" class="form-label">Subject</label>
<input name="subject" type="text" class="form-control" id="subject" aria-labelledby="subject-label" />
% end;
<label for="comment" id="comment-label" class="form-label">Comment</label>
<textarea name="comment" type="text" class="form-control" id="comment" aria-labelledby="comment-label"></textarea>
<label for="tags" id="tags-label" class="form-label">Tags</label>
<%s! checkboxes %>
<input name="tags" type="text" class="form-control" id="tags" aria-labelledby="tags-label" />
<label for="file" id="file-label" class="form-label">Picture:</label>
<input id="file" name="file" aria-describedby="file-label" type="file" accept="image/png,image/jpeg,image/webp,image/gif">
<label for="alt" id="alt-label" class="form-label off">Image description:</label>
<input name="alt" type="text" class="form-control off" id="alt" aria-labelledby="alt-label" />
% begin match thread_id with
% | None ->
<br />
<button type="submit" class="btn btn-primary" id="submit-button" disabled>Make Thread</button>
% | Some _id ->
<button type="submit" class="btn btn-primary" id="submit-button">Reply</button>
% end;
</form>
</div>

View file

@ -7,24 +7,7 @@ let f thread_view thread_id request =
% let redirect = Dream.to_percent_encoded thread_url in
<a href="/login?redirect=<%s redirect%>">Login to reply!</a>
% | Some _ ->
<div class="post-form">
<%s! Dream.form_tag ~action:( Format.sprintf "/thread/%s" thread_id)
~enctype:`Multipart_form_data request %>
<label for="reply-comment" id="reply-comment-label" class="form-label">Comment:</label>
<textarea name="reply-comment" type="text" class="form-control" id="reply-comment" aria-labelledby="reply-comment-label"></textarea>
<label for="tags" id="tags-label" class="form-label">Tags:</label>
<input name="tags" type="text" class="form-control" id="tags" aria-labelledby="tags-label"></input>
<label for="file" id="file-label" class="form-label">Picture:</label>
<input id="file" name="file" aria-describedby="file-label" type="file" accept="image/*">
<label for="alt" id="alt-label" class="form-label">Image description:</label>
<input name="alt" type="text" class="form-control" id="alt" aria-labelledby="alt-label"></input>
<button type="submit" class="btn btn-primary">Reply</button>
</div>
</form>
<%s! Post_form.f (Some thread_id) request %>
% end;
% let feed_url = Format.sprintf "%s/feed" thread_url in
<a type="application/atom+xml" href=<%s! feed_url %> >