Commit c52d284587dad39927b87e57cc1547a8bf6927e3

Authored by totoro
1 parent cd4c85fc

+ Add on_change function on immediate selector.

+ Merge  all immediate_selector together and create some immediate_selector function with less argument. These functions call the master function with default value for the arguments which are removed from the call
+ Add HTML_partial_content to HTTP_answer. This allow to send small part of html without body and header. Need for Ajax call
+ Change the HTML DOCTYPE from old xhtml to html 5
+ Add autoOpen argument on jq_dialog_create
web/CXM_making_a_web_site.anubis
... ... @@ -11,7 +11,7 @@
11 11 *Authors* Alain Prouté
12 12 David René
13 13 Jérémy Larrieu
14   - Julien Vernueil
  14 + Julien Verneuil
15 15  
16 16  
17 17 *Revised* May 2015
... ... @@ -956,10 +956,35 @@ public type Actioner_Aspect:
956 956 button (String url_off, String url_on), // rollover button
957 957 button (String url_off, String url_on, Int w, Int h), // idem with size
958 958 submit (List(CoreAttrs),String text),
959   - immediate_selector (List(CoreAttrs),WebArgName name, Int size, List((List(CoreAttrs),WebArgValue,String)) choices),
960   - immediate_selector (List(CoreAttrs),WebArgName name, Int size, List((List(CoreAttrs),WebArgValue,String)) choices, InitialValue selected),
  959 +// immediate_selector (List(CoreAttrs),WebArgName name, Int size, List((List(CoreAttrs),WebArgValue,String)) choices),
  960 +// immediate_selector (List(CoreAttrs),WebArgName name, Int size, List((List(CoreAttrs),WebArgValue,String)) choices, InitialValue selected),
  961 + immediate_selector (List(CoreAttrs),WebArgName name, Int size, List((List(CoreAttrs),WebArgValue,String)) choices, Maybe(InitialValue) selected, String onchange_fn),
  962 +
961 963 html (HTML_Off_Form).
962 964  
  965 +public define Actioner_Aspect
  966 + immediate_selector
  967 + (
  968 + List(CoreAttrs) core_attrs,
  969 + WebArgName name,
  970 + Int size,
  971 + List((List(CoreAttrs),WebArgValue,String)) choices
  972 + )=
  973 + immediate_selector(core_attrs, name, size, choices, failure, "")
  974 + .
  975 +
  976 +public define Actioner_Aspect
  977 + immediate_selector
  978 + (
  979 + List(CoreAttrs) core_attrs,
  980 + WebArgName name,
  981 + Int size,
  982 + List((List(CoreAttrs),WebArgValue,String)) choices,
  983 + Maybe(InitialValue) selected
  984 + )=
  985 + immediate_selector(core_attrs, name, size, choices, selected, "")
  986 + .
  987 +
963 988  
964 989 public type Actioner_Local_Action:
965 990 close_window.
... ... @@ -1652,7 +1677,9 @@ public type HTTP_Answer:
1652 1677 Printable_tree /*content*/),
1653 1678 http_raw (Printable_tree),
1654 1679 html_content (HTTP_Status /*http_status*/,
1655   - HTML_Off_Form).
  1680 + HTML_Off_Form),
  1681 + html_partial_content (HTTP_Status /*http_status*/,
  1682 + HTML_Partial_Content).
1656 1683  
1657 1684  
1658 1685 public define HTTP_Answer
... ... @@ -1882,13 +1909,13 @@ define Printable_tree
1882 1909 public define String
1883 1910 doctype_w3c_header
1884 1911 =
1885   - "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "+
1886   - "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n".
  1912 + "<!DOCTYPE html>\n". //html 5
1887 1913  
1888   -public define String
1889   - html_header
1890   - =
1891   - "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n".
  1914 +// No longer used in HTML 5
  1915 +//public define String
  1916 +// html_header
  1917 +// =
  1918 +// "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n".
1892 1919  
1893 1920  
1894 1921 *** [1] States.
... ... @@ -3064,10 +3091,10 @@ public define Printable_tree
3064 3091  
3065 3092 public define Printable_tree
3066 3093 format_choices
3067   - (
3068   - List(String) l,
3069   - InitialValue selected
3070   - ) =
  3094 + (
  3095 + List(String) l,
  3096 + InitialValue selected
  3097 + ) =
