Commit 2ddb91a557f6d655bb4761a67ae09d59bc10ae85

Authored by totoro
1 parent 96b5f856

add img submit button with new parameters like img, WEB_Action_Name

fix Asterisk AMI receive
asterisk/ami.anubis
... ... @@ -14,29 +14,41 @@ transmit calexium_lib/asterisk/ami_types.anubis
14 14 transmit calexium_lib/asterisk/ami_commands.anubis
15 15 transmit calexium_lib/web/CXM_http_get_common.anubis
16 16  
17   -define Maybe(One)
  17 +define Maybe(List(String))
18 18 receive
19 19 (
20   - Bool print_dump,
21   - Connection conn
  20 + Bool print_dump,
  21 + Connection conn,
  22 + List(String) response
22 23 )=
23 24 //TODO find the header and content-lenght to get full length of answer
24 25  
25   - if read(conn, 16384, 5) is
  26 + //if read(conn, 16384, 5) is
  27 + if read_line(conn, 80, 10) is
26 28 {
27   - error then println("Read error");failure,
28   - timeout then println("Read timeout");failure,
29   - ok(ba) then
30   - with ami_response = to_string(ba),
31   - // typed_response = xml_rpc_get_response(xml_response),
32   - if print_dump then
33   - println("=== ASTERISK SERVER answer ==="+crlf +"["+ ami_response + "]" );
34   - receive(print_dump, conn)
35   -
36   - else
37   - receive(print_dump, conn)
  29 + error then println("Read error");failure,
  30 + timeout then println("Read timeout");failure,
  31 + eof then println("Read timeout");failure,
  32 + ok(str) then
  33 + if str = crlf then
  34 + (if print_dump then
  35 + println("=== ASTERISK SERVER answer ==="+crlf +"["+ join("",(reverse(response))) + "]" )
  36 + else
  37 + unique);
  38 + success(reverse(response))
  39 + else
  40 + receive(print_dump, conn, [str . response])
38 41 }
39   - .
  42 +.
  43 +
  44 +public define Maybe(List(String))
  45 + ami_receive
  46 + (
  47 + Bool print_dump,
  48 + Connection conn
  49 + )=
  50 + receive(print_dump, conn, [])
  51 +.
