Commit d9e8ff9065a2ab0d019de4632ee1a52387d92641
1 parent
8667334b
add alternative "empty" for HTML_Row
add helper for HTML "a" with list of (HTML_Off_Form)
Showing
2 changed files
with
58 additions
and
44 deletions
Show diff stats
web/CXM_making_a_web_site.anubis
| @@ -488,7 +488,7 @@ define WEB_Session -> String // the function constructed returns the name of | @@ -488,7 +488,7 @@ define WEB_Session -> String // the function constructed returns the name of | ||
| 488 | session_name = s_var.session_id, | 488 | session_name = s_var.session_id, |
| 489 | //println("make_save_state_function " + state_directory+"/s"+state_name); | 489 | //println("make_save_state_function " + state_directory+"/s"+state_name); |
| 490 | if save(to_be_saved,state_directory+"/"+session_name) is ok then | 490 | if save(to_be_saved,state_directory+"/"+session_name) is ok then |
| 491 | - logger(logInfo, "----- session ["+session_name+"] saved"+dump_WEB_Session_Fields(*s_var.fields)); | 491 | + //logger(logInfo, "----- session ["+session_name+"] saved"+dump_WEB_Session_Fields(*s_var.fields)); |
| 492 | session_name | 492 | session_name |
| 493 | else | 493 | else |
| 494 | logger(logError, ("Cannot create session file in '"+state_directory+"'.\n")); | 494 | logger(logError, ("Cannot create session file in '"+state_directory+"'.\n")); |
| @@ -1556,6 +1556,7 @@ public define HTML_Off_Form a(List(CoreAttrs) attrs, A_href _href, A_target _tar | @@ -1556,6 +1556,7 @@ public define HTML_Off_Form a(List(CoreAttrs) attrs, A_href _href, A_target _tar | ||
| 1556 | public define HTML_Off_Form a(CoreAttrs attr, A_href _href, A_target _target, HTML_Off_Form content) = a([attr], _href, _target, [content]). | 1556 | public define HTML_Off_Form a(CoreAttrs attr, A_href _href, A_target _target, HTML_Off_Form content) = a([attr], _href, _target, [content]). |
| 1557 | public define HTML_Off_Form a(A_href _href, A_target _target, HTML_Off_Form content) = a([], _href, _target, [content]). | 1557 | public define HTML_Off_Form a(A_href _href, A_target _target, HTML_Off_Form content) = a([], _href, _target, [content]). |
| 1558 | public define HTML_Off_Form a(A_href _href, A_target _target, List(HTML_Off_Form) content) = a([], _href, _target, content). | 1558 | public define HTML_Off_Form a(A_href _href, A_target _target, List(HTML_Off_Form) content) = a([], _href, _target, content). |
| 1559 | +public define HTML_Off_Form a(CoreAttrs attr, A_href _href, A_target _target, List(HTML_Off_Form) content) = a([attr], _href, _target, content). | ||
| 1559 | 1560 | ||
| 1560 | // <article> | 1561 | // <article> |
| 1561 | public define HTML_Off_Form article(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("article", attrs, content). | 1562 | public define HTML_Off_Form article(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("article", attrs, content). |
| @@ -3295,10 +3296,10 @@ define WEB_Page_Renderer | @@ -3295,10 +3296,10 @@ define WEB_Page_Renderer | ||
| 3295 | default_page_renderer, | 3296 | default_page_renderer, |
| 3296 | [h . t] then | 3297 | [h . t] then |
| 3297 | if h.name = renderer_name then | 3298 | if h.name = renderer_name then |
| 3298 | - println("renderer_name ["+renderer_name+"] found"); | 3299 | + //println("renderer_name ["+renderer_name+"] found"); |
| 3299 | h | 3300 | h |
| 3300 | else | 3301 | else |
| 3301 | - println("renderer_name "+renderer_name+" not matching"); | 3302 | + //println("renderer_name "+renderer_name+" not matching"); |
| 3302 | get_page_renderer(renderer_name, t, logger) | 3303 | get_page_renderer(renderer_name, t, logger) |
| 3303 | } | 3304 | } |
| 3304 | . | 3305 | . |
| @@ -3363,7 +3364,7 @@ define (Maybe(WEB_Session), HTTP_Answer) | @@ -3363,7 +3364,7 @@ define (Maybe(WEB_Session), HTTP_Answer) | ||
| 3363 | success(new_controller) then apply_controller_action(new_controller, plugins, controllers, _current_page_renderer, page_renderers, cinfo, new_session, failure, initial_session, logger), | 3364 | success(new_controller) then apply_controller_action(new_controller, plugins, controllers, _current_page_renderer, page_renderers, cinfo, new_session, failure, initial_session, logger), |
| 3364 | }, | 3365 | }, |
| 3365 | success(action_name) then | 3366 | success(action_name) then |
| 3366 | - logger(logInfo, "ACTION_NAME ["+action_name+"] from IP "+get_String(_session.fields, "IP", "")); | 3367 | + //logger(logInfo, "ACTION_NAME ["+action_name+"] from IP "+get_String(_session.fields, "IP", "")); |
| 3367 | if apply_action(_session, action_name, *controller.controller_actions) is | 3368 | if apply_action(_session, action_name, *controller.controller_actions) is |
| 3368 | { | 3369 | { |
| 3369 | http_answer(session, answer) then | 3370 | http_answer(session, answer) then |
| @@ -3503,7 +3504,7 @@ public define Web_Site | @@ -3503,7 +3504,7 @@ public define Web_Site | ||
| 3503 | Bool is_https) |-> | 3504 | Bool is_https) |-> |
| 3504 | //(Printable_tree) | 3505 | //(Printable_tree) |
| 3505 | logger(logTrace,"host_name "+host_name); | 3506 | logger(logTrace,"host_name "+host_name); |
| 3506 | - logger(logTrace,dump_http_info(http_info)); | 3507 | + logger(logTrace, dump_http_info(http_info)); |
| 3507 | logger(logTrace, dump_web_arg_values(_lwa)); | 3508 | logger(logTrace, dump_web_arg_values(_lwa)); |
| 3508 | with cinfo = info(host_name, http_port, https_port, site_directory, secret), | 3509 | with cinfo = info(host_name, http_port, https_port, site_directory, secret), |
| 3509 | 3510 | ||
| @@ -3518,12 +3519,12 @@ public define Web_Site | @@ -3518,12 +3519,12 @@ public define Web_Site | ||
| 3518 | logger(logInfo, "previous out_of_date"); | 3519 | logger(logInfo, "previous out_of_date"); |
| 3519 | //expired_session(previous_session, http_info, var(_lwa), is_https), | 3520 | //expired_session(previous_session, http_info, var(_lwa), is_https), |
| 3520 | since previous_session is web_session(id, lang, entries, previous, _, draw), | 3521 | since previous_session is web_session(id, lang, entries, previous, _, draw), |
| 3521 | - replace_String(entries, "IP", get_String(_lwa, "x-forwarded-for", ip_addr_to_string(http_info.ip_address))); | 3522 | + replace_String(entries, "IP", http_header_value(http_info.http_headers, "x-forwarded-for", ip_addr_to_string(http_info.ip_address))); |
| 3522 | web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous, draw) | 3523 | web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous, draw) |
| 3523 | 3524 | ||
| 3524 | still_valid(previous_session) then | 3525 | still_valid(previous_session) then |
| 3525 | since previous_session is web_session(id, lang, entries, previous, _, draw), | 3526 | since previous_session is web_session(id, lang, entries, previous, _, draw), |
| 3526 | - replace_String(entries, "IP", get_String(_lwa, "x-forwarded-for", ip_addr_to_string(http_info.ip_address))); | 3527 | + replace_String(entries, "IP", http_header_value(http_info.http_headers, "x-forwarded-for", ip_addr_to_string(http_info.ip_address))); |
| 3527 | web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous, draw) | 3528 | web_session(id, lang, entries, web_request(http_info, var(_lwa), is_https), previous, draw) |
| 3528 | }, | 3529 | }, |
| 3529 | 3530 | ||
| @@ -4818,20 +4819,24 @@ define Printable_tree | @@ -4818,20 +4819,24 @@ define Printable_tree | ||
| 4818 | Formating the rows in a table. | 4819 | Formating the rows in a table. |
| 4819 | 4820 | ||
| 4820 | define Printable_tree | 4821 | define Printable_tree |
| 4821 | - format | ||
| 4822 | - ( | ||
| 4823 | - List(HTML_Row($T)) rows, | ||
| 4824 | - $T -> Printable_tree format_element, | ||
| 4825 | - ) = | ||
| 4826 | - if rows is | ||
| 4827 | - { | ||
| 4828 | - [ ] then [ ], | ||
| 4829 | - [h . t] then if h is row(options,cells) then | ||
| 4830 | - ["<tr",format(reverse(options)),">", | ||
| 4831 | - format(cells,format_element), | ||
| 4832 | - "</tr>\n" | ||
| 4833 | - . format(t,format_element)] | ||
| 4834 | - }. | 4822 | + format |
| 4823 | + ( | ||
| 4824 | + List(HTML_Row($T)) rows, | ||
| 4825 | + $T -> Printable_tree format_element, | ||
| 4826 | + )= | ||
| 4827 | + if rows is | ||
| 4828 | + { | ||
| 4829 | + [ ] then [ ], | ||
| 4830 | + [h . t] then | ||
| 4831 | + if h is | ||
| 4832 | + { | ||
| 4833 | + empty then format(t, format_element), | ||
| 4834 | + row(options, cells) then | ||
| 4835 | + ["<tr",format(reverse(options)),">", format(cells, format_element), "</tr>\n" | ||
| 4836 | + . format(t, format_element)] | ||
| 4837 | + } | ||
| 4838 | + } | ||
| 4839 | +. | ||
| 4835 | 4840 | ||
| 4836 | define Printable_tree | 4841 | define Printable_tree |
| 4837 | format | 4842 | format |
| @@ -4883,13 +4888,15 @@ define Printable_tree | @@ -4883,13 +4888,15 @@ define Printable_tree | ||
| 4883 | }. | 4888 | }. |
| 4884 | 4889 | ||
| 4885 | define Printable_tree | 4890 | define Printable_tree |
| 4886 | - format | ||
| 4887 | - ( | ||
| 4888 | - List(TextAreaOption) l | ||
| 4889 | - ) = | ||
| 4890 | - if member(l,wrap_lines) | ||
| 4891 | - then format1(l) | ||
| 4892 | - else [" wrap=\"off\" " . format1(l)]. | 4891 | + format |
| 4892 | + ( | ||
| 4893 | + List(TextAreaOption) l | ||
| 4894 | + )= | ||
| 4895 | + if member(l, wrap_lines) then | ||
| 4896 | + format1(l) | ||
| 4897 | + else | ||
| 4898 | + [" wrap=\"off\" " . format1(l)] | ||
| 4899 | +. | ||
| 4893 | 4900 | ||
| 4894 | 4901 | ||
| 4895 | *** [5.7] Formating elements which may be put anywhere. | 4902 | *** [5.7] Formating elements which may be put anywhere. |
| @@ -5544,18 +5551,24 @@ define Bool | @@ -5544,18 +5551,24 @@ define Bool | ||
| 5544 | ( | 5551 | ( |
| 5545 | HTML_Row(HTML_In_Form) row | 5552 | HTML_Row(HTML_In_Form) row |
| 5546 | ) = | 5553 | ) = |
| 5547 | - mapor(contains_an_upload, | ||
| 5548 | - map(content,cells(row))). | 5554 | + if row is |
| 5555 | + { | ||
| 5556 | + empty then false, | ||
| 5557 | + row(_, cells) then | ||
| 5558 | + mapor(contains_an_upload, | ||
| 5559 | + map(content, cells)) | ||
| 5560 | + } | ||
| 5561 | +. | ||
| 5549 | 5562 | ||
| 5550 | define Bool | 5563 | define Bool |
| 5551 | - contains_an_upload | ||
| 5552 | - ( | ||
| 5553 | - HTML_Footer_Row(HTML_In_Form) row | ||
| 5554 | - ) = | 5564 | + contains_an_upload |
| 5565 | + ( | ||
| 5566 | + HTML_Footer_Row(HTML_In_Form) row | ||
| 5567 | + )= | ||
| 5555 | if row is | 5568 | if row is |
| 5556 | { | 5569 | { |
| 5557 | - empty then false, | ||
| 5558 | - footer_row(_, cells) then | 5570 | + empty then false, |
| 5571 | + footer_row(_, cells) then | ||
| 5559 | mapor(contains_an_upload, | 5572 | mapor(contains_an_upload, |
| 5560 | map(content,cells)) | 5573 | map(content,cells)) |
| 5561 | }. | 5574 | }. |
web/types/making_a_web_site.anubis
| @@ -110,15 +110,15 @@ public type HtmlEvents: | @@ -110,15 +110,15 @@ public type HtmlEvents: | ||
| 110 | oncut, //HTML5 Fires when the user cuts the content of an element | 110 | oncut, //HTML5 Fires when the user cuts the content of an element |
| 111 | onpaste, //HTML5 Fires when the user pastes some content in an element | 111 | onpaste, //HTML5 Fires when the user pastes some content in an element |
| 112 | //Media Events | 112 | //Media Events |
| 113 | - onabort, //HTML5 Script to be run on abort | ||
| 114 | - oncanplay, //HTML5 Script to be run when a file is ready to start playing (when it has buffered enough to begin) | 113 | + onabort, //HTML5 Script to be run on abort |
| 114 | + oncanplay, //HTML5 Script to be run when a file is ready to start playing (when it has buffered enough to begin) | ||
| 115 | oncanplaythrough, //HTML5 Script to be run when a file can be played all the way to the end without pausing for buffering | 115 | oncanplaythrough, //HTML5 Script to be run when a file can be played all the way to the end without pausing for buffering |
| 116 | - oncuechange, //HTML5 Script to be run when the cue changes in a <track> element | 116 | + oncuechange, //HTML5 Script to be run when the cue changes in a <track> element |
| 117 | ondurationchange, //HTML5 Script to be run when the length of the media changes | 117 | ondurationchange, //HTML5 Script to be run when the length of the media changes |
| 118 | - onemptied, //HTML5 Script to be run when something bad happens and the file is suddenly unavailable (like unexpectedly disconnects) | ||
| 119 | - onended, //HTML5 Script to be run when the media has reach the end (a useful event for messages like "thanks for listening") | ||
| 120 | - onerror, //HTML5 Script to be run when an error occurs when the file is being loaded | ||
| 121 | - onloadeddata, //HTML5 Script to be run when media data is loaded | 118 | + onemptied, //HTML5 Script to be run when something bad happens and the file is suddenly unavailable (like unexpectedly disconnects) |
| 119 | + onended, //HTML5 Script to be run when the media has reach the end (a useful event for messages like "thanks for listening") | ||
| 120 | + onerror, //HTML5 Script to be run when an error occurs when the file is being loaded | ||
| 121 | + onloadeddata, //HTML5 Script to be run when media data is loaded | ||
| 122 | onloadedmetadata, //HTML5 Script to be run when meta data (like dimensions and duration) are loaded | 122 | onloadedmetadata, //HTML5 Script to be run when meta data (like dimensions and duration) are loaded |
| 123 | onloadstart, //HTML5 Script to be run just as the file begins to load before anything is actually loaded | 123 | onloadstart, //HTML5 Script to be run just as the file begins to load before anything is actually loaded |
| 124 | onpause, //HTML5 Script to be run when the media is paused either by the user or programmatically | 124 | onpause, //HTML5 Script to be run when the media is paused either by the user or programmatically |
| @@ -320,7 +320,8 @@ public type HTML_Footer_Row($T): | @@ -320,7 +320,8 @@ public type HTML_Footer_Row($T): | ||
| 320 | footer_row(List(Cell_Option) options, List(HTML_Cell($T)) cells). | 320 | footer_row(List(Cell_Option) options, List(HTML_Cell($T)) cells). |
| 321 | 321 | ||
| 322 | public type HTML_Row($T): | 322 | public type HTML_Row($T): |
| 323 | - row(List(Cell_Option) options, List(HTML_Cell($T)) cells). | 323 | + empty, |
| 324 | + row(List(Cell_Option) options, List(HTML_Cell($T)) cells). | ||
| 324 | 325 | ||
| 325 | public type HTML_Header_Cell($T): | 326 | public type HTML_Header_Cell($T): |
| 326 | header_cell(List(Cell_Option) options, $T content). | 327 | header_cell(List(Cell_Option) options, $T content). |