package EPrints::Plugin::Screen::Container::Remove; our @ISA = ( 'EPrints::Plugin::Screen::Container' ); use strict; sub new { my( $class, %params ) = @_; my $self = $class->SUPER::new(%params); $self->{icon} = "action_remove.png"; $self->{appears} = [ # { # place => "container_actions", # position => 1600, # }, { place => "container_item_actions", position => 100, }, ]; $self->{actions} = [qw/ remove cancel /]; return $self; } sub can_be_viewed { my( $self ) = @_; return $self->allow( "container/remove" ); } sub render { my( $self ) = @_; my $div = $self->{session}->make_element( "div", class=>"ep_block" ); $div->appendChild( $self->html_phrase("sure_delete", title=>$self->{processor}->{container}->render_description() ) ); my %buttons = ( cancel => $self->{session}->phrase( "lib/submissionform:action_cancel" ), remove => $self->{session}->phrase( "lib/submissionform:action_remove" ), _order => [ "remove", "cancel" ] ); my $form= $self->render_form; $form->appendChild( $self->{session}->render_action_buttons( %buttons ) ); $div->appendChild( $form ); return( $div ); } sub allow_remove { my( $self ) = @_; return $self->can_be_viewed; } sub allow_cancel { my( $self ) = @_; return 1; } sub action_cancel { my( $self ) = @_; $self->{processor}->{screenid} = "Container::View"; } sub action_remove { my( $self ) = @_; $self->{processor}->{screenid} = "Containers"; if( !$self->{processor}->{container}->remove ) { my $db_error = $self->{session}->get_database->error; $self->{session}->get_repository->log( "DB error removing EPrint ".$self->{processor}->{container}->get_value( "containerid" ).": $db_error" ); $self->{processor}->add_message( "message", $self->html_phrase( "container_not_removed" ) ); $self->{processor}->{screenid} = "FirstTool"; return; } $self->{processor}->add_message( "message", $self->html_phrase( "container_removed" ) ); } 1;