#!/usr/bin/perl -w -I/opt/eprints2/perl_lib

use EPrints::Session;


use strict;


my $session = new EPrints::Session( 0 );
exit( 1 ) unless( defined $session );

if( $session->param( 'xml' ) )
{
	my $tmpfile = "/tmp/eprints.$$.xml";
	open( TMP, ">$tmpfile" );
	print TMP $session->param( 'xml' );
	close TMP;
	my $ds = $session->get_archive->get_dataset( 'inbox' );
	my $info = {};
	$info->{ds} = $ds;
	EPrints::ImportXML::import_file( $session , $tmpfile , \&deal, $ds, $info );
#	//my( $eprint, $error ) = bibtex2eprint( $session, $session->param( 'xml' ) );
	unlink( $tmpfile );	
	#if( !defined $eprint )
	#{
		#$session->build_page( 
			#$session->make_text( "Make EPrint from XML" ),
			#$session->make_text( "Error parsing XML entry: ".$error ) );
		#$session->send_page();
	#}
	#else
	#{	
		#my $url = '/perl/users/submit?eprintid='.$eprint->get_id.'&_action_edit=1';
		#$session->redirect( $url );
	#}
	
	$session->build_page( 
		$session->make_text( "Done" ),
		$session->make_text( "If everything has worked correctly the item(s) are now in your user workarea" ) );
	$session->send_page();
}
else
{
	my $page = $session->make_doc_fragment;
	my $p = $session->make_element( "p" );
	$p->appendChild( $session->make_text( "Cut and paste a single xml entry into the box to create an eprint from it." )) ;
	$page->appendChild( $p );
	my $form = $session->render_form( "post", "xmlimport" );
	my $textarea = $session->make_element( "textarea", name=>"xml", wrap=>"virtual", rows=>20, cols=>60 );
	$textarea->appendChild( $session->make_text("") );
	$form->appendChild( $textarea );
	$form->appendChild( $session->make_element( "br" ));
	$form->appendChild( $session->make_element( "input", type=>"submit" ));
	$page->appendChild( $form );

	$session->build_page( 
		$session->make_text( "Make EPrint from XML" ),
	$page );
	$session->send_page();
}
$session->terminate();
exit;

sub deal 
{
	my( $session , $table , $eprint, $info ) = @_;

	$eprint->datestamp();
	$eprint->set_value( 'userid', $session->current_user->get_id );

	$eprint = EPrints::EPrint::create( $session, $info->{ds}, $eprint->get_data() );
	return $eprint;
}
