CXM_jquery_dialog.anubis 2.82 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(String 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 = js_inline(jquery_ready("
                $( \"#"+dlg_id+"\" ).dialog({
                   autoOpen: "+to_String(autoOpen)+",
                   modal: true,
                   height: 'auto',
                   width:  'auto',
                   "+extra_param+"
                   Cancel: function() {
                     $( this ).dialog( 'close' );
                     }
                   });
             ")),
             
  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
        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 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("

    "))
  ].