/*
* Created by PyramIDE.
* User: フランスのトトロ
* Date: 07/12/2014
* Time: 16:49
* © David RENÉ
*/
// *************************************************************************************
// *** Generic form
// *************************************************************************************
read tools/basis.anubis
read system/string.anubis
read xlib/web/common.anubis
read xlib/web/web_arg_utils.anubis
read xlib/web/making_a_web_site.anubis
read xlib/web/html_tooltip.anubis
read xlib/web/widgets.anubis
read xlib/web/widgets/specialized_elements.anubis
public type Mandatory: // used to mark fields as mandatory.
mandatory,
non_mandatory.
public type Width:
small, //10 char
narrow_small, //20 char
narrow, //50 char
wide, //70 char
custom(Int).
public type FormFieldWidth:
auto,
custom(Int).
public type CXM_Form_Field:
no_field, // empty field
//--- title field ---------------------------------------------------------------------
title(
String text
),
//--- message field -------------------------------------------------------------------
message(
String text
),
//--- text input field ----------------------------------------------------------------
input(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width,
Mandatory mandatory
),
input_readonly(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width
),
//--- text area field -----------------------------------------------------------------
text_area(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width,
Int height,
Mandatory mandatory
),
//--- password input field ------------------------------------------------------------
password_input(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width,
Mandatory mandatory),
//--- phone field ------------------------------------------------------------
phone_input(
Maybe(List(CoreAttrs)) sms_icon_options, //if there is sms available it's success with the options (generally the js call to edit sms)
List(CoreAttrs) phone_icon_options,
List(CoreAttrs) text_options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Phone_Type phone_type,
Width width,
Mandatory mandatory),
//--- email field ------------------------------------------------------------
email_input(
List(CoreAttrs) icon_options,
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width,
Mandatory mandatory),
//--- url field ------------------------------------------------------------
url_input(
List(CoreAttrs) icon_options,
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
InitialValue init_value,
Width width,
Mandatory mandatory),
//--- hidden field ------------------------------------------------------------
hidden(
HTML_Id id,
WebArgName web_arg_name,
WebArgValue init_value
),
//--- explanation field ---------------------------------------------------------------
explain(
String text
),
//--- selector field ------------------------------------------------------------------
selector(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
Int size,
List(String) items,
Maybe(InitialValue) selected,
Mandatory mandatory
),
selector_c(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
Int size,
List((List(CoreAttrs), WebArgValue, String)) items,
Maybe(InitialValue) selected,
Mandatory mandatory
),
selector_hide_show (List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
Int size,
List((List(CoreAttrs), WebArgValue, String, HTML)) items,
Maybe(InitialValue) selected,
Mandatory mandatory),
//--- checkbox field ------------------------------------------------------------------
checkbox (List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
Bool checked,
Mandatory mandatory),
// the same one, but with the tag on the right of the checkbox
checkboxr(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
Bool checked,
Mandatory mandatory
),
//checkbox_hide_show
checkbox_hide_show(
List(CoreAttrs) options,
HTML_Label label,
WebArgName web_arg_name,
Bool checked,
List(CXM_Form_Field) fields
),
//--- radio-button field --------------------------------------------------------------
radio_button(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
WebArgValue web_arg_value,
Bool checked,
Mandatory mandatory
),
//radio_button_hide_show
radio_button_hide_show(
List(CoreAttrs) options,
HTML_Label label,
WebArgName web_arg_name,
WebArgValue web_arg_value,
Bool checked,
List(CXM_Form_Field) fields
),
// the same one, but with the tag on the right of the radio_button
radio_buttonr (List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
WebArgValue web_arg_value,
Bool checked,
Mandatory mandatory),
radio_button_list(
List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName web_arg_name,
List((WebArgValue, String)) web_arg_value,
Maybe(InitialValue) selected,
Mandatory mandatory,
Bool is_wide),
// //--- fields table --------------------------------------------------------------------
// fields_table (String tag,
// List(FormField) fields),
//
// //--- fields line ---------------------------------------------------------------------
// fields_line (String tag,
// List(FormField) fields),
one_line_fields (List(CXM_Form_Field) fields),
//
// //--- preview field -------------------------------------------------------------------
// preview (String html_text),
//--- upload field -------------------------------------------------------------------
upload (List(CoreAttrs) options,
HTML_Label label,
HTML_Id id,
WebArgName name,
Width width,
Mandatory mandatory),
raw_in_form (HTML html),
label_for ( String label,
HTML_Id id,
HTML input),
div (List(CoreAttrs), List(HTML) contents),
div (List(CoreAttrs), List(CXM_Form_Field) fields),
html (HTML p_content),
br,
hr (List(CoreAttrs) options),
// input_with_help (CXM_Form_Field field,
// Maybe(String) help_title,
// String help_text,
// Int width),
fieldset (List(CoreAttrs) options,
String legend,
List(CXM_Form_Field) fields),
blank_space,
blank_space (HtmlClass class),
//--- submit button -------------------------------------------------------------------
submit (List(CoreAttrs) options,
HtmlClass class,
WEB_Action_Name action_name,
Maybe(String) label,
String button_text,
List((String,String)) extra_operands),
empty.
// //////////////////////////////////////////////
// Alternate constructors:
public define CXM_Form_Field
fieldset
(
HTML_Id fieldSetId,
List(CXM_Form_Field) fields
) =
fieldset([id(fieldSetId.id)], "", fields).
public define CXM_Form_Field
fieldset
(
List(CXM_Form_Field) fields
) =
fieldset([], "", fields).
public define CXM_Form_Field
fieldset
(
String legend,
List(CXM_Form_Field) fields
) =
fieldset([], legend, fields).
public define CXM_Form_Field
input(WebArgName n, InitialValue init_value, Width width)
= input([], no_label, html_Id(n.name), n, init_value, width, non_mandatory).
public define CXM_Form_Field
input(HTML_Label label, WebArgName n, InitialValue init_value, Width width)
= input([], label, html_Id(n.name), n, init_value, width, non_mandatory).
public define CXM_Form_Field
input(HTML_Label label, WebArgName n, InitialValue init_value, Width width, Mandatory mand)
= input([], label, html_Id(n.name), n, init_value, width, mand).
public define CXM_Form_Field
input(HTML_Label label, HTML_Id id, WebArgName n, InitialValue init_value, Width width, Mandatory mand)
= input([], label, id, n, init_value, width, mand).
public define CXM_Form_Field
input(List(CoreAttrs) options, HTML_Label label, WebArgName n, InitialValue init_value, Width width, Mandatory mand)
= input(options, label, html_Id(n.name), n, init_value, width, mand).
public define CXM_Form_Field
input_readonly(HTML_Label label, WebArgName n, InitialValue init_value, Width width)
= input_readonly([], label, html_Id(n.name), n, init_value, width).
public define CXM_Form_Field
password_input(HTML_Label label, WebArgName n, InitialValue init_value, Width width, Mandatory mand)
= password_input([], label, html_Id(n.name), n, init_value, width, mand).
public define CXM_Form_Field
checkbox(HTML_Label label, WebArgName n, Bool checked, Mandatory mand)
= checkbox([], label, html_Id(n.name), n, checked, mand).
public define CXM_Form_Field
checkboxr(HTML_Label label, WebArgName n, Bool checked, Mandatory mand)
= checkboxr([], label, html_Id(n.name), n, checked, mand).
public define CXM_Form_Field
radio_button(HTML_Label label, WebArgName n, WebArgValue value, Bool checked, Mandatory mand)
= radio_button([], label, html_Id(n.name), n, value, checked, mand).
public define CXM_Form_Field
radio_buttonr(HTML_Label label, WebArgName n, WebArgValue value, Bool checked, Mandatory mand)
= radio_buttonr([], label, html_Id(n.name), n, value, checked, mand).
public define CXM_Form_Field
submit(WEB_Action_Name action_name, HtmlClass class, Maybe(String) label, String button_text, List((String,String)) extra_operands)
= submit([], class, action_name, label, button_text, extra_operands).
public define CXM_Form_Field
submit(WEB_Action_Name action_name, Maybe(String) label, String button_text, List((String,String)) extra_operands)
= submit([], htmlClass(""), action_name, label, button_text, extra_operands).
public define CXM_Form_Field
submit(WEB_Action_Name action_name, Maybe(String) label, String button_text)
= submit([], htmlClass(""), action_name, label, button_text, []).
public define CXM_Form_Field //Helper for older project wich use only String as Action name
submit(String _action_name, Maybe(String) label, String button_text, List((String,String)) extra_operands)
= submit([], htmlClass(""), action_name(_action_name), label, button_text, extra_operands).
public define CXM_Form_Field
upload(HTML_Label label, HTML_Id id, WebArgName name, Width width)
= upload([], label, id, name, width, non_mandatory).
public define CXM_Form_Field
upload(HTML_Label label, HTML_Id id, WebArgName name, Width width, Mandatory mand)
= upload([], label, id, name, width, mand).
public define CXM_Form_Field
ip_input
(
String label,
HTML_Id id,
WebArgName wan_prefix,
String ip
)=
label_for(
label,
id,
ip_input(id, wan_prefix, ip)
).
public define CXM_Form_Field
partial_ip_input
(
String label,
HTML_Id id,
WebArgName wan_prefix,
List(String) ip_fixed_part,
String ip
)=
label_for(
label,
id,
partial_ip_input(id, wan_prefix, ip_fixed_part, ip)
).
public define CXM_Form_Field
hidden
(
WebArgName web_arg_name,
WebArgValue value
)=
hidden(html_Id(""), web_arg_name, value).
public define CXM_Form_Field
hr
=
hr([])
.
public define CXM_Form_Field
div
(
List(CoreAttrs) attrs,
HTML content
)=
div(attrs, [content])
.
public define CXM_Form_Field
div
(
HTML content
)=
div([], [content])
.
//--- explanation field ---------------------
// //////////////////////////////////////////////////////////
define (List((List(CoreAttrs), WebArgValue, String)), List(HTML))
construct_selector_hide_show
(
String div_id,
List((List(CoreAttrs), WebArgValue, String, HTML)) items,
List((List(CoreAttrs), WebArgValue, String)) so_far_1,
List(HTML) so_far_2,
Int n
) =
if items is
{
[] then (so_far_1, so_far_2),
[h . t] then
since h is (cores, wav, label, content),
with linked_element = div_id + n,
construct_selector_hide_show(div_id, t, [([data("linked_element", linked_element) . cores], wav, label) . so_far_1], [ div([id(linked_element), style("display: none")], content) . so_far_2 ], n + 1)
}.
define (List((List(CoreAttrs), WebArgValue, String)), List(HTML))
construct_selector_hide_show
(
String div_id,
List((List(CoreAttrs), WebArgValue, String, HTML)) items
) = construct_selector_hide_show(div_id, items, [], [], 0).
public define HTML
format_div_CXM_Form_Field
(
List(CXM_Form_Field) field,
List(Web_arg) lwa,
String _class,
Bool b_with_label
).
public define HTML
format_CXM_Form_Field
(
CXM_Form_Field ff, //CXM_Form_Field to format
List(Web_arg) lwa, //web arguments of the session, can be useful for the current drawing
String _class,
Bool b_with_label //if false, no need to show/generate label
) =
with star = (HTML_Label l, Mandatory m)
|->
(HTML_Label)
if b_with_label then
if m is
{
mandatory then
if l is
{
no_label then l,
label(str, help) then label(str + "*", help),
}
non_mandatory then l
}
else
no_label
,
pixels = (Width width)
|->
if width is
{
small then 10,
narrow_small then 20,
narrow then 50,
wide then 70,
custom(n) then n
},
if ff is
{
no_field then empty,
title(t) then h3(t),
message(t) then literal(t),
input(options, _label, id, wan, default, w, mand) then
text_input([class("in") . options], star(_label, mand), id, wan, init(get_String(lwa, wan.name, default.value)), pixels(w)),
input_readonly(options, _label, id, name, init, w) then
text_input_ro([class("in") . options], _label, id, name, init, pixels(w)),
text_area(options, _label, id, wan, default, w, height, mand) then
text_area([class("in") . options], star(_label, mand), id, wan, init(get_String(lwa, wan.name, default.value)), pixels(w), height),
password_input(options, _label, id, name, init, w, mand) then
password_input([class("in") . options], star(_label, mand), id, name, init, pixels(w)),
phone_input(mb_sms_options, icon_options, options, _label, _id, wan, default, phone_type, w, mand) then
sequence([
if mb_sms_options is
{
failure then empty,
success(sms_options) then img([event(onmouseover, "/icons/16x16/send_sms.png")]+sms_options, "/icons/16x16/sms.png")
},
img(icon_options, "/icons/16x16/"+to_Icon(phone_type)),
input([class("in"), id(_id.id), name(wan.name), init(get_String(lwa, wan.name, default.value)), size(pixels(w)). options]),
]),
email_input(icon_options, options, _label, id, wan, default, w, mand) then
sequence([
img(icon_options, "/icons/16x16/email_edit.png"),
text_input([class("in") . options], star(_label, mand), id, wan, init(get_String(lwa, wan.name, default.value)), pixels(w)),
]),
url_input(icon_options, options, _label, id, wan, default, w, mand) then
sequence([
img(icon_options, "/icons/16x16/url.png"),
text_input([class("in") . options], star(_label, mand), id, wan, init(get_String(lwa, wan.name, default.value)), pixels(w)),
]),
hidden(h_id, wan, wav) then hidden(wan.name, wav.value),
explain(t) then
div(class("sub"), literal(t)),
selector(options, _label, id, wan, size, items, selected, mand) then
if selected is
{
failure then selector([class("in") . options], star(_label, mand), id, wan, size, items),
success(default) then selector([class("in") . options], star(_label, mand), id, wan, size, items, init(get_String(lwa, wan.name, default.value))),
},
selector_c(options, _label, id, wan, size, items, selected, mand) then
if selected is
{
failure then selector_c([class("in") . options], star(_label, mand), id, wan, size, items),
success(default) then selector_c([class("in") . options], star(_label, mand), id, wan, size, items, init(get_String(lwa, wan.name, default.value))),
},
selector_hide_show(options, _label, id, wan, size, items_with_partial, selected, mand) then
with div_id = generate_random_string(15),
since construct_selector_hide_show(div_id, items_with_partial) is (items, partial_content_list),
sequence([
selector_c([class("in cxm_selector_hide_show"), event(onchange, "select_hide_show('" + div_id + "', this);")], star(_label, mand), id, wan, size, reverse(items), if selected is { failure then init(""), success(default) then init(get_String(lwa, wan.name, default.value)) } ),
sequence(partial_content_list)
]),
checkbox(options, _label, id, wan, checked, mand) then
check_box([class("in") . options], star(_label, mand), id, wan, get_Bool(lwa, wan.name, checked)),
checkboxr(options, _label, id, wan, checked, mand) then
check_box_r([class("in") . options], star(_label, mand), id, wan, get_Bool(lwa, wan.name, checked)),
checkbox_hide_show(options, _label, wan, checked, fields) then
with div_id = generate_random_string(15),
sequence([
check_box([data("show_id", div_id), class("in cxm_checkbox_hide_show"), event(onclick, "checked_hide_show_element('"+div_id+"', this);")], _label, html_Id("checkbox_"+div_id), wan, get_Bool(lwa, wan.name, checked)),
div([id(div_id), style("display:"+if checked then "block" else "none")], format_div_CXM_Form_Field(fields, lwa, _class, b_with_label))
]),
radio_button(options, _label, id, wan, val, checked, mand) then
radio_button([class("in"), event(onclick, "radio_hide_show_group('"+wan.name+"', this);") . options], star(_label, mand), id, wan, val, get_Bool(lwa, wan.name, checked)),
radio_button_hide_show(options, _label, wan, val, checked, fields) then
with div_id = generate_random_string(15),
sequence([
radio_button([data("show_id", div_id), class("in"), class("cxm_radio_hide_show"), event(onclick, "radio_hide_show_group('"+wan.name+"', this);")], _label, html_Id("radio_button_hide_show_"+div_id), wan, val, get_Bool(lwa, wan.name, checked)),
div([id(div_id), style("display:"+if checked then "block" else "none")], format_div_CXM_Form_Field(fields, lwa, _class, b_with_label))
]),
radio_buttonr(options, _label, id, wan, val, checked, mand) then
radio_button_r([class("in") . options], star(_label, mand), id, wan, val, get_Bool(lwa, wan.name, checked)),
radio_button_list (options, _label, id, wan, items, selected, mand, wide) then
with new_selected =
if get_String(lwa, wan.name) is
{
failure then selected,
success(value) then success(init(value))
},
sequence([
//literal(""),
div( [class("radiolist")], sequence(
with i = var((Int)-1),
itemclass = if wide then "radiolistitem_wide" else "radiolistitem",
map( ((WebArgValue, String) item) |->
i <- *i + 1;
if item is (wav, item_label) then
with _id = if id is html_Id(the_id) then html_Id(the_id + "_radio_" + *i),
div([class(itemclass)], radio_button_r(options, label(item_label), _id, wan, wav,
if new_selected is success(v) then wav.value = v.value else false)),
items))
),
]),
one_line_fields(fields) then
table(class("form_one_line nude"),[tr(
map((CXM_Form_Field ff2) |-> td(format_CXM_Form_Field(ff2, lwa, _class, b_with_label)),fields))])
,
upload(options, _label, id, name, w, mand) then
file_upload([class("in") . options], star(_label, mand), id, name, pixels(w)),
raw_in_form(html) then div(class("in"), html),
label_for(_label, _id, input) then
sequence([
label(for(_id.id), _label),
input
]),
div(options, e) then div(options, e),
div(options, fields)then div(options, format_div_CXM_Form_Field(fields, lwa, _class, b_with_label)),
html(p_content) then p_content,
br then br,
hr(opts) then hr(opts),
fieldset(options, _legend, fields) then
fieldset(options, [
if _legend = "" then legend(_legend) else empty,
format_div_CXM_Form_Field(fields, lwa, _class, b_with_label),
]),
blank_space then
div([class("blank_space")], literal(" ")),
blank_space(htmlClass) then
div([class(htmlClass.class)], literal(" ")),
submit(attrs, htmlClass, action_name, Maybe(String) mb_label, button_text, extra_operands) then
actioner( same, // TODO change this to allow external URL
if mb_label is
{
failure then same,
success(n) then same(n)
},
submit(attrs + [class(htmlClass.class + " cxm_submit")], button_text),
action_name,
extra_operands
),
empty then literal("")
}.
public define HTML
format_div_CXM_Form_Field
(
List(CXM_Form_Field) fields,
List(Web_arg) lwa,
String _class,
Bool b_with_label
)=
//println("format_div_CXM_Form_Field");
sequence( map((CXM_Form_Field field)
|->
//with css_line = if line = 0 then " odd_line" else " even_line",
//println("class "+css_line+" line "+line);
if field is empty then
empty
else if field is no_field then
empty
else if field is hidden(_id, name, init) then
format_CXM_Form_Field(field, lwa, _class, b_with_label)
else if field is br then
format_CXM_Form_Field(field, lwa, _class, b_with_label)
else if field is text_area(options, _label, id, wan, default, w, height, mand) then
div([class(_class)], format_CXM_Form_Field(field, lwa, _class, b_with_label))
else
div([class(_class)], format_CXM_Form_Field(field, lwa, _class, b_with_label))
, fields))
.
public define HTML
to_HTML
(
List(CXM_Form_Field) fields,
List(Web_arg) lwa,
String _class,
Bool b_with_label
)=
format_div_CXM_Form_Field(fields, lwa, _class, b_with_label)
.
public define HTML
to_HTML
(
List(CXM_Form_Field) fields,
String _class,
Bool b_with_label
)=
to_HTML(fields, [], _class, b_with_label).
public define HTML
to_HTML
(
List(CXM_Form_Field) fields,
List(Web_arg) lwa
)=
to_HTML(fields, lwa, "form_field aligned", true)
.
public define HTML
to_HTML
(
CXM_Form_Field field,
List(Web_arg) lwa
)=
to_HTML([field], lwa, "form_field aligned", true)
.
public define HTML
to_HTML
(
List(CXM_Form_Field) fields
)=
to_HTML(fields, [], "form_field aligned", true)
.
public define HTML
cxm_form
(
HTML_Id form_Id,
List(CoreAttrs) options,
WEB_Action_Name _action,
List((String,String)) extra_ops,
List(Web_arg) lwa,
List(CXM_Form_Field) fields,
String _class,
Bool b_with_label
) =
form(
[id(form_Id.id), class("cxm_form"), action(_action, extra_ops) . options],
format_div_CXM_Form_Field(fields, lwa, _class, b_with_label)
).
//public define HTML
///* older manner to call CXM_form with action as String.
// * this function only exists for compatibility with older projects. Please consider
// * to use the above function with WEB_Action_Name instead of String
//*/
// cxm_form
// (
// HTML_Id form_Id,
// List(CoreAttrs) options,
// String _action, //older manner to call action with String
// List((String,String)) extra_ops,
// List(Web_arg) lwa,
// List(CXM_Form_Field) fields,
// String _class,
// Bool b_with_label
// ) =
// form(
// [class("cxm_form"), id(form_Id.id), action(_action, extra_ops) . options],
// format_div_CXM_Form_Field(fields, lwa, _class, b_with_label)
// ).
public define HTML
cxm_form
(
String form_name,
List(CoreAttrs) options,
WEB_Action_Name action,
List((String,String)) extra_ops,
List(Web_arg) lwa,
List(CXM_Form_Field) form_fields,
String _class,
Bool b_with_label
)=
cxm_form(html_Id(form_name), options, action, extra_ops, lwa, form_fields, _class, b_with_label).
public define HTML
cxm_form
(
String form_name,
List(CoreAttrs) options,
WEB_Action_Name action,
List((String,String)) extra_ops,
List(Web_arg) lwa,
List(CXM_Form_Field) form_fields
)=
cxm_form(form_name, options, action, extra_ops, lwa, form_fields, "form_field aligned", true)
.
public define HTML
cxm_form
(
String form_name,
List(CoreAttrs) options,
String action,
List((String,String)) extra_ops,
List(Web_arg) lwa,
List(CXM_Form_Field) form_fields,
Bool b_with_label
)=
cxm_form(html_Id(form_name), options, action_name(action), extra_ops, lwa, form_fields, "form_field aligned", b_with_label)
.
public define HTML
cxm_form
(
String form_name,
List(CoreAttrs) options,
String action,
List((String,String)) extra_ops,
List(Web_arg) lwa,
List(CXM_Form_Field) form_fields
)=
cxm_form(html_Id(form_name), options, action_name(action), extra_ops, lwa, form_fields, "form_field aligned", true)
.
public define HTML
cxm_form
(
String form_id,
List(CoreAttrs) options,
List(HTML) fields,
String _class
) =
cxm_form(html_Id(form_id), options, action_name(""), [], [], map((HTML field) |-> raw_in_form(field), fields), _class, true )
.
public define HTML
cxm_form
(
String form_id,
List(CoreAttrs) options,
List(HTML) fields
) =
cxm_form(html_Id(form_id), options, action_name(""), [], [], map((HTML field) |-> raw_in_form(field), fields), "form_field aligned", true )
.
public define HTML
cxm_form
(
String form_id,
List(CoreAttrs) options,
List(Web_arg) lwa,
List(CXM_Form_Field) fields,
String _class,
Bool b_with_label
) =
cxm_form(html_Id(form_id), options, action_name(""), [], lwa, fields, _class, b_with_label).
public define HTML
cxm_form
(
String form_id,
List(HTML) fields,
String _class
) =
cxm_form(html_Id(form_id), [], action_name(""), [], [], map((HTML field) |-> raw_in_form(field), fields), _class, true ).
public define HTML
cxm_form
(
String form_id,
List(Web_arg) lwa,
List(CXM_Form_Field) fields,
String _class
) =
cxm_form(form_id, [], lwa, fields, _class, true).
public define HTML
cxm_form
(
String form_id,
List(Web_arg) lwa,
List(CXM_Form_Field) fields,
) =
cxm_form(form_id, [], lwa, fields, "form_field aligned", true).
public define HTML
cxm_form
(
String form_id,
List(CoreAttrs) options,
List(CXM_Form_Field) fields,
) =
cxm_form(form_id, options, [], fields, "form_field aligned", true).
public define HTML
cxm_form
(
String form_id,
List(CXM_Form_Field) fields,
String _class
) =
cxm_form(html_Id(form_id), [], action_name(""), [], [], fields, _class, true).
public define HTML
cxm_form
(
String form_id,
List(CXM_Form_Field) fields
) =
cxm_form(html_Id(form_id), [], action_name(""), [], [], fields, "form_field aligned", true).