[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Fri, 15 Mar 2002 16:31:10 -0000
This is a MIME encoded message
--albertel1016209870
Content-Type: text/plain
albertel Fri Mar 15 11:31:10 2002 EDT
Modified files:
/loncom/interface lonnavmaps.pm
Log:
- reindented to be consistent thru out the handler and tracetable functions
--albertel1016209870
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20020315113110.txt"
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.27 loncom/interface/lonnavmaps.pm:1.28
--- loncom/interface/lonnavmaps.pm:1.27 Thu Feb 28 14:45:14 2002
+++ loncom/interface/lonnavmaps.pm Fri Mar 15 11:31:10 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.27 2002/02/28 19:45:14 albertel Exp $
+# $Id: lonnavmaps.pm,v 1.28 2002/03/15 16:31:10 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -269,88 +269,87 @@
my ($sofar,$rid,$beenhere)=@_;
my $further=$sofar;
unless ($beenhere=~/\&$rid\&/) {
- $beenhere.=$rid.'&';
-
- if (defined($hash{'is_map_'.$rid})) {
- $sofar++;
- my $tprefix='';
- if ($hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$rid}}}
- eq 'sequence') {
- $tprefix='h';
- }
- if (defined($rows[$sofar])) {
- $rows[$sofar].='&'.$tprefix.$rid;
- } else {
- $rows[$sofar]=$tprefix.$rid;
- }
- if ((defined($hash{'map_start_'.$hash{'src_'.$rid}})) &&
- (defined($hash{'map_finish_'.$hash{'src_'.$rid}})) &&
- ($tprefix eq 'h')) {
- my $frid=$hash{'map_finish_'.$hash{'src_'.$rid}};
- $sofar=
- &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},
- '&'.$frid.'&');
- $sofar++;
- if ($hash{'src_'.$frid}) {
- my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$frid});
- if (($brepriv eq '2') || ($brepriv eq 'F')) {
- my $pprefix='';
- if ($hash{'src_'.$frid}=~
- /\.(problem|exam|quiz|assess|survey|form)$/) {
- $pprefix=&astatus($frid);
-
- }
- if (defined($rows[$sofar])) {
- $rows[$sofar].='&'.$pprefix.$frid;
- } else {
- $rows[$sofar]=$pprefix.$frid;
- }
- }
- }
- }
- } else {
- $sofar++;
- if ($hash{'src_'.$rid}) {
- my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});
- if (($brepriv eq '2') || ($brepriv eq 'F')) {
- my $pprefix='';
- if ($hash{'src_'.$rid}=~
- /\.(problem|exam|quiz|assess|survey|form)$/) {
- $pprefix=&astatus($rid);
- }
- if (defined($rows[$sofar])) {
- $rows[$sofar].='&'.$pprefix.$rid;
- } else {
- $rows[$sofar]=$pprefix.$rid;
- }
- }
- }
- }
-
- if (defined($hash{'to_'.$rid})) {
- my $mincond=1;
- my $next='';
- foreach (split(/\,/,$hash{'to_'.$rid})) {
- my $thiscond=
- &Apache::lonnet::directcondval($hash{'condid_'.$hash{'undercond_'.$_}});
- if ($thiscond>=$mincond) {
- if ($next) {
- $next.=','.$_.':'.$thiscond;
- } else {
- $next=$_.':'.$thiscond;
- }
- if ($thiscond>$mincond) { $mincond=$thiscond; }
- }
- }
- foreach (split(/\,/,$next)) {
- my ($linkid,$condval)=split(/\:/,$_);
- if ($condval>=$mincond) {
- my $now=&tracetable($sofar,$hash{'goesto_'.$linkid},$beenhere);
- if ($now>$further) { $further=$now; }
- }
- }
-
- }
+ $beenhere.=$rid.'&';
+
+ if (defined($hash{'is_map_'.$rid})) {
+ $sofar++;
+ my $tprefix='';
+ if ($hash{'map_type_'.$hash{'map_pc_'.$hash{'src_'.$rid}}}
+ eq 'sequence') {
+ $tprefix='h';
+ }
+ if (defined($rows[$sofar])) {
+ $rows[$sofar].='&'.$tprefix.$rid;
+ } else {
+ $rows[$sofar]=$tprefix.$rid;
+ }
+ if ((defined($hash{'map_start_'.$hash{'src_'.$rid}})) &&
+ (defined($hash{'map_finish_'.$hash{'src_'.$rid}})) &&
+ ($tprefix eq 'h')) {
+ my $frid=$hash{'map_finish_'.$hash{'src_'.$rid}};
+ $sofar=
+ &tracetable($sofar,$hash{'map_start_'.$hash{'src_'.$rid}},
+ '&'.$frid.'&');
+ $sofar++;
+ if ($hash{'src_'.$frid}) {
+ my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$frid});
+ if (($brepriv eq '2') || ($brepriv eq 'F')) {
+ my $pprefix='';
+ if ($hash{'src_'.$frid}=~
+ /\.(problem|exam|quiz|assess|survey|form)$/) {
+ $pprefix=&astatus($frid);
+
+ }
+ if (defined($rows[$sofar])) {
+ $rows[$sofar].='&'.$pprefix.$frid;
+ } else {
+ $rows[$sofar]=$pprefix.$frid;
+ }
+ }
+ }
+ }
+ } else {
+ $sofar++;
+ if ($hash{'src_'.$rid}) {
+ my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$rid});
+ if (($brepriv eq '2') || ($brepriv eq 'F')) {
+ my $pprefix='';
+ if ($hash{'src_'.$rid}=~
+ /\.(problem|exam|quiz|assess|survey|form)$/) {
+ $pprefix=&astatus($rid);
+ }
+ if (defined($rows[$sofar])) {
+ $rows[$sofar].='&'.$pprefix.$rid;
+ } else {
+ $rows[$sofar]=$pprefix.$rid;
+ }
+ }
+ }
+ }
+
+ if (defined($hash{'to_'.$rid})) {
+ my $mincond=1;
+ my $next='';
+ foreach (split(/\,/,$hash{'to_'.$rid})) {
+ my $thiscond=
+ &Apache::lonnet::directcondval($hash{'condid_'.$hash{'undercond_'.$_}});
+ if ($thiscond>=$mincond) {
+ if ($next) {
+ $next.=','.$_.':'.$thiscond;
+ } else {
+ $next=$_.':'.$thiscond;
+ }
+ if ($thiscond>$mincond) { $mincond=$thiscond; }
+ }
+ }
+ foreach (split(/\,/,$next)) {
+ my ($linkid,$condval)=split(/\:/,$_);
+ if ($condval>=$mincond) {
+ my $now=&tracetable($sofar,$hash{'goesto_'.$linkid},$beenhere);
+ if ($now>$further) { $further=$now; }
+ }
+ }
+ }
}
return $further;
}
@@ -358,337 +357,330 @@
# ================================================================ Main Handler
sub handler {
- my $r=shift;
+ my $r=shift;
# ------------------------------------------- Set document type for header only
- if ($r->header_only) {
- if ($ENV{'browser.mathml'}) {
- $r->content_type('text/xml');
- } else {
- $r->content_type('text/html');
- }
- $r->send_http_header;
- return OK;
- }
- my $requrl=$r->uri;
+ if ($r->header_only) {
+ if ($ENV{'browser.mathml'}) {
+ $r->content_type('text/xml');
+ } else {
+ $r->content_type('text/html');
+ }
+ $r->send_http_header;
+ return OK;
+ }
+ my $requrl=$r->uri;
+ my $hashtied;
# ----------------------------------------------------------------- Tie db file
- if ($ENV{'request.course.fn'}) {
- my $fn=$ENV{'request.course.fn'};
- if (-e "$fn.db") {
- if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER,0640)) &&
- (tie(%parmhash,'GDBM_File',
- $ENV{'request.course.fn'}.'_parms.db',&GDBM_READER,0640))) {
+ my $fn;
+ if ($ENV{'request.course.fn'}) {
+ $fn=$ENV{'request.course.fn'};
+ if (-e "$fn.db") {
+ if ((tie(%hash,'GDBM_File',"$fn.db",&GDBM_READER,0640)) &&
+ (tie(%parmhash,'GDBM_File',
+ $ENV{'request.course.fn'}.'_parms.db',
+ &GDBM_READER,0640))) {
+ $hashtied=1;
+ }
+ }
+ }
+ if (!$hashtied) {
+ $ENV{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
+ return HTTP_NOT_ACCEPTABLE;
+ }
+
# ------------------------------------------------------------------- Hash tied
- my $firstres=$hash{'map_start_/res/'.$ENV{'request.course.uri'}};
- my $lastres=$hash{'map_finish_/res/'.$ENV{'request.course.uri'}};
- if (($firstres) && ($lastres)) {
+
+ if ($ENV{'browser.mathml'}) {
+ $r->content_type('text/xml');
+ } else {
+ $r->content_type('text/html');
+ }
+ &Apache::loncommon::no_cache($r);
+ $r->send_http_header;
+
+ my $firstres=$hash{'map_start_/res/'.$ENV{'request.course.uri'}};
+ my $lastres=$hash{'map_finish_/res/'.$ENV{'request.course.uri'}};
+ if (!(($firstres) && ($lastres))) {
+ $r->print('<html><body>Coursemap undefined.</body></html>');
+ } else {
+
# ----------------------------------------------------------------- Render page
# -------------------------------------------------------------- Set parameters
# ---------------------------- initialize coursedata and userdata for this user
- undef %courseopt;
- undef %useropt;
+ undef %courseopt;
+ undef %useropt;
- my $uname=$ENV{'user.name'};
- my $udom=$ENV{'user.domain'};
- my $uhome=$ENV{'user.home'};
- my $cid=$ENV{'request.course.id'};
- my $chome=$ENV{'course.'.$cid.'.home'};
- my ($cdom,$cnum)=split(/\_/,$cid);
+ my $uname=$ENV{'user.name'};
+ my $udom=$ENV{'user.domain'};
+ my $uhome=$ENV{'user.home'};
+ my $cid=$ENV{'request.course.id'};
+ my $chome=$ENV{'course.'.$cid.'.home'};
+ my ($cdom,$cnum)=split(/\_/,$cid);
- my $userprefix=$uname.'_'.$udom.'_';
+ my $userprefix=$uname.'_'.$udom.'_';
- unless ($uhome eq 'no_host') {
+ unless ($uhome eq 'no_host') {
# -------------------------------------------------------------- Get coursedata
- unless
- ((time-$courserdatas{$cid.'.last_cache'})<240) {
- my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum.
- ':resourcedata',$chome);
- if ($reply!~/^error\:/) {
- $courserdatas{$cid}=$reply;
- $courserdatas{$cid.'.last_cache'}=time;
- }
- }
- foreach (split(/\&/,$courserdatas{$cid})) {
- my ($name,$value)=split(/\=/,$_);
- $courseopt{$userprefix.&Apache::lonnet::unescape($name)}=
- &Apache::lonnet::unescape($value);
- }
+ unless ((time-$courserdatas{$cid.'.last_cache'})<240) {
+ my $reply=&Apache::lonnet::reply('dump:'.$cdom.':'.$cnum.
+ ':resourcedata',$chome);
+ if ($reply!~/^error\:/) {
+ $courserdatas{$cid}=$reply;
+ $courserdatas{$cid.'.last_cache'}=time;
+ }
+ }
+ foreach (split(/\&/,$courserdatas{$cid})) {
+ my ($name,$value)=split(/\=/,$_);
+ $courseopt{$userprefix.&Apache::lonnet::unescape($name)}=
+ &Apache::lonnet::unescape($value);
+ }
# --------------------------------------------------- Get userdata (if present)
- unless
- ((time-$userrdatas{$uname.'___'.$udom.'.last_cache'})<240) {
- my $reply=
- &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);
- if ($reply!~/^error\:/) {
- $userrdatas{$uname.'___'.$udom}=$reply;
- $userrdatas{$uname.'___'.$udom.'.last_cache'}=time;
- }
- }
- foreach (split(/\&/,$userrdatas{$uname.'___'.$udom})) {
- my ($name,$value)=split(/\=/,$_);
- $useropt{$userprefix.&Apache::lonnet::unescape($name)}=
- &Apache::lonnet::unescape($value);
- }
- }
-
- @rows=();
-
- &tracetable(0,$firstres,'&'.$lastres.'&');
- if ($hash{'src_'.$lastres}) {
- my $brepriv=
- &Apache::lonnet::allowed('bre',$hash{'src_'.$lastres});
- if (($brepriv eq '2') || ($brepriv eq 'F')) {
- $rows[$#rows+1]=''.$lastres;
- }
- }
+ unless ((time-$userrdatas{$uname.'___'.$udom.'.last_cache'})<240) {
+ my $reply=&Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);
+ if ($reply!~/^error\:/) {
+ $userrdatas{$uname.'___'.$udom}=$reply;
+ $userrdatas{$uname.'___'.$udom.'.last_cache'}=time;
+ }
+ }
+ foreach (split(/\&/,$userrdatas{$uname.'___'.$udom})) {
+ my ($name,$value)=split(/\=/,$_);
+ $useropt{$userprefix.&Apache::lonnet::unescape($name)}=
+ &Apache::lonnet::unescape($value);
+ }
+ }
+
+ @rows=();
+
+ &tracetable(0,$firstres,'&'.$lastres.'&');
+ if ($hash{'src_'.$lastres}) {
+ my $brepriv=&Apache::lonnet::allowed('bre',$hash{'src_'.$lastres});
+ if (($brepriv eq '2') || ($brepriv eq 'F')) {
+ $rows[$#rows+1]=''.$lastres;
+ }
+ }
# ------------------------------------------------------------------ Page parms
- my $j;
- my $i;
- my $lcm=1;
- my $contents=0;
+ my $j;
+ my $i;
+ my $lcm=1;
+ my $contents=0;
# ---------------------------------------------- Go through table to get layout
- for ($i=0;$i<=$#rows;$i++) {
- if ($rows[$i]) {
- $contents++;
- my @colcont=split(/\&/,$rows[$i]);
- $lcm*=($#colcont+1)/euclid($lcm,($#colcont+1));
- }
- }
+ for ($i=0;$i<=$#rows;$i++) {
+ if ($rows[$i]) {
+ $contents++;
+ my @colcont=split(/\&/,$rows[$i]);
+ $lcm*=($#colcont+1)/euclid($lcm,($#colcont+1));
+ }
+ }
- unless ($contents) {
- $r->content_type('text/html');
- $r->send_http_header;
- $r->print('<html><body>Empty Map.</body></html>');
- } else {
+ unless ($contents) {
+ $r->print('<html><body>Empty Map.</body></html>');
+ } else {
# ------------------------------------------------------------------ Build page
- my $currenturl=$ENV{'form.postdata'};
- $currenturl=~s/^http\:\/\///;
- $currenturl=~s/^[^\/]+//;
+ my $currenturl=$ENV{'form.postdata'};
+ $currenturl=~s/^http\:\/\///;
+ $currenturl=~s/^[^\/]+//;
# ---------------------------------------------------------------- Send headers
- $r->content_type('text/html');
- &Apache::loncommon::no_cache($r);
- $r->send_http_header;
-
- my $date=localtime;
- my $now=time;
+ my $date=localtime;
+ my $now=time;
# ----------------------------------------- Get email status and discussiontime
- my %emailstatus=&Apache::lonnet::dump('email_status');
- my $logouttime=$emailstatus{'logout'};
- my $courseleave=
- $emailstatus{'logout_'.$ENV{'request.course.id'}};
- my $lastcheck=
- ($courseleave>$logouttime?$courseleave:$logouttime);
-
- my %discussiontimes=&Apache::lonnet::dump(
- 'discussiontimes',
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
-
- my %feedback=();
- my %error=();
- foreach my $msgid (
- split(/\&/,&Apache::lonnet::reply('keys:'.
- $ENV{'user.domain'}.':'.
- $ENV{'user.name'}.':nohist_email',
- $ENV{'user.home'}))) {
- $msgid=&Apache::lonnet::unescape($msgid);
- my $plain=&Apache::lonnet::unescape(
- &Apache::lonnet::unescape($msgid));
- if ($plain=~/(Error|Feedback) \[([^\]]+)\]/) {
- my ($what,$url)=($1,$2);
- my %status=
- &Apache::lonnet::get('email_status',[$msgid]);
- if ($status{$msgid}=~/^error\:/) {
- $status{$msgid}='';
- }
-
- if (($status{$msgid} eq 'new') ||
- (!$status{$msgid})) {
- if ($what eq 'Error') {
- $error{$url}.=','.$msgid;
- } else {
- $feedback{$url}.=','.$msgid;
- }
- }
- }
- }
+ my %emailstatus=&Apache::lonnet::dump('email_status');
+ my $logouttime=$emailstatus{'logout'};
+ my $courseleave=$emailstatus{'logout_'.$ENV{'request.course.id'}};
+ my $lastcheck=($courseleave>$logouttime?$courseleave:$logouttime);
+
+ my %discussiontimes=&Apache::lonnet::dump('discussiontimes',
+ $cdom,$cnum);
+
+ my %feedback=();
+ my %error=();
+ foreach my $msgid (split(/\&/,&Apache::lonnet::reply('keys:'.
+ $ENV{'user.domain'}.':'.
+ $ENV{'user.name'}.':nohist_email',
+ $ENV{'user.home'}))) {
+ $msgid=&Apache::lonnet::unescape($msgid);
+ my $plain=&Apache::lonnet::unescape(&Apache::lonnet::unescape($msgid));
+ if ($plain=~/(Error|Feedback) \[([^\]]+)\]/) {
+ my ($what,$url)=($1,$2);
+ my %status=
+ &Apache::lonnet::get('email_status',[$msgid]);
+ if ($status{$msgid}=~/^error\:/) {
+ $status{$msgid}='';
+ }
+
+ if (($status{$msgid} eq 'new') ||
+ (!$status{$msgid})) {
+ if ($what eq 'Error') {
+ $error{$url}.=','.$msgid;
+ } else {
+ $feedback{$url}.=','.$msgid;
+ }
+ }
+ }
+ }
# ----------------------------------------------------------- Start Page Output
- $r->print(
- '<html><head><title>Navigate LON-CAPA Maps</title></head>');
- $r->print('<body bgcolor="#FFFFFF"');
- if (($currenturl=~/^\/res/) &&
- ($currenturl!~/^\/res\/adm/)) {
- $r->print(' onLoad="window.location.hash='.
- "'curloc'".'"');
- }
- $r->print('><script>window.focus();</script>'.
- '<img align=right src=/adm/lonIcons/lonlogos.gif>'.
- '<h1>Navigate Course Map</h1>'.
- "<h3>$date</h3>");
- $r->rflush();
- $r->print(
- '<img src="/adm/lonMisc/chat.gif"> New discussion since '.
- localtime($lastcheck).
- '<br><img src="/adm/lonMisc/feedback.gif"> New message (click to open)<p>');
- if (($currenturl=~/^\/res/) &&
- ($currenturl!~/^\/res\/adm/)) {
- $r->print('<a href="#curloc">Current Location</a><p>');
- }
+ $r->print('<html><head><title>Navigate LON-CAPA Maps</title></head>');
+ $r->print('<body bgcolor="#FFFFFF"');
+ if (($currenturl=~/^\/res/) &&
+ ($currenturl!~/^\/res\/adm/)) {
+ $r->print(' onLoad="window.location.hash='."'curloc'".'"');
+ }
+ $r->print('><script>window.focus();</script>'.
+ '<img align=right src=/adm/lonIcons/lonlogos.gif>'.
+ '<h1>Navigate Course Map</h1>'.
+ "<h3>$date</h3>");
+ $r->rflush();
+ $r->print('<img src="/adm/lonMisc/chat.gif"> New discussion since '.
+ localtime($lastcheck).
+ '<br><img src="/adm/lonMisc/feedback.gif"> New message (click to open)<p>');
+ if (($currenturl=~/^\/res/) &&
+ ($currenturl!~/^\/res\/adm/)) {
+ $r->print('<a href="#curloc">Current Location</a><p>');
+ }
# ----------------------------------------------------- The little content list
- for ($i=0;$i<=$#rows;$i++) {
- if ($rows[$i]) {
- my @colcont=split(/\&/,$rows[$i]);
- my $avespan=$lcm/($#colcont+1);
- for ($j=0;$j<=$#colcont;$j++) {
- my $rid=$colcont[$j];
- if ($rid=~/^h(.+)/) {
- $rid=$1;
- $r->print(
- ' <a href="#'.$rid.'">'.$hash{'title_'.$rid}.'</a><br>');
- }
- }
- }
- }
+ for ($i=0;$i<=$#rows;$i++) {
+ if ($rows[$i]) {
+ my @colcont=split(/\&/,$rows[$i]);
+ my $avespan=$lcm/($#colcont+1);
+ for ($j=0;$j<=$#colcont;$j++) {
+ my $rid=$colcont[$j];
+ if ($rid=~/^h(.+)/) {
+ $rid=$1;
+ $r->print(' <a href="#'.
+ $rid.'">'.$hash{'title_'.$rid}.
+ '</a><br>');
+ }
+ }
+ }
+ }
# ----------------------------------------------------------------- Start table
- $r->print('<hr><table cols="'.$lcm.'" border="0">');
- for ($i=0;$i<=$#rows;$i++) {
- if ($rows[$i]) {
- $r->print("\n<tr>");
- my @colcont=split(/\&/,$rows[$i]);
- my $avespan=$lcm/($#colcont+1);
- for ($j=0;$j<=$#colcont;$j++) {
- my $rid=$colcont[$j];
- my $add='<td> ';
- my $adde='</td>';
- my $hwk='<font color="#223322">';
- my $hwke='</font>';
- if ($rid=~/^h(.+)/) {
- $rid=$1;
- $add=
- '<th bgcolor="#AAFF55"><a name="'.$rid.'">';
- $adde='</th>';
- }
- if ($rid=~/^p(\d)(\d)\"([\w\: \(\)\/\,]*)\"(.+)/) {
- # sub astatus describes what code/tcode mean
- my $code=$1;
- my $tcode=$2;
- my $ctext=$3;
- $rid=$4;
- if ($tcode eq '1') {
- $add='<td bgcolor="#AAAAAA">';
- }
- if ($code eq '3') {
- $add='<td bgcolor="#AAFFAA">';
- } else {
- $add='<td bgcolor="#FFAAAA">';
- if ($tcode eq '2') {
- $add='<td bgcolor="#FFFFAA">';
- }
- if ($tcode eq '4') {
- $add='<td bgcolor="#FFFF33">';
- $adde='</td>';
- }
- }
- $hwk='<font color="#888811"><b>';
- $hwke='</b></font>';
- if ($code eq '1') {
- $hwke='</b> ('.$ctext.')</font>';
- }
- if ($code eq '2') {
- $hwk='<font color="#992222"><b>';
- $hwke='</b> ('.$ctext.')</font>';
- }
- if ($code eq '3') {
- $hwk='<font color="#229922"><b>';
- $hwke='</b> ('.$ctext.')</font>';
- }
- }
- if ($hash{'src_'.$rid} eq $currenturl) {
- $add=$add.'<a name="curloc"></a>'.
- '<font color=red size=+2><b>> </b></font>';
- $adde=
- '<font color=red size=+2><b> <</b></font>'.$adde;
- }
- my $src=
- &Apache::lonnet::declutter($hash{'src_'.$rid});
- $rid=~/^(\d+)\.(\d+)$/;
- my $symb=
- &Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.$src;
- if ($discussiontimes{$symb}>$lastcheck) {
- $adde=
- '<img border=0 src="/adm/lonMisc/chat.gif">'.
- $adde;
- }
- if ($error{$src}) {
- foreach (split(/\,/,$error{$src})) {
- if ($_) {
- $adde=
- ' <a href="/adm/email?display='.
- &Apache::lonnet::escape($_).
- '"><img src="/adm/lonMisc/bomb.gif" border=0></a>'
- .$adde;
- }
- }
- }
- if ($feedback{$src}) {
- foreach (split(/\,/,$feedback{$src})) {
- if ($_) {
- $adde=
- ' <a href="/adm/email?display='.
- &Apache::lonnet::escape($_).
- '"><img src="/adm/lonMisc/feedback.gif" border=0></a>'
- .$adde;
- }
- }
- }
- $r->print($add.'<a href="'.$hash{'src_'.$rid}.
- '">'.$hwk.
- $hash{'title_'.$rid}.$hwke.'</a>'.$adde);
- }
- $r->print('</tr>');
- }
- }
- $r->print("\n</table>");
- $r->print('</body></html>');
+ $r->print('<hr><table cols="'.$lcm.'" border="0">');
+ for ($i=0;$i<=$#rows;$i++) {
+ if ($rows[$i]) {
+ $r->print("\n<tr>");
+ my @colcont=split(/\&/,$rows[$i]);
+ my $avespan=$lcm/($#colcont+1);
+ for ($j=0;$j<=$#colcont;$j++) {
+ my $rid=$colcont[$j];
+ my $add='<td> ';
+ my $adde='</td>';
+ my $hwk='<font color="#223322">';
+ my $hwke='</font>';
+ if ($rid=~/^h(.+)/) {
+ $rid=$1;
+ $add='<th bgcolor="#AAFF55"><a name="'.$rid.'">';
+ $adde='</th>';
+ }
+ if ($rid=~/^p(\d)(\d)\"([\w\: \(\)\/\,]*)\"(.+)/) {
+ # sub astatus describes what code/tcode mean
+ my $code=$1;
+ my $tcode=$2;
+ my $ctext=$3;
+ $rid=$4;
+ if ($tcode eq '1') {
+ $add='<td bgcolor="#AAAAAA">';
+ }
+ if ($code eq '3') {
+ $add='<td bgcolor="#AAFFAA">';
+ } else {
+ $add='<td bgcolor="#FFAAAA">';
+ if ($tcode eq '2') {
+ $add='<td bgcolor="#FFFFAA">';
+ }
+ if ($tcode eq '4') {
+ $add='<td bgcolor="#FFFF33">';
+ $adde='</td>';
+ }
+ }
+ $hwk='<font color="#888811"><b>';
+ $hwke='</b></font>';
+ if ($code eq '1') {
+ $hwke='</b> ('.$ctext.')</font>';
+ }
+ if ($code eq '2') {
+ $hwk='<font color="#992222"><b>';
+ $hwke='</b> ('.$ctext.')</font>';
+ }
+ if ($code eq '3') {
+ $hwk='<font color="#229922"><b>';
+ $hwke='</b> ('.$ctext.')</font>';
+ }
+ }
+ if ($hash{'src_'.$rid} eq $currenturl) {
+ $add=$add.'<a name="curloc"></a>'.
+ '<font color=red size=+2><b>> </b></font>';
+ $adde=
+ '<font color=red size=+2><b> <</b></font>'.$adde;
+ }
+ my $src=
+ &Apache::lonnet::declutter($hash{'src_'.$rid});
+ $rid=~/^(\d+)\.(\d+)$/;
+ my $symb=
+ &Apache::lonnet::declutter($hash{'map_id_'.$1}).'___'.$2.'___'.$src;
+ if ($discussiontimes{$symb}>$lastcheck) {
+ $adde=
+ '<img border=0 src="/adm/lonMisc/chat.gif">'.
+ $adde;
+ }
+ if ($error{$src}) {
+ foreach (split(/\,/,$error{$src})) {
+ if ($_) {
+ $adde=
+ ' <a href="/adm/email?display='.
+ &Apache::lonnet::escape($_).
+ '"><img src="/adm/lonMisc/bomb.gif" border=0></a>'
+ .$adde;
+ }
+ }
+ }
+ if ($feedback{$src}) {
+ foreach (split(/\,/,$feedback{$src})) {
+ if ($_) {
+ $adde=
+ ' <a href="/adm/email?display='.
+ &Apache::lonnet::escape($_).
+ '"><img src="/adm/lonMisc/feedback.gif" border=0></a>'
+ .$adde;
+ }
+ }
+ }
+ $r->print($add.'<a href="'.$hash{'src_'.$rid}.
+ '">'.$hwk.
+ $hash{'title_'.$rid}.$hwke.'</a>'.$adde);
+ }
+ $r->print('</tr>');
+ }
+ }
+ $r->print("\n</table>");
+ $r->print('</body></html>');
# -------------------------------------------------------------------- End page
- }
+ }
# ------------------------------------------------------------- End render page
- } else {
- $r->content_type('text/html');
- $r->send_http_header;
- $r->print('<html><body>Coursemap undefined.</body></html>');
- }
+ }
# ------------------------------------------------------------------ Untie hash
- unless (untie(%hash)) {
- &Apache::lonnet::logthis("<font color=blue>WARNING: ".
- "Could not untie coursemap $fn (browse).</font>");
- }
- unless (untie(%parmhash)) {
- &Apache::lonnet::logthis("<font color=blue>WARNING: ".
- "Could not untie parmhash (browse).</font>");
- }
-# -------------------------------------------------------------------- All done
- return OK;
-# ----------------------------------------------- Errors, hash could no be tied
- }
- }
- }
-
- $ENV{'user.error.msg'}="$requrl:bre:0:0:Course not initialized";
- return HTTP_NOT_ACCEPTABLE;
+ unless (untie(%hash)) {
+ &Apache::lonnet::logthis("<font color=blue>WARNING: ".
+ "Could not untie coursemap $fn (browse).</font>");
+ }
+ unless (untie(%parmhash)) {
+ &Apache::lonnet::logthis("<font color=blue>WARNING: ".
+ "Could not untie parmhash (browse).</font>");
+ }
+ return OK;
}
1;
--albertel1016209870--