Commit c65648e5f6637f6560c3dc4f42cc21c7de9cfaf0

Authored by totoro
1 parent d0edb4a6

add forgotten default class in to_HTML_In_Form

fix the reading of the web arg.
unit_test/test.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 24/06/2017
  5 + * Time: 20:28
  6 + * © Calexium
  7 + */
  8 +
  9 +
  10 +read calexium_lib/web/CXM_multihost_http_server.anubis
  11 +read calexium_lib/web/CXM_web_arg_utils.anubis
  12 +read calexium_lib/web/CXM_web_dump.anubis
  13 +read tools/string.anubis
  14 +
  15 +global define One
  16 + test
  17 + (
  18 + List(String) args
  19 + )
  20 + =
  21 + with body = "%7ERDNS_CHECK=%7Etrue&RDNS_CHECK=true&%7EUSE_GREYLISTING=%7Etrue&USE_GREYLISTING=true&MINIMUM_DELAY=120&MAXIMUM_DELAY=86400&%7ESPF_CHECK=%7Etrue&SPF_CHECK=true",
  22 + with lwa = read_www_url_encoded_web_args(body, 0),
  23 + println(dump_web_arg_values(lwa))
  24 +.
web/CXM_form.anubis
@@ -744,7 +744,7 @@ public define HTML_In_Form @@ -744,7 +744,7 @@ public define HTML_In_Form
744 List(CXM_Form_Field) fields, 744 List(CXM_Form_Field) fields,
745 List(Web_arg) lwa 745 List(Web_arg) lwa
746 )= 746 )=
747 - to_HTML_In_Form(fields, lwa, "", true) 747 + to_HTML_In_Form(fields, lwa, "form_field aligned", true)
748 . 748 .
749 749
750 public define HTML_In_Form 750 public define HTML_In_Form
@@ -753,7 +753,7 @@ public define HTML_In_Form @@ -753,7 +753,7 @@ public define HTML_In_Form
753 CXM_Form_Field field, 753 CXM_Form_Field field,
754 List(Web_arg) lwa 754 List(Web_arg) lwa
755 )= 755 )=
756 - to_HTML_In_Form([field], lwa, "", true) 756 + to_HTML_In_Form([field], lwa, "form_field aligned", true)
757 . 757 .
758 758
759 public define HTML_In_Form 759 public define HTML_In_Form
@@ -761,7 +761,7 @@ public define HTML_In_Form @@ -761,7 +761,7 @@ public define HTML_In_Form
761 ( 761 (
762 List(CXM_Form_Field) fields 762 List(CXM_Form_Field) fields
763 )= 763 )=
764 - to_HTML_In_Form(fields, [], "", true) 764 + to_HTML_In_Form(fields, [], "form_field aligned", true)
765 . 765 .
766 766
767 public define HTML_Off_Form 767 public define HTML_Off_Form
web/CXM_making_a_web_site.anubis
@@ -3256,8 +3256,8 @@ public define Web_Site @@ -3256,8 +3256,8 @@ public define Web_Site
3256 HTTP_Info http_info, 3256 HTTP_Info http_info,
3257 List(Web_arg) lwa, 3257 List(Web_arg) lwa,
3258 Bool is_https) |-> 3258 Bool is_https) |->
3259 - //(Printable_tree)  
3260 - println(dump_web_arg_values(lwa)); 3259 + //(Printable_tree)
  3260 + //println(dump_web_arg_values(lwa));
