Commit 90042c30195c4ce3a97d3b35726799695c6c66f3
1 parent
4e1f9778
add "selector_hide_show" to show/hide elements when the selection change
add helper functions due to the addition of class list as parameter to "left_menu_entry" and "title"
Showing
2 changed files
with
64 additions
and
5 deletions
Show diff stats
web/CXM_form.anubis
| ... | ... | @@ -97,17 +97,24 @@ public type CXM_Form_Field: |
| 97 | 97 | Maybe(InitialValue) selected, |
| 98 | 98 | Mandatory mandatory), |
| 99 | 99 | |
| 100 | - selector_c (List(InputAttrs) options, | |
| 100 | + selector_c (List(InputAttrs) options, | |
| 101 | + String label, | |
| 102 | + HtmlId id, | |
| 103 | + WebArgName web_arg_name, | |
| 104 | + Int size, | |
| 105 | + List((List(CoreAttrs), WebArgValue, String)) items, | |
| 106 | + Maybe(InitialValue) selected, | |
| 107 | + Mandatory mandatory), | |
| 108 | + | |
| 109 | + selector_hide_show (List(InputAttrs) options, | |
| 101 | 110 | String label, |
| 102 | 111 | HtmlId id, |
| 103 | 112 | WebArgName web_arg_name, |
| 104 | 113 | Int size, |
| 105 | - List((List(CoreAttrs),WebArgValue,String)) items, | |
| 114 | + List((List(CoreAttrs), WebArgValue, String, HTML_Partial_Content)) items, | |
| 106 | 115 | Maybe(InitialValue) selected, |
| 107 | 116 | Mandatory mandatory), |
| 108 | 117 | |
| 109 | - | |
| 110 | - | |
| 111 | 118 | //--- checkbox field ------------------------------------------------------------------ |
| 112 | 119 | checkbox (List(InputAttrs) options, |
| 113 | 120 | String label, |
| ... | ... | @@ -321,6 +328,31 @@ public define CXM_Form_Field |
| 321 | 328 | |
| 322 | 329 | // ////////////////////////////////////////////////////////// |
| 323 | 330 | |
| 331 | +define (List((List(CoreAttrs), WebArgValue, String)), List(HTML_Partial_Content)) | |
| 332 | + construct_selector_hide_show | |
| 333 | + ( | |
| 334 | + String div_id, | |
| 335 | + List((List(CoreAttrs), WebArgValue, String, HTML_Partial_Content)) items, | |
| 336 | + List((List(CoreAttrs), WebArgValue, String)) so_far_1, | |
| 337 | + List(HTML_Partial_Content) so_far_2, | |
| 338 | + Int n | |
| 339 | + ) = | |
| 340 | + if items is | |
| 341 | + { | |
| 342 | + [] then (so_far_1, so_far_2), | |
| 343 | + [h . t] then | |
| 344 | + since h is (cores, wav, label, content), | |
| 345 | + with linked_element = div_id + n, | |
| 346 | + construct_selector_hide_show(div_id, t, [([data("linked_element", linked_element) . cores], wav, label) . so_far_1], [ partial_content([], div([id(linked_element), style("display: none")], content)) . so_far_2 ], n + 1) | |
| 347 | + }. | |
| 348 | + | |
| 349 | +define (List((List(CoreAttrs), WebArgValue, String)), List(HTML_Partial_Content)) | |
| 350 | + construct_selector_hide_show | |
| 351 | + ( | |
| 352 | + String div_id, | |
| 353 | + List((List(CoreAttrs), WebArgValue, String, HTML_Partial_Content)) items | |
| 354 | + ) = construct_selector_hide_show(div_id, items, [], [], 0). | |
| 355 | + | |
| 324 | 356 | public define HTML_In_Form |
| 325 | 357 | cxm_format_form_field |
| 326 | 358 | ( |
| ... | ... | @@ -407,6 +439,14 @@ public define HTML_In_Form |
| 407 | 439 | success(default) then selector_c([class("in") . options], label + star(mand), id, wan, size, items, init(get_String(lwa, wan.name, default.value))), |
| 408 | 440 | }, |
| 409 | 441 | |
| 442 | + selector_hide_show(options, label, id, wan, size, items_with_partial, selected, mand) then | |
| 443 | + with div_id = generate_random_string(15), | |
| 444 | + since construct_selector_hide_show(div_id, items_with_partial) is (items, partial_content_list), | |
| 445 | + sequence([ | |
| 446 | + selector_c([class("in"), event(onchange, "select_hide_show('" + div_id + "', this);")], label + star(mand), id, wan, size, reverse(items), if selected is { failure then init(""), success(default) then init(get_String(lwa, wan.name, default.value)) } ), | |
| 447 | + partial(partial_content(partial_content_list)) | |
| 448 | + ]), | |
| 449 | + | |
| 410 | 450 | checkbox(options, label, id, wan, val, checked, mand) then |
| 411 | 451 | check_box([class("in") . options], label + star(mand), id, wan, val, get_Bool(lwa, wan.name, checked)), |
| 412 | 452 | ... | ... |
web/widgets/left_menu.anubis
| ... | ... | @@ -41,11 +41,30 @@ public define Left_Menu_Entry |
| 41 | 41 | . |
| 42 | 42 | |
| 43 | 43 | public define Left_Menu_Entry |
| 44 | + left_menu_entry | |
| 45 | + ( | |
| 46 | + String entry_id, //it's also use as icon prefix | |
| 47 | + String action, //action (url to apply when click | |
| 48 | + String text, //text to show | |
| 49 | + List((String, String)) extra //extra web arguments to send when click | |
| 50 | + )= | |
| 51 | + left_menu_entry(entry_id, [], action, text, extra) | |
| 52 | + . | |
| 53 | + | |
| 54 | +public define Left_Menu_Entry | |
| 44 | 55 | title |
| 45 | 56 | ( |
| 46 | 57 | String text |
| 47 | 58 | )= |
| 48 | - title("", [], text). | |
| 59 | + title("", [], text). | |
| 60 | + | |
| 61 | +public define Left_Menu_Entry | |
| 62 | + title | |
| 63 | + ( | |
| 64 | + String title_id, | |
| 65 | + String text | |
| 66 | + )= | |
| 67 | + title(title_id, [], text). | |
| 49 | 68 | |
| 50 | 69 | define List(HTML_Off_Form) |
| 51 | 70 | make_left_menu | ... | ... |