Commit d80e09a7a66e812ea8e3e5c8f1ddc40d08670b2e

Authored by Cédric RICARD
1 parent 8c34737c

Several minor improvements on web objects. No compatibility loose except for file upload input.

Showing 1 changed file with 54 additions and 30 deletions   Show diff stats
calexium_lib/web/CXM_making_a_web_site.anubis
@@ -647,7 +647,7 @@ public type Text_Option: @@ -647,7 +647,7 @@ public type Text_Option:
647 nowrap, 647 nowrap,
648 class(String), //CSS class 648 class(String), //CSS class
649 id(String), 649 id(String),
650 -// name(String), 650 + style(String),
651 tooltip(String). 651 tooltip(String).
652 652
653 A list of 'Text_Option' must be given with each text you want to put in your page. 653 A list of 'Text_Option' must be given with each text you want to put in your page.
@@ -922,8 +922,8 @@ public type Actioner_Aspect: @@ -922,8 +922,8 @@ public type Actioner_Aspect:
922 button (String url_off, String url_on), // rollover button 922 button (String url_off, String url_on), // rollover button
923 button (String url_off, String url_on, Int32 w, Int32 h), // idem with size 923 button (String url_off, String url_on, Int32 w, Int32 h), // idem with size
924 submit (List(CoreAttrs),String text), 924 submit (List(CoreAttrs),String text),
925 - immediate_selector (WebArgName name, Int32 size, List((WebArgValue,String)) choices),  
926 - immediate_selector (WebArgName name, Int32 size, List((WebArgValue,String)) choices, InitialValue selected). 925 + immediate_selector (List(CoreAttrs),WebArgName name, Int32 size, List((WebArgValue,String)) choices),
  926 + immediate_selector (List(CoreAttrs),WebArgName name, Int32 size, List((WebArgValue,String)) choices, InitialValue selected).
927 927
928 928
929 929
@@ -1005,7 +1005,7 @@ public type HTML_In_Form: @@ -1005,7 +1005,7 @@ public type HTML_In_Form:
1005 text_input_ro (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width), 1005 text_input_ro (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width),
1006 password_input (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width), 1006 password_input (List(InputAttrs), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width),
1007 text_area (List(TextAreaOption), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width, Int32 height), 1007 text_area (List(TextAreaOption), String label_text, HtmlId id, WebArgName name, InitialValue init, Int32 width, Int32 height),
1008 - file_upload (String label, HtmlId id, WebArgName name, Int32 width), 1008 + file_upload (List(InputAttrs), String label, HtmlId id, WebArgName name, Int32 width),
1009 selector (List(InputAttrs), String label_text, HtmlId id, WebArgName name, Int32 size, List(String) choices), 1009 selector (List(InputAttrs), String label_text, HtmlId id, WebArgName name, Int32 size, List(String) choices),
1010 selector (List(InputAttrs), String label_text, HtmlId id, WebArgName name, Int32 size, List(String) choices, InitialValue selected), 1010 selector (List(InputAttrs), String label_text, HtmlId id, WebArgName name, Int32 size, List(String) choices, InitialValue selected),
1011 // List((String,String)) = List((code,name)) where : 1011 // List((String,String)) = List((code,name)) where :
@@ -1155,7 +1155,7 @@ public define HTML_In_Form @@ -1155,7 +1155,7 @@ public define HTML_In_Form
1155 1155
1156 public define HTML_In_Form 1156 public define HTML_In_Form
1157 file_upload (WebArgName name, Int32 width) 1157 file_upload (WebArgName name, Int32 width)
1158 - = file_upload("", htmlId(""), name, width). 1158 + = file_upload([], "", htmlId(""), name, width).
1159 1159
1160 1160
1161 public type HTML_Off_Form: 1161 public type HTML_Off_Form:
@@ -1187,8 +1187,8 @@ public type HTML_Off_Form: @@ -1187,8 +1187,8 @@ public type HTML_Off_Form:
1187 private_download (String abs_path, String name, String extra_ext, 1187 private_download (String abs_path, String name, String extra_ext,
1188 Maybe((String,List((String,String)))) action), 1188 Maybe((String,List((String,String)))) action),
1189 label (String name), 1189 label (String name),
1190 - form (String form_name, List(CoreAttrs), HTML_In_Form content),  
1191 - form (String form_name, List(CoreAttrs), 1190 + form (HtmlId form_id, List(CoreAttrs), HTML_In_Form content),
  1191 + form (HtmlId form_id, List(CoreAttrs),
1192 String action_name, List((String,String)) extra_ops, 1192 String action_name, List((String,String)) extra_ops,
1193 HTML_In_Form content), 1193 HTML_In_Form content),
1194 div (List(CoreAttrs), HTML_Off_Form content), 1194 div (List(CoreAttrs), HTML_Off_Form content),
@@ -1196,6 +1196,27 @@ public type HTML_Off_Form: @@ -1196,6 +1196,27 @@ public type HTML_Off_Form:
1196 1196
1197 'HTML_Off_Form' defines all the elements you may put outside any form. 1197 'HTML_Off_Form' defines all the elements you may put outside any form.
1198 1198
  1199 +
  1200 +public define HTML_Off_Form
  1201 + form
  1202 + (
  1203 + String form_name,
  1204 + List(CoreAttrs) options,
  1205 + HTML_In_Form content
  1206 + ) =
  1207 + form(htmlId(form_name), options, content).
  1208 +
  1209 +public define HTML_Off_Form
  1210 + form
  1211 + (
  1212 + String form_name,
  1213 + List(CoreAttrs) options,
  1214 + String action_name,
  1215 + List((String,String)) extra_ops,
  1216 + HTML_In_Form content
  1217 + ) =
  1218 + form(htmlId(form_name), options, action_name, extra_ops, content).
  1219 +
