Changeset 144
- Timestamp:
- 05/19/09 18:41:18 (15 years ago)
- Location:
- LATMOS-Accounts-Web
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Create.pm
r139 r144 31 31 my ( $self, $c ) = @_; 32 32 33 my $base = $c->model('Accounts')->db; 34 $c->stash->{form} = $c->model('AttrForms', undef, 'user', $base); 33 35 for ($c->req->param('step') || '') { 34 36 /^1$/ and do { … … 38 40 }; 39 41 /^2$/ and do { 40 my $base = $c->model('Accounts')->db;41 42 $base->create_c_object('user', $c->req->params->{id}, %{ $c->req->params }); 42 43 $base->commit; -
LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Model/AttrForms.pm
r143 r144 101 101 } 102 102 103 # call either OBJ or type + base 104 103 105 sub ACCEPT_CONTEXT { 104 my ($self, $c, $form, $object) = @_; 105 $form or return $self; 106 $forms->{$form} or return; 107 $self->{c} = $c; 108 $self->{form} = $form; 109 $self->{object} = $object or return; 110 $self 106 my ($self, $c, $form, $object, $base) = @_; 107 my $new = {}; 108 $new->{c} = $c; 109 $new->{form} = $form; 110 $new->{object} = $object if (ref $object); 111 $new->{base} = $base || ($object ? $object->base : undef) or return $self; 112 $new->{otype} = ref $object ? $object->type : $object; 113 bless($new, 'LATMOS::Accounts::Web::Model::AttrForms'); 114 } 115 116 sub base { 117 my ( $self ) = @_; 118 $self->{base} 119 } 120 121 sub otype { 122 my ($self) = @_; 123 $self->{otype}; 111 124 } 112 125 … … 118 131 sub attributes { 119 132 my ($self) = @_; 120 grep { $self-> {object}->get_field_name($_, 'a') }133 grep { $self->base->get_field_name($self->otype, $_, 'a') } 121 134 @{ $forms->{$self->{form}}->{attrs} }; 122 135 } … … 127 140 } 128 141 142 sub attr_raw_value { 143 my ($self, $attr) = @_; 144 return $self->{c}->req->param($attr) || 145 ($self->{object} ? $self->{object}->get_c_field($attr) : '') 146 } 147 129 148 sub attr_field { 130 149 my ($self, $attr, $type) = @_; 131 $type ||= $self-> {object}->get_field_name($attr, 'w')150 $type ||= $self->base->get_field_name($self->otype, $attr, 'w') 132 151 ? $attrs->{$attr}[1] || '' 133 152 : 'label'; … … 139 158 '<textarea name="%s">%s</textarea>', 140 159 $self->escape($attr), 141 $self->escape($self-> {object}->get_c_field($attr)),160 $self->escape($self->attr_raw_value($attr)), 142 161 ); 143 162 /^label$/ and return $self->escape( 144 $self-> {object}->get_c_field($attr)163 $self->attr_raw_value($attr) 145 164 ); 146 165 /^select:([^:]+):(.*)$/ and do { … … 149 168 my $select = sprintf('<select name="%s">', 150 169 $self->escape($attr)) . "\n"; 151 my $value = $self-> {object}->get_c_field($attr);170 my $value = $self->attr_raw_value($attr); 152 171 foreach my $id ($self->{object}->base->list_objects($otype)) { 153 172 my $obj = $self->{object}->base->get_object($otype, $id) or next; … … 168 187 '<input type="text" name="%s" value="%s">', 169 188 $attr, 170 $self->escape( 171 $self->{c}->req->param($attr) || 172 $self->{object}->get_c_field($attr) 173 ) 189 $self->escape($self->attr_raw_value($attr)) 174 190 ); 175 191 } -
LATMOS-Accounts-Web/root/html/create/user.tt
r139 r144 3 3 <form action="[% c.uri_for('/create', 'user') %]" method="POST"> 4 4 <input type="hidden" name="step" value="2"> 5 Login: <input type="text" name="id" value="[% c.req.param('id') | html %]"><br 5 Login: <input type="text" name="id" value="[% c.req.param('id') | html %]"><br> 6 6 Nom: <input type="text" name="sn" value="[% c.req.param('sn') | html %]"><br> 7 7 Prenom: <input type="text" name="givenName" value="[% c.req.param('givenName') | html %]"><br> … … 13 13 <form action="[% c.uri_for('/create', 'user') %]" method="POST"> 14 14 <input type="hidden" name="step" value="1"> 15 Nom: <input type="text" name="sn"><br>16 Prénom: <input type="text" name="givenName"><br>15 [% form.attr_label('sn') %] [% form.attr_field('sn') %]<br> 16 [% form.attr_label('givenName') %] [% form.attr_field('givenName') %]<br> 17 17 <input type="submit"> 18 18 </form>
Note: See TracChangeset
for help on using the changeset viewer.