]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Multibox: Keine Variablen in den rows speichern
authorSven Schöling <s.schoeling@linet-services.de>
Thu, 21 Oct 2010 12:48:39 +0000 (14:48 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Thu, 21 Oct 2010 14:21:21 +0000 (16:21 +0200)
2 Gründe:

1. Die rows können Objekte sein, und sobald die entweder nicht auf Hashref
   basieren, oder per AUTOLOAD ihre methoden sauber prüfen gibt das Chaos.
2. Wenn keine Daten da reingespeichert werden, bruachen die multiboxes nicht
   mit INCLUDE aufgerufen werden, sondern können mit PROCESS den stack clone
   umgehen.

templates/webpages/generic/multibox.html

index b26f86f0dd138c1724ef6fc2fe882040079a1465..72d895747e5566950e91323d90e00539c945f1dc 100644 (file)
 [%-
   name       = (select_name != '' and ! show_text) ? select_name : name
 -%]
-[%- FOREACH row = DATA %]
-  [%-
-       row.id       = row.$id_key     != ''  ? row.$id_key    : $id_sub(row)
-       row.label    = row.$label_key  != ''  ? row.$label_key
-                    : $label_sub(row) != ''  ? $label_sub(row)
-                    :                          row.id
-       row.selected = default == row.id
-  -%]
-[%- END -%]
 [%- IF show_text %]
 <input type="text"
  [%- IF name     %] name="[%     HTML.escape(name)     %]"[% END -%]
   <option value=""></option>
   [%- END %]
   [%- FOREACH row = DATA %]
-  <option value="[% row.id | html %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.label) %]</option>
+  <option value="[% row.$id_key != '' ? row.$id_key : $id_sub(row) | html %]"[% IF default == (row.$id_key != '' ? row.$id_key : $id_sub(row)) %] selected[% END %]>[%
+                      row.$label_key  != ''  ? row.$label_key
+                    : $label_sub(row) != ''  ? $label_sub(row)
+                    : row.$id_key     != ''  ? row.$id_key
+                    :                          $id_sub(row) | html %]</option>
   [%- END %]
 </select>
 [%- END %]