Commit c7f68b4bcce6a6ff12beae1514ff45ff13c43ec9

Authored by totoro
1 parent 3db9f7fe

add renderer_content in type WEB_Controller_Result. this alternative return the …

…main content to be shown by the current renderer.
It's the result sent by a plugin to renderer. The renderer is set by the application when it's need. Hence we can have any sort of renderer (desktop, mobile, etc..) the show plugin content

remove a lot of alternative of the HTML_Off_Form type (like image, ul, ol, il, etc look the diff of the current commit) and replaced by the html_tag and html_void_tag. This allow to add more quickly new html5 tag instead of big type with a lot of alternative. Most of the html5 tag follow the same schema in their format

move show_page_message from application to the Calexium_lib library

add Plugin_Left_Menu type in left_menu. This allows to have named left menu in stack and choose the correct one when it's need
web/CXM_making_a_web_site.anubis
... ... @@ -118,17 +118,17 @@ transmit calexium_lib/web/types/web_action_name.anubis
118 118 The next picture shows the structure we have in mind:
119 119  
120 120  
121   - request +---------+ HTML page (with a hidden state name)
  121 + request +---------+ HTML page (with state name in cookie)
122 122 .-------------------| client |<--------------.
123 123 | .-----------------| | |
124   - | | previous state +---------+ |
125   - | | name (if any) |
  124 + | | session +---------+ |
  125 + | | in cookie |
126 126 | | | client side
127 127 ............................................................................
128 128 | | | server side
129 129 | | |
130 130 | | .-------------------. |
131   - | | | previous state | |
  131 + | | | previous session | |
132 132 V V V | |
133 133 +---------------+ +---------------+ +--------------+
134 134 | compute state | | server's disk | | compute page |
... ... @@ -327,65 +327,128 @@ public type WEB_Controller_Result:
327 327 Var(List(WEB_Session_Field)) fields
328 328 ),
329 329 ajax(
330   - HTTP_Answer http_answer
331   - ),
332   - ajax(
333   - WEB_Session session, //modified session
334   - HTTP_Answer http_answer //http answer
335   - ),
336   - ajax(
337   - HTML_Partial_Content content,
338   - String additional_script
  330 + Maybe(WEB_Session) mb_session, //modified session if success else failure
  331 + HTTP_Answer http_answer //http answer
339 332 ),
340 333 ajax(
341   - WEB_Session session, //modified session
  334 + Maybe(WEB_Session) mb_session, //modified session if success else failure
342 335 HTML_Partial_Content content,
343 336 String additional_script
344 337 ),
345 338 ajax(
346   - Printable_tree content,
347   - String additional_script
348   - ),
349   - ajax(
350   - WEB_Session session, //modified session
  339 + Maybe(WEB_Session) mb_session, //modified session if success else failure
351 340 Printable_tree content,
352 341 String additional_script
353 342 ),
354 343 send_file(
355 344 String full_path //full path with file name of the file to send
  345 + ),
  346 + renderer_content(
  347 + Maybe(WEB_Session) mb_session, //modified session if success else failure
  348 + String title,
  349 + HTML_Partial_Content content,
356 350 )
357 351 .
358 352  
359 353 public define WEB_Controller_Result
360 354 ajax
361 355 (
  356 + HTTP_Answer http_answer
  357 + )=
  358 + ajax(failure, http_answer)
  359 +.
  360 +
  361 +public define WEB_Controller_Result
  362 + ajax
  363 + (
  364 + WEB_Session session, //modified session
  365 + HTTP_Answer http_answer
  366 + )=
  367 + ajax(success(session), http_answer)
  368 +.
  369 +
  370 +public define WEB_Controller_Result
  371 + ajax
  372 + (
362 373 HTML_Partial_Content content
363 374 )=
364   - ajax(content, "").
  375 + ajax(failure, content, "").
365 376  
366 377 public define WEB_Controller_Result
367 378 ajax
368 379 (
  380 + HTML_Partial_Content content,
  381 + String additional_script
  382 + )=
  383 + ajax(failure, content, additional_script).
  384 +
  385 +public define WEB_Controller_Result
  386 + ajax
  387 + (
369 388 WEB_Session session, //modified session
370 389 HTML_Partial_Content content
371 390 )=
372   - ajax(session, content, "").
  391 + ajax(success(session), content, "").
  392 +
  393 +public define WEB_Controller_Result
  394 + ajax
  395 + (
  396 + WEB_Session session, //modified session
  397 + HTML_Partial_Content content,
  398 + String additional_script
  399 + )=
  400 + ajax(success(session), content, additional_script).
373 401  
374 402 public define WEB_Controller_Result
375 403 ajax
376 404 (
377 405 Printable_tree content
378 406 )=
379   - ajax(content, "").
  407 + ajax(failure, content, "").
380 408  
381 409 public define WEB_Controller_Result
382 410 ajax
383 411 (
  412 + Printable_tree content,
  413 + String additional_script
  414 + )=
  415 + ajax(failure, content, additional_script).
  416 +
  417 +public define WEB_Controller_Result
  418 + ajax
  419 + (
384 420 WEB_Session session, //modified session
385 421 Printable_tree content
386 422 )=
387   - ajax(session, content, "").
  423 + ajax(success(session), content, "").
388 424  
  425 +public define WEB_Controller_Result
  426 + ajax
  427 + (
  428 + WEB_Session session, //modified session
  429 + Printable_tree content,
  430 + String additional_script
  431 + )=
  432 + ajax(success(session), content, additional_script).
  433 +
  434 +public define WEB_Controller_Result
  435 + renderer_content(
  436 + String title,
  437 + HTML_Partial_Content content,
  438 + )=
  439 + renderer_content(failure, title, content)
  440 +.
  441 +
  442 +public define WEB_Controller_Result
  443 + renderer_content(
  444 + WEB_Session session, //modified session if success else failure
  445 + String title,
  446 + HTML_Partial_Content content,
  447 + )=
  448 + renderer_content(success(session), title, content)
  449 +.
  450 +
  451 +
389 452 public type WEB_Action_Allowed_Protocol:
390 453 http,
391 454 https,
... ... @@ -408,6 +471,14 @@ public type WEB_Controller:
408 471 )
409 472 .
410 473  
  474 +public type WEB_Page_Renderer:
  475 + web_page_renderer(
  476 + String name, //renderer name
  477 + (WEB_Session _session, String title, HTML_Partial_Content _content) -> HTTP_Answer page_layout //call back for rendering page
  478 + )
  479 +.
  480 +
  481 +
