button.anubis 9.96 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ & Juju
 * Date: 18/04/2015
 * Time: 20:46
 * © Calexium
 */

read xlib/web/making_a_web_site.anubis
transmit xlib/web/jquery.anubis
read xlib/web/json.anubis
read xlib/web/js_tools.anubis
transmit xlib/web/widgets/icons_set.anubis
read xlib/web/load_content.anubis
read tools/basis.anubis
read tools/printable_tree.anubis


public define HTML_Partial_Content
  img_button_flink
  (
    String          img_path,
    List(CoreAttrs) core_attrs,    
    Actioner_Target target,
    String          url
  )=
  partial_content(foreign_link_new(target, img_link(core_attrs, img_path, ""), url)).

public define HTML_Partial_Content
  img_button_flink
  (
    String          img_path,
    Actioner_Target target,  
    String          url
  )=
  img_button_flink(img_path, [], target, url).

public define HTML_Partial_Content
  img_button_flink
  (
    String          img_path, 
    String          url
  )=
  img_button_flink(img_path, [], same, url).

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,    
    Actioner_Target         target,
    WEB_Action_Name         url,
    List((String, String))  extra_ops
  )=
  partial_content(actioner(same, target, img_link(core_attrs+[style("cursor: pointer")], img_path, ""), url, extra_ops)).
  

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,    
    Actioner_Target         target,
    String                  url,
    List((String, String))  extra_ops
  )=
  partial_content(actioner(same, target, img_link(core_attrs+[style("cursor: pointer")], img_path, ""), action_name(url), extra_ops)).

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    String                  url
  )=
  img_button(img_path, [], same, url, []).

public define HTML_Partial_Content
  img_button_ajax
  (
    String                  img_path,
    WEB_Action_Name         web_action,
    List((String, String))  extra_ops
  )=
  
  with event_click = (CoreAttrs)event(onclick, "Xlib.jq_query("+format_web_action_name_to_js(web_action, extra_ops)+")"),
  partial_content(img([event_click, style("cursor: pointer")], img_path))
.

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,
    WEB_Action_Name         web_action,
    List((String, String))  extra_args,
    String                  target,
    Bool                    replace
  )=
  partial_content(
    img([ event(onclick, load_content(target, web_action, extra_args, replace)), 
          style("cursor: pointer") . core_attrs
        ], img_path))
.

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    WEB_Action_Name         web_action,
    List((String, String))  extra_args,
    String                  target,
    Bool                    replace
  )=
  img_button(img_path, [], web_action, extra_args, target, replace)
.

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    WEB_Action_Name         web_action,
    List((String, String))  extra_args,
    String                  target
  )=
  img_button(img_path, [], web_action, extra_args, target, false)
.

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    WEB_Action_Name         web_action,
    List((String, String))  extra_ops
  )=
  img_button(img_path, [], same, web_action, extra_ops).

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    WEB_Action_Name         web_action
  )=
  img_button(img_path, [], same, web_action, []).
  
public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    String                  url,
    List((String, String))  extra_ops
  )=
  img_button(img_path, [], same, url, extra_ops).

public define HTML_Partial_Content
  img_button
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,    
    String                  url,
    List((String, String))  extra_ops
  )=
  img_button(img_path, core_attrs, same, url, extra_ops).
  
public define HTML_Partial_Content
  img_button_load_dialog
  (
    String          img_path,
    List(CoreAttrs) core_attrs
  )=
  img_button(img_path, core_attrs, same, "", [])
.

define inline String
  img_button_confirm_js
  (
    String uid,
    String dlg_title,
    String dlg_text,
    String dlg_ok,
    String dlg_cancel
  ) =
    "Xlib.data.confirm_dialog['" +(uid) + "'] = " +
        "{  title:  " + to_JS_String(dlg_title)  +
        ",  text:   " + to_JS_String(dlg_text)   +
        ",  ok :    " + to_JS_String(dlg_ok)     +
        ",  cancel: " + to_JS_String(dlg_cancel) +
        "};".

define List(CoreAttrs)
  img_button_confirm_image_attrs
  (
    List(CoreAttrs) core_attrs,
    String uid,
    JQuery_Actioner         actioner
  ) =
  core_attrs + [id(uid), style("cursor: pointer"), event(onclick, "Xlib.make_confirm_dialog(this, "/* + to_js_string("/?a=" + url + format_extra_operands(extra_ops))+*/+ to_JS_String(jquery_button_get_onclick_action(actioner)) +");")].

