--- loncom/xml/lonxml.pm	2001/08/15 23:19:20	1.115
+++ loncom/xml/lonxml.pm	2001/08/20 14:53:12	1.119
@@ -13,7 +13,7 @@
 # 6/12,6/13 H. K. Ng
 # 6/16 Gerd Kortemeyer
 # 7/27 H. K. Ng
-# 8/7,8/9,8/10,8/11,8/15 Gerd Kortemeyer
+# 8/7,8/9,8/10,8/11,8/15,8/16,8/17,8/18,8/20 Gerd Kortemeyer
 
 package Apache::lonxml; 
 use vars 
@@ -152,8 +152,36 @@ sub xmlend {
     return $discussion.'</html>';
 }
 
-sub checkout {
-    my ($target,$symb,$tuname,$tudom,$tcrsid)=@_;
+sub tokeninputfield {
+    my $defhost=$Apache::lonnet::perlvar{'lonhostID'};
+    return (<<ENDINPUTFIELD)
+<form method="post">
+<table border="2" bgcolor="#FFFFBB">
+<tr><th>DocID Checkin</th></tr>
+<tr><td>
+<table>
+<tr>
+<td>Scan in Barcode</td>
+<td><input type="text" size="22" name="barcode" /></td>
+</tr>
+<tr><td><i>or</i> Type in DocID</td>
+<td>
+<input type="text" size="5" name="codeone" />
+<b><font size+"+2"*</font></b>
+<input type="text" size="5" name="codetwo" />
+<b><font size+"+2"*</font></b>
+<input type="text" size="10" name="codethree" value="$defhost" />
+</td></tr>
+</table>
+</td></tr>
+<tr><td><input type="submit" value="Check in DocID" /></td></tr>
+</table>
+</form>
+ENDINPUTFIELD
+}
+
+sub maketoken {
+    my ($symb,$tuname,$tudom,$tcrsid)=@_;
     unless ($symb) {
 	$symb=&Apache::lonnet::symbread();
     }
@@ -162,33 +190,21 @@ sub checkout {
         $tudom=$ENV{'user.domain'};
         $tcrsid=$ENV{'request.course.id'};
     }
-    my $now=time;
-    my $lonhost = $Apache::lonnet::perlvar{'lonHostID'};
-    my $infostr=&Apache::lonnet::escape(
-                 $tuname.'&'.
-                 $tudom.'&'.
-                 $tcrsid.'&'.
-                 $symb.'&'.
-		 $now.'&'.$ENV{'REMOTE_ADDR'});
-    my $token=Apache::lonnet::reply('tmpput:'.$infostr,$lonhost);
-    if ($token=~/^error\:/) { return ''; }
-    $token=~s/^(\d+)\_.*\_(\d+)$/$1\*$2\*$lonhost/;
-    $token=~tr/a-z/A-Z/;
-
-    my %infohash=('token' => $token,
-                  'checktime' => $now,
-                  'remote' => $ENV{'REMOTE_ADDR'});
-
-    unless (
-  &Apache::lonnet::cstore(\%infohash,$symb,$tcrsid,$tudom,$tuname) eq 'ok') {
-       return '';
-    }    
-
-    if (&Apache::lonnet::log($tudom,$tuname,
-                         &Apache::lonnet::homeserver($tuname,$tudom),
-                         &Apache::lonnet::escape('Checkout '.$infostr.' - '.
-                                                 $token)) ne 'ok') {
-	return '';
+
+    return &Apache::lonnet::checkout($symb,$tuname,$tudom,$tcrsid);
+}
+
+sub printtokenheader {
+    my ($target,$token,$symb,$tuname,$tudom,$tcrsid)=@_;
+    unless ($token) { return ''; }
+
+    unless ($symb) {
+	$symb=&Apache::lonnet::symbread();
+    }
+    unless ($tuname) {
+	$tuname=$ENV{'user.name'};
+        $tudom=$ENV{'user.domain'};
+        $tcrsid=$ENV{'request.course.id'};
     }
 
     my %reply=&Apache::lonnet::get('environment',
@@ -204,9 +220,9 @@ sub checkout {
  '<img align="right" src="/cgi-bin/barcode.gif?encode='.$token.'" />'.
                'Checked out for '.$plainname.
                '<br />User: '.$tuname.' at '.$tudom.
-	       '<br />CourseID: '.$tcrsid.')'.
+	       '<br />CourseID: '.$tcrsid.
                '<br />DocID: '.$token.
-               '<br />Time: '.localtime($now).'<hr />';
+               '<br />Time: '.localtime().'<hr />';
     } else {
         return $token;                         
     }