3071 3098 if l is
3072 3099 {
3073 3100 [ ] then [ ],
... ... @@ -3483,8 +3510,8 @@ define Maybe(String)
3483 3510 button(_,_) then failure,
3484 3511 button(_,_,_,_) then failure,
3485 3512 submit(opts,_) then extract_id(opts),
3486   - immediate_selector(_,_,_,_) then failure,
3487   - immediate_selector(_,_,_,_,_) then failure,
  3513 + //immediate_selector(_,_,_,_) then failure,
  3514 + immediate_selector(_,_,_,_,_,_) then failure,
3488 3515 html(_) then failure,
3489 3516 }.
3490 3517  
... ... @@ -3541,9 +3568,9 @@ define Printable_tree
3541 3568 submit(options, text) then
3542 3569 [ ],
3543 3570  
3544   - immediate_selector(opt,name,size,choices) then
3545   - [ ],
3546   - immediate_selector(opt,name,size,choices,selected) then
  3571 + //immediate_selector(opt,name,size,choices) then
  3572 + // [ ],
  3573 + immediate_selector(opt,name,size,choices,selected,function) then
3547 3574 [ ],
3548 3575 html(html_off_form) then
3549 3576 [
... ... @@ -3647,23 +3674,29 @@ define Printable_tree
3647 3674 }
3648 3675 ],
3649 3676  
3650   - immediate_selector(options,name,size,choices) then
3651   - [ if action is
3652   - {
3653   - url(u) then ["<select href=\"",u]
3654   - javascript(s,h) then [s,"<select onchange=\"",h]
3655   - },
3656   - "\" name=\"",name,"\" size=\"",size,"\"", format_attrs(options), ">",
3657   - format_choices(choices),"</select>"
3658   - ],
3659   - immediate_selector(options,name,size,choices,selected) then
3660   - [ if action is
  3677 +// immediate_selector(options,name,size,choices) then
  3678 +// [ if action is
  3679 +// {
  3680 +// url(u) then ["<select href=\"",u]
  3681 +// javascript(s,h) then [s,"<select onchange=\"",h]
  3682 +// },
  3683 +// "\" name=\"",name,"\" size=\"",size,"\"", format_attrs(options), ">",
  3684 +// format_choices(choices),"</select>"
  3685 +// ],
  3686 + immediate_selector(options, name, size, choices, mb_selected, custom_function_name) then
  3687 + [
  3688 + //if custom function name is provided, that name is used instead of autogenerated js function
  3689 + if custom_function_name = "" then
  3690 + if action is
3661 3691 {
3662 3692 url(u) then ["<select href=\"",u]
3663 3693 javascript(s,h) then [s,"<select onchange=\"",h]
3664   - },
  3694 + }
  3695 + else
  3696 + ["<select onchange=\"",custom_function_name],
  3697 +
3665 3698 "\" name=\"",name,"\" size=\"",size,"\"", format_attrs(options), ">",
3666   - format_choices(choices, selected),"</select>"
  3699 + if mb_selected is success(selected) then format_choices(choices, selected) else format_choices(choices),"</select>"
3667 3700 ],
3668 3701 html(html_off_form) then
3669 3702 [
... ... @@ -4663,8 +4696,8 @@ define Printable_tree
4663 4696 =
4664 4697 if lwf is
4665 4698 {
4666   - [] then reverse(so_far),
4667   - [ h . t] then
  4699 + [] then reverse(so_far),
  4700 + [ h . t] then
4668 4701 if h is
4669 4702 {
4670 4703 meta(meta) then
... ... @@ -4693,15 +4726,16 @@ public define Printable_tree
4693 4726 String charset
4694 4727 )
4695 4728 =
4696   - with lwf = (List(HTML_Head_Tag))[ meta(http_equiv("content-type", "text/html; charset="+charset)) . lwf],
4697   - if lwf is
4698   - {
4699   - [] then
4700   - [],
4701   - [ h . t] then
4702   - _format_html_head(lwf, [])
4703   - }
4704   - .
  4729 + _format_html_head((List(HTML_Head_Tag))[ meta(http_equiv("content-type", "text/html; charset="+charset)) . lwf], []).
  4730 +
  4731 +public define Printable_tree
  4732 + format_html_head
  4733 + (
  4734 + List(HTML_Head_Tag) lwf
  4735 + )
  4736 + =
  4737 + _format_html_head(lwf, []).
  4738 +
4705 4739  
4706 4740 public type HTML_ajax_content:
4707 4741 html_ajax_content( String html_body, String script, List(String) js_file, List(String) css_file).
... ... @@ -4748,6 +4782,12 @@ public define HTML_ajax_content
4748 4782 CommonInfo cinfo
4749 4783 )= to_html_ajax_content(content_HTML, cinfo, "").
4750 4784  
  4785 +public define HTML_ajax_content
  4786 + to_html_ajax_content
  4787 + (
  4788 + HTML_Partial_Content content_HTML,
  4789 + CommonInfo cinfo
  4790 + )= to_html_ajax_content(partial(content_HTML), cinfo, "").
4751 4791  
4752 4792 public define Printable_tree
4753 4793 format
... ... @@ -4776,7 +4816,7 @@ public define Printable_tree
4776 4816 "</html>"],
4777 4817 answer_body_header =
4778 4818 [doctype_w3c_header,
4779   - html_header,
  4819 + // html_header,
4780 4820  
4781 4821 "<head>\n", format_html_head(head_tags + *p_content_head_tags, charset),"</head>\n",
4782 4822 ],
... ... @@ -4795,7 +4835,7 @@ public define Printable_tree
4795 4835 if format(status) is (status_string, status_headers) then
4796 4836 with answer_body =
4797 4837 [ doctype_w3c_header,
4798   - html_header,
  4838 + //html_header,
4799 4839 "<head>\n",
4800 4840 add_css_styles(css_styles),
4801 4841 add_css_files(css_files),
... ... @@ -4889,5 +4929,29 @@ public define Printable_tree
4889 4929 crlf .
4890 4930 content
4891 4931 ],
  4932 + //HMTL content with some header
  4933 + html_partial_content(HTTP_Status status, HTML_Partial_Content p_content) then
  4934 +
  4935 + since p_content is partial_content(head_tags, html_content),
  4936 + since format(status) is (status_string, status_headers),
  4937 + with
  4938 + answer_body = (Printable_tree)
  4939 + [
  4940 + format(cinfo, state_name, ic_v, html_content, is_https, var(0), p_content_head_tags),
  4941 + ],
  4942 + answer_header = (Printable_tree)
  4943 + [
  4944 + // html_header,
  4945 + format_html_head(head_tags + *p_content_head_tags),
  4946 + ],
  4947 + [ "HTTP/1.1 " + status_string, crlf,
  4948 + format_headers(standard_headers),
  4949 + format_headers(standard_headers_for("text/html", length(answer_header) + length(answer_body), success(charset))),
  4950 + format_headers(status_headers),
  4951 + format_headers(additional_headers),
  4952 + crlf,
  4953 + answer_header .
  4954 + answer_body
  4955 + ],
