refactoring of article_form

This commit is contained in:
Stavros Polymenis 2016-10-26 23:12:23 +01:00
parent 8320145b3c
commit 0f8b49b24e

View File

@ -55,39 +55,48 @@ let of_file_meta_pairs ?(header_tpl=None) ?(listing_tpl=None) blog_url lgrn file
|> to_string
let form ?(header_tpl=None) blog_url lgrn ymd =
let input_set title name value =
p [ label [ span [pcdata title]; input ~a:[a_name name; a_value value] () ] ]
in
let either a b = if a <> "" then a else b in
let article_form =
let input_set title input = p [ label [ pcdata title; input ] ] in
let either a b = if a <> "" then a else b in
let open Ymd in
let auth_name = either ymd.meta.author.Author.name Logarion.Configuration.(lgrn.owner) in
let auth_addr = either ymd.meta.author.Author.email Logarion.Configuration.(lgrn.email) in
[
input_set
"Title"
(input ~a:[a_name "title"; a_value ymd.meta.title] ());
input_set
"Author name"
(input ~a:[a_name "name"; a_value auth_name] ());
input_set
"Author email"
(input ~a:[a_name "email"; a_value auth_addr] ());
input_set
"Topics"
(input ~a:[a_name "topics"; a_value (String.concat ", " ymd.meta.topics)] ());
input_set
"Categories"
(input ~a:[a_name "categories"; a_value (String.concat ", " ymd.meta.categories)] ());
input_set
"Keywords"
(input ~a:[a_name "keywords"; a_value (String.concat ", " ymd.meta.keywords)] ());
input_set
"Series"
(input ~a:[a_name "series"; a_value (String.concat ", " ymd.meta.series)] ());
input_set
"Abstract"
(input ~a:[a_name "abstract"; a_value ymd.meta.abstract] ());
input_set
"Text"
(textarea ~a:[a_name "body"] (pcdata ymd.body));
p [ button ~a:[a_button_type `Submit] [pcdata "Submit"] ];
] in
logarion_page
~header_tpl
blog_url
"Compose" "Article composition"
Ymd.(div [
form
~a:[a_method `Post; a_action (uri_of_string "/post"); a_accept_charset ["utf-8"];]
[
fieldset
~legend:(legend [pcdata "Article"])
[
input_set "Title" "title" ymd.meta.title;
input_set "Author name" "name"
(either ymd.meta.author.Author.name Logarion.Configuration.(lgrn.owner));
input_set "Author email" "email"
(either ymd.meta.author.Author.email Logarion.Configuration.(lgrn.email));
input_set "Topics" "topics" (String.concat ", " ymd.meta.topics);
input_set "Categories" "categories" (String.concat ", " ymd.meta.categories);
input_set "Keywords" "keywords" (String.concat ", " ymd.meta.keywords);
input_set "Series" "series" (String.concat ", " ymd.meta.series);
input_set "Abstract" "abstract" ymd.meta.abstract;
p [
label [
span [pcdata"Text"];
textarea ~a:[a_name "body"] (pcdata ymd.body);
];
];
p [ button ~a:[a_button_type `Submit] [pcdata "Submit"] ];
]
]
])
(div [ form
~a:[a_method `Post; a_action (uri_of_string "/post"); a_accept_charset ["utf-8"];]
[ fieldset ~legend:(legend [pcdata "Article"]) article_form ]
])
|> to_string