1199 1220
1200 public define HTML_Off_Form literal(Printable_tree t) = literal_pt(t). 1221 public define HTML_Off_Form literal(Printable_tree t) = literal_pt(t).
1201 public define HTML_Off_Form fixed_size(HTML_Size width, HTML_Size height, String name_of_HTML_file) 1222 public define HTML_Off_Form fixed_size(HTML_Size width, HTML_Size height, String name_of_HTML_file)
@@ -2894,8 +2915,8 @@ define List(Text_Option) @@ -2894,8 +2915,8 @@ define List(Text_Option)
2894 get_text_options(t) 2915 get_text_options(t)
2895 else if h is id(_) then 2916 else if h is id(_) then
2896 get_text_options(t) 2917 get_text_options(t)
2897 -// else if h is name(_) then  
2898 -// get_text_options(t) 2918 + else if h is style(_) then
  2919 + get_text_options(t)
2899 else if h is tooltip(_) then 2920 else if h is tooltip(_) then
2900 get_text_options(t) 2921 get_text_options(t)
2901 else 2922 else
@@ -2922,8 +2943,8 @@ define List(CoreAttrs) @@ -2922,8 +2943,8 @@ define List(CoreAttrs)
2922 [ class(name) . get_css_class(t) ] 2943 [ class(name) . get_css_class(t) ]
2923 else if h is id(name) then 2944 else if h is id(name) then
2924 [ id(name) . get_css_class(t) ] 2945 [ id(name) . get_css_class(t) ]
2925 -// else if h is name(the_name) then  
2926 -// [ name(the_name) . get_css_class(t) ] 2946 + else if h is style(the_style) then
  2947 + [ style(the_style) . get_css_class(t) ]
2927 else if h is tooltip(name) then 2948 else if h is tooltip(name) then
2928 [ tooltip(name) . get_css_class(t) ] 2949 [ tooltip(name) . get_css_class(t) ]
2929 else 2950 else
@@ -2963,7 +2984,7 @@ public define String @@ -2963,7 +2984,7 @@ public define String
2963 " class=\"" + class_name + "\"", 2984 " class=\"" + class_name + "\"",
2964 style(style_string) then 2985 style(style_string) then
2965 " style=\"" + style_string + "\"", 2986 " style=\"" + style_string + "\"",
2966 - 2987 +
2967 tooltip(title_string) then 2988 tooltip(title_string) then
2968 " title=\"" + title_string + "\"", 2989 " title=\"" + title_string + "\"",
2969 2990
@@ -3123,8 +3144,8 @@ define Maybe(String) @@ -3123,8 +3144,8 @@ define Maybe(String)
3123 button(_,_) then failure, 3144 button(_,_) then failure,
3124 button(_,_,_,_) then failure, 3145 button(_,_,_,_) then failure,
3125 submit(opts,_) then extract_id(opts), 3146 submit(opts,_) then extract_id(opts),
3126 - immediate_selector(_,_,_) then failure,  
3127 - immediate_selector(_,_,_,_) then failure, 3147 + immediate_selector(_,_,_,_) then failure,
  3148 + immediate_selector(_,_,_,_,_) then failure,
