CXM_jquery_tiptip.anubis 4 KB
/*
 * Created by PyramIDE.
 * User: Jeremy
 * Date: 18/09/2012
 * Time: 15:42
 * 
 *
 */

read calexium_lib/web/CXM_making_a_web_site.anubis
read calexium_lib/web/CXM_jquery.anubis
read tools/basis.anubis
read system/string.anubis
read system/convert.anubis

/* jQuery tipTip position type */
public type JQ_tiptip_position:
  jq_tiptip_top,
  jq_tiptip_left,
  jq_tiptip_bottom,  // is default
  jq_tiptip_right
.

/* position to string */
public define String
  jq_tiptip_position_to_string
  (
    JQ_tiptip_position p
  )
  =
    if p is
    {
      jq_tiptip_top     then "top",
      jq_tiptip_left    then "left",
      jq_tiptip_bottom  then "bottom",
      jq_tiptip_right   then "right"
    }
  .
  
/* position to string */
public define JQ_tiptip_position
  string_to_jq_tiptip_position
  (
    String s
  )
  =
          if s="top"    then jq_tiptip_top
    else  if s="left"   then jq_tiptip_left
    else  if s="bottom" then jq_tiptip_bottom
    else  if s="right"  then jq_tiptip_right
    else  jq_tiptip_bottom   //is default
  .

/* Initialize jQuery tipTip */
public define List(HTML_Head_Tag)
  jquery_tiptip_init
  =
    [ 
      css(css_file("/js/jquery/tiptip/tiptip.css")),
      js(js_file("/js/jquery/tiptip/tiptip.min.js"))
    ]
  .


/* Create a tipTip tooltip with a HTML_Partial_Content and position */
public define HTML_Partial_Content
  jquery_tiptip
  (
    String                rollovered_id,  // id of the element on which toolip will be displayed => IT MUST BE UNIQUE !!!!
    String                tooltip_id,     // id used to make a container around tooltip content => Uniqueness of the container's id is made with the addition of a timestamp as a suffix
    HTML_Partial_Content  tooltip_partial_content,
    JQ_tiptip_position    position
  )
  =
  with uid = tooltip_id+"_"+(Int)now,
    if tooltip_partial_content is partial_content(head, body) then
      partial_content(
        [
          js_inline(jquery_ready("
              var tooltip_"+uid+"=$('#"+uid+"').html();
              $('#"+rollovered_id+"').tipTip({maxWidth: 'auto', edgeOffset: 10, defaultPosition: \""+jq_tiptip_position_to_string(position)+"\", content: tooltip_"+uid+"});
          "))
          .
          head
        ],
        sequence([
          literal("<div id=\""+uid+"\" style=\"display:none\">"),
            body,
          literal("</div>")
        ])
      )
  .

/* Create a tipTip tooltip with a HTML_Off_Form and position */
public define HTML_Partial_Content
  jquery_tiptip
  (
    String              rollovered_id,  // id of the element on which toolip will be displayed => IT MUST BE UNIQUE !!!!
    String              tooltip_id,     // id used to make a container around tooltip content => Uniqueness of the container's id is made with the addition of a timestamp as a suffix
    HTML_Off_Form       html_content,
    JQ_tiptip_position  position
  )
  =
    jquery_tiptip(rollovered_id, tooltip_id, partial_content([], html_content), position)
  .

/* Create a tipTip tooltip with a HTML_Partial_Content */
public define HTML_Partial_Content
  jquery_tiptip
  (
    String                rollovered_id,  // id of the element on which toolip will be displayed => IT MUST BE UNIQUE !!!!
    String                tooltip_id,     // id used to make a container around tooltip content => Uniqueness of the container's id is made with the addition of a timestamp as a suffix
    HTML_Partial_Content  tooltip_partial_content
  )
  =
    jquery_tiptip(rollovered_id, tooltip_id, tooltip_partial_content, jq_tiptip_bottom)
  .
  
/* Create a tipTip tooltip with a HTML_Off_Form */
public define HTML_Partial_Content
  jquery_tiptip
  (
    String        rollovered_id,  // id of the element on which toolip will be displayed => IT MUST BE UNIQUE !!!!
    String        tooltip_id,     // id used to make a container around tooltip content => Uniqueness of the container's id is made with the addition of a timestamp as a suffix
    HTML_Off_Form html_content
  )
  =
    jquery_tiptip(rollovered_id, tooltip_id, partial_content([], html_content))
  .