left_menu_html.anubis 2.25 KB
/*
 * Created by PyramIDE.
 * User: フランスのトトロ aka (David RENÉ) 
 * Date: 29/05/2019
 * Time: 17:26
 * © David RENÉ
 */

transmit calexium_lib/web/widgets/left_menu.anubis
read calexium_lib/web/CXM_making_a_web_site.anubis
read calexium_lib/web/CXM_web_action.anubis
read calexium_lib/web/load_content.anubis

define List(HTML_Off_Form)
  make_left_menu 
  (
    (String) -> String    _T,         //translator function 
    List(Left_Menu_Entry) entries,
    String                selected,
    List(HTML_Off_Form)   so_far
  )=
  if entries is 
  {
    []      then reverse(so_far),  //reverse to be in the right direction
    [h . t] then
      with entry = 
        if h is
        {
          left_menu_entry(_menu_id, _classes, _action, _text, _extra, _target_id) then 
            if _target_id is 
            {
              failure             then p([class("item "+_menu_id+"_icon"+if _menu_id=selected then " selected" else ""+ " "+join(" ", _classes))],actioner(same,same, link(_T(_text)),_action,_extra)),
              success(target_id)  then 
                p([class("item "+_menu_id+"_icon"+if _menu_id=selected then " selected" else ""+ " "+join(" ", _classes)),
//                   event(onclick, "CalexiumToolBox.ajax_load_content('"+target_id+"', "+format_web_action_name_to_js(_action, _extra)+")")],text(_T(_text))),
                   event(onclick, load_content(target_id, _action, _extra))],text(_T(_text))),
            }
            
          title(_title_id, _classes, _text)  then
            p([class("menu_title"), class(if _title_id=selected then " selected" else ""+ " "+join(" ", _classes))], text([],_T(_text)))
//            p([class("menu_title"), class("item "+_title_id+"_icon"+if _title_id=selected then " selected" else ""+ " "+join(" ", _classes))], text([],_T(_text)))
        },
      make_left_menu(_T, t, selected, [ entry . so_far])
  }.

public define HTML_Partial_Content
  make_left_menu
  (
    (String) -> String    _T,         //translator function 
    Left_Menu             l_menu
  )=
  if l_menu is 
  {
    no_left_menu                  then partial_empty,
    left_menu(entries, selected)  then
      partial_content([css(css_file("/css/left_menu.css"))],
        sequence(make_left_menu(_T, entries, selected, [])))
  }.