3261 since separate_web_args(lwa, http_info) is swa(mb_previous_state, mb_action_name, operands), 3261 since separate_web_args(lwa, http_info) is swa(mb_previous_state, mb_action_name, operands),
3262 with new_state = if mb_previous_state is 3262 with new_state = if mb_previous_state is
3263 { 3263 {
@@ -3265,8 +3265,8 @@ public define Web_Site @@ -3265,8 +3265,8 @@ public define Web_Site
3265 //println("previous state not found"); 3265 //println("previous state not found");
3266 if mb_action_name is 3266 if mb_action_name is
3267 { 3267 {
3268 - failure then initial_state(http_info, operands, is_https),  
3269 - success(_) then 3268 + failure then initial_state(http_info, operands, is_https),
  3269 + success(_) then
3270 ticket_lost_state(mb_action_name, http_info,operands,is_https) 3270 ticket_lost_state(mb_action_name, http_info,operands,is_https)
3271 }, 3271 },
3272 3272
@@ -3368,12 +3368,10 @@ define HTTP_Answer @@ -3368,12 +3368,10 @@ define HTTP_Answer
3368 3368
3369 // content of page 3369 // content of page
3370 sequence([ 3370 sequence([
3371 - preformated([size(16)], "Anubis Web Server 1.14"),  
3372 - br,  
3373 - preformated([size(16)],"Error "+to_String(http_status)), 3371 + preformated([size(14)], "Anubis Web Server - Calexium Lib v1.00 - Anubis language v1.14"),
  3372 + preformated([size(12)],"Error "+to_String(http_status)),
  3373 + preformated([size(12)],"Internal message :"+message),
3374 br, 3374 br,
3375 - preformated([size(14)],"Internal message :"+message),  
3376 - br,br,  
3377 in_form(html_Id(""),text_area(wan(""), init(dump(_session)), 120, 60)) 3375 in_form(html_Id(""),text_area(wan(""), init(dump(_session)), 120, 60))
3378 ]) 3376 ])
3379 ) 3377 )
web/CXM_multihost_http_server.anubis
@@ -1529,11 +1529,11 @@ define (String,String) @@ -1529,11 +1529,11 @@ define (String,String)
1529 Furthermore, web arguments must be translated from web to ASCII when www-url encoded. 1529 Furthermore, web arguments must be translated from web to ASCII when www-url encoded.
1530 1530
1531 define Bool 1531 define Bool
1532 - is_ampersand_or_equal  
1533 - (  
1534 - Word8 c  
1535 - ) =  
1536 - if c = '&' then true else c = '='. 1532 + is_ampersand_or_equal
  1533 + (
  1534 + Word8 c
  1535 + ) =
  1536 + if c = '&' then true else c = '='.
1537 1537
1538 1538
1539 1539
@@ -1559,7 +1559,7 @@ define String @@ -1559,7 +1559,7 @@ define String
1559 . 1559 .
1560 1560
1561 1561
1562 -define List(Web_arg) 1562 +public define List(Web_arg)
1563 read_www_url_encoded_web_args 1563 read_www_url_encoded_web_args
1564 ( 1564 (
1565 String s, //url_encoded string 1565 String s, //url_encoded string
@@ -1573,18 +1573,22 @@ define List(Web_arg) @@ -1573,18 +1573,22 @@ define List(Web_arg)
1573 with i = start + length(first), //jump to end of first word 1573 with i = start + length(first), //jump to end of first word
1574 if nth(i,s) is 1574 if nth(i,s) is
1575 { 1575 {
1576 - failure then [web_arg(name, "")], 1576 + failure then
  1577 + //println("failure name=["+name+"]");
  1578 + [web_arg(name, "")],
1577 success(c) then 1579 success(c) then
1578 if c = '&' then 1580 if c = '&' then
  1581 + //println("& alone name=["+name+"]");
1579 [web_arg(name, "") . read_www_url_encoded_web_args(s,i+1)] 1582 [web_arg(name, "") . read_www_url_encoded_web_args(s,i+1)]
1580 else if c = '=' then 1583 else if c = '=' then
1581 with second = read_name_or_value(s, i+1, i+1), 1584 with second = read_name_or_value(s, i+1, i+1),
1582 - // print("\""+second1+"\"\n"); 1585 + //print("\""+second+"\"\n");
1583 with value = web_to_ascii(second, 0, []), 1586 with value = web_to_ascii(second, 0, []),
1584 //println("first ["+first+"] => name ["+name+"] second ["+second+"] => value ["+value+"]"); 1587 //println("first ["+first+"] => name ["+name+"] second ["+second+"] => value ["+value+"]");
  1588 + //println("name ["+name+"] => value ["+value+"]");
1585 //here check the name starting with amp; which means it was "&" encoded and it must be removed 1589 //here check the name starting with amp; which means it was "&" encoded and it must be removed
1586 with _name = if substr(name, 0, 4) = "amp;" then substr(name, 4, length(name) - 4) else name, 1590 with _name = if substr(name, 0, 4) = "amp;" then substr(name, 4, length(name) - 4) else name,
1587 - [web_arg(_name, value) . read_www_url_encoded_web_args(s, i+length(value)+2)] 1591 + [web_arg(_name, value) . read_www_url_encoded_web_args(s, i+length(second)+2)]
1588 else 1592 else
1589 print("**** ALERT **** badly formatted argument [" + s + "]!!!\n"); 1593 print("**** ALERT **** badly formatted argument [" + s + "]!!!\n");
1590 [] 1594 []