Commit 9f93ff8f8963f90936e72b95774b856704ba60b7

Authored by totoro
1 parent 4dc487a7

add support of no action from WEB_Action_Name

web/CXM_making_a_web_site.anubis
... ... @@ -65,6 +65,8 @@ transmit CXM_web_arg_utils.anubis
65 65 transmit CXM_web_session.anubis
66 66 transmit CXM_web_action.anubis
67 67  
  68 +transmit calexium_lib/web/types/web_action_name.anubis
  69 +
68 70 //read CXM_html_tooltip.anubis
69 71  
70 72 * (1) Structure of a web site.
... ... @@ -3025,48 +3027,52 @@ define WEB_Controller_Result
3025 3027 {
3026 3028 [] then http_answer(error_page(http_not_found, "No action found", _session)),
3027 3029 [h . t] then
3028   - with action_name = if h.name is
  3030 + if h.name = no_action then
  3031 + http_answer( _session, html_content(http_no_content, empty))
  3032 + else
  3033 + with action_name = if h.name is
3029 3034 {
  3035 + no_action then "",
3030 3036 controller_action(_, name) then name,
3031 3037 action_name(name) then name,
3032 3038 url(url) then url,
3033 3039 },
3034   - if requested_action_name = action_name then
3035   - with step = get_Int(_session.fields, "AWS_SESSION_STEP", 0) + 1,
3036   - replace_Int(_session.fields, "AWS_SESSION_STEP", step);
3037   - if h.allowed_proto is
3038   - {
3039   - //Action only in HTTP
3040   - http then
3041   - if _session.web_request.is_https then
3042   - http_answer(error_page(http_forbidden, "Only HTTP authorized", _session))
3043   - else
3044   - //ask to the server the authorization to execute that action
3045   - if h.allow(_session) then
3046   - h.do_it(_session)
3047   - else
3048   - http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
3049   -
3050   - //Action only in HTTPS
3051   - https then
3052   - if _session.web_request.is_https then
3053   - //ask to the server the authorization to execute that action
3054   - if h.allow(_session) then
3055   - h.do_it(_session)
3056   - else
3057   - http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
3058   - else
3059   - http_answer(error_page(http_forbidden, "Only HTTPS authorized", _session))
3060   - //Action in both HTTP / HTTPS
3061   - http_https then
3062   - //ask to the server the authorization to execute that action
3063   - if h.allow(_session) then
3064   - //println("do_it "+action_name);
3065   - h.do_it(_session)
3066   - else
3067   - http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
3068   -
3069   - }
  3040 + if requested_action_name = action_name then
  3041 + with step = get_Int(_session.fields, "AWS_SESSION_STEP", 0) + 1,
  3042 + replace_Int(_session.fields, "AWS_SESSION_STEP", step);
  3043 + if h.allowed_proto is
  3044 + {
  3045 + //Action only in HTTP
  3046 + http then
  3047 + if _session.web_request.is_https then
  3048 + http_answer(error_page(http_forbidden, "Only HTTP authorized", _session))
  3049 + else
  3050 + //ask to the server the authorization to execute that action
  3051 + if h.allow(_session) then
  3052 + h.do_it(_session)
  3053 + else
  3054 + http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
  3055 +
  3056 + //Action only in HTTPS
  3057 + https then
  3058 + if _session.web_request.is_https then
  3059 + //ask to the server the authorization to execute that action
  3060 + if h.allow(_session) then
  3061 + h.do_it(_session)
  3062 + else
  3063 + http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
  3064 + else
  3065 + http_answer(error_page(http_forbidden, "Only HTTPS authorized", _session))
  3066 + //Action in both HTTP / HTTPS
  3067 + http_https then
  3068 + //ask to the server the authorization to execute that action
  3069 + if h.allow(_session) then
  3070 + //println("do_it "+action_name);
  3071 + h.do_it(_session)
  3072 + else
  3073 + http_answer(error_page(http_unauthorized, "you are not authorized for this action", _session))
  3074 +
  3075 + }
3070 3076 else
3071 3077 apply_action(_session, requested_action_name, t)
3072 3078 }
... ... @@ -3695,6 +3701,7 @@ public define String
3695 3701 )=
3696 3702 if action is
3697 3703 {
  3704 + no_action then "",
3698 3705 controller_action(controller, action_name) then "?aws_controller="+controller+"&aws_action="+action_name,
3699 3706 action_name(action_name) then "?aws_action="+action_name,
3700 3707 url(url) then url
... ... @@ -4234,6 +4241,7 @@ define Printable_tree
4234 4241 img_link(options, img, alt_text) then
4235 4242 //if action name is empty, format options on image because maybe there onclick action
4236 4243 with action_name = if action is {
  4244 + no_action then ""
4237 4245 controller_action(_, an) then an,
4238 4246 action_name(an) then an,
4239 4247 url(_) then ""
... ... @@ -4259,6 +4267,7 @@ define Printable_tree
4259 4267 with action_name =
4260 4268 if action is
4261 4269 {
  4270 + no_action then "",
4262 4271 controller_action(_, an) then an,
4263 4272 action_name(an) then an,
4264 4273 url(_) then ""
... ... @@ -4304,6 +4313,7 @@ define Printable_tree
4304 4313 ],
4305 4314 javascript(s,h) then
4306 4315 with action_name = if action is {
  4316 + no_action then "",
4307 4317 controller_action(_, an) then an,
4308 4318 action_name(an) then an,
4309 4319 url(_) then ""
... ...
web/CXM_web_action.anubis
... ... @@ -7,16 +7,16 @@
7 7 */
8 8  
9 9  
10   -public type WEB_Action_Name:
11   - controller_action(
12   - String controller,
13   - String action_name
14   - ),
15   - action_name(
16   - String action_name
17   - ),
18   - //url is raw action, hence we will only copy that url in final link
19   - url(
20   - String url_name
21   - )
22   -.
  10 +//public type WEB_Action_Name:
  11 +// controller_action(
  12 +// String controller,
  13 +// String action_name
  14 +// ),
  15 +// action_name(
  16 +// String action_name
  17 +// ),
  18 +// //url is raw action, hence we will only copy that url in final link
  19 +// url(
  20 +// String url_name
  21 +// )
  22 +//.
... ...