left_menu.anubis
3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/*
* Created by PyramIDE.
* User: フランスのトトロ
* Date: 10/01/2016
* Time: 12:24
* © Calexium
*/
transmit tools/basis.anubis
read calexium_lib/web/CXM_making_a_web_site.anubis
read system/string.anubis
public type Left_Menu_Entry:
left_menu_entry( //MENU entry hence no selectable
String entry_id, //it's also use as icon prefix
List(String) classes, //additional classes if need (for disabling entry, change background color, etc.)
WEB_Action_Name action, //action (url to apply when click
String text, //text to show
List((String, String)) extra //extra web arguments to send when click
),
title( //TITLE entry hence no selectable
String title_id, //it's also use as icon prefix
List(String) classes, //additional classes if need (change background color, font size, etc.)
String text //text to show
).
public type Left_Menu:
no_left_menu,
left_menu(
List(Left_Menu_Entry) entries,
String selected).
public define Left_Menu_Entry
left_menu_entry
(
String entry_id,
WEB_Action_Name action,
String text
)=
left_menu_entry(entry_id, [], action, text, [])
.
public define Left_Menu_Entry
left_menu_entry
(
String entry_id, //it's also use as icon prefix
WEB_Action_Name action, //action (url to apply when click
String text, //text to show
List((String, String)) extra //extra web arguments to send when click
)=
left_menu_entry(entry_id, [], action, text, extra)
.
public define Left_Menu_Entry
title
(
String text
)=
title("", [], text).
public define Left_Menu_Entry
title
(
String title_id,
String text
)=
title(title_id, [], text).
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) then
(HTML_Off_Form)paragraph([class("item "+_menu_id+"_icon"+if _menu_id=selected then " selected" else ""+ " "+join(" ", _classes))],actioner(same,same, link(_T(_text)),_action,_extra)),
title(_title_id, _classes, _text) then
(HTML_Off_Form)paragraph([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_content(empty),
left_menu(entries, selected) then
partial_content([css(css_file("/css/left_menu.css"))],
sequence(make_left_menu(_T, entries, selected, [])))
}.