3128 }. 3149 }.
3129 3150
3130 to do Complete format_foreign_link 3151 to do Complete format_foreign_link
@@ -3169,9 +3190,9 @@ define Printable_tree @@ -3169,9 +3190,9 @@ define Printable_tree
3169 submit(options, text) then 3190 submit(options, text) then
3170 [ ], 3191 [ ],
3171 3192
3172 - immediate_selector(name,size,choices) then 3193 + immediate_selector(opt,name,size,choices) then
3173 [ ], 3194 [ ],
3174 - immediate_selector(name,size,choices,selected) then 3195 + immediate_selector(opt,name,size,choices,selected) then
3175 [ ], 3196 [ ],
3176 }. 3197 }.
3177 3198
@@ -3264,22 +3285,22 @@ define Printable_tree @@ -3264,22 +3285,22 @@ define Printable_tree
3264 } 3285 }
3265 ], 3286 ],
3266 3287
3267 - immediate_selector(name,size,choices) then 3288 + immediate_selector(options,name,size,choices) then
3268 [ if action is 3289 [ if action is
3269 { 3290 {
3270 url(u) then ["<select href=\"",u] 3291 url(u) then ["<select href=\"",u]
3271 javascript(s,h) then [s,"<select onchange=\"",h] 3292 javascript(s,h) then [s,"<select onchange=\"",h]
3272 }, 3293 },
3273 - "\" name=\"o",name,"\" size=\"",size,"\">", 3294 + "\" name=\"o",name,"\" size=\"",size,"\"", format_attrs(options), ">",
3274 format_choices(choices),"</select>" 3295 format_choices(choices),"</select>"
3275 ], 3296 ],
3276 - immediate_selector(name,size,choices,selected) then 3297 + immediate_selector(options,name,size,choices,selected) then
3277 [ if action is 3298 [ if action is
3278 { 3299 {
3279 url(u) then ["<select href=\"",u] 3300 url(u) then ["<select href=\"",u]
3280 javascript(s,h) then [s,"<select onchange=\"",h] 3301 javascript(s,h) then [s,"<select onchange=\"",h]
3281 }, 3302 },
3282 - "\" name=\"o",name,"\" size=\"",size,"\">", 3303 + "\" name=\"o",name,"\" size=\"",size,"\"", format_attrs(options), ">",
3283 format_choices(choices, selected),"</select>" 3304 format_choices(choices, selected),"</select>"
3284 ], 3305 ],
3285 }. 3306 }.
@@ -3317,8 +3338,8 @@ define Printable_tree @@ -3317,8 +3338,8 @@ define Printable_tree
3317 " onMouseOut=\"this.src='",url_off,"'\">", 3338 " onMouseOut=\"this.src='",url_off,"'\">",
3318 ], 3339 ],
3319 submit(opt, text) then [text], 3340 submit(opt, text) then [text],
3320 - immediate_selector(name,size,choices) then alert,  
3321 - immediate_selector(name,size,choices,selected) then alert, 3341 + immediate_selector(options,name,size,choices) then alert,
  3342 + immediate_selector(options,name,size,choices,selected) then alert,
3322 3343
3323 }, 3344 },
3324 "</a>"]. 3345 "</a>"].
@@ -3608,7 +3629,8 @@ define String @@ -3608,7 +3629,8 @@ define String
3608 line_through then "text-decoration:line-through", 3629 line_through then "text-decoration:line-through",
3609 nowrap then "white-space:nowrap", 3630 nowrap then "white-space:nowrap",
3610 class(class_name)then " class=\"" + class_name +"\"", 3631 class(class_name)then " class=\"" + class_name +"\"",
3611 - id(id_name) then " id=\"" + id_name +"\"" 3632 + id(id_name) then " id=\"" + id_name +"\"",
  3633 + style(style_string) then " style=\"" + style_string + "\"",
