Commit 4b855b699e299a668c4e317fbfda5b9b76ba8162

Authored by Cédric RICARD
1 parent 96101668

Paragraph tag can have an id and do no more contains only text, but also other tags.

calexium_lib/web/CXM_generic_form.anubis
1 -  
2 -  
3 -  
4 - *Project* The Anubis Project  
5 -  
6 - *Title*  
7 -  
8 - *Copyright* Copyright (c) Alain Prouté 2005.  
9 -  
10 -  
11 - *Author* Alain Prouté  
12 -  
13 -  
14 -  
15 - In this file we rationalize the construction of forms.  
16 -  
17 -  
18 -  
19 -read CXM_making_a_web_site.anubis  
20 -  
21 -  
22 -public type Mandatory: // used to mark fields as mandatory.  
23 - mandatory,  
24 - non_mandatory.  
25 -  
26 -public type Width:  
27 - small,  
28 - narrow,  
29 - wide,  
30 - custom(Int32).  
31 -  
32 -public type FormFieldWidth:  
33 - auto,  
34 - custom(Int32).  
35 -  
36 -  
37 -  
38 - Sorts of fields that you can put in a form:  
39 -  
40 -public type FormField:  
41 -  
42 - //--- title field ---------------------------------------------------------------------  
43 - title (String text),  
44 - title (Int32 text_size,  
45 - String text),  
46 - title_f (List(Text_Option) -> HTML_In_Form),  
47 -  
48 - //--- message field -------------------------------------------------------------------  
49 - message (Result(String,String) msg),  
50 - message_f (Result(List(Text_Option) -> HTML_In_Form,List(Text_Option) -> HTML_In_Form)),  
51 -  
52 - //--- text input field ----------------------------------------------------------------  
53 - input (String web_arg_name,  
54 - String tag,  
55 - Width width,  
56 - String init_value,  
57 - Mandatory mandatory),  
58 - input (String web_arg_name,  
59 - Width width,  
60 - String init_value),  
61 - input_f (String web_arg_name,  
62 - List(Text_Option) -> HTML_In_Form tag,  
63 - Width width,  
64 - String init_value,  
65 - Mandatory mandatory),  
66 -  
67 - //--- password input field ------------------------------------------------------------  
68 - password_input (String web_arg_name,  
69 - String tag,  
70 - Mandatory mandatory),  
71 - password_input_f (String web_arg_name,  
72 - List(Text_Option) -> HTML_In_Form tag,  
73 - Mandatory mandatory),  
74 -  
75 - //--- explanation field ---------------------------------------------------------------  
76 - explain (String text),  
77 - explain (String text,  
78 - FormFieldWidth width),  
79 - explain_f (List(Text_Option) -> HTML_In_Form),  
80 -  
81 - //--- selector field ------------------------------------------------------------------  
82 - selector (String web_arg_name,  
83 - String tag,  
84 - List(String) items,  
85 - Maybe(String) selected,  
86 - Mandatory mandatory),  
87 - selector_f (String web_arg_name,  
88 - List(Text_Option) -> HTML_In_Form,  
89 - List(String) items,  
90 - Maybe(String) selected,  
91 - Mandatory mandatory),  
92 - selector_c (String web_arg_name,  
93 - String tag,  
94 - List((String,String)) items,  
95 - Maybe(String) selected,  
96 - Mandatory mandatory),  
97 -  
98 -  
99 -  
100 - //--- checkbox field ------------------------------------------------------------------  
101 - checkbox (String web_arg_name,  
102 - String tag,  
103 - Bool checked,  
104 - Mandatory mandatory),  
105 - // the same one, but with the tag on the right of the checkbox  
106 - checkboxr (String web_arg_name,  
107 - String tag,  
108 - Bool checked,  
109 - Mandatory mandatory),  
110 - checkbox_f (String web_arg_name,  
111 - List(Text_Option) -> HTML_In_Form,  
112 - Bool checked,  
113 - Mandatory mandatory),  
114 -  
115 - //--- radio-button field --------------------------------------------------------------  
116 - radio_button (String web_arg_name,  
117 - String web_arg_value,  
118 - String tag,  
119 - Bool checked,  
120 - Mandatory mandatory),  
121 - // the same one, but with the tag on the right of the radio_button  
122 - radio_buttonr (String web_arg_name,  
123 - String web_arg_value,  
124 - String tag,  
125 - Bool checked,  
126 - Mandatory mandatory),  
127 -  
128 - //--- text area field -----------------------------------------------------------------  
129 - text_area (String web_arg_name,  
130 - String initial_text),  
131 - text_area (String web_arg_name,  
132 - String tag,  
133 - String initial_text),  
134 - text_area (String web_arg_name,  
135 - String tag,  
136 - String initial_text,  
137 - Int32 width,  
138 - Int32 height),  
139 -  
140 - //--- fields table --------------------------------------------------------------------  
141 - fields_table (String tag,  
142 - List(FormField) fields),  
143 -  
144 - //--- fields line ---------------------------------------------------------------------  
145 - fields_line (String tag,  
146 - List(FormField) fields),  
147 - fields_line (List(FormField) fields),  
148 -  
149 - //--- preview field -------------------------------------------------------------------  
150 - preview (String html_text),  
151 -  
152 - //--- submit button -------------------------------------------------------------------  
153 - submit (String action_name,  
154 - Maybe(String) label,  
155 - String button_text,  
156 - List((String,String)) extra_operands).  
157 -  
158 -  
159 - Convenience functions:  
160 -  
161 -public define FormField title(List(Text_Option) -> HTML_In_Form f) = title_f(f).  
162 -public define FormField  
163 - message(Result(List(Text_Option) -> HTML_In_Form,List(Text_Option) -> HTML_In_Form) f) = message_f(f).  
164 -public define FormField input(String web_arg_name,  
165 - List(Text_Option) -> HTML_In_Form tag,  
166 - Width width,  
167 - String init_value,  
168 - Mandatory mandatory)  
169 - = input_f(web_arg_name,tag,width,init_value,mandatory).  
170 -public define FormField password_input(String web_arg_name,  
171 - List(Text_Option) -> HTML_In_Form tag,  
172 - Mandatory mandatory)  
173 - = password_input_f(web_arg_name,tag,mandatory).  
174 -public define FormField explain(List(Text_Option) -> HTML_In_Form f) = explain_f(f).  
175 -public define FormField selector(String web_arg_name,  
176 - List(Text_Option) -> HTML_In_Form f,  
177 - List(String) items,  
178 - Maybe(String) selected,  
179 - Mandatory mandatory)  
180 - = selector_f(web_arg_name,f,items,selected,mandatory).  
181 -public define FormField checkbox(String web_arg_name,  
182 - List(Text_Option) -> HTML_In_Form f,  
183 - Bool checked,  
184 - Mandatory mandatory)  
185 - = checkbox_f(web_arg_name,f,checked,mandatory).  
186 -  
187 - Make the form itself with:  
188 -  
189 -public define HTML_Off_Form  
190 - generic_form  
191 - (  
192 - String form_name,  
193 - RGB background_color,  
194 - Int32 width,  
195 - List(FormField) fields  
196 - ).  
197 -  
198 -  
199 -  
200 - --- That's all for the public part ! --------------------------------------------------  
201 -  
202 -  
203 -define HTML_Row(HTML_In_Form)  
204 - format_form_field  
205 - (  
206 - FormField ff  
207 - ) =  
208 - with star = (Mandatory m) |-> (HTML_In_Form)text([color(rgb(255,0,0)),size(12)],  
209 - if m is  
210 - {  
211 - mandatory then "*",  
212 - non_mandatory then ""  
213 - }),  
214 - row(  
215 - if ff is  
216 - {  
217 - title(t) then (List(HTML_Cell(HTML_In_Form)))  
218 - [  
219 - cell([columns(3),h_center],text([size(16),bold,color(rgb(0,0,0))],t))  
220 - ],  
221 -  
222 - title(s,t) then (List(HTML_Cell(HTML_In_Form)))  
223 - [  
224 - cell([columns(3),h_center],text([size(s),bold,color(rgb(0,0,0))],t))  
225 - ],  
226 -  
227 - title_f(t) then (List(HTML_Cell(HTML_In_Form)))  
228 - [  
229 - cell([columns(3),h_center],t([size(16),bold,color(rgb(0,0,0))]))  
230 - ],  
231 -  
232 - message(r) then (List(HTML_Cell(HTML_In_Form))) if r is  
233 - {  
234 - error(msg) then [cell([columns(3),h_center],  
235 - text([size(10),color(rgb(240,0,0))],msg))]  
236 - ok(msg) then [cell([columns(3),h_center],  
237 - text([size(10),color(rgb(0,150,0))],msg))]  
238 - },  
239 -  
240 - message_f(r) then (List(HTML_Cell(HTML_In_Form))) if r is  
241 - {  
242 - error(msg) then [cell([columns(3),h_center],  
243 - msg([size(10),color(rgb(240,0,0))]))]  
244 - ok(msg) then [cell([columns(3),h_center],  
245 - msg([size(10),color(rgb(0,150,0))]))]  
246 - },  
247 -  
248 - input(wan,tag,w,init,mand) then (List(HTML_Cell(HTML_In_Form)))  
249 - [  
250 - cell([right ], text([size(10)],tag)),  
251 - cell([width(7) ], star(mand)),  
252 - cell([left ], text_input("","",wan,init,if w is  
253 - {  
254 - small then 10,  
255 - narrow then 30,  
256 - wide then 70,  
257 - custom(n) then n  
258 - }))  
259 - ],  
260 -  
261 - input(wan,w,init) then (List(HTML_Cell(HTML_In_Form)))  
262 - [  
263 - cell([left,columns(3) ], text_input("","",wan,init,if w is  
264 - {  
265 - small then 10,  
266 - narrow then 30,  
267 - wide then 70,  
268 - custom(n) then n  
269 - }))  
270 - ],  
271 -  
272 - input_f(wan,tag,w,init,mand) then (List(HTML_Cell(HTML_In_Form)))  
273 - [  
274 - cell([right ], tag([size(10)])),  
275 - cell([width(7) ], star(mand)),  
276 - cell([left ], text_input("","",wan,init,if w is  
277 - {  
278 - small then 15,  
279 - narrow then 30,  
280 - wide then 70,  
281 - custom(n) then n  
282 - }))  
283 - ],  
284 -  
285 - password_input(wan,tag,mand) then (List(HTML_Cell(HTML_In_Form)))  
286 - [  
287 - cell([right ], text([size(10)],tag)),  
288 - cell([width(7) ], star(mand)),  
289 - cell([left ], password_input("","",wan,30))  
290 - ],  
291 -  
292 - password_input_f(wan,tag,mand) then (List(HTML_Cell(HTML_In_Form)))  
293 - [  
294 - cell([right ], tag([size(10)])),  
295 - cell([width(7) ], star(mand)),  
296 - cell([left ], password_input("","",wan,30))  
297 - ],  
298 -  
299 - explain(t) then (List(HTML_Cell(HTML_In_Form)))  
300 - [  
301 - cell([columns(3),h_center],  
302 - table([nude],[row(cell([width(500)],  
303 - paragraph([/*justified,*/size(10),color(rgb(0,100,0))],t)))]))  
304 - ],  
305 -  
306 - explain(t,w) then (List(HTML_Cell(HTML_In_Form)))  
307 - [  
308 - cell([columns(3),h_center],  
309 - table([nude],[row(cell(  
310 - if w is  
311 - {  
312 - auto then [],  
313 - custom(i) then [width(i)]  
314 - },  
315 - paragraph([/*justified,*/size(10),color(rgb(0,100,0))],t)))]))  
316 - ],  
317 -  
318 - explain_f(t) then (List(HTML_Cell(HTML_In_Form)))  
319 - [  
320 - cell([columns(3),h_center],  
321 - table([nude],[row(cell([width(500)],  
322 - t([/*justified,*/size(10),color(rgb(0,100,0))])))]))  
323 - ],  
324 -  
325 - selector(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))  
326 - [  
327 - cell([right ], text([size(10)],tag)),  
328 - cell([width(7)], star(mand)),  
329 - cell([left ], if selected is  
330 - {  
331 - failure then selector(wan,1,items)  
332 - success(sel) then selector(wan,1,items,sel)  
333 - })  
334 - ],  
335 -  
336 - selector_f(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))  
337 - [  
338 - cell([right ], tag([size(10)])),  
339 - cell([width(7)], star(mand)),  
340 - cell([left ], if selected is  
341 - {  
342 - failure then selector(wan,1,items)  
343 - success(sel) then selector(wan,1,items,sel)  
344 - })  
345 - ],  
346 -  
347 - selector_c(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))  
348 - [  
349 - cell([right ], text([size(10)],tag)),  
350 - cell([width(7)], star(mand)),  
351 - cell([left ], if selected is  
352 - {  
353 - failure then selector_c(wan,1,items)  
354 - success(sel) then selector_c(wan,1,items,sel)  
355 - })  
356 - ],  
357 -  
358 - checkbox(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))  
359 - [  
360 - cell([right ], text([size(10)],tag)),  
361 - cell([width(7)], star(mand)),  
362 - cell([left ], check_box("","",wan,checked))  
363 - ],  
364 -  
365 - checkboxr(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))  
366 - [  
367 - cell([right ], check_box("","",wan,checked)),  
368 - cell([width(7)], star(mand)),  
369 - cell([left ], text([size(10)],tag))  
370 - ],  
371 -  
372 - checkbox_f(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))  
373 - [  
374 - cell([right ], tag([size(10)])),  
375 - cell([width(7)], star(mand)),  
376 - cell([left ], check_box("","",wan,checked))  
377 - ],  
378 -  
379 - radio_button(wan,wav,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))  
380 - [  
381 - cell([right ], text([size(10)],tag)),  
382 - cell([width(7)], star(mand)),  
383 - cell([left ], radio_button("","",wan,wav,checked))  
384 - ],  
385 -  
386 - radio_buttonr(wan,wav,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))  
387 - [  
388 - cell([right ], radio_button("","",wan,wav,checked)),  
389 - cell([width(7)], star(mand)),  
390 - cell([left ], text([size(10)],tag))  
391 - ],  
392 -  
393 - text_area(wan,tx) then (List(HTML_Cell(HTML_In_Form)))  
394 - [  
395 - cell([h_center,columns(3)],text_area([wrap_lines],wan,tx,75,10))  
396 - ],  
397 -  
398 - text_area(wan,tag,tx) then (List(HTML_Cell(HTML_In_Form)))  
399 - [  
400 - cell([right,top], text([size(10)],tag)),  
401 - cell([width(7)], text([],"")),  
402 - cell([h_center],text_area([wrap_lines],wan,tx,75,10))  
403 - ],  
404 -  
405 - text_area(wan,tag,tx,w,h) then (List(HTML_Cell(HTML_In_Form)))  
406 - [  
407 - cell([right,top], text([size(10)],tag)),  
408 - cell([width(7)], text([],"")),  
409 - cell([h_center],text_area([wrap_lines],wan,tx,w,h))  
410 - ],  
411 -  
412 - fields_table(tag,fields) then (List(HTML_Cell(HTML_In_Form)))  
413 - [  
414 - cell([right,top], text([size(10)],tag)),  
415 - cell([width(7)], text([],"")),  
416 - cell([left,top], table([],map((FormField ff) |-> format_form_field(ff),fields)))  
417 - ],  
418 -  
419 - fields_line(tag,fields) then (List(HTML_Cell(HTML_In_Form)))  
420 - [  
421 - cell([right,top], text([size(10)],tag)),  
422 - cell([width(7)], text([],"")),  
423 - cell([left,top], table([nude],[row([], //border(0,0,3,rgb(0,0,0))  
424 - map((FormField ff) |-> cell([top],table([nude],[format_form_field(ff)])),fields))]))  
425 - ],  
426 -  
427 - fields_line(fields) then (List(HTML_Cell(HTML_In_Form)))  
428 - [  
429 - cell([left,top,columns(3)], table([nude],[row([],  
430 - map((FormField ff) |-> cell([top],table([nude],[format_form_field(ff)])),fields))]))  
431 - ],  
432 -  
433 - preview(html_text) then (List(HTML_Cell(HTML_In_Form)))  
434 - [  
435 - cell([top,left,columns(3),background_color(rgb(255,255,255))],  
436 - table([border(0,8,0,rgb(0,0,0))],  
437 - [row(cell([left,top,height(200)],literal(html_text)))]))  
438 - ],  
439 -  
440 - submit(action_name,mb_label,button_text,extra_operands) then (List(HTML_Cell(HTML_In_Form)))  
441 - [  
442 - cell([columns(3),right],actioner(same,  
443 - if mb_label is  
444 - {  
445 - failure then same,  
446 - success(n) then same(n)  
447 - },  
448 - link(button_text),  
449 - action_name,  
450 - extra_operands))  
451 - ]  
452 - }).  
453 -  
454 -  
455 -  
456 -public define HTML_Off_Form  
457 - generic_form  
458 - (  
459 - String form_name,  
460 - RGB bg_color,  
461 - Int32 w,  
462 - List(FormField) fields  
463 - ) =  
464 - table([border(0,0,5,bg_color),percentage_width(100),  
465 - background_color(bg_color)],[row(cell([h_center],  
466 - form(form_name,[],table([border(0,2,0,bg_color)],  
467 - map(format_form_field,fields)))))]).  
468 -  
469 - 1 +
  2 +
  3 +
  4 + *Project* The Anubis Project
  5 +
  6 + *Title*
  7 +
  8 + *Copyright* Copyright (c) Alain Prouté 2005.
  9 +
  10 +
  11 + *Author* Alain Prouté
  12 +
  13 +
  14 +
  15 + In this file we rationalize the construction of forms.
  16 +
  17 +
  18 +
  19 +read CXM_making_a_web_site.anubis
  20 +
  21 +
  22 +public type Mandatory: // used to mark fields as mandatory.
  23 + mandatory,
  24 + non_mandatory.
  25 +
  26 +public type Width:
  27 + small,
  28 + narrow,
  29 + wide,
  30 + custom(Int32).
  31 +
  32 +public type FormFieldWidth:
  33 + auto,
  34 + custom(Int32).
  35 +
  36 +
  37 +
  38 + Sorts of fields that you can put in a form:
  39 +
  40 +public type FormField:
  41 +
  42 + //--- title field ---------------------------------------------------------------------
  43 + title (String text),
  44 + title (Int32 text_size,
  45 + String text),
  46 + title_f (List(Text_Option) -> HTML_In_Form),
  47 +
  48 + //--- message field -------------------------------------------------------------------
  49 + message (Result(String,String) msg),
  50 + message_f (Result(List(Text_Option) -> HTML_In_Form,List(Text_Option) -> HTML_In_Form)),
  51 +
  52 + //--- text input field ----------------------------------------------------------------
  53 + input (String web_arg_name,
  54 + String tag,
  55 + Width width,
  56 + String init_value,
  57 + Mandatory mandatory),
  58 + input (String web_arg_name,
  59 + Width width,
  60 + String init_value),
  61 + input_f (String web_arg_name,
  62 + List(Text_Option) -> HTML_In_Form tag,
  63 + Width width,
  64 + String init_value,
  65 + Mandatory mandatory),
  66 +
  67 + //--- password input field ------------------------------------------------------------
  68 + password_input (String web_arg_name,
  69 + String tag,
  70 + Mandatory mandatory),
  71 + password_input_f (String web_arg_name,
  72 + List(Text_Option) -> HTML_In_Form tag,
  73 + Mandatory mandatory),
  74 +
  75 + //--- explanation field ---------------------------------------------------------------
  76 + explain (String text),
  77 + explain (String text,
  78 + FormFieldWidth width),
  79 + explain_f (List(Text_Option) -> HTML_In_Form),
  80 +
  81 + //--- selector field ------------------------------------------------------------------
  82 + selector (String web_arg_name,
  83 + String tag,
  84 + List(String) items,
  85 + Maybe(String) selected,
  86 + Mandatory mandatory),
  87 + selector_f (String web_arg_name,
  88 + List(Text_Option) -> HTML_In_Form,
  89 + List(String) items,
  90 + Maybe(String) selected,
  91 + Mandatory mandatory),
  92 + selector_c (String web_arg_name,
  93 + String tag,
  94 + List((String,String)) items,
  95 + Maybe(String) selected,
  96 + Mandatory mandatory),
  97 +
  98 +
  99 +
  100 + //--- checkbox field ------------------------------------------------------------------
  101 + checkbox (String web_arg_name,
  102 + String tag,
  103 + Bool checked,
  104 + Mandatory mandatory),
  105 + // the same one, but with the tag on the right of the checkbox
  106 + checkboxr (String web_arg_name,
  107 + String tag,
  108 + Bool checked,
  109 + Mandatory mandatory),
  110 + checkbox_f (String web_arg_name,
  111 + List(Text_Option) -> HTML_In_Form,
  112 + Bool checked,
  113 + Mandatory mandatory),
  114 +
  115 + //--- radio-button field --------------------------------------------------------------
  116 + radio_button (String web_arg_name,
  117 + String web_arg_value,
  118 + String tag,
  119 + Bool checked,
  120 + Mandatory mandatory),
  121 + // the same one, but with the tag on the right of the radio_button
  122 + radio_buttonr (String web_arg_name,
  123 + String web_arg_value,
  124 + String tag,
  125 + Bool checked,
  126 + Mandatory mandatory),
  127 +
  128 + //--- text area field -----------------------------------------------------------------
  129 + text_area (String web_arg_name,
  130 + String initial_text),
  131 + text_area (String web_arg_name,
  132 + String tag,
  133 + String initial_text),
  134 + text_area (String web_arg_name,
  135 + String tag,
  136 + String initial_text,
  137 + Int32 width,
  138 + Int32 height),
  139 +
  140 + //--- fields table --------------------------------------------------------------------
  141 + fields_table (String tag,
  142 + List(FormField) fields),
  143 +
  144 + //--- fields line ---------------------------------------------------------------------
  145 + fields_line (String tag,
  146 + List(FormField) fields),
  147 + fields_line (List(FormField) fields),
  148 +
  149 + //--- preview field -------------------------------------------------------------------
  150 + preview (String html_text),
  151 +
  152 + //--- submit button -------------------------------------------------------------------
  153 + submit (String action_name,
  154 + Maybe(String) label,
  155 + String button_text,
  156 + List((String,String)) extra_operands).
  157 +
  158 +
  159 + Convenience functions:
  160 +
  161 +public define FormField title(List(Text_Option) -> HTML_In_Form f) = title_f(f).
  162 +public define FormField
  163 + message(Result(List(Text_Option) -> HTML_In_Form,List(Text_Option) -> HTML_In_Form) f) = message_f(f).
  164 +public define FormField input(String web_arg_name,
  165 + List(Text_Option) -> HTML_In_Form tag,
  166 + Width width,
  167 + String init_value,
  168 + Mandatory mandatory)
  169 + = input_f(web_arg_name,tag,width,init_value,mandatory).
  170 +public define FormField password_input(String web_arg_name,
  171 + List(Text_Option) -> HTML_In_Form tag,
  172 + Mandatory mandatory)
  173 + = password_input_f(web_arg_name,tag,mandatory).
  174 +public define FormField explain(List(Text_Option) -> HTML_In_Form f) = explain_f(f).
  175 +public define FormField selector(String web_arg_name,
  176 + List(Text_Option) -> HTML_In_Form f,
  177 + List(String) items,
  178 + Maybe(String) selected,
  179 + Mandatory mandatory)
  180 + = selector_f(web_arg_name,f,items,selected,mandatory).
  181 +public define FormField checkbox(String web_arg_name,
  182 + List(Text_Option) -> HTML_In_Form f,
  183 + Bool checked,
  184 + Mandatory mandatory)
  185 + = checkbox_f(web_arg_name,f,checked,mandatory).
  186 +
  187 + Make the form itself with:
  188 +
  189 +public define HTML_Off_Form
  190 + generic_form
  191 + (
  192 + String form_name,
  193 + RGB background_color,
  194 + Int32 width,
  195 + List(FormField) fields
  196 + ).
  197 +
  198 +
  199 +
  200 + --- That's all for the public part ! --------------------------------------------------
  201 +
  202 +
  203 +define HTML_Row(HTML_In_Form)
  204 + format_form_field
  205 + (
  206 + FormField ff
  207 + ) =
  208 + with star = (Mandatory m) |-> (HTML_In_Form)text([color(rgb(255,0,0)),size(12)],
  209 + if m is
  210 + {
  211 + mandatory then "*",
  212 + non_mandatory then ""
  213 + }),
  214 + row(
  215 + if ff is
  216 + {
  217 + title(t) then (List(HTML_Cell(HTML_In_Form)))
  218 + [
  219 + cell([columns(3),h_center],text([size(16),bold,color(rgb(0,0,0))],t))
  220 + ],
  221 +
  222 + title(s,t) then (List(HTML_Cell(HTML_In_Form)))
  223 + [
  224 + cell([columns(3),h_center],text([size(s),bold,color(rgb(0,0,0))],t))
  225 + ],
  226 +
  227 + title_f(t) then (List(HTML_Cell(HTML_In_Form)))
  228 + [
  229 + cell([columns(3),h_center],t([size(16),bold,color(rgb(0,0,0))]))
  230 + ],
  231 +
  232 + message(r) then (List(HTML_Cell(HTML_In_Form))) if r is
  233 + {
  234 + error(msg) then [cell([columns(3),h_center],
  235 + text([size(10),color(rgb(240,0,0))],msg))]
  236 + ok(msg) then [cell([columns(3),h_center],
  237 + text([size(10),color(rgb(0,150,0))],msg))]
  238 + },
  239 +
  240 + message_f(r) then (List(HTML_Cell(HTML_In_Form))) if r is
  241 + {
  242 + error(msg) then [cell([columns(3),h_center],
  243 + msg([size(10),color(rgb(240,0,0))]))]
  244 + ok(msg) then [cell([columns(3),h_center],
  245 + msg([size(10),color(rgb(0,150,0))]))]
  246 + },
  247 +
  248 + input(wan,tag,w,init,mand) then (List(HTML_Cell(HTML_In_Form)))
  249 + [
  250 + cell([right ], text([size(10)],tag)),
  251 + cell([width(7) ], star(mand)),
  252 + cell([left ], text_input("","",wan,init,if w is
  253 + {
  254 + small then 10,
  255 + narrow then 30,
  256 + wide then 70,
  257 + custom(n) then n
  258 + }))
  259 + ],
  260 +
  261 + input(wan,w,init) then (List(HTML_Cell(HTML_In_Form)))
  262 + [
  263 + cell([left,columns(3) ], text_input("","",wan,init,if w is
  264 + {
  265 + small then 10,
  266 + narrow then 30,
  267 + wide then 70,
  268 + custom(n) then n
  269 + }))
  270 + ],
  271 +
  272 + input_f(wan,tag,w,init,mand) then (List(HTML_Cell(HTML_In_Form)))
  273 + [
  274 + cell([right ], tag([size(10)])),
  275 + cell([width(7) ], star(mand)),
  276 + cell([left ], text_input("","",wan,init,if w is
  277 + {
  278 + small then 15,
  279 + narrow then 30,
  280 + wide then 70,
  281 + custom(n) then n
  282 + }))
  283 + ],
  284 +
  285 + password_input(wan,tag,mand) then (List(HTML_Cell(HTML_In_Form)))
  286 + [
  287 + cell([right ], text([size(10)],tag)),
  288 + cell([width(7) ], star(mand)),
  289 + cell([left ], password_input("","",wan,30))
  290 + ],
  291 +
  292 + password_input_f(wan,tag,mand) then (List(HTML_Cell(HTML_In_Form)))
  293 + [
  294 + cell([right ], tag([size(10)])),
  295 + cell([width(7) ], star(mand)),
  296 + cell([left ], password_input("","",wan,30))
  297 + ],
  298 +
  299 + explain(t) then (List(HTML_Cell(HTML_In_Form)))
  300 + [
  301 + cell([columns(3),h_center],
  302 + table([nude],[row(cell([width(500)],
  303 + paragraph([/*justified,*/size(10),color(rgb(0,100,0))],literal(t))))]))
  304 + ],
  305 +
  306 + explain(t,w) then (List(HTML_Cell(HTML_In_Form)))
  307 + [
  308 + cell([columns(3),h_center],
  309 + table([nude],[row(cell(
  310 + if w is
  311 + {
  312 + auto then [],
  313 + custom(i) then [width(i)]
  314 + },
  315 + paragraph([/*justified,*/size(10),color(rgb(0,100,0))], literal(t))))]))
  316 + ],
  317 +
  318 + explain_f(t) then (List(HTML_Cell(HTML_In_Form)))
  319 + [
  320 + cell([columns(3),h_center],
  321 + table([nude],[row(cell([width(500)],
  322 + t([/*justified,*/size(10),color(rgb(0,100,0))])))]))
  323 + ],
  324 +
  325 + selector(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))
  326 + [
  327 + cell([right ], text([size(10)],tag)),
  328 + cell([width(7)], star(mand)),
  329 + cell([left ], if selected is
  330 + {
  331 + failure then selector(wan,1,items)
  332 + success(sel) then selector(wan,1,items,sel)
  333 + })
  334 + ],
  335 +
  336 + selector_f(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))
  337 + [
  338 + cell([right ], tag([size(10)])),
  339 + cell([width(7)], star(mand)),
  340 + cell([left ], if selected is
  341 + {
  342 + failure then selector(wan,1,items)
  343 + success(sel) then selector(wan,1,items,sel)
  344 + })
  345 + ],
  346 +
  347 + selector_c(wan,tag,items,selected,mand) then (List(HTML_Cell(HTML_In_Form)))
  348 + [
  349 + cell([right ], text([size(10)],tag)),
  350 + cell([width(7)], star(mand)),
  351 + cell([left ], if selected is
  352 + {
  353 + failure then selector_c(wan,1,items)
  354 + success(sel) then selector_c(wan,1,items,sel)
  355 + })
  356 + ],
  357 +
  358 + checkbox(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))
  359 + [
  360 + cell([right ], text([size(10)],tag)),
  361 + cell([width(7)], star(mand)),
  362 + cell([left ], check_box("","",wan,checked))
  363 + ],
  364 +
  365 + checkboxr(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))
  366 + [
  367 + cell([right ], check_box("","",wan,checked)),
  368 + cell([width(7)], star(mand)),
  369 + cell([left ], text([size(10)],tag))
  370 + ],
  371 +
  372 + checkbox_f(wan,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))
  373 + [
  374 + cell([right ], tag([size(10)])),
  375 + cell([width(7)], star(mand)),
  376 + cell([left ], check_box("","",wan,checked))
  377 + ],
  378 +
  379 + radio_button(wan,wav,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))
  380 + [
  381 + cell([right ], text([size(10)],tag)),
  382 + cell([width(7)], star(mand)),
  383 + cell([left ], radio_button("","",wan,wav,checked))
  384 + ],
  385 +
  386 + radio_buttonr(wan,wav,tag,checked,mand) then (List(HTML_Cell(HTML_In_Form)))
  387 + [
  388 + cell([right ], radio_button("","",wan,wav,checked)),
  389 + cell([width(7)], star(mand)),
  390 + cell([left ], text([size(10)],tag))
  391 + ],
  392 +
  393 + text_area(wan,tx) then (List(HTML_Cell(HTML_In_Form)))
  394 + [
  395 + cell([h_center,columns(3)],text_area([wrap_lines],wan,tx,75,10))
  396 + ],
  397 +
  398 + text_area(wan,tag,tx) then (List(HTML_Cell(HTML_In_Form)))
  399 + [
  400 + cell([right,top], text([size(10)],tag)),
  401 + cell([width(7)], text([],"")),
  402 + cell([h_center],text_area([wrap_lines],wan,tx,75,10))
  403 + ],
  404 +
  405 + text_area(wan,tag,tx,w,h) then (List(HTML_Cell(HTML_In_Form)))
  406 + [
  407 + cell([right,top], text([size(10)],tag)),
  408 + cell([width(7)], text([],"")),
  409 + cell([h_center],text_area([wrap_lines],wan,tx,w,h))
  410 + ],
  411 +
  412 + fields_table(tag,fields) then (List(HTML_Cell(HTML_In_Form)))
  413 + [
  414 + cell([right,top], text([size(10)],tag)),
  415 + cell([width(7)], text([],"")),
  416 + cell([left,top], table([],map((FormField ff) |-> format_form_field(ff),fields)))
  417 + ],
  418 +
  419 + fields_line(tag,fields) then (List(HTML_Cell(HTML_In_Form)))
  420 + [
  421 + cell([right,top], text([size(10)],tag)),
  422 + cell([width(7)], text([],"")),
  423 + cell([left,top], table([nude],[row([], //border(0,0,3,rgb(0,0,0))
  424 + map((FormField ff) |-> cell([top],table([nude],[format_form_field(ff)])),fields))]))
  425 + ],
  426 +
  427 + fields_line(fields) then (List(HTML_Cell(HTML_In_Form)))
  428 + [
  429 + cell([left,top,columns(3)], table([nude],[row([],
  430 + map((FormField ff) |-> cell([top],table([nude],[format_form_field(ff)])),fields))]))
  431 + ],
  432 +
  433 + preview(html_text) then (List(HTML_Cell(HTML_In_Form)))
  434 + [
  435 + cell([top,left,columns(3),background_color(rgb(255,255,255))],
  436 + table([border(0,8,0,rgb(0,0,0))],
  437 + [row(cell([left,top,height(200)],literal(html_text)))]))
  438 + ],
  439 +
  440 + submit(action_name,mb_label,button_text,extra_operands) then (List(HTML_Cell(HTML_In_Form)))
  441 + [
  442 + cell([columns(3),right],actioner(same,
  443 + if mb_label is
  444 + {
  445 + failure then same,
  446 + success(n) then same(n)
  447 + },
  448 + link(button_text),
  449 + action_name,
  450 + extra_operands))
  451 + ]
  452 + }).
  453 +
  454 +
  455 +
  456 +public define HTML_Off_Form
  457 + generic_form
  458 + (
  459 + String form_name,
  460 + RGB bg_color,
  461 + Int32 w,
  462 + List(FormField) fields
  463 + ) =
  464 + table([border(0,0,5,bg_color),percentage_width(100),
  465 + background_color(bg_color)],[row(cell([h_center],
  466 + form(form_name,[],table([border(0,2,0,bg_color)],
  467 + map(format_form_field,fields)))))]).
  468 +
  469 +
