CXM_jquery_dialog.anubis 3.25 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ & julien
 * Date: 09/11/2014
 * Time: 15:51
 * © Calexium 
 */

read system/convert.anubis
read calexium_lib/web/CXM_making_a_web_site.anubis
read calexium_lib/web/CXM_jquery.anubis

public type JQuery_dialog_id:
  dialog_id(String id).

public type JQuery_dialog:
  p_content(HTML_Partial_Content content),
  off_form(HTML_Off_Form o_form),
  ajax(WEB_Action_Name url).
  
public define JQuery_dialog ajax(String url) = ajax(action_name(url)).
  
public define HTML_Partial_Content
  jq_dialog_create
  (
    JQuery_dialog_id  dial_id,
    JQuery_dialog     content,
    Bool              autoOpen,
    String            extra_param
  )=
  with dlg_id = id(dial_id),
       js_str =
"
$( \"#"+dlg_id+"\" ).dialog({
   autoOpen: "+to_String(autoOpen)+",
   modal: true,
   height: 'auto',
   width:  'auto',
   "+extra_param+"
   Cancel: function() {
     $( this ).dialog( 'close' );
     }
   });
",
  js = js_inline(jquery_ready(js_str)),
  
  if content is
  {
    p_content(pc)   then
      if pc is partial_content(tags, html) then
        partial_content( [js . tags ], html), //html code of the dialog
    off_form(html)  then
        partial_content( [js], html), //html code of the dialog
    ajax(_url)      then
      with url = format_web_action_name(_url),
      //println("jq_dialog_create : \njs_str ->"+js_str+"\nurl ->"+url);
        partial_content( [js], div_empty([id(dlg_id), attr("ajax_url",url)]))
  }.

public define HTML_Partial_Content
  jq_dialog_create
  (
    JQuery_dialog_id  dial_id,
    JQuery_dialog     content,
    String            extra_param
  )=
  jq_dialog_create(dial_id, content, false, extra_param).
  
public define HTML_Partial_Content
  jq_dialog_create
  (
    JQuery_dialog_id  dial_id,
    JQuery_dialog     content
  )=
  jq_dialog_create(dial_id, content, false, "").

public define HTML_Partial_Content
  jq_dialog_create
  (
    JQuery_dialog_id  dial_id,
    JQuery_dialog     content,
    Bool              autoOpen
  )=
  jq_dialog_create(dial_id, content, autoOpen, "").
  
define String
  _jq_dialog_open
  (
    Maybe(String)    mb_html,
    JQuery_dialog_id dialog_id,
    String           params
  )= 
  with js_function = "CalexiumToolBox.jquery_dialog_click('"+id(dialog_id)+"', "+(if length(params)=0 then "''" else params) +");",
  if mb_html is
  {
    failure        then  js_function,
    success(html)  then  "<a onclick=\""+js_function+"\">"+html+"</a>"
  }.

public define String
  jq_dialog_open
  (
    String            html,
    JQuery_dialog_id  dialog_id,
    String            params
  )= 
  _jq_dialog_open(success(html), dialog_id, params).

public define HTML_Partial_Content
  jq_dialog_open
  (
    String            html,
    JQuery_dialog_id  dialog_id,
    String            params
  )= 
  partial_content([],
    literal(_jq_dialog_open(success(html), dialog_id, params))).

public define String
  jq_dialog_open
  (
    JQuery_dialog_id  dialog_id,
    String            params
  )= 
  _jq_dialog_open(failure, dialog_id, params).
    
public define String
  jq_dialog_open
  (
    JQuery_dialog_id dialog_id
  )= 
  _jq_dialog_open(failure, dialog_id, "").
  
public define List(HTML_Head_Tag)
  jq_dialog_init
  =
  [
    js_inline(jquery_ready("

    "))
  ].