--- lib/Arh/View/Materials.pm 2007/11/30 17:35:59 18 +++ lib/Arh/View/Materials.pm 2007/12/10 14:56:12 28 @@ -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, @@ -52,69 +52,81 @@ template 'view' => sub :CRUDView { my $self = shift; - my $record = $self->_get_record( get('id') ); + my ( $id, $unit ) = get(qw(id unit)); + my $record = $self->_get_record( $id ); - my $update = $record->as_update_action( - moniker => "update-" . Jifty->web->serial, + my $delete = $record->as_delete_action( + moniker => "delete-" . Jifty->web->serial, ); - 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('delete') && $self->current_user->editing ) { hyperlink( - label => _("Edit"), - class => "float-crud-button", + label => _("Delete material"), + class => "float-crud-button button-delete", onclick => { - replace_with => $self->fragment_for('update'), - args => { id => $record->id } + submit => $delete, + confirm => _('Really delete?'), + replace_with => '/__jifty/empty', + refresh_self => 1, + args => { id => $id }, }, as_button => 1, ); - } - render_param( $update => 'material', render_mode => 'read' ); + }; + label { { class is 'label' } _("Material") }; + span { $record->material->name }; }; }; template 'new_item' => sub { my $self = shift; - my ( $object_type, $id ) = ( $self->object_type, get('id') ); + return unless $self->current_user->editing; + + my ( $id, $unit ) = get(qw(id 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; - my $record_class = $self->record_class; - my $create = $record_class->as_create_action; - my $unit = get('unit'); - warn "## new item for unit $unit"; + warn "## attach_to = $attach_to"; div { { class is 'form_field' }; hyperlink( - label => _("Add"), - class => "float-crud-button", + label => _("Add material"), + class => "float-crud-button button-add", 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, + object_type => $self->object_type, id => { result_of => $create, name => 'id' }, + unit => $unit, }, }, ], as_button => 1, ); render_param($create => 'material'); - render_param($create => 'unit', default_value => $unit, reader_as => 'hidden'); - } + outs_raw( $create->hidden( unit => $unit ) ); + }; };