Commit 3f69ca7ef6e03a7a4ecbf4513cda1446d8122d94

Authored by Cédric RICARD
1 parent 36e23d45

Minor improvements on selectors

Showing 1 changed file with 25 additions and 12 deletions   Show diff stats
calexium_lib/web/CXM_making_a_web_site.anubis
@@ -915,7 +915,9 @@ public type Actioner_Aspect: @@ -915,7 +915,9 @@ public type Actioner_Aspect:
915 submit (List(CoreAttrs),String text), 915 submit (List(CoreAttrs),String text),
916 button (String url_off, String url_on), // rollover button 916 button (String url_off, String url_on), // rollover button
917 button (String url_off, String url_on, Int32 w, Int32 h), // idem with size 917 button (String url_off, String url_on, Int32 w, Int32 h), // idem with size
918 - immediate_selector (String name, Int32 size, List(String) choices). 918 + immediate_selector (WebArgName name, Int32 size, List((WebArgValue,String)) choices),
  919 + immediate_selector (WebArgName name, Int32 size, List((WebArgValue,String)) choices, String selected).
  920 +
919 921
920 922
921 public type Actioner_Local_Action: 923 public type Actioner_Local_Action:
@@ -989,13 +991,13 @@ public type HTML_In_Form: @@ -989,13 +991,13 @@ public type HTML_In_Form:
989 password_input (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width), 991 password_input (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width),
990 text_area (List(TextAreaOption), String name, String init, Int32 width, Int32 height), 992 text_area (List(TextAreaOption), String name, String init, Int32 width, Int32 height),
991 file_upload (String label, HtmlId id, WebArgName name, Int32 width), 993 file_upload (String label, HtmlId id, WebArgName name, Int32 width),
992 - selector (String name, Int32 size, List(String) choices),  
993 - selector (String name, Int32 size, List(String) choices, String selected), 994 + selector (WebArgName name, Int32 size, List(String) choices),
  995 + selector (WebArgName name, Int32 size, List(String) choices, String selected),
994 // List((String,String)) = List((code,name)) where : 996 // List((String,String)) = List((code,name)) where :
995 - // name appears in selector  
996 // code is the web-arg value 997 // code is the web-arg value
997 - selector_c (String name, Int32 size, List((String,String)) choices),  
998 - selector_c (String name, Int32 size, List((String,String)) choices, String selected), 998 + // name appears in selector
  999 + selector_c (WebArgName name, Int32 size, List((WebArgValue,String)) choices),
  1000 + selector_c (WebArgName name, Int32 size, List((WebArgValue,String)) choices, String selected),
999 radio_button (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked), 1001 radio_button (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked),
1000 radio_button_r (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked), 1002 radio_button_r (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked),
1001 check_box (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked), 1003 check_box (List(InputAttrs), String label_text, HtmlId id, WebArgName name, WebArgValue value, Bool checked),
@@ -2676,20 +2678,20 @@ public define Printable_tree @@ -2676,20 +2678,20 @@ public define Printable_tree
2676 public define Printable_tree 2678 public define Printable_tree
2677 format_choices 2679 format_choices
2678 ( 2680 (
2679 - List((String,String)) l 2681 + List((WebArgValue,String)) l
2680 ) = 2682 ) =
2681 if l is 2683 if l is
2682 { 2684 {
2683 [ ] then [ ], 2685 [ ] then [ ],
2684 [h . t] then 2686 [h . t] then
2685 if h is (val,item) 2687 if h is (val,item)
2686 - then ["<option value=\""+val+"\">",item . format_choices(t)] 2688 + then ["<option value=\""+val.value+"\">",item . format_choices(t)]
2687 }. 2689 }.
2688 2690
2689 public define Printable_tree 2691 public define Printable_tree
2690 format_choices 2692 format_choices
2691 ( 2693 (
2692 - List((String,String)) l, 2694 + List((WebArgValue,String)) l,
2693 String selected 2695 String selected
2694 ) = 2696 ) =
2695 if l is 2697 if l is
@@ -2698,8 +2700,8 @@ public define Printable_tree @@ -2698,8 +2700,8 @@ public define Printable_tree
2698 [h . t] then 2700 [h . t] then
2699 if h is (val,item) then 2701 if h is (val,item) then
2700 if item = selected 2702 if item = selected
2701 - then ["<option value=\""+val+"\" selected>",item . format_choices(t)]  
2702 - else ["<option value=\""+val+"\">",item . format_choices(t,selected)] 2703 + then ["<option value=\""+val.value+"\" selected>",item . format_choices(t)]
  2704 + else ["<option value=\""+val.value+"\">",item . format_choices(t,selected)]
2703 }. 2705 }.
2704 2706
2705 2707
@@ -3038,6 +3040,7 @@ define Maybe(String) @@ -3038,6 +3040,7 @@ define Maybe(String)
3038 button(_,_) then failure, 3040 button(_,_) then failure,
3039 button(_,_,_,_) then failure, 3041 button(_,_,_,_) then failure,
3040 immediate_selector(_,_,_) then failure, 3042 immediate_selector(_,_,_) then failure,
  3043 + immediate_selector(_,_,_,_) then failure,
3041 }. 3044 }.
3042 3045
3043 define Printable_tree 3046 define Printable_tree
@@ -3131,7 +3134,16 @@ define Printable_tree @@ -3131,7 +3134,16 @@ define Printable_tree
3131 }, 3134 },
3132 "\" name=o",name," size=",size,">", 3135 "\" name=o",name," size=",size,">",
3133 format_choices(choices),"</select>" 3136 format_choices(choices),"</select>"
3134 - ] 3137 + ],
  3138 + immediate_selector(name,size,choices,selected) then
  3139 + [ if action is
  3140 + {
  3141 + url(u) then ["<select href=\"",u]
  3142 + javascript(s,h) then [s,"<select onchange=\"",h]
  3143 + },
  3144 + "\" name=o",name," size=",size,">",
  3145 + format_choices(choices, selected),"</select>"
  3146 + ],
3135 }. 3147 }.
3136 3148
3137 3149
@@ -3168,6 +3180,7 @@ define Printable_tree @@ -3168,6 +3180,7 @@ define Printable_tree
3168 ], 3180 ],
3169 3181
3170 immediate_selector(name,size,choices) then alert, 3182 immediate_selector(name,size,choices) then alert,
  3183 + immediate_selector(name,size,choices,selected) then alert,
3171 3184
3172 }, 3185 },
3173 "</a>"]. 3186 "</a>"].