40 52  
41 53 define Maybe(String)
42 54 _format_action
... ... @@ -46,7 +58,9 @@ define Maybe(String)
46 58 )=
47 59 if values is
48 60 {
49   - [] then success(so_far+crlf),
  61 + [] then
  62 + println("AMI _format_action\n"+so_far+crlf);
  63 + success(so_far+crlf),
50 64 [h . t] then
51 65 if h is key_value(key, value) then
52 66 _format_action(so_far+key+": "+value+crlf, t)
... ... @@ -69,7 +83,7 @@ define Maybe(String)
69 83  
70 84  
71 85  
72   -public define Maybe(One)
  86 +public define Maybe(List(String))
73 87 send_action
74 88 (
75 89 Asterisk_client client,
... ... @@ -90,7 +104,7 @@ public define Maybe(One)
90 104 if write(conn, to_byte_array(action_str)) is
91 105 {
92 106 failure then failure,
93   - success(_) then receive(true, conn)
  107 + success(_) then ami_receive(true, conn)
94 108 }
95 109 }.
96 110  
... ... @@ -98,7 +112,8 @@ public define Maybe(Asterisk_client)
98 112 asterisk_new_client
99 113 (
100 114 String server_name,
101   - AMI_Auth auth
  115 + AMI_Auth auth,
  116 + Bool subscribe_events
102 117 )=
103 118 //println("asterisk_new_client "+server_name);
104 119 if separate_name_port(server_name, 5038) is (name, server_port) then
... ... @@ -112,6 +127,7 @@ public define Maybe(Asterisk_client)
112 127 {
113 128 error(e) then failure,
114 129 ok(conn) then
  130 + //read line of 80 bytes and timeout for 10 seconds
115 131 if read_line(tcp(conn), 80, 10) is
116 132 {
117 133 error then failure,
... ... @@ -123,7 +139,7 @@ public define Maybe(Asterisk_client)
123 139 if start_with(to_lower(str), "asterisk call manager") then
124 140  
125 141 with client = asterisk_client(tcp(conn), var(0), auth),
126   - if send_action(client, ami_login(auth)) is
  142 + if send_action(client, ami_login(auth, subscribe_events)) is
127 143 {
128 144 failure then failure,
129 145 success(_) then success(client)
... ... @@ -137,6 +153,15 @@ public define Maybe(Asterisk_client)
137 153 else
138 154 failure.
139 155  
  156 +public define Maybe(Asterisk_client)
  157 + asterisk_new_client
  158 + (
  159 + String server_name,
  160 + AMI_Auth auth,
  161 + )=
  162 + asterisk_new_client(server_name, auth, false)
  163 +.
  164 +
140 165  
141 166 global define One
142 167 ami_test
... ...
asterisk/ami_commands.anubis
... ... @@ -17,10 +17,14 @@ public define AMI_Action ami_login(String user, String password, Bool events) =
17 17  
18 18 public define AMI_Action ami_login(String user, String password)=
19 19 ami_login(user, password, true).
20   -
  20 +
21 21 public define AMI_Action ami_login(AMI_Auth ami_auth) =
22 22 if ami_auth is auth(user, password) then
23 23 ami_login(user, password, true).
  24 +
  25 +public define AMI_Action ami_login(AMI_Auth ami_auth, Bool event) =
  26 + if ami_auth is auth(user, password) then
  27 + ami_login(user, password, event).
24 28  
25 29 public define AMI_Action ami_originate_call(String extension, String out_number) =
26 30 action("Originate", [
... ...
web/CXM_jquery.anubis
... ... @@ -12,7 +12,7 @@ read tools/basis.anubis
12 12  
13 13 /* jQuery Actioner type */
14 14 public type JQuery_Actioner_type:
15   - jqform ( String form),
  15 + jqform ( String form, WEB_Action_Name name, List((String,String)) extra_ops),
16 16 jqlink ( WEB_Action_Name name, List((String,String)) extra_ops),
17 17 jqflink ( String link),
18 18 jqscript( String script)
... ... @@ -74,7 +74,19 @@ public define String
74 74 same then
75 75 if act_type is
76 76 {
77   - jqform(form) then "$('#"+form+"').submit();",
  77 + jqform(form, control_action, extra_ops) then
  78 +
  79 + if control_action is
  80 + {
  81 + no_action then "", //will use the default action defined in form
  82 + controller_action(ctrl, action) then
  83 + "$('#"+form+"').get(0).setAttribute('action','/?aws_controller="+ctrl+"&aws_action="+action+format_extra_operands(extra_ops)+"');\n"
  84 + action_name(action) then
  85 + "$('#"+form+"').get(0).setAttribute('action','/?aws_action="+action+"');",
  86 + url(url) then
  87 + "$('#"+form+"').get(0).setAttribute('action','"+url+"');",
  88 + }+
  89 + "$('#"+form+"').submit();\n",
78 90 jqlink(control_action, extra_ops) then
79 91 if control_action is
80 92 {
... ... @@ -89,7 +101,18 @@ public define String
89 101 same(label) then
90 102 if act_type is
91 103 {
92   - jqform(form) then "$('#"+form+"').submit();",
  104 + jqform(form, control_action, extra_ops) then
  105 + if control_action is
  106 + {
  107 + no_action then "", //will use the default action defined in form
  108 + controller_action(ctrl, action) then
  109 + "$('#"+form+"').get(0).setAttribute('action','/?aws_controller="+ctrl+"&aws_action="+action+format_extra_operands(extra_ops)+"');\n"
  110 + action_name(action) then
  111 + "$('#"+form+"').get(0).setAttribute('action','/?aws_action="+action+"');",
  112 + url(url) then
  113 + "$('#"+form+"').get(0).setAttribute('action','"+url+"');",
  114 + }+
  115 + "$('#"+form+"').submit();\n",
93 116 jqlink(control_action, extra_ops) then
94 117 if control_action is
95 118 {
... ... @@ -104,7 +127,18 @@ public define String
104 127 other(window_name, window_options) then
105 128 if act_type is
106 129 {
107   - jqform(form) then "$('#"+form+"').submit();",//il s'agit d'une soumision d'un formulaire => cela se fait uniquement dans la même fenêtre !
  130 + jqform(form, control_action, extra_ops) then //il s'agit d'une soumision d'un formulaire => cela se fait uniquement dans la même fenêtre !
  131 + if control_action is
  132 + {
  133 + no_action then "", //will use the default action defined in form
  134 + controller_action(ctrl, action) then
  135 + "$('#"+form+"').get(0).setAttribute('action','/?aws_controller="+ctrl+"&aws_action="+action+format_extra_operands(extra_ops)+"');\n"
  136 + action_name(action) then
  137 + "$('#"+form+"').get(0).setAttribute('action','/?aws_action="+action+"');",
  138 + url(url) then
  139 + "$('#"+form+"').get(0).setAttribute('action','"+url+"');",
  140 + }+
  141 + "$('#"+form+"').submit();\n",
108 142 jqlink(control_action, extra_ops) then
109 143 if control_action is
110 144 {
... ...
web/jQuery/CXM_jquery_button.anubis
... ... @@ -338,10 +338,40 @@ public define HTML_Partial_Content
338 338 public define HTML_Partial_Content
339 339 img_submit_button
340 340 (
  341 + String img, //path to image
  342 + String label, //translated label of the button
  343 + String form_id, //form id to submit
  344 + WEB_Action_Name action, //
  345 + List((String,String)) extra_ops
  346 + )=
  347 + jquery_button(jquery_img_button(img, label, "", jQuery_actioner(same, jqform(form_id, action, extra_ops)), left)).
  348 +
  349 +public define HTML_Partial_Content
  350 + img_submit_button
  351 + (
  352 + String img, //path to image
  353 + String label, //translated label of the button
  354 + String form_id, //form id to submit
  355 + WEB_Action_Name action
  356 + )=
  357 + jquery_button(jquery_img_button(img, label, "", jQuery_actioner(same, jqform(form_id, action, [])), left)).
  358 +
  359 +public define HTML_Partial_Content
  360 + img_submit_button
  361 + (
  362 + String label, //translated label of the button
  363 + String form_id, //form id to submit
  364 + WEB_Action_Name action
  365 + )=
  366 + jquery_button(jquery_img_button(icn16_check, label, "", jQuery_actioner(same, jqform(form_id, action, [])), left)).
  367 +
  368 +public define HTML_Partial_Content
  369 + img_submit_button
  370 + (
341 371 String label, //translated label of the button
342 372 String form_id //
343 373 )=
344   - jquery_button(jquery_img_button(icn16_check, label, "", jQuery_actioner(same, jqform(form_id)), left)).
  374 + jquery_button(jquery_img_button(icn16_check, label, "", jQuery_actioner(same, jqform(form_id, no_action, [])), left)).
345 375  
346 376 public define HTML_Partial_Content
347 377 img_button
... ...