]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/templates/factory/edit
another change to object stringification in selects in AsForm
[maypole.git] / lib / Maypole / templates / factory / edit
index 6bdad79347cef088c484d66ec30a546387772fb9..bac8c6dbec42422138975b059dde5fdb0ce60eb4 100644 (file)
@@ -11,28 +11,60 @@ form similar to L<addnew> but with the current values filled in.
 [% PROCESS macros %]
 [% INCLUDE header %]
 [% INCLUDE title %]
-[% IF objects.size %]
+
+[% IF request.action == 'edit' %]
+[% INCLUDE navbar %]
+[% END %]
+
+[% IF object %]
 <div id="title">Edit a [% classmetadata.moniker %]</div>
-[% FOR item = objects; %]
-<form action="[% base %]/[% item.table %]/do_edit/[% item.id %]" method="post">
+<form action="[% base %]/[% object.table %]/do_edit/[% object.id %]" method="post">
 <fieldset>
-<legend>Edit [% item.name %]</legend>
-[% FOR col = classmetadata.columns;
-    NEXT IF col == "id";
-    '<label><span class="field">';
-    classmetadata.colnames.$col; ":</span>";
-    item.to_field(col).as_XML;
-    "</label>";
-    IF errors.$col; 
+<legend>Edit [% object.name %]</legend>
+   [% FOR col = classmetadata.columns;
+    NEXT IF col == "id" OR col == classmetadata.table _ "_id";
+    SET col_label = classmetadata.colnames.$col; %]
+    <label><span class="field"> [% col_label %] </span> [% object.to_field(col).as_XML %]</label>
+    [% IF errors.$col; 
        '<span class="error">'; errors.$col;'</span>';
+    ELSIF  errors.$col_label; 
+       '<span class="error">'; errors.$col_label;'</span>';
     END;
     END %]
     <input type="submit" name="edit" value="edit"/>
     <input type="hidden" name="__form_id" value="[% request.make_random_id %]">
     </fieldset></form>
     
-    [% END %]
 [% ELSE %]
-[% INCLUDE addnew %]
+
+<div id="addnew">
+<form method="post" action="[% base %]/[% classmetadata.table %]/do_edit/">
+<fieldset>
+<legend>Add a new [% classmetadata.moniker %]</legend>
+    [% FOR col = classmetadata.columns %]
+        [% NEXT IF col == "id" %]
+            <label><span class="field">[% classmetadata.colnames.$col %]</span>
+            [% 
+            SET elem = classmetadata.cgi.$col.clone;
+            IF request.action == 'do_edit';
+                IF elem.tag == "textarea";
+                    elem = elem.push_content(request.param(col));
+                ELSE;
+                    elem.attr("value", request.param(col));
+                END;
+            END;
+            elem.as_XML; %]
+           </label>
+        [% IF errors.$col %]
+           <span class="error">[% errors.$col | html  %]</span>
+        [% END %]
+
+    [% END; %]
+    <input type="submit" name="create" value="create" />
+    <input type="hidden" name="__form_id" value="[% request.make_random_id %]" />
+</fieldset>
+</form>
+</div>
+
 [% END %]
 [% INCLUDE footer %]