From e04d167ece685446a2360e38398d3839a517ae28 Mon Sep 17 00:00:00 2001 From: totoro Date: Wed, 1 Apr 2020 10:01:16 +0900 Subject: [PATCH] add jqload as new alternative of the JQuery_Actioner_type. jqload let manage action with load_content --- web/CXM_jquery.anubis | 14 +++++++++----- web/jQuery/CXM_jquery_button.anubis | 13 +++++++++++++ web/load_content.anubis | 16 ++++++++++++++-- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/web/CXM_jquery.anubis b/web/CXM_jquery.anubis index caa2d55..3b68dae 100644 --- a/web/CXM_jquery.anubis +++ b/web/CXM_jquery.anubis @@ -7,6 +7,7 @@ */ transmit calexium_lib/web/CXM_making_a_web_site.anubis +read calexium_lib/web/load_content.anubis read tools/printable_tree.anubis read tools/basis.anubis @@ -15,7 +16,8 @@ public type JQuery_Actioner_type: jqform ( String form, WEB_Action_Name name, List((String,String)) extra_ops), jqlink ( WEB_Action_Name name, List((String,String)) extra_ops), jqflink ( String link), - jqscript( String script) + jqscript( String script), + jqload ( String target, WEB_Action_Name name, List((String,String)) extra_ops) . public define JQuery_Actioner_type jqlink(WEB_Action_Name name) = jqlink(name, []). @@ -96,8 +98,9 @@ public define String action_name(action) then "document.location='/?aws_action="+action+"';", url(url) then "document.location='"+url+"';", } - jqflink(link) then "document.location='"+link+"';", - jqscript(script) then script + jqflink(link) then "document.location='"+link+"';", + jqscript(script) then script + jqload(target_id, web_action, extra_args) then load_content(target_id, web_action, extra_args, false) }, same(label) then if act_type is @@ -107,7 +110,7 @@ public define String { no_action then "", //will use the default action defined in form controller_action(ctrl, action) then - "$('#"+form+"').get(0).setAttribute('action','/?aws_controller="+ctrl+"&aws_action="+action+format_extra_operands(extra_ops)+"');\n" + "$('#"+form+"').get(0).setAttribute('action','/?aws_c="+ctrl+"&aws_a="+action+format_extra_operands(extra_ops)+"');\n" action_name(action) then "$('#"+form+"').get(0).setAttribute('action','/?aws_action="+action+"');", url(url) then @@ -124,6 +127,7 @@ public define String } jqflink(link) then "document.location='"+link+"';", jqscript(script) then script + jqload(target_id, web_action, extra_args) then load_content(target_id, web_action, extra_args, false) }, other(window_name, window_options) then if act_type is @@ -153,7 +157,7 @@ public define String } jqflink(link) then "document.location='"+link+"';", jqscript(script) then script - + jqload(target_id, web_action, extra_args) then load_content(target_id, web_action, extra_args, false) } }. diff --git a/web/jQuery/CXM_jquery_button.anubis b/web/jQuery/CXM_jquery_button.anubis index fbc5117..5ea8dbd 100644 --- a/web/jQuery/CXM_jquery_button.anubis +++ b/web/jQuery/CXM_jquery_button.anubis @@ -392,6 +392,19 @@ public define HTML_Partial_Content jquery_button(jquery_img_button(icon, label, "", jQuery_actioner(same, jqlink(action, extra_ops)), left)) . + +public define HTML_Partial_Content + img_button + ( + String icon, //URL of + String label, //translated label of the button + WEB_Action_Name action, + List((String,String)) extra_ops, + String target + )= + jquery_button(jquery_img_button(icon, label, "", jQuery_actioner(same, jqload(target, action, extra_ops)), left)) +. + public define HTML_Partial_Content img_button ( diff --git a/web/load_content.anubis b/web/load_content.anubis index 0447078..9fb4e00 100644 --- a/web/load_content.anubis +++ b/web/load_content.anubis @@ -9,7 +9,8 @@ read system/convert.anubis read calexium_lib/web/types/making_a_web_site.anubis read calexium_lib/web/CXM_web_action.anubis -read calexium_lib/web/CXM_jquery.anubis +//read calexium_lib/web/CXM_jquery.anubis +read calexium_lib/web/js_tools.anubis public define String load_content @@ -24,6 +25,17 @@ public define String . public define String + load_content_JS_String + ( + String target, + WEB_Action_Name web_action, + List((String,String)) extra_args, + Bool replace + )= + to_JS_String("CalexiumToolBox.ajax_load_content('"+target+"', "+format_web_action_name_to_js(web_action, extra_args)+", "+to_String(replace)+")") +. + +public define String load_content ( String target, @@ -73,7 +85,7 @@ public define HTML_Partial_Content )= partial_content([ js(js_file("js/cxm/cxm.js")), - js_inline(jquery_ready(load_content(target, web_action, extra_args, replace))) + js_inline(script("text/javascript","$(document).ready(function(){"+load_content(target, web_action, extra_args, replace)+"});")) ], empty) . -- libgit2 0.21.4