calexium_lib/web/CXM_making_a_web_site.anubis
@@ -644,7 +644,8 @@ public type Text_Option: @@ -644,7 +644,8 @@ public type Text_Option:
644 justified, // justified on both sides 644 justified, // justified on both sides
645 line_through, 645 line_through,
646 nowrap, 646 nowrap,
647 - class(String). //CSS class 647 + class(String), //CSS class
  648 + id(String).
648 649
649 A list of 'Text_Option' must be given with each text you want to put in your page. 650 A list of 'Text_Option' must be given with each text you want to put in your page.
650 651
@@ -863,7 +864,7 @@ public type HTML_In_Form: @@ -863,7 +864,7 @@ public type HTML_In_Form:
863 sequence (List(HTML_In_Form) items), 864 sequence (List(HTML_In_Form) items),
864 text (List(Text_Option), String the_text), 865 text (List(Text_Option), String the_text),
865 preformated (List(Text_Option), String), 866 preformated (List(Text_Option), String),
866 - paragraph (List(Text_Option), String the_text), 867 + paragraph (List(Text_Option), HTML_In_Form content),
867 image (String url), 868 image (String url),
868 image (String url, Int32 width, Int32 height), 869 image (String url, Int32 width, Int32 height),
869 table (List(Table_Option), HTML_Header_Row(HTML_In_Form), List(HTML_Row(HTML_In_Form))), 870 table (List(Table_Option), HTML_Header_Row(HTML_In_Form), List(HTML_Row(HTML_In_Form))),
@@ -996,7 +997,7 @@ public type HTML_Off_Form: @@ -996,7 +997,7 @@ public type HTML_Off_Form:
996 sequence (List(HTML_Off_Form) items), 997 sequence (List(HTML_Off_Form) items),
997 text (List(Text_Option), String the_text), 998 text (List(Text_Option), String the_text),
998 preformated (List(Text_Option), String), 999 preformated (List(Text_Option), String),
999 - paragraph (List(Text_Option), String the_text), 1000 + paragraph (List(Text_Option), HTML_Off_Form content),
1000 image (String url), 1001 image (String url),
1001 image (String url, Int32 width, Int32 height), 1002 image (String url, Int32 width, Int32 height),
1002 table (List(Table_Option), HTML_Header_Row(HTML_Off_Form), List(HTML_Row(HTML_Off_Form))), 1003 table (List(Table_Option), HTML_Header_Row(HTML_Off_Form), List(HTML_Row(HTML_Off_Form))),
@@ -2218,7 +2219,7 @@ public define One @@ -2218,7 +2219,7 @@ public define One
2218 type HTML_Any($T): 2219 type HTML_Any($T):
2219 any_text (List(Text_Option), String the_text), 2220 any_text (List(Text_Option), String the_text),
2220 any_preformated (List(Text_Option), String), 2221 any_preformated (List(Text_Option), String),
2221 - any_paragraph (List(Text_Option), String the_text), 2222 + any_paragraph (List(Text_Option), $T content),
2222 any_image (String url), 2223 any_image (String url),
2223 any_image (String url, Int32 width, Int32 height), 2224 any_image (String url, Int32 width, Int32 height),
2224 any_table (List(Table_Option), HTML_Header_Row($T), List(HTML_Row($T))), 2225 any_table (List(Table_Option), HTML_Header_Row($T), List(HTML_Row($T))),
@@ -3225,7 +3226,8 @@ define String @@ -3225,7 +3226,8 @@ define String
3225 justified then "text-align:justify", 3226 justified then "text-align:justify",
3226 line_through then "text-decoration:line-through", 3227 line_through then "text-decoration:line-through",
3227 nowrap then "white-space:nowrap", 3228 nowrap then "white-space:nowrap",
3228 - class(class_name)then " class=\"" +class_name +"\"" 3229 + class(class_name)then " class=\"" +class_name +"\"",
  3230 + id(id_name) then " id=\"" +id_name +"\""
3229 } + if t is [ ] then "" else ("; "+format(t)) 3231 } + if t is [ ] then "" else ("; "+format(t))
3230 }. 3232 }.
3231 3233
@@ -3406,8 +3408,8 @@ define Printable_tree @@ -3406,8 +3408,8 @@ define Printable_tree
3406 any_preformated(opts,s) then 3408 any_preformated(opts,s) then
3407 ["<span ", format_text_options(opts), "><pre>",s,"</pre></span>"], 3409 ["<span ", format_text_options(opts), "><pre>",s,"</pre></span>"],
3408 //["<pre>",s,"</pre>"], 3410 //["<pre>",s,"</pre>"],
3409 - any_paragraph(opts,t) then  
3410 - ["<p ", format_text_options(opts), ">",t,"</p>\n"], 3411 + any_paragraph(opts,e) then
  3412 + ["<p ", format_text_options(opts), ">",format_element(e),"</p>\n"],
3411 any_image(url) then 3413 any_image(url) then
3412 ["<img alt=\"",url,"\" src=\"",url,"\">"], 3414 ["<img alt=\"",url,"\" src=\"",url,"\">"],
3413 any_image(url,w,h) then 3415 any_image(url,w,h) then