411 482 define List(HTTP_header)
412 483 make_session_cookie_headers
413 484 (
... ... @@ -949,17 +1020,7 @@ public define InputAttrs
949 1020 public type I18n:
950 1021 lang (String),
951 1022 dir (Reading_Way).
952   -
953   -//public type DIV_Option:
954   -// id (String),
955   -// class (String),
956   -// style (String),
957   -// tooltip (String),
958   -// lang (String),
959   -// dir (Reading_Way),
960   -// attr (String, String),
961   -// event (HtmlEvents, String).
962   -//
  1023 +
963 1024  
964 1025 A list of 'DIV_Option' must be given with each DIV you want to put in your page.
965 1026  
... ... @@ -970,24 +1031,24 @@ define String event_name
970 1031 if e is
971 1032 {
972 1033 // Form element events
973   - onchange then "onchange",
974   - onsubmit then "onsubmit",
  1034 + onchange then "onchange",
  1035 + onsubmit then "onsubmit",
975 1036 onreset then "onreset",
976   - onselect then "onselect",
977   - onblur then "onblur",
  1037 + onselect then "onselect",
  1038 + onblur then "onblur",
978 1039 onfocus then "onfocus",
979 1040 // Keyboard events
980 1041 onkeydown then "onkeydown",
981   - onkeypress then "onkeypress",
  1042 + onkeypress then "onkeypress",
982 1043 onkeyup then "onkeyup",
983 1044 // Mouse events
984 1045 onclick then "onclick",
985   - ondblclick then "ondblclick",
986   - onmousedown then "onmousedown",
987   - onmousemove then "onmousemove",
  1046 + ondblclick then "ondblclick",
  1047 + onmousedown then "onmousedown",
  1048 + onmousemove then "onmousemove",
988 1049 onmouseout then "onmouseout",
989   - onmouseover then "onmouseover",
990   - onmouseup then "onmouseup"
  1050 + onmouseover then "onmouseover",
  1051 + onmouseup then "onmouseup"
991 1052 }.
992 1053  
993 1054 public type Table_Option:
... ... @@ -1029,13 +1090,13 @@ public type Cell_Option:
1029 1090 base_line, // align the content vertically according to base lines
1030 1091 background_color(RGB),
1031 1092 background_image(String url, BackgroundOption),
1032   - width(Int), // sets a minimal width for the cell
  1093 + width(Int), // sets a minimal width for the cell
1033 1094 percentage_width(Int),
1034   - height(Int), // sets a minimal height for the cell
1035   - columns(Int), // lets the cell span over several columns
1036   - rows(Int), // lets the cell span over several rows
  1095 + height(Int), // sets a minimal height for the cell
  1096 + columns(Int), // lets the cell span over several columns
  1097 + rows(Int), // lets the cell span over several rows
1037 1098 nowrap, // do not allow text wrapping within the cell
1038   - style(String), // in case nothing above is suitable
  1099 + style(String), // in case nothing above is suitable
1039 1100 class(String class_name).
1040 1101  
1041 1102 A list of 'Cell_Option' must be given with each cell and each row in a table. Options
... ... @@ -1743,10 +1804,7 @@ public type HTML_Off_Form:
1743 1804 literal (String),
1744 1805 sequence (List(HTML_Off_Form) items),
1745 1806 text (List(CoreAttrs), String the_text),
1746   - preformated (List(Text_Option), String),
1747   - paragraph (List(Text_Option), List(HTML_Off_Form) content),
1748   - image (List(CoreAttrs), String url, String alternate),
1749   - image (List(CoreAttrs), String url, String alternate, Int width, Int height),
  1807 + preformated (List(Text_Option), String),
1750 1808 table (List(Table_Option), HTML_Header_Row(HTML_Off_Form), List(HTML_Row(HTML_Off_Form)), HTML_Footer_Row(HTML_Off_Form)),
1751 1809 center (HTML_Off_Form),
1752 1810 mail_to (String email, HTML_Off_Form element),
... ... @@ -1772,34 +1830,24 @@ public type HTML_Off_Form:
1772 1830 WEB_Action_Name action, List((String,String)) extra_ops,
1773 1831 List(HTML_In_Form) content),
1774 1832 in_form (HTML_Id form_id, HTML_In_Form content),
1775   - div (List(CoreAttrs), List(HTML_Off_Form) content),
1776 1833 div (List(CoreAttrs), List(HTML_Partial_Content) p_content),
1777   - div_empty (List(CoreAttrs)),
1778 1834 iframe (List(CoreAttrs),
1779 1835 List(CSS_Style) /*styles*/,
1780 1836 List(CSS_File) /*css_files*/,
1781 1837 List(JS_File) /*js_files*/,
1782 1838 HTML_Body /*body*/),
1783 1839 partial (HTML_Partial_Content),
1784   - br,
1785 1840 progress (List(CoreAttrs), Int value, Int max),
1786   - ol (List(CoreAttrs), List(HTML_Off_Form) content),
1787   - ul (List(CoreAttrs), List(HTML_Off_Form) content),
1788   - li (List(CoreAttrs), List(HTML_Off_Form) content),
1789   - button (List(CoreAttrs), List(HTML_Off_Form) content),
1790 1841 i (List(CoreAttrs), String text),
1791   - span (List(CoreAttrs), String text),
1792   - strong (List(CoreAttrs), List(HTML_Off_Form) content),
1793   - hr (List(CoreAttrs)),
1794   - h1 (List(CoreAttrs), List(HTML_Off_Form) content),
1795   - h2 (List(CoreAttrs), List(HTML_Off_Form) content),
1796   - h3 (List(CoreAttrs), List(HTML_Off_Form) content),
1797   - h4 (List(CoreAttrs), List(HTML_Off_Form) content),
1798   - h5 (List(CoreAttrs), List(HTML_Off_Form) content),
1799   - h6 (List(CoreAttrs), List(HTML_Off_Form) content)
  1842 + html_tag (String tag_name, List(CoreAttrs), List(HTML_Off_Form) content),
  1843 + html_void_tag (String tag_name, List(CoreAttrs))
1800 1844 .
1801 1845  
1802 1846 'HTML_Off_Form' defines all the elements you may put outside any form.
  1847 +
  1848 +public define HTML_Off_Form text(List(CoreAttrs) lto, Int i) = text(lto, to_decimal(i)).
  1849 +public define HTML_Off_Form text(Int i) = text([], i).
  1850 +public define HTML_Off_Form text(String s) = text([], s).
