Added nc
[invirt/packages/invirt-web.git] / code / templates / functions.mako
1 <%page expression_filter="h"/>
2 <%def name="databaseList(lst, default, onchange, name, id, valueattr, descattr)">
3 <select name="${name}" id="${id}" \
4 % if onchange:
5 onchange="${onchange}"\
6 % endif
7 >
8   <option ${'' if default else 'selected'} value="">None</option>
9   %for item in lst:
10   <option ${'selected' if default == getattr(item, valueattr) else ''} value="${getattr(item, valueattr)}">
11     ${getattr(item, descattr)}
12   </option>
13   % endfor
14 </select>
15 </%def>
16
17 <%def name="cdromList(default='', onchange=None)">
18 ${databaseList(sorted(database.CDROM.query, key=lambda x: x.description),
19                default, onchange, 'cdrom', 'cdromlist', 'cdrom_id', 'description')|n}
20 </%def>
21
22 <%def name="autoList(default='', onchange=None)">
23 ${databaseList(sorted(database.Autoinstall.query, key=lambda x: x.description),
24                default, onchange, 'autoinstall', 'autoinstalllist', 'autoinstall_id', 'description')|n}
25 </%def>
26
27 <%def name="vmTypeList(default=None)">
28 % for vmtype in (('linux-hvm', 'HVM'), ('linux', 'ParaVM'), ):
29 <label>
30    <input ${'checked="checked"' if default == vmtype[0] else '' | n} type="radio" name="vmtype" id="vmtype-${vmtype[0]}" value="${vmtype[0]}" />${vmtype[1]}
31 </label>
32 % endfor
33 </%def>
34
35 <%def name="nicTypeList(default=None)">
36 % for nictype in (('e1000', 'Intel e1000'), ('pcnet', 'AMD PCNet'), ):
37 <label>
38    <input ${'checked="checked"' if default == vmtype[0] else '' | n} type="radio" name="nictype" id="nictype-${nictype[0]}" value="${nictype[0]}" />${nictype[1]}
39 </label>
40 % endfor
41 </%def>
42
43 <%def name="errorRow(value, err)">
44 % if err and err.err_field == value:
45 <tr>
46 <td class="error" colspan="2">${str(err)}</td>
47 </tr>
48 % endif
49 </%def>
50
51 <%!
52 def jquote(string):
53     return "'" + string.replace('\\', '\\\\').replace("'", "\\'").replace('\n', '\\n') + "'"
54
55 def nl2br(string):
56     return string.replace('\n', '<br/>')
57 %>
58
59 <%def name="helppopup(subj)">
60 ## Return HTML code for a (?) link to a specified help topic
61 <span class="helplink"><a href="help?simple=true;subject=${subj | u}" target="_blank" onclick="return helppopup(${subj | jquote})">(?)</a></span>
62 </%def>