--- lib/Arh/View/Materials.pm 2007/11/30 17:35:59 18 +++ lib/Arh/View/Materials.pm 2007/11/30 23:23:14 23 @@ -39,8 +39,8 @@ show( './paging_bottom', $collection, $page ); render_region( - name => 'new_item', - path => $fragment_for_new_item, + name => 'new_item', + path => $fragment_for_new_item, defaults => { object_type => $self->object_type, unit => $unit, @@ -59,11 +59,11 @@ ); my $unit = get('unit'); - warn "## new item for unit $unit"; + #warn "## unit $unit"; div { { class is 'form_field' }; - if ( $record->current_user_can('update') ) { + if ( $record->current_user_can('update') && $self->current_user->editing ) { hyperlink( label => _("Edit"), class => "float-crud-button", @@ -81,12 +81,21 @@ template 'new_item' => sub { my $self = shift; - my ( $object_type, $id ) = ( $self->object_type, get('id') ); + return unless $self->current_user->editing; - my $record_class = $self->record_class; - my $create = $record_class->as_create_action; - my $unit = get('unit'); - warn "## new item for unit $unit"; + my ( $object_type, $id, $unit ) = ( $self->object_type, get('id'), get('unit') ); + my $record_class = $self->record_class; + my $create = $record_class->as_create_action( + moniker => "create-" . Jifty->web->serial, + ); + warn "## unit $unit"; + + my $attach_to = + Jifty->web->current_region->parent ? + Jifty->web->current_region->parent->get_element( 'div.list' ) : + Jifty->web->current_region; + + warn "## attach_to = $attach_to"; div { { class is 'form_field' }; @@ -96,13 +105,10 @@ onclick => [ { submit => $create, - args => { - unit => $unit, - }, }, { refresh_self => 1 }, { - element => Jifty->web->current_region->parent->get_element( 'div.list' ), + element => $attach_to, append => $self->fragment_for('view'), args => { object_type => $object_type, @@ -113,8 +119,8 @@ as_button => 1, ); render_param($create => 'material'); - render_param($create => 'unit', default_value => $unit, reader_as => 'hidden'); - } + outs_raw( $create->hidden( unit => $unit ) ); + }; };