4892 4956 }.
4893 4957  
... ...
web/jQuery/CXM_jquery_dialog.anubis
... ... @@ -6,6 +6,7 @@
6 6 * © Calexium
7 7 */
8 8  
  9 +read system/convert.anubis
9 10 read calexium_lib/web/CXM_making_a_web_site.anubis
10 11 read calexium_lib/web/CXM_jquery.anubis
11 12  
... ... @@ -23,16 +24,17 @@ public define HTML_Partial_Content
23 24 (
24 25 JQuery_dialog_id dial_id,
25 26 JQuery_dialog content,
26   - String extra_parm
  27 + Bool autoOpen,
  28 + String extra_param
27 29 )=
28 30 with dlg_id = id(dial_id),
29 31 js = js_inline(jquery_ready("
30 32 $( \"#"+dlg_id+"\" ).dialog({
31   - autoOpen: false,
  33 + autoOpen: "+to_String(autoOpen)+",
32 34 modal: true,
33 35 height: 'auto',
34 36 width: 'auto',
35   - "+extra_parm+"
  37 + "+extra_param+"
36 38 Cancel: function() {
37 39 $( this ).dialog( 'close' );
38 40 }
... ... @@ -49,6 +51,15 @@ public define HTML_Partial_Content
49 51 ajax(url) then
50 52 partial_content( [js], div_empty([id(dlg_id), attr("ajax_url",url)]))
51 53 }.
  54 +
  55 +public define HTML_Partial_Content
  56 + jq_dialog_create
  57 + (
  58 + JQuery_dialog_id dial_id,
  59 + JQuery_dialog content,
  60 + String extra_param
  61 + )=
  62 + jq_dialog_create(dial_id, content, false, extra_param).
52 63  
53 64 public define HTML_Partial_Content
54 65 jq_dialog_create
... ... @@ -56,8 +67,17 @@ public define HTML_Partial_Content
56 67 JQuery_dialog_id dial_id,
57 68 JQuery_dialog content
58 69 )=
59   - jq_dialog_create(dial_id, content, "").
  70 + jq_dialog_create(dial_id, content, false, "").
60 71  
  72 +public define HTML_Partial_Content
  73 + jq_dialog_create
  74 + (
  75 + JQuery_dialog_id dial_id,
  76 + JQuery_dialog content,
  77 + Bool autoOpen
  78 + )=
  79 + jq_dialog_create(dial_id, content, autoOpen, "").
  80 +
61 81 define String
62 82 _jq_dialog_open
63 83 (
... ...