define List(CoreAttrs)
  img_button_confirm_image_attrs
  (
    List(CoreAttrs)         core_attrs,
    String                  uid,
    WEB_Action_Name         web_action,
    List((String, String))  extra_ops,
    String                  load_content_target
  ) =
                    //action to execute if confirmation is ok
                    
  with ok_action =  if load_content_target = "" then
                      to_JS_String("Xlib.jq_query("+format_web_action_name_to_js(web_action, extra_ops)+")")
                    else
                      to_JS_String("Xlib.ajax_load_content('"+load_content_target+"', "+format_web_action_name_to_js(web_action, extra_ops)+", true)"),

  core_attrs + [id(uid), style("cursor: pointer"), event(onclick, "Xlib.make_confirm_dialog(this, "+ ok_action +");")].

public define HTML_Partial_Content
  img_button_confirm
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    JQuery_Actioner         actioner
  )=
  with uid = generate_random_string(20),

  partial_content([js(js_file("xlib/js/xlib.js")), js_inline(jquery_ready(img_button_confirm_js(uid, dlg_title, dlg_text, dlg_ok, dlg_cancel)))],
              img(img_button_confirm_image_attrs(core_attrs, uid, actioner), img_path)).

public define HTML_Partial_Content
  img_button_confirm
  (
    String                  img_path,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    JQuery_Actioner         actioner
  )=
  img_button_confirm(img_path, [], dlg_title, dlg_text, dlg_ok, dlg_cancel, actioner).

public define String
  img_button_confirm
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    JQuery_Actioner         actioner
  ) =
  with uid = generate_random_string(20),

  "<script type=\"text/javascript\">" + jquery_ready(img_button_confirm_js(uid, dlg_title, dlg_text, dlg_ok, dlg_cancel)) + "</script>" +
  "<img " + format_attrs(img_button_confirm_image_attrs(core_attrs, uid, actioner)) + " src=\"" + img_path + "\"></img>".

public define String
  img_button_confirm
  (
    String img_path,
    String inline_img_attrb,
    String dlg_title_js_escaped,
    String dlg_text_js_escaped,
    String dlg_ok_js_escaped,
    String dlg_cancel_js_escaped,
    String dlg_ok_js_script
  ) =
  with uid    = generate_random_string(10),
  "<script type=\"text/javascript\">$(document).ready(function(){Xlib.data.confirm_dialog['" + uid + "'] = {title:" + dlg_title_js_escaped + ",text:" + dlg_text_js_escaped + ",ok:" + dlg_ok_js_escaped + ",cancel:" + dlg_cancel_js_escaped +
   "};});</script><img " + inline_img_attrb + " id=\"" + uid + "\" style=\"cursor:pointer\" onclick=\"Xlib.make_confirm_dialog(this," + dlg_ok_js_script + ");\"  src=\"" + img_path + "\"></img>".

public define String
  img_button_confirm
  (
    String                  img_path,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    JQuery_Actioner         actioner
  )=
  img_button_confirm(img_path, [], dlg_title, dlg_text, dlg_ok, dlg_cancel, actioner).


public define HTML_Partial_Content
  img_button_confirm
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    WEB_Action_Name         web_action,
    List((String, String))  extra_ops,
    String                  load_content_target //if empty doesn't use load content
  ) =
  with uid = generate_random_string(20),
  //with event_click = (CoreAttrs)event(onclick, "CalexiumToolBox.jq_query("+format_web_action_name_to_js(web_action, extra_ops)+")"),

  partial_content([js(js_file("xlib/js/xlib.js")), js_inline(jquery_ready(img_button_confirm_js(uid, dlg_title, dlg_text, dlg_ok, dlg_cancel)))],
    img(img_button_confirm_image_attrs(core_attrs, uid, web_action, extra_ops, load_content_target), img_path))
.

public define HTML_Partial_Content
  img_button_confirm
  (
    String                  img_path,
    List(CoreAttrs)         core_attrs,
    String                  dlg_title,
    String                  dlg_text,
    String                  dlg_ok,
    String                  dlg_cancel,
    WEB_Action_Name         web_action,
    List((String, String))  extra_ops
  ) =
  img_button_confirm(img_path, core_attrs, dlg_title, dlg_text, dlg_ok, dlg_cancel, web_action, extra_ops, "")
.