package EPrints::Plugin::Screen::REPOSITORYID::SimpleForm; our @ISA = ( 'EPrints::Plugin::Screen::EPrint' ); use strict; sub new { my( $class, %params ) = @_; my $self = $class->SUPER::new(%params); # Register actions $self->{actions} = [ "update", "cancel" ]; return $self; } sub allow_update { return 1; } sub allow_cancel { return 1; } sub action_update { my( $self ) = @_; my $session = $self->{session}; # Get eprint my $eprint = $self->{processor}->{eprint}; # Get refereed field from dataset my $field = $session->get_repository->get_dataset( "eprint" )->get_field( "refereed" ); # Get value from submitted form my $value = $field->form_value( $session ); # Set value on eprint $eprint->set_value( "refereed", $value ); $eprint->commit; # Message will be displayed on the next screen the user sees $self->{processor}->add_message( "message", $session->make_text( "Item updated" ) ); # Go back to the View screen $self->{processor}->{screenid} = "EPrint::View"; } sub action_cancel { my( $self ) = @_; # Go back to the View screen $self->{processor}->{screenid} = "EPrint::View"; } sub render { my( $self ) = @_; my $session = $self->{session}; # Create empty document my $page = $session->make_doc_fragment(); # Get eprint my $eprint = $self->{processor}->{eprint}; # Get refereed field from dataset my $field = $session->get_repository->get_dataset( "eprint" )->get_field( "refereed" ); # Create input form for refereed field, add it to document my %buttons = ( update => "Update", cancel => "Cancel", _order => [ "update", "cancel" ] ); my $form= $self->render_form; $form->appendChild( $field->render_input_field( $session, $eprint->get_value( "refereed" ) ) ); $form->appendChild( $session->render_action_buttons( %buttons ) ); $page->appendChild( $form ); return $page; } 1;