--- loncom/xml/lonxml.pm 2001/08/15 15:49:14 1.114 +++ loncom/xml/lonxml.pm 2001/08/20 16:12:46 1.120 @@ -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,57 @@ sub xmlend { return $discussion.''; } -sub checkout { - my ($target,$symb,$tuname,$tudom,$tcrsid)=@_; +sub tokeninputfield { + my $defhost=$Apache::lonnet::perlvar{'lonHostID'}; + $defhost=~tr/a-z/A-Z/; + return (< + function updatetoken() { + var comp=new Array; + var barcode=unescape(document.tokeninput.barcode.value); + comp=barcode.split('*'); + if (typeof(comp[0])!="undefined") { + document.tokeninput.codeone.value=comp[0]; + } + if (typeof(comp[1])!="undefined") { + document.tokeninput.codetwo.value=comp[1]; + } + if (typeof(comp[2])!="undefined") { + comp[2]=comp[2].toUpperCase(); + document.tokeninput.codethree.value=comp[2]; + } + document.tokeninput.barcode.value=''; + } + +
+ + + + +
DocID Checkin
+ + + + + + + +
Scan in Barcode
or Type in DocID + +* + +* + +
+
+
+ENDINPUTFIELD +} + +sub maketoken { + my ($symb,$tuname,$tudom,$tcrsid)=@_; unless ($symb) { $symb=&Apache::lonnet::symbread(); } @@ -162,33 +211,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', @@ -200,12 +237,13 @@ sub checkout { $reply{'generation'}; if ($target eq 'web') { - return 'Checked out for '.$plainname. + return + ''. + 'Checked out for '.$plainname. '
User: '.$tuname.' at '.$tudom. - '
CourseID: '.$tcrsid.')'. + '
CourseID: '.$tcrsid. '
DocID: '.$token. - '
Time: '.localtime($now). - '
'; + '
Time: '.localtime().'
'; } else { return $token; }