--- lib/Arh/View.pm 2007/11/30 00:03:15 13 +++ lib/Arh/View.pm 2007/11/30 16:46:39 15 @@ -79,72 +79,27 @@ }; +use Jifty::View::Declare::CRUD; +Jifty::View::Declare::CRUD->mount_view('materials'); + +use Jifty::View::Declare::CRUD; +Jifty::View::Declare::CRUD->mount_view('units'); + template '/units' => page { h1 { _("Units available in system") }; - my $units = Arh::Model::UnitCollection->new; - $units->unlimit; + my $search = Arh::Model::UnitCollection->new; + $search->unlimit; - while ( my $u = $units->next ) { - unit( $u ); - } -}; - -sub unit { - my $unit = shift || die "no unit?"; - my $a = new_action( class => 'UpdateUnit', record => $unit ); - form { - foreach my $f ( qw/name number campaign material dimensions position description chronology location/ ) { - my $can_write = $unit->current_user_can('write',$f); - #warn "write $f ",$can_write ? 'ok' : 'DENIED'; - if ( $f eq 'material' ) { - set( UnitMaterialCollection => $unit->material ); - show( '/unit/materials' ); - } else { - my %opt; - $opt{render_mode} = 'read' if ! $unit->current_user_can('write',$f); - render_param( $a => $f, %opt ); - } + set( search_collection => $search ); + render_region( + name => 'units', + path => '/units/list', + defaults => { + page => 1, } - } -} + ); -template '/unit/materials' => sub { - my $materials = get('UnitMaterialCollection'); - my $del_um = new_action( class => 'DeleteUnitMaterial', moniker => 'del_um' ); - my $new_um = new_action( class => 'CreateUnitMaterial', moniker => 'new_um' ); - my $can_write; - while ( my $um = $materials->next ) { - div { attr { class is 'form_field' } - span { - span { attr { class is 'label' } _("Material") }; - span { $um->material->name }; - - $can_write ||= $um->current_user_can('write'); - if ( $can_write ) { - outs_raw($del_um->button( - submit => $del_um, - label => _('Delete'), - arguments => { - unit => $um->unit, - material => $um->material - }, - )); - } - } - }; - - if ( $can_write ) { - render_param( - $new_um => 'material', label => _("Material"), - render_as => 'Arh::Web::Material', - # cludge to transfer arguments - hints => { - unit => $um->unit, - }, - ); - } - } }; 1;