left_menu.anubis
3.93 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*
* 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 type Plugin_Left_Menu:
plugin_left_menu(
String name, //plug in name
Left_Menu left_menu
)
.
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,
String action,
String text
)=
left_menu_entry(entry_id, [], action_name(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
left_menu_entry
(
String entry_id, //it's also use as icon prefix
String 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_name(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
p([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
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_content(empty),
left_menu(entries, selected) then
partial_content([css(css_file("/css/left_menu.css"))],
sequence(make_left_menu(_T, entries, selected, [])))
}.