Fixed bug pointed out by Broder with vmtype default and XHTML.
[invirt/packages/invirt-web.git] / code / templates / functions.tmpl
index 7b917b0..305b4e8 100644 (file)
@@ -1,18 +1,47 @@
-#def cdromList($cdroms, $default="")
-<select name="cdrom" id="cdromlist">
+#filter WebSafe
+#def databaseList($lst, $default, $onchange, $name, $id, $valueattr, $descattr)
+<select name="$name" id="$id"#slurp
+#if $onchange is not None
+onchange="$onchange"#slurp
+#end if
+>
   <option #slurp
 #if $default then '' else 'selected'
  value="">None</option>
-  #for $cdrom in $cdroms
+  #for $item in $lst
   <option #slurp
-#if $default == $cdrom.cdrom_id then 'selected' else ''
- value="$cdrom.cdrom_id">
-    $cdrom.description
+#if $default == getattr(item, valueattr) then 'selected' else ''
+ value="${getattr(item, valueattr)}">
+    ${getattr(item, descattr)}
   </option>
   #end for
 </select>
 #end def
 
+#def cdromList($default="", $onchange=None)
+#filter None
+$databaseList(sorted($database.CDROM.query(), key=lambda x: x.description),
+              default, onchange, 'cdrom', 'cdromlist', 'cdrom_id', 'description')
+#end filter
+#end def
+
+#def autoList($default="", $onchange=None)
+#filter None
+$databaseList(sorted($database.Autoinstall.query(), key=lambda x: x.description),
+              default, onchange, 'autoinstall', 'autoinstalllist', 'autoinstall_id', 'description')
+#end filter
+#end def
+
+#def vmTypeList($default=None)
+#for $vmtype in (('linux-hvm', 'HVM'), ('linux', 'ParaVM'), )
+<label>
+   <input #slurp
+#if $default == $vmtype[0] then 'checked="checked"' else ''
+ type="radio" name="vmtype" id="vmtype-${vmtype[0]}" value="${vmtype[0]}">${vmtype[1]}</input>
+</label>
+#end for
+#end def
+
 #def addError(txt)
 #if $varExists('txt')
 #set global $error_text = $error_text + '----\n' + $txt
@@ -28,5 +57,7 @@
 </tr>
 #end if
 #end def
-
-$full_body
\ No newline at end of file
+#filter None
+$full_body
+#end filter
+#end filter