1803 1851  
1804 1852 public define HTML_Off_Form a(A_href _href) = a([], _href, _self, []).
1805 1853 public define HTML_Off_Form a(List(CoreAttrs) attrs, A_href _href) = a(attrs, _href, _self, []).
... ... @@ -1808,38 +1856,149 @@ public define HTML_Off_Form a(List(CoreAttrs) attrs, A_href _href, List(HTML_Off
1808 1856 public define HTML_Off_Form a(A_href _href, HTML_Off_Form content) = a([], _href, _self, [content]).
1809 1857 public define HTML_Off_Form a(A_href _href, List(HTML_Off_Form) content) = a([], _href, _self, content).
1810 1858  
1811   -
1812   -public define HTML_Off_Form strong(HTML_Off_Form content) = strong([], [content]).
1813   -public define HTML_Off_Form strong(List(HTML_Off_Form) content) = strong([], content).
1814   -public define HTML_Off_Form strong(List(CoreAttrs) attrs, HTML_Off_Form content) = strong(attrs, [content]).
1815   -
1816   -public define HTML_Off_Form h1(HTML_Off_Form content) = h1([], [content]).
1817   -public define HTML_Off_Form h1(List(HTML_Off_Form) content) = h1([], content).
1818   -public define HTML_Off_Form h1(List(CoreAttrs) attrs, HTML_Off_Form content) = h1(attrs, [content]).
1819   -
1820   -public define HTML_Off_Form h2(HTML_Off_Form content) = h2([], [content]).
1821   -public define HTML_Off_Form h2(List(HTML_Off_Form) content) = h2([], content).
1822   -public define HTML_Off_Form h2(List(CoreAttrs) attrs, HTML_Off_Form content) = h2(attrs, [content]).
1823   -
1824   -public define HTML_Off_Form h3(HTML_Off_Form content) = h3([], [content]).
1825   -public define HTML_Off_Form h3(List(HTML_Off_Form) content) = h3([], content).
1826   -public define HTML_Off_Form h3(List(CoreAttrs) attrs, HTML_Off_Form content) = h3(attrs, [content]).
1827   -
1828   -public define HTML_Off_Form h4(HTML_Off_Form content) = h4([], [content]).
1829   -public define HTML_Off_Form h4(List(HTML_Off_Form) content) = h4([], content).
1830   -public define HTML_Off_Form h4(List(CoreAttrs) attrs, HTML_Off_Form content) = h4(attrs, [content]).
1831   -
1832   -public define HTML_Off_Form h5(HTML_Off_Form content) = h5([], [content]).
1833   -public define HTML_Off_Form h5(List(HTML_Off_Form) content) = h5([], content).
1834   -public define HTML_Off_Form h5(List(CoreAttrs) attrs, HTML_Off_Form content) = h5(attrs, [content]).
  1859 + // <article>
  1860 +public define HTML_Off_Form article(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("article", attrs, content).
  1861 +public define HTML_Off_Form article(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("article", attrs, [content]).
  1862 +public define HTML_Off_Form article(List(HTML_Off_Form) content) = html_tag("article", [], content).
  1863 +public define HTML_Off_Form article(HTML_Off_Form content) = html_tag("article", [], [content]).
  1864 +
  1865 + // <aside>
  1866 +public define HTML_Off_Form aside(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("aside", attrs, content).
  1867 +public define HTML_Off_Form aside(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("aside", attrs, [content]).
  1868 +public define HTML_Off_Form aside(List(HTML_Off_Form) content) = html_tag("aside", [], content).
  1869 +public define HTML_Off_Form aside(HTML_Off_Form content) = html_tag("aside", [], [content]).
  1870 +
  1871 + // <br>
  1872 +public define HTML_Off_Form br = html_void_tag("br", []).
  1873 +public define HTML_Off_Form br(List(CoreAttrs) attrs) = html_void_tag("br", attrs).
  1874 +
  1875 + // <button>
  1876 +public define HTML_Off_Form button(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("button", attrs, content).
  1877 +public define HTML_Off_Form button(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("button", attrs, [content]).
  1878 +public define HTML_Off_Form button(List(HTML_Off_Form) content) = html_tag("button", [], content).
  1879 +public define HTML_Off_Form button(HTML_Off_Form content) = html_tag("button", [], [content]).
  1880 +
  1881 + // <div>
  1882 +public define HTML_Off_Form div(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("div", attrs, content).
  1883 +public define HTML_Off_Form div(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("div", attrs, [content]).
  1884 +public define HTML_Off_Form div(List(HTML_Off_Form) content) = html_tag("div", [], content).
  1885 +public define HTML_Off_Form div(HTML_Off_Form content) = html_tag("div", [], [content]).
  1886 +public define HTML_Off_Form div(List(CoreAttrs) attrs) = html_tag("div", attrs, [empty]).
  1887 +
  1888 + // <dd>
  1889 +public define HTML_Off_Form dd(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("dd", attrs, content).
  1890 +public define HTML_Off_Form dd(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("dd", attrs, [content]).
  1891 +public define HTML_Off_Form dd(List(HTML_Off_Form) content) = html_tag("dd", [], content).
  1892 +public define HTML_Off_Form dd(HTML_Off_Form content) = html_tag("dd", [], [content]).
  1893 +
  1894 + // <dl>
  1895 +public define HTML_Off_Form dl(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("dl", attrs, content).
  1896 +public define HTML_Off_Form dl(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("dl", attrs, [content]).
  1897 +public define HTML_Off_Form dl(List(HTML_Off_Form) content) = html_tag("dl", [], content).
  1898 +public define HTML_Off_Form dl(HTML_Off_Form content) = html_tag("dl", [], [content]).
  1899 +
  1900 + // <footer>
  1901 +public define HTML_Off_Form footer(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("footer", attrs, content).
  1902 +public define HTML_Off_Form footer(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("footer", attrs, [content]).
  1903 +public define HTML_Off_Form footer(List(HTML_Off_Form) content) = html_tag("footer", [], content).
  1904 +public define HTML_Off_Form footer(HTML_Off_Form content) = html_tag("footer", [], [content]).
  1905 +
  1906 + // <header>
  1907 +public define HTML_Off_Form header(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("header", attrs, content).
  1908 +public define HTML_Off_Form header(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("header", attrs, [content]).
  1909 +public define HTML_Off_Form header(List(HTML_Off_Form) content) = html_tag("header", [], content).
  1910 +public define HTML_Off_Form header(HTML_Off_Form content) = html_tag("header", [], [content]).
  1911 +
  1912 + // <h1>
  1913 +public define HTML_Off_Form h1(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h1", attrs, content).
  1914 +public define HTML_Off_Form h1(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h1", attrs, [content]).
  1915 +public define HTML_Off_Form h1(List(HTML_Off_Form) content) = html_tag("h1", [], content).
  1916 +public define HTML_Off_Form h1(HTML_Off_Form content) = html_tag("h1", [], [content]).
  1917 + // <h2>
  1918 +public define HTML_Off_Form h2(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h2", attrs, content).
  1919 +public define HTML_Off_Form h2(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h2", attrs, [content]).
  1920 +public define HTML_Off_Form h2(List(HTML_Off_Form) content) = html_tag("h2", [], content).
  1921 +public define HTML_Off_Form h2(HTML_Off_Form content) = html_tag("h2", [], [content]).
  1922 + // <h3>
  1923 +public define HTML_Off_Form h3(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h3", attrs, content).
  1924 +public define HTML_Off_Form h3(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h3", attrs, [content]).
  1925 +public define HTML_Off_Form h3(List(HTML_Off_Form) content) = html_tag("h3", [], content).
  1926 +public define HTML_Off_Form h3(HTML_Off_Form content) = html_tag("h3", [], [content]).
  1927 + // <h4>
  1928 +public define HTML_Off_Form h4(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h4", attrs, content).
  1929 +public define HTML_Off_Form h4(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h4", attrs, [content]).
  1930 +public define HTML_Off_Form h4(List(HTML_Off_Form) content) = html_tag("h4", [], content).
  1931 +public define HTML_Off_Form h4(HTML_Off_Form content) = html_tag("h4", [], [content]).
  1932 + // <h5>
  1933 +public define HTML_Off_Form h5(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h5", attrs, content).
  1934 +public define HTML_Off_Form h5(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h5", attrs, [content]).
  1935 +public define HTML_Off_Form h5(List(HTML_Off_Form) content) = html_tag("h5", [], content).
  1936 +public define HTML_Off_Form h5(HTML_Off_Form content) = html_tag("h5", [], [content]).
  1937 +
  1938 + // <h6>
  1939 +public define HTML_Off_Form h6(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("h6", attrs, content).
  1940 +public define HTML_Off_Form h6(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("h6", attrs, [content]).
  1941 +public define HTML_Off_Form h6(List(HTML_Off_Form) content) = html_tag("h6", [], content).
  1942 +public define HTML_Off_Form h6(HTML_Off_Form content) = html_tag("h6", [], [content]).
  1943 +
  1944 + // <img>
  1945 +public define HTML_Off_Form img(List(CoreAttrs) attrs, String src, String alt) = html_void_tag("img", attrs + [attr("src",src), attr("alt",alt)] ).
  1946 +public define HTML_Off_Form img(String src) = img([], src, "").
  1947 +public define HTML_Off_Form img(String src, String alt) = img([], src, alt).
  1948 +public define HTML_Off_Form img(List(CoreAttrs) attrs, String src) = img(attrs, src, "").
  1949 +public define HTML_Off_Form img(String src, Int width, Int height) = img([attr("witdh",to_String(width)), attr("height",to_String(height))], src, src).
  1950 +public define HTML_Off_Form img(List(CoreAttrs) attrs, String src, String alt, Int width, Int height) =
  1951 + html_void_tag("img", attrs + [attr("src",src), attr("alt",alt), attr("witdh",to_String(width)), attr("height",to_String(height))]).
  1952 +
  1953 + // <li>
  1954 +public define HTML_Off_Form li(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("li", attrs, content).
  1955 +public define HTML_Off_Form li(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("li", attrs, [content]).
  1956 +public define HTML_Off_Form li(List(HTML_Off_Form) content) = html_tag("li", [], content).
  1957 +public define HTML_Off_Form li(HTML_Off_Form content) = html_tag("li", [], [content]).
  1958 +
  1959 + // <nav>
  1960 +public define HTML_Off_Form nav(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("nav", attrs, content).
  1961 +public define HTML_Off_Form nav(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("nav", attrs, [content]).
  1962 +public define HTML_Off_Form nav(List(HTML_Off_Form) content) = html_tag("nav", [], content).
  1963 +public define HTML_Off_Form nav(HTML_Off_Form content) = html_tag("nav", [], [content]).
  1964 +
  1965 + // <ol>
  1966 +public define HTML_Off_Form ol(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("ol", attrs, content).
  1967 +public define HTML_Off_Form ol(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("ol", attrs, [content]).
  1968 +public define HTML_Off_Form ol(List(HTML_Off_Form) content) = html_tag("ol", [], content).
  1969 +public define HTML_Off_Form ol(HTML_Off_Form content) = html_tag("ol", [], [content]).
  1970 +
  1971 + // <p>
  1972 +public define HTML_Off_Form p(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("p", attrs, content).
  1973 +public define HTML_Off_Form p(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("p", attrs, [content]).
  1974 +public define HTML_Off_Form p(List(HTML_Off_Form) content) = html_tag("p", [], content).
  1975 +public define HTML_Off_Form p(HTML_Off_Form content) = html_tag("p", [], [content]).
  1976 +
  1977 + // <section>
  1978 +public define HTML_Off_Form section(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("section", attrs, content).
  1979 +public define HTML_Off_Form section(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("section", attrs, [content]).
  1980 +public define HTML_Off_Form section(List(HTML_Off_Form) content) = html_tag("section", [], content).
  1981 +public define HTML_Off_Form section(HTML_Off_Form content) = html_tag("section", [], [content]).
  1982 +
  1983 + // <span>
  1984 +public define HTML_Off_Form span(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("span", attrs, content).
  1985 +public define HTML_Off_Form span(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("span", attrs, [content]).
  1986 +public define HTML_Off_Form span(List(HTML_Off_Form) content) = html_tag("span", [], content).
  1987 +public define HTML_Off_Form span(HTML_Off_Form content) = html_tag("span", [], [content]).
  1988 +public define HTML_Off_Form span(Int i) = html_tag("span", [], [text(to_decimal(i))]).
  1989 +
  1990 + // <strong>
  1991 +public define HTML_Off_Form strong(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("strong", attrs, content).
  1992 +public define HTML_Off_Form strong(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("strong", attrs, [content]).
  1993 +public define HTML_Off_Form strong(List(HTML_Off_Form) content) = html_tag("strong", [], content).
  1994 +public define HTML_Off_Form strong(HTML_Off_Form content) = html_tag("strong", [], [content]).
  1995 +
  1996 + // <ul>
  1997 +public define HTML_Off_Form ul(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("ul", attrs, content).
  1998 +public define HTML_Off_Form ul(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("ul", attrs, [content]).
  1999 +public define HTML_Off_Form ul(List(HTML_Off_Form) content) = html_tag("ul", [], content).
  2000 +public define HTML_Off_Form ul(HTML_Off_Form content) = html_tag("ul", [], [content]).
1835 2001  
1836   -public define HTML_Off_Form h6(HTML_Off_Form content) = h6([], [content]).
1837   -public define HTML_Off_Form h6(List(HTML_Off_Form) content) = h6([], content).
1838   -public define HTML_Off_Form h6(List(CoreAttrs) attrs, HTML_Off_Form content) = h6(attrs, [content]).
1839   -
1840   -public define HTML_Off_Form image(String url) = image([], url, url).
1841   -public define HTML_Off_Form image(List(CoreAttrs) attrs, String url) = image(attrs, url, url).
1842   -public define HTML_Off_Form image(String url, Int width, Int height) = image([], url, url, width, height).
1843 2002  
1844 2003 public define HTML_Off_Form
1845 2004 form
... ... @@ -2072,56 +2231,9 @@ public define HTML_Off_Form
2072 2231 List((String,String)) args
2073 2232 ) =
2074 2233 private_download(abs_path,name,extra_ext,success((action_name,args))).
2075   -
2076   -public define HTML_Off_Form
2077   - text
2078   - (
2079   - List(CoreAttrs) lto,
2080   - Int i
2081   - )=
2082   - text(lto, to_decimal(i))
2083   -.
2084   -
2085   -public define HTML_Off_Form
2086   - text
2087   - (
2088   - Int i
2089   - )=
2090   - text([], i)
2091   -.
2092   -
2093   -public define HTML_Off_Form
2094   - text
2095   - (
2096   - String s
2097   - )=
2098   - text([], s)
2099   -.
2100 2234  
2101   -public define HTML_Off_Form
2102   - div
2103   - (
2104   - HTML_Off_Form element
2105   - )=
2106   - div([], [element])
2107 2235 .
2108 2236  
2109   -public define HTML_Off_Form
2110   - div
2111   - (
2112   - List(CoreAttrs) attrs,
2113   - HTML_Off_Form element
2114   - )=
2115   - div(attrs, [element])
2116   -.
2117   -
2118   -public define HTML_Off_Form
2119   - div
2120   - (
2121   - List(HTML_Off_Form) elements
2122   - )=
2123   - div([], elements)
2124   -.
2125 2237  
2126 2238 public define HTML_Off_Form
2127 2239 div
... ... @@ -2148,128 +2260,6 @@ public define HTML_Off_Form
2148 2260 div([], elements)
2149 2261 .
2150 2262  
2151   -public define HTML_Off_Form
2152   - li
2153   - (
2154   - List(HTML_Off_Form) elements
2155   - )=
2156   - li([], elements)
2157   -.
2158   -
2159   -public define HTML_Off_Form
2160   - li
2161   - (
2162   - List(CoreAttrs) attrs,
2163   - HTML_Off_Form element
2164   - )=
2165   - li(attrs, [element])
2166   -.
2167   -
2168   -public define HTML_Off_Form
2169   - li
2170   - (
2171   - HTML_Off_Form element
2172   - )=
2173   - li([], [element])
2174   -.
2175   -
2176   -public define HTML_Off_Form
2177   - ul
2178   - (
2179   - List(HTML_Off_Form) elements
2180   - )=
2181   - ul([], elements)
2182   -.
2183   -
2184   -public define HTML_Off_Form
2185   - ul
2186   - (
2187   - List(CoreAttrs) attrs,
2188   - HTML_Off_Form element
2189   - )=
2190   - ul(attrs, [element])
2191   -.
2192   -
2193   -public define HTML_Off_Form
2194   - ul
2195   - (
2196   - HTML_Off_Form element
2197   - )=
2198   - ul([], [element])
2199   -.
2200   -
2201   -public define HTML_Off_Form
2202   - ol
2203   - (
2204   - List(HTML_Off_Form) elements
2205   - )=
2206   - ol([], elements)
2207   -.
2208   -
2209   -public define HTML_Off_Form
2210   - ol
2211   - (
2212   - List(CoreAttrs) attrs,
2213   - HTML_Off_Form element
2214   - )=
2215   - ol(attrs, [element])
2216   -.
2217   -
2218   -public define HTML_Off_Form
2219   - ol
2220   - (
2221   - HTML_Off_Form element
2222   - )=
2223   - ol([], [element])
2224   -.
2225   -
2226   -public define HTML_Off_Form
2227   - paragraph
2228   - (
2229   - List(HTML_Off_Form) elements
2230   - )=
2231   - paragraph([], elements)
2232   -.
2233   -
2234   -public define HTML_Off_Form
2235   - paragraph
2236   - (
2237   - List(Text_Option) attrs,
2238   - HTML_Off_Form element
2239   - )=
2240   - paragraph(attrs, [element])
2241   -.
2242   -
2243   -public define HTML_Off_Form
2244   - paragraph
2245   - (
2246   - HTML_Off_Form element
2247   - )=
2248   - paragraph([], [element])
2249   -.
2250   -
2251   -public define HTML_Off_Form
2252   - span
2253   - (
2254   - String s
2255   - )=
2256   - span([], s)
2257   -.
2258   -
2259   -public define HTML_Off_Form
2260   - span
2261   - (
2262   - Int i
2263   - )=
2264   - span([], to_decimal(i))
2265   -.
2266   -
2267   -public define HTML_Off_Form
2268   - hr
2269   - =
2270   - hr([])
2271   -.
2272   -
2273 2263 public define HTML_In_Form
2274 2264 hr
2275 2265 =
... ... @@ -2300,31 +2290,6 @@ public define HTML_In_Form
2300 2290 )=
2301 2291 button([], [element])
2302 2292 .
2303   -
2304   -public define HTML_Off_Form
2305   - button
2306   - (
2307   - List(HTML_Off_Form) elements
2308   - )=
2309   - button([], elements)
2310   -.
2311   -
2312   -public define HTML_Off_Form
2313   - button
2314   - (
2315   - List(CoreAttrs) attrs,
2316   - HTML_Off_Form element
2317   - )=
2318   - button(attrs, [element])
2319   -.
2320   -
2321   -public define HTML_Off_Form
2322   - button
2323   - (
2324   - HTML_Off_Form element
2325   - )=
2326   - button([], [element])
2327   -.
2328 2293 - Cell a gap between two other cells :
2329 2294  
2330 2295 public define HTML_Cell(HTML_Off_Form)
... ... @@ -2750,12 +2715,6 @@ public define String
2750 2715 doctype_w3c_header
2751 2716 =
2752 2717 "<!DOCTYPE html>\n". //html 5
2753   -
2754   -// No longer used in HTML 5
2755   -//public define String
2756   -// html_header
2757   -// =
2758   -// "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n".
2759 2718  
2760 2719  
2761 2720 *** [1] States.
... ... @@ -3030,12 +2989,6 @@ define Int
3030 2989  
3031 2990  
3032 2991  
3033   - *** [3.1] Prefixing web arguments names.
3034   -
3035   - CR 2008-07-08 Prefixing Removed
3036   -
3037   -
3038   -
3039 2992 *** [3.2] Separating web arguments.
3040 2993  
3041 2994 When a new request arrives, we need to separate the web arguments, that is to say:
... ... @@ -3305,7 +3258,6 @@ public define Web_Site
3305 3258 List(MIME) known_mime_types,
3306 3259 (String action_name,
3307 3260 List(Web_arg) args) -> One before_send_file
3308   - //Bool using_state_cookies
3309 3261 ) =
3310 3262 init(unique);
3311 3263  
... ... @@ -3452,6 +3404,27 @@ define HTTP_Answer
3452 3404 )
3453 3405 .
3454 3406  
  3407 +define WEB_Page_Renderer
  3408 + default_page_renderer =
  3409 + web_page_renderer("AWS_DEFAULT_PAGE",
  3410 + ( WEB_Session _session,
  3411 + String _title,
  3412 + HTML_Partial_Content _content
  3413 + ) |->
  3414 + html_page
  3415 + (
  3416 + http_ok,
  3417 + [ title(_title), ]// title of web site
  3418 + ,
  3419 + body // body of page
  3420 + (
  3421 + [], //body options empty
  3422 + (HTML_Off_Form)partial(_content)
  3423 + )
  3424 + )
  3425 + )
  3426 +.
  3427 +
3455 3428 define WEB_Controller_Result
3456 3429 apply_action
3457 3430 (
... ... @@ -3535,6 +3508,47 @@ define Maybe(WEB_Controller)
3535 3508 }
3536 3509 .
3537 3510  
  3511 +define WEB_Page_Renderer
  3512 + get_page_renderer
  3513 + (
  3514 + String renderer_name,
  3515 + List(WEB_Page_Renderer) renderers,
  3516 + )=
  3517 + if renderers is
  3518 + {
  3519 + [] then
  3520 + println("Can't find page_renderer ["+renderer_name+"], use the default");
  3521 + default_page_renderer,
  3522 + [h . t] then
  3523 + if h.name = renderer_name then
  3524 + //println("Controller ["+controller_name+"] found");
  3525 + h
  3526 + else
  3527 + get_page_renderer(renderer_name, t)
  3528 + }
  3529 +.
  3530 +
  3531 +define WEB_Page_Renderer
  3532 + get_page_renderer
  3533 + (
  3534 + WEB_Session _session,
  3535 + WEB_Page_Renderer _current_page_renderer,
  3536 + List(WEB_Page_Renderer) renderers,
  3537 + )=
  3538 + //get the renderer page name to use from the session "AWS_PAGE_RENDERER"
  3539 + if get_String(_session.fields, "AWS_PAGE_RENDERER") is
  3540 + {
  3541 + failure then println("No renderer defined, use the default"); default_page_renderer,
  3542 + success(renderer_name) then
  3543 + //check if the renderer_page already in cache
  3544 + if renderer_name = _current_page_renderer.name then
  3545 + _current_page_renderer
  3546 + else
  3547 + //if not in cache, use the selector function
  3548 + get_page_renderer(renderer_name, renderers)
  3549 + }
  3550 +.
  3551 +
3538 3552 public define JsonValue to_html_ajax_content(Printable_tree content_HTML, String additional_script).
3539 3553 public define JsonValue to_html_ajax_content(HTML_Partial_Content content_HTML, CommonInfo cinfo, String additional_script).
3540 3554  
... ... @@ -3543,6 +3557,8 @@ define (Maybe(WEB_Session), HTTP_Answer)
3543 3557 (
3544 3558 WEB_Controller controller,
3545 3559 List(WEB_Controller) controllers,
  3560 + WEB_Page_Renderer _current_page_renderer,
  3561 + List(WEB_Page_Renderer) page_renderers,
3546 3562 CommonInfo cinfo,
3547 3563 WEB_Session _session,
3548 3564 Maybe(String) _mb_action_name,
... ... @@ -3566,7 +3582,7 @@ define (Maybe(WEB_Session), HTTP_Answer)
3566 3582 if get_controller(get_String(*new_session.web_request.lwa, "aws_controller", "root"), controllers) is
3567 3583 {
3568 3584 failure then (failure, error_page(http_not_found, "Initial Session Controller not found", new_session)),
3569   - success(new_controller) then apply_controller_action(new_controller, controllers, cinfo, new_session, failure, initial_session),
  3585 + success(new_controller) then apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, new_session, failure, initial_session),
3570 3586 },
3571 3587 success(action_name) then
3572 3588 println("ACTION_NAME ["+action_name+"]");
... ... @@ -3578,7 +3594,7 @@ define (Maybe(WEB_Session), HTTP_Answer)
3578 3594 if get_controller(get_String(*new_session.web_request.lwa, "aws_controller", "root"), controllers) is
3579 3595 {
3580 3596 failure then (failure, error_page(http_not_found, "Redirect Controller not found", new_session)),
3581   - success(new_controller) then apply_controller_action(new_controller, controllers, cinfo, new_session, failure, initial_session),
  3597 + success(new_controller) then apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, new_session, failure, initial_session),
3582 3598 },
3583 3599  
3584 3600 redirect(new_session, r_controller_name, r_action_name) then
... ... @@ -3586,7 +3602,7 @@ define (Maybe(WEB_Session), HTTP_Answer)
3586 3602 {
3587 3603 failure then (failure, error_page(http_not_found, "Redirect Controller "+r_controller_name+" not found", new_session)),
3588 3604 success(new_controller) then
3589   - apply_controller_action(new_controller, controllers, cinfo, new_session, success(r_action_name), initial_session),
  3605 + apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, new_session, success(r_action_name), initial_session),
3590 3606 },
3591 3607  
3592 3608 redirect_to_previous then
... ... @@ -3595,7 +3611,7 @@ define (Maybe(WEB_Session), HTTP_Answer)
3595 3611 failure then (failure, error_page(http_not_found, "Redirect to previous Controller not found", _session)),
3596 3612 success(new_controller) then
3597 3613 since _session is web_session(lang, entries, _, previous),
3598   - apply_controller_action(new_controller, controllers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session),
  3614 + apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session),
3599 3615 },
3600 3616 redirect_to_previous(entries) then
3601 3617 if get_controller(get_String(*_session.previous_web_request.lwa, "aws_controller", "root"), controllers) is
... ... @@ -3603,21 +3619,27 @@ define (Maybe(WEB_Session), HTTP_Answer)
3603 3619 failure then (failure, error_page(http_not_found, "Redirect to previous Controller not found", _session)),
3604 3620 success(new_controller) then
3605 3621 since _session is web_session(lang, _, _, previous),
3606   - apply_controller_action(new_controller, controllers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session),
  3622 + apply_controller_action(new_controller, controllers, _current_page_renderer, page_renderers, cinfo, web_session(lang, entries, previous, previous), failure, initial_session),
3607 3623 },
3608   - ajax(answer) then (failure, answer),
  3624 + //ajax(answer) then (failure, answer),
3609 3625 //ajax with modified session that must be saved
3610   - ajax(session, answer) then (success(session), answer),
  3626 + ajax(session, answer) then (session, answer),
3611 3627  
3612   - ajax(content, additional_script) then (failure, json(http_ok, to_html_ajax_content(content, cinfo, additional_script))),
3613   - ajax(session, content, additional_script) then (success(session), json(http_ok, to_html_ajax_content(content, cinfo, additional_script))),
3614   - ajax(content, additional_script) then (failure, json(http_ok, to_html_ajax_content(content, additional_script))),
3615   - ajax(session, content, additional_script) then (success(session), json(http_ok, to_html_ajax_content(content, additional_script))),
3616   - send_file(file_path) then (failure, send_file(file_path))
  3628 + //ajax(content, additional_script) then (failure, json(http_ok, to_html_ajax_content(content, cinfo, additional_script))),
  3629 + ajax(session, content, additional_script) then (session, json(http_ok, to_html_ajax_content(content, cinfo, additional_script))),
  3630 + //ajax(content, additional_script) then (failure, json(http_ok, to_html_ajax_content(content, additional_script))),
  3631 + ajax(session, content, additional_script) then (session, json(http_ok, to_html_ajax_content(content, additional_script))),
  3632 + send_file(file_path) then (failure, send_file(file_path)),
  3633 + renderer_content(session, title, content) then
  3634 + with the_session = if session is {failure then _session, success(__session) then __session},
  3635 + with page_renderer = get_page_renderer(the_session, _current_page_renderer, page_renderers),
  3636 + (session, page_renderer.page_layout(the_session, title, content))
3617 3637 }
3618 3638 }
3619 3639 .
3620 3640  
  3641 +
  3642 +
3621 3643 public define Web_Site
3622 3644 make_web_site_controller_description
3623 3645 (
... ... @@ -3632,11 +3654,12 @@ public define Web_Site
3632 3654 (WEB_Session,
3633 3655 HTTP_Info,
3634 3656 Var(List(Web_arg)),
3635   - Bool is_https) -> WEB_Session expired_session,
3636   - Var(List(WEB_Controller)) web_controllers,
3637   - Maybe(WEB_Session) -> List(HTTP_header) additional_headers,
3638   - Int timeout,
3639   - Redirections redirections,
  3657 + Bool is_https) -> WEB_Session expired_session,
  3658 + Var(List(WEB_Controller)) web_controllers,
  3659 + Var(List(WEB_Page_Renderer)) web_page_renderers,
  3660 + Maybe(WEB_Session) -> List(HTTP_header) additional_headers,
  3661 + Int timeout,
  3662 + Redirections redirections,
3640 3663 String charset,
3641 3664 List(String) journal_extensions,
3642 3665 List(String) journal_headers,
... ... @@ -3660,7 +3683,8 @@ public define Web_Site
3660 3683 //
3661 3684 // construct tool functions
3662 3685 // TODO 'make_separate_web_args_function' must retrieve state_cookies before parsing web_args if using_state_cookies is true
3663   - with save_session = make_save_session_function(timeout, state_directory),
  3686 + with save_session = make_save_session_function(timeout, state_directory),
  3687 + with current_page_renderer = var((WEB_Page_Renderer)default_page_renderer),
3664 3688 // retrieve_session = make_retrieve_session_function(state_directory, website_name),
3665 3689 //separate_web_args = make_separate_web_args_function(state_directory, retrieve_state),
3666 3690 //apply_action = make_apply_action_function(actions),
... ... @@ -3683,11 +3707,11 @@ public define Web_Site
3683 3707 with current_session = if retrieve_session(http_info, state_directory, website_name) is
3684 3708 {
3685 3709 not_found then
3686   - //println("previous state not found");
  3710 + println("previous state not found");
3687 3711 initial_session(http_info, var(_lwa), is_https),
3688 3712  
3689 3713 out_of_date(previous_session) then
3690   - //println("previous out_of_date");
  3714 + println("previous out_of_date");
3691 3715 expired_session(previous_session, http_info, var(_lwa), is_https),
3692 3716  
3693 3717 still_valid(previous_session) then
... ... @@ -3704,7 +3728,7 @@ public define Web_Site
3704 3728 (failure, error_page(http_not_found, "Controller not found", current_session)),
3705 3729  
3706 3730 success(new_controller) then
3707   - apply_controller_action(new_controller, *web_controllers, cinfo, current_session, failure, initial_session),
  3731 + apply_controller_action(new_controller, *web_controllers, *current_page_renderer, *web_page_renderers, cinfo, current_session, failure, initial_session),
3708 3732 }
3709 3733 is (mb_new_session, http_answer),
3710 3734  
... ... @@ -5823,12 +5847,12 @@ define Printable_tree
5823 5847 format(cinfo,ic_v,any_text(opts,t),format_element,is_https, action_count, head_tags),
5824 5848 preformated(o,s) then
5825 5849 format(cinfo,ic_v,any_preformated(o,s),format_element,is_https, action_count, head_tags),
5826   - paragraph(opts,t) then
5827   - format(cinfo,ic_v,any_paragraph(opts,t),format_element,is_https, action_count, head_tags),
5828   - image(opts,url,alt) then
5829   - format(cinfo,ic_v,any_image(opts,url,alt),format_element,is_https, action_count, head_tags),
5830   - image(opts,url,alt,w,h) then
5831   - format(cinfo,ic_v,any_image(opts,url,alt,w,h),format_element,is_https, action_count, head_tags),
  5850 +// paragraph(opts,t) then
  5851 +// format(cinfo,ic_v,any_paragraph(opts,t),format_element,is_https, action_count, head_tags),
  5852 +// image(opts,url,alt) then
  5853 +// format(cinfo,ic_v,any_image(opts,url,alt),format_element,is_https, action_count, head_tags),
  5854 +// image(opts,url,alt,w,h) then
  5855 +// format(cinfo,ic_v,any_image(opts,url,alt,w,h),format_element,is_https, action_count, head_tags),
5832 5856 table(opts,header_row, rows, footer_row) then
5833 5857 format(cinfo,ic_v,any_table(opts,header_row, rows, footer_row),format_element,is_https, action_count, head_tags),
5834 5858 center(e) then
... ... @@ -5890,14 +5914,14 @@ define Printable_tree
5890 5914 in_form(fn, content) then
5891 5915 if fn is html_Id(id) then
5892 5916 format(cinfo,id,ic_v, content,is_https, action_count, head_tags),
5893   - div(options, e) then
5894   - format(cinfo, ic_v, any_div(options, e), format_element, is_https, action_count, head_tags),
  5917 +// div(options, e) then
  5918 +// format(cinfo, ic_v, any_div(options, e), format_element, is_https, action_count, head_tags),
5895 5919 div(options, p_content) then
5896 5920 with html_elements = map((HTML_Partial_Content pc) |-> since pc is partial_content(tags, html_elem), head_tags <- *head_tags +tags; html_elem, p_content),
5897 5921  
5898 5922 format(cinfo, ic_v, any_div(options, html_elements), format_element, is_https, action_count, head_tags),
5899   - div_empty(options) then
5900   - format(cinfo, ic_v, any_div_empty(options), format_element, is_https, action_count, head_tags),
  5923 +// div_empty(options) then
  5924 +// format(cinfo, ic_v, any_div_empty(options), format_element, is_https, action_count, head_tags),
5901 5925 iframe(options, css_styles, css_files, js_files, body) then
5902 5926 if body is body(body_options,elem) then
5903 5927 [ "<iframe", format_attrs(options), ">\n",
... ... @@ -5917,30 +5941,27 @@ define Printable_tree
5917 5941 if p_content is partial_content(tags, html_elements) then
5918 5942 head_tags <- *head_tags + tags;
5919 5943 format(cinfo, ic_v, html_elements, is_https, action_count, head_tags),
5920   - br then ["<br>"],
  5944 +// br then ["<br>"],
5921 5945 progress(options, value, max) then ["<progress max=\"",value,"\" value=\"",max,"\"",format_attrs(options),"></progress>"],
5922   - ol(opts, t) then
5923   - format(cinfo,ic_v,any_ol(opts,t),format_element,is_https, action_count, head_tags),
5924   - ul(opts, t) then
5925   - format(cinfo,ic_v,any_ul(opts,t),format_element,is_https, action_count, head_tags),
5926   - li(opts, t) then
5927   - format(cinfo,ic_v,any_li(opts,t),format_element,is_https, action_count, head_tags),
5928   - button(options, e) then
5929   - format(cinfo, ic_v, any_button(options, e), format_element, is_https, action_count, head_tags),
  5946 +// ol(opts, t) then
  5947 +// format(cinfo,ic_v,any_ol(opts,t),format_element,is_https, action_count, head_tags),
  5948 +// ul(opts, t) then
  5949 +// format(cinfo,ic_v,any_ul(opts,t),format_element,is_https, action_count, head_tags),
  5950 +// li(opts, t) then
  5951 +// format(cinfo,ic_v,any_li(opts,t),format_element,is_https, action_count, head_tags),
  5952 +// button(options, e) then
  5953 +// format(cinfo, ic_v, any_button(options, e), format_element, is_https, action_count, head_tags),
5930 5954 i(opts, t) then
5931 5955 format(cinfo,ic_v,any_i(opts,t),format_element,is_https, action_count, head_tags),
5932   - span(opts,t) then
5933   - format(cinfo,ic_v,any_span(opts,t),format_element,is_https, action_count, head_tags),
5934   - strong(opts, l) then ["<strong", format_attrs(opts), ">",flat(map(format_element,l)),"</strong>\n"],
  5956 +// span(opts,t) then
  5957 +// format(cinfo,ic_v,any_span(opts,t),format_element,is_https, action_count, head_tags),
  5958 +
5935 5959  
5936   - hr(opts) then
5937   - format(cinfo,ic_v,any_hr(opts),format_element,is_https, action_count, head_tags),
5938   - h1(opts, l) then ["<h1", format_attrs(opts), ">",flat(map(format_element,l)),"</h1>\n"],
5939   - h2(opts, l) then ["<h2", format_attrs(opts), ">",flat(map(format_element,l)),"</h2>\n"],
5940   - h3(opts, l) then ["<h3", format_attrs(opts), ">",flat(map(format_element,l)),"</h3>\n"],
5941   - h4(opts, l) then ["<h4", format_attrs(opts), ">",flat(map(format_element,l)),"</h4>\n"],
5942   - h5(opts, l) then ["<h5", format_attrs(opts), ">",flat(map(format_element,l)),"</h5>\n"],
5943   - h6(opts, l) then ["<h6", format_attrs(opts), ">",flat(map(format_element,l)),"</h6>\n"],
  5960 +// hr(opts) then
  5961 +// format(cinfo,ic_v,any_hr(opts),format_element,is_https, action_count, head_tags),
  5962 +// nav(opts, l) then ["<nav", format_attrs(opts), ">",flat(map(format_element,l)),"</nav>\n"],
  5963 + html_tag(tag_name, opts, l) then ["<",tag_name, format_attrs(opts), ">",flat(map(format_element,l)),"</",tag_name,">\n"],
  5964 + html_void_tag(tag_name, opts) then ["<",tag_name, format_attrs(opts), ">"],
5944 5965 }.
5945 5966  
5946 5967 *** [5.10] Formating meta-tags.
... ...
web/CXM_page_message.anubis
... ... @@ -169,3 +169,22 @@ public define HTML_Off_Form
169 169 String txt
170 170 ) =
171 171 display_info_line("informations", html_class, txt, left).
  172 +
  173 +public define HTML_Off_Form
  174 + show_page_message
  175 + (
  176 + Page_Message page_message
  177 + )=
  178 + if page_message is
  179 + {
  180 + no_message then empty,
  181 + info(txt) then display_main_info_line("msg_infos", txt),
  182 + info_translate(txt) then display_main_info_line("msg_infos", txt),
  183 + ok(txt) then display_main_info_line("msg_success", txt),
  184 + ok_translate(txt) then display_main_info_line("msg_success", txt),
  185 + warning(txt) then display_main_info_line("msg_warning", txt),
  186 + warning_translate(txt) then display_main_info_line("msg_warning", txt),
  187 + error(txt, align) then display_main_info_line("msg_error",txt, align),
  188 + error_translate(txt, align) then display_main_info_line("msg_error",txt, align),
  189 + }
  190 +.
... ...
web/jQuery/CXM_jquery_button.anubis
... ... @@ -239,10 +239,10 @@ public define HTML_Off_Form
239 239 button([id(button_id), class("jq_img_btn")],
240 240 if orientation is
241 241 {
242   - top then table([class("jq_img_btn_table")],[ row( cell(image(img_url))), row( cell(text(label_text))) ]),
243   - bottom then table([class("jq_img_btn_table")],[ row( cell(text(label_text))), row( cell(image(img_url))) ]),
244   - left then table([class("jq_img_btn_table")],[ row( [cell(image(img_url)), cell(text(label_text)) ]) ]),
245   - right then table([class("jq_img_btn_table")],[ row( [cell(text(label_text)), cell(image(img_url)) ]) ]),
  242 + top then table([class("jq_img_btn_table")],[ row( cell(img(img_url))), row( cell(text(label_text))) ]),
  243 + bottom then table([class("jq_img_btn_table")],[ row( cell(text(label_text))), row( cell(img(img_url))) ]),
  244 + left then table([class("jq_img_btn_table")],[ row( [cell(img(img_url)), cell(text(label_text)) ]) ]),
  245 + right then table([class("jq_img_btn_table")],[ row( [cell(text(label_text)), cell(img(img_url)) ]) ]),
246 246 }).
247 247  
248 248  
... ...
web/jQuery/CXM_jquery_dialog.anubis
... ... @@ -72,7 +72,7 @@ $( \&quot;#&quot;+dlg_id+&quot;\&quot; ).dialog({
72 72 ajax(_url) then
73 73 with url = format_web_action_name(_url),
74 74 //println("jq_dialog_create : \njs_str ->"+js_str+"\nurl ->"+url);
75   - partial_content( [js], div_empty([id(dlg_id), attr("ajax_url",url)]))
  75 + partial_content( [js], div([id(dlg_id), attr("ajax_url",url)]))
76 76 }.
77 77  
78 78 public define HTML_Partial_Content
... ...
web/widgets/left_menu.anubis
... ... @@ -30,6 +30,13 @@ public type Left_Menu:
30 30 List(Left_Menu_Entry) entries,
31 31 String selected).
32 32  
  33 +public type Plugin_Left_Menu:
  34 + plugin_left_menu(
  35 + String name, //plug in name
  36 + Left_Menu left_menu
  37 + )
  38 +.
  39 +
33 40 public define Left_Menu_Entry
34 41 left_menu_entry
35 42 (
... ... @@ -103,9 +110,9 @@ define List(HTML_Off_Form)
103 110 if h is
104 111 {
105 112 left_menu_entry(_menu_id, _classes, _action, _text, _extra) then
106   - (HTML_Off_Form)paragraph([class("item "+_menu_id+"_icon"+if _menu_id=selected then " selected" else ""+ " "+join(" ", _classes))],actioner(same,same, link(_T(_text)),_action,_extra)),
  113 + p([class("item "+_menu_id+"_icon"+if _menu_id=selected then " selected" else ""+ " "+join(" ", _classes))],actioner(same,same, link(_T(_text)),_action,_extra)),
107 114 title(_title_id, _classes, _text) then
108   - (HTML_Off_Form)paragraph([class("menu_title"), class("item "+_title_id+"_icon"+if _title_id=selected then " selected" else ""+ " "+join(" ", _classes))], text([],_T(_text)))
  115 + p([class("menu_title"), class("item "+_title_id+"_icon"+if _title_id=selected then " selected" else ""+ " "+join(" ", _classes))], text([],_T(_text)))
109 116 },
110 117 make_left_menu(_T, t, selected, [ entry . so_far])
111 118 }.
... ...
web/widgets/menu.anubis
... ... @@ -159,7 +159,7 @@ define List(HTML_Off_Form)
159 159 //format the icon if need
160 160 to_HTML(_icon),
161 161 //format the text if need
162   - if _text = "" then empty else span(_T(_text)), /*link(help_string(_text, _T))*/
  162 + if _text = "" then empty else span(text(_T(_text))), /*link(help_string(_text, _T))*/
163 163 //span(1),
164 164 ])),
165 165  
... ...
web/widgets/specialized_elements.anubis
... ... @@ -19,7 +19,7 @@ public define HTML_Off_Form
19 19 else
20 20 with _attrs = [data("phone-number", phone_number), event(onclick, "hk_phone_call(this)"), class("phone_click") . attrs],
21 21 div([
22   - image(_attrs, "/icons/16x16/phone.png"),
  22 + img(_attrs, "/icons/16x16/phone.png"),
23 23 if image_only then empty else
24 24 text(_attrs, phone_number)
25 25 ])
... ... @@ -50,7 +50,7 @@ public define HTML_Off_Form
50 50 else
51 51 with _attrs = [data("email", email_str), event(onclick, "hk_send_email(this)"), class("email_click") . attrs],
52 52 div([
53   - image(_attrs, "/icons/16x16/email.png"),
  53 + img(_attrs, "/icons/16x16/email.png"),
54 54 text(_attrs, email_str)
55 55 ])
56 56 .
... ...