3612 tooltip(title) then " title=\"" + title +"\"" 3634 tooltip(title) then " title=\"" + title +"\""
3613 } + if t is [ ] then "" else ("; "+format(t)) 3635 } + if t is [ ] then "" else ("; "+format(t))
3614 }. 3636 }.
@@ -3858,9 +3880,9 @@ define Printable_tree @@ -3858,9 +3880,9 @@ define Printable_tree
3858 "<input type=\"password\" name=\"p",name,"\" id=\"",id,"\" size=\"",w,"\" value=\"",i,"\"",format_attrs(options)," />"], 3880 "<input type=\"password\" name=\"p",name,"\" id=\"",id,"\" size=\"",w,"\" value=\"",i,"\"",format_attrs(options)," />"],
3859 text_area(opts,label_text, id, n,i,w,h) then 3881 text_area(opts,label_text, id, n,i,w,h) then
3860 [ maybe_label(label_text, id), "<textarea ",format(opts)," id=\"",id,"\" name=\"o",n,"\" cols=\"",w,"\" rows=\"",h,"\">",i,"</textarea>"], 3882 [ maybe_label(label_text, id), "<textarea ",format(opts)," id=\"",id,"\" name=\"o",n,"\" cols=\"",w,"\" rows=\"",h,"\">",i,"</textarea>"],
3861 - file_upload(label, id, n, w) then 3883 + file_upload(options, label, id, n, w) then
3862 [ maybe_label(label, id), 3884 [ maybe_label(label, id),
3863 - "<input type=\"file\" id=\"",id,"\" size=\"",w,"\" name=\"o",n,"\" />"], 3885 + "<input type=\"file\" id=\"",id,"\" size=\"",w,"\" name=\"o",n,"\"",format_attrs(options)," />"],
3864 selector(opts, label, id, n,s,cs) then 3886 selector(opts, label, id, n,s,cs) then
3865 [ maybe_label(label, id), 3887 [ maybe_label(label, id),
3866 "<select id=\"",id,"\" name=\"o",n,"\" size=\"",s,"\" ",format_attrs(opts),">",format_choices(cs),"</select>"], 3888 "<select id=\"",id,"\" name=\"o",n,"\" size=\"",s,"\" ",format_attrs(opts),">",format_choices(cs),"</select>"],
@@ -3961,7 +3983,7 @@ define Bool @@ -3961,7 +3983,7 @@ define Bool
3961 text_input_ro(o,lt,l,n,i,w) then false, 3983 text_input_ro(o,lt,l,n,i,w) then false,
3962 password_input(o,lt,l,n,i,w) then false, 3984 password_input(o,lt,l,n,i,w) then false,
3963 text_area(o,lt,id,n,i,w,h) then false, 3985 text_area(o,lt,id,n,i,w,h) then false,
3964 - file_upload(l,i,n,w) then true, 3986 + file_upload(o,l,i,n,w) then true,
3965 selector(o,l,i,n,s,c) then false, 3987 selector(o,l,i,n,s,c) then false,
3966 selector(o,l,i,n,s,c,p) then false, 3988 selector(o,l,i,n,s,c,p) then false,
3967 selector_c(o,l,i,n,s,c) then false, 3989 selector_c(o,l,i,n,s,c) then false,
@@ -4039,7 +4061,7 @@ define Printable_tree @@ -4039,7 +4061,7 @@ define Printable_tree
4039 label(n) then ["<a name=\"",n,"\">"], 4061 label(n) then ["<a name=\"",n,"\">"],
4040 form(fn,attributs, c) then 4062 form(fn,attributs, c) then
4041 [ 4063 [
4042 - "<form name=\"f",fn,"\"", 4064 + "<form id=\"f",fn,"\"",
4043 format(cinfo,sn,ic_v,any_coreattrs(attributs),format_element,is_https), 4065 format(cinfo,sn,ic_v,any_coreattrs(attributs),format_element,is_https),
4044 " method=\"post\"", 4066 " method=\"post\"",
4045 enctype(c), 4067 enctype(c),
@@ -4048,14 +4070,15 @@ define Printable_tree @@ -4048,14 +4070,15 @@ define Printable_tree
4048 "://",common_name,":",http_port,"/\">", 4070 "://",common_name,":",http_port,"/\">",
4049 // action is set dynamically by 4071 // action is set dynamically by
4050 // the actioner using JavaScript 4072 // the actioner using JavaScript
4051 - format(cinfo,fn,sn,ic_v,c,is_https), 4073 + if fn is htmlId(id) then
  4074 + format(cinfo,id,sn,ic_v,c,is_https),
4052 "</form>" 4075 "</form>"
4053 ] 4076 ]
4054 form(fn,attributs, action_name, extra_ops, c) then 4077 form(fn,attributs, action_name, extra_ops, c) then
4055 with url = make_actioner_url(cinfo, same, same, 4078 with url = make_actioner_url(cinfo, same, same,
4056 sn, action_name, extra_ops, is_https), 4079 sn, action_name, extra_ops, is_https),
4057 [ 4080 [
4058 - "<form name=\"f",fn,"\"", 4081 + "<form id=\"f",fn,"\"",
4059 format(cinfo,sn,ic_v,any_coreattrs(attributs),format_element,is_https), 4082 format(cinfo,sn,ic_v,any_coreattrs(attributs),format_element,is_https),
4060 " method=\"post\"", 4083 " method=\"post\"",
4061 enctype(c), 4084 enctype(c),
@@ -4065,7 +4088,8 @@ define Printable_tree @@ -4065,7 +4088,8 @@ define Printable_tree
4065 // "://",common_name,":",http_port,"/\">", 4088 // "://",common_name,":",http_port,"/\">",
4066 // action is set dynamically by 4089 // action is set dynamically by
4067 // the actioner using JavaScript 4090 // the actioner using JavaScript
4068 - format(cinfo,fn,sn,ic_v,c,is_https), 4091 + if fn is htmlId(id) then
  4092 + format(cinfo,id,sn,ic_v,c,is_https),
4069 "</form>" 4093 "</form>"
4070 ] 4094 ]
4071 div(options, e) then 4095 div(options, e) then