[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 12 Feb 2002 06:28:23 -0000
This is a MIME encoded message
--albertel1013495303
Content-Type: text/plain
albertel Tue Feb 12 01:28:23 2002 EDT
Modified files:
/loncom/interface lonparmset.pm
Log:
- more readable, assesparms down to about 400 lines of code now
- fixed bug with showing sections fro a specific resource, works now.
--albertel1013495303
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20020212012823.txt"
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.43 loncom/interface/lonparmset.pm:1.44
--- loncom/interface/lonparmset.pm:1.43 Mon Feb 11 19:14:07 2002
+++ loncom/interface/lonparmset.pm Tue Feb 12 01:28:23 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.43 2002/02/12 00:14:07 albertel Exp $
+# $Id: lonparmset.pm,v 1.44 2002/02/12 06:28:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -56,11 +56,8 @@
my %courseopt;
my %useropt;
-my %bighash;
my %parmhash;
-my @outpar;
-
my @ids;
my %symbp;
my %mapp;
@@ -70,17 +67,14 @@
my $uname;
my $udom;
my $uhome;
-
my $csec;
-my $fcat;
-
# -------------------------------------------- Figure out a cascading parameter
sub parmval {
my ($what,$id,$def)=@_;
my $result='';
- @outpar=();
+ my @outpar=();
# ----------------------------------------------------- Cascading lookup scheme
my $symbparm=$symbp{$id}.'.'.$what;
@@ -155,7 +149,7 @@
}
}
- return $result;
+ return ($result,@outpar);
}
# ------------------------------------------------------------ Output for value
@@ -183,6 +177,128 @@
&valout($value,$type).'</a><a name="'.$marker.'"></a>';
}
+
+sub startpage {
+ my ($r,$id,$udom,$csec,$uname)=@_;
+ $r->content_type('text/html');
+ $r->send_http_header;
+ $r->print(<<ENDHEAD);
+<html>
+<head>
+<title>LON-CAPA Course Parameters</title>
+<script>
+
+ function pclose() {
+ parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
+ "height=350,width=350,scrollbars=no,menubar=no");
+ parmwin.close();
+ }
+
+ function pjump(type,dis,value,marker,ret,call) {
+ document.parmform.pres_marker.value='';
+ parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
+ +"&value="+escape(value)+"&marker="+escape(marker)
+ +"&return="+escape(ret)
+ +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
+ "height=350,width=350,scrollbars=no,menubar=no");
+
+ }
+
+ function psub() {
+ pclose();
+ if (document.parmform.pres_marker.value!='') {
+ document.parmform.action+='#'+document.parmform.pres_marker.value;
+ var typedef=new Array();
+ typedef=document.parmform.pres_type.value.split('_');
+ if (document.parmform.pres_type.value!='') {
+ if (typedef[0]=='date') {
+ eval('document.parmform.recent_'+
+ document.parmform.pres_type.value+
+ '.value=document.parmform.pres_value.value;');
+ } else {
+ eval('document.parmform.recent_'+typedef[0]+
+ '.value=document.parmform.pres_value.value;');
+ }
+ }
+ document.parmform.submit();
+ } else {
+ document.parmform.pres_value.value='';
+ document.parmform.pres_marker.value='';
+ }
+ }
+
+</script>
+</head>
+<body bgcolor="#FFFFFF" onUnload="pclose()">
+<h1>Set Course Parameters</h1>
+<form method="post" action="/adm/parmset" name="envform">
+<h2>Course: $ENV{'course.'.$ENV{'request.course.id'}.'.description'}</h2>
+<h3>Course Environment</h3>
+<input type="submit" name="crsenv" value="Set Course Environment">
+</form>
+<form method="post" action="/adm/parmset" name="parmform">
+<h3>Course Assessments</h3>
+<b>
+Section/Group:
+<input type="text" value="$csec" size="6" name="csec">
+<br>
+For User
+<input type="text" value="$uname" size="12" name="uname">
+or ID
+<input type="text" value="$id" size="12" name="id">
+at Domain
+<input type="text" value="$udom" size="6" name="udom">
+</b>
+<input type="hidden" value='' name="pres_value">
+<input type="hidden" value='' name="pres_type">
+<input type="hidden" value='' name="pres_marker">
+ENDHEAD
+
+}
+
+sub print_row {
+ my ($r,$which,$part,$name,$rid,$default,$type,$display,$defbgone,
+ $defbgtwo)=@_;
+ my ($result,@outpar)=&parmval($$part{$which}.'.'.$$name{$which},
+ $rid,$$default{$which});
+ $r->print("<td bgcolor=".$defbgtwo.
+ '>'.$$part{$which}.'</td><td bgcolor='.$defbgone.
+ '>'.$$display{$which}.'</td>');
+ my $thismarker=$which;
+ $thismarker=~s/^parameter\_//;
+ my $mprefix=$rid.'&'.$thismarker.'&';
+
+ &print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,10,'#FFDDDD',$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,9,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,8,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,7,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ if ($csec) {
+ &print_td($r,6,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,5,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,4,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ if ($uname) {
+ &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ &print_td($r,1,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ $r->print('<td bgcolor=#CCCCFF>'.&valout($outpar[$result],$$type{$which}).'</td>');
+ my $sessionval=&Apache::lonnet::EXT('resource.'.$$part{$which}.
+ '.'.$$name{$which},$symbp{$rid});
+ $r->print('<td bgcolor=#999999><font color=#FFFFFF>'.
+ &valout($sessionval,$$type{$which}).' '.
+ '</font></td>');
+ $r->print('</tr>');
+}
+
+sub print_td {
+ my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$type,$display)=@_;
+ $r->print('<td bgcolor='.(($result==$which)?'"#AAFFAA"':$defbg).'>'.
+ &plink($$type{$value},$$display{$value},$$outpar[$which],
+ $mprefix."$which",'parmform.pres','psub').'</td>');
+}
+
sub assessparms {
my $r=shift;
@@ -192,7 +308,7 @@
my %defp;
%courseopt=();
%useropt=();
- %bighash=();
+ my %bighash=();
@ids=();
%symbp=();
@@ -266,459 +382,335 @@
unless ($csec) { $csec=''; }
- $fcat=$ENV{'form.fcat'};
+ my $fcat=$ENV{'form.fcat'};
unless ($fcat) { $fcat=''; }
# ------------------------------------------------------------------- Tie hashs
- if ((tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
- &GDBM_READER,0640)) &&
- (tie(%parmhash,'GDBM_File',
- $ENV{'request.course.fn'}.'_parms.db',&GDBM_READER,0640))) {
-
+ if (!(tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
+ &GDBM_READER,0640))) {
+ $r->print("Unable to access course data. (File $ENV{'request.course.fn'}.db not tieable)");
+ return ;
+ }
+ if (!(tie(%parmhash,'GDBM_File',
+ $ENV{'request.course.fn'}.'_parms.db',&GDBM_READER,0640))) {
+ $r->print("Unable to access parameter data. (File $ENV{'request.course.fn'}_parms.db not tieable)");
+ return ;
+ }
# --------------------------------------------------------- Get all assessments
- foreach (keys %bighash) {
- if ($_=~/^src\_(\d+)\.(\d+)$/) {
- my $mapid=$1;
- my $resid=$2;
- my $id=$mapid.'.'.$resid;
- my $srcf=$bighash{$_};
- if ($srcf=~/\.(problem|exam|quiz|assess|survey|form)$/) {
- $ids[$#ids+1]=$id;
- $typep{$id}=$1;
- $keyp{$id}='';
- foreach (split(/\,/,
- &Apache::lonnet::metadata($srcf,'keys'))) {
- if ($_=~/^parameter\_(.*)/) {
- my $key=$_;
- my $allkey=$1;
- $allkey=~s/\_/\./;
- my $display=
- &Apache::lonnet::metadata($srcf,$key.'.display');
- unless ($display) {
- $display=
- &Apache::lonnet::metadata($srcf,$key.'.name');
- }
- $allkeys{$allkey}=$display;
- if ($allkey eq $fcat) {
- $defp{$id}=
- &Apache::lonnet::metadata($srcf,$key);
- }
- if ($keyp{$id}) {
- $keyp{$id}.=','.$key;
- } else {
- $keyp{$id}=$key;
- }
+ foreach (keys %bighash) {
+ if ($_=~/^src\_(\d+)\.(\d+)$/) {
+ my $mapid=$1;
+ my $resid=$2;
+ my $id=$mapid.'.'.$resid;
+ my $srcf=$bighash{$_};
+ if ($srcf=~/\.(problem|exam|quiz|assess|survey|form)$/) {
+ $ids[$#ids+1]=$id;
+ $typep{$id}=$1;
+ $keyp{$id}='';
+ foreach (split(/\,/,
+ &Apache::lonnet::metadata($srcf,'keys'))) {
+ if ($_=~/^parameter\_(.*)/) {
+ my $key=$_;
+ my $allkey=$1;
+ $allkey=~s/\_/\./;
+ my $display=
+ &Apache::lonnet::metadata($srcf,$key.'.display');
+ unless ($display) {
+ $display=
+ &Apache::lonnet::metadata($srcf,$key.'.name');
+ }
+ $allkeys{$allkey}=$display;
+ if ($allkey eq $fcat) {
+ $defp{$id}=
+ &Apache::lonnet::metadata($srcf,$key);
+ }
+ if ($keyp{$id}) {
+ $keyp{$id}.=','.$key;
+ } else {
+ $keyp{$id}=$key;
}
}
- $mapp{$id}=
- &Apache::lonnet::declutter($bighash{'map_id_'.$mapid});
- $allmaps{$mapid}=$mapp{$id};
- $symbp{$id}=$mapp{$id}.
+ }
+ $mapp{$id}=
+ &Apache::lonnet::declutter($bighash{'map_id_'.$mapid});
+ $allmaps{$mapid}=$mapp{$id};
+ $symbp{$id}=$mapp{$id}.
'___'.$resid.'___'.
&Apache::lonnet::declutter($srcf);
- }
- }
- }
+ }
+ }
+ }
# ---------------------------------------------------------- Anything to store?
- if ($ENV{'form.pres_marker'}) {
- my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'});
- $spnam=~s/\_([^\_]+)$/\.$1/;
+ if ($ENV{'form.pres_marker'}) {
+ my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'});
+ $spnam=~s/\_([^\_]+)$/\.$1/;
# ---------------------------------------------------------- Construct prefixes
- my $symbparm=$symbp{$sresid}.'.'.$spnam;
- my $mapparm=$mapp{$sresid}.'___(all).'.$spnam;
-
- my $seclevel=$ENV{'request.course.id'}.'.['.$csec.'].'.$spnam;
- my $seclevelr=$ENV{'request.course.id'}.'.['.$csec.'].'.$symbparm;
- my $seclevelm=$ENV{'request.course.id'}.'.['.$csec.'].'.$mapparm;
-
- my $courselevel=$ENV{'request.course.id'}.'.'.$spnam;
- my $courselevelr=$ENV{'request.course.id'}.'.'.$symbparm;
- my $courselevelm=$ENV{'request.course.id'}.'.'.$mapparm;
-
- my $storeunder='';
- if (($snum==9) || ($snum==3)) { $storeunder=$courselevel; }
- if (($snum==8) || ($snum==2)) { $storeunder=$courselevelm; }
- if (($snum==7) || ($snum==1)) { $storeunder=$courselevelr; }
- if ($snum==6) { $storeunder=$seclevel; }
- if ($snum==5) { $storeunder=$seclevelm; }
- if ($snum==4) { $storeunder=$seclevelr; }
- $storeunder=&Apache::lonnet::escape($storeunder);
-
- my $storecontent=
- $storeunder.'='.
- &Apache::lonnet::escape($ENV{'form.pres_value'}).'&'.
- $storeunder.'.type='.
- &Apache::lonnet::escape($ENV{'form.pres_type'});
+ my $symbparm=$symbp{$sresid}.'.'.$spnam;
+ my $mapparm=$mapp{$sresid}.'___(all).'.$spnam;
+
+ my $seclevel=$ENV{'request.course.id'}.'.['.$csec.'].'.$spnam;
+ my $seclevelr=$ENV{'request.course.id'}.'.['.$csec.'].'.$symbparm;
+ my $seclevelm=$ENV{'request.course.id'}.'.['.$csec.'].'.$mapparm;
+
+ my $courselevel=$ENV{'request.course.id'}.'.'.$spnam;
+ my $courselevelr=$ENV{'request.course.id'}.'.'.$symbparm;
+ my $courselevelm=$ENV{'request.course.id'}.'.'.$mapparm;
+
+ my $storeunder='';
+ if (($snum==9) || ($snum==3)) { $storeunder=$courselevel; }
+ if (($snum==8) || ($snum==2)) { $storeunder=$courselevelm; }
+ if (($snum==7) || ($snum==1)) { $storeunder=$courselevelr; }
+ if ($snum==6) { $storeunder=$seclevel; }
+ if ($snum==5) { $storeunder=$seclevelm; }
+ if ($snum==4) { $storeunder=$seclevelr; }
+ $storeunder=&Apache::lonnet::escape($storeunder);
+
+ my $storecontent=
+ $storeunder.'='.
+ &Apache::lonnet::escape($ENV{'form.pres_value'}).'&'.
+ $storeunder.'.type='.
+ &Apache::lonnet::escape($ENV{'form.pres_type'});
- my $reply='';
- if ($snum>3) {
+ my $reply='';
+ if ($snum>3) {
# ---------------------------------------------------------------- Store Course
#
# Expire sheets
- &Apache::lonnet::expirespread('','','studentcalc');
- if (($snum==7) || ($snum==4)) {
- &Apache::lonnet::expirespread('','','assesscalc',$symbp{$sresid});
- } elsif (($snum==8) || ($snum==5)) {
- &Apache::lonnet::expirespread('','','assesscalc',$mapp{$sresid});
- } else {
- &Apache::lonnet::expirespread('','','assesscalc');
- }
+ &Apache::lonnet::expirespread('','','studentcalc');
+ if (($snum==7) || ($snum==4)) {
+ &Apache::lonnet::expirespread('','','assesscalc',$symbp{$sresid});
+ } elsif (($snum==8) || ($snum==5)) {
+ &Apache::lonnet::expirespread('','','assesscalc',$mapp{$sresid});
+ } else {
+ &Apache::lonnet::expirespread('','','assesscalc');
+ }
# Store parameter
- $reply=&Apache::lonnet::critical('put:'.
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata:'.
- $storecontent,
- $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
- } else {
+ $reply=&Apache::lonnet::critical('put:'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata:'.
+ $storecontent,
+ $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
+ } else {
# ------------------------------------------------------------------ Store User
#
# Expire sheets
- &Apache::lonnet::expirespread($uname,$udom,'studentcalc');
- if ($snum==1) {
- &Apache::lonnet::expirespread
- ($uname,$udom,'assesscalc',$symbp{$sresid});
- } elsif ($snum==2) {
- &Apache::lonnet::expirespread
- ($uname,$udom,'assesscalc',$mapp{$sresid});
- } else {
- &Apache::lonnet::expirespread($uname,$udom,'assesscalc');
- }
+ &Apache::lonnet::expirespread($uname,$udom,'studentcalc');
+ if ($snum==1) {
+ &Apache::lonnet::expirespread
+ ($uname,$udom,'assesscalc',$symbp{$sresid});
+ } elsif ($snum==2) {
+ &Apache::lonnet::expirespread
+ ($uname,$udom,'assesscalc',$mapp{$sresid});
+ } else {
+ &Apache::lonnet::expirespread($uname,$udom,'assesscalc');
+ }
# Store parameter
- $reply=
- &Apache::lonnet::critical('put:'.$udom.':'.$uname.':resourcedata:'.
- $storecontent,$uhome);
- }
+ $reply=
+ &Apache::lonnet::critical('put:'.$udom.':'.$uname.':resourcedata:'.
+ $storecontent,$uhome);
+ }
- if ($reply=~/^error\:(.*)/) {
- $message.="<font color=red>Write Error: $1</font>";
- }
+ if ($reply=~/^error\:(.*)/) {
+ $message.="<font color=red>Write Error: $1</font>";
+ }
# ---------------------------------------------------------------- Done storing
- }
+ }
# -------------------------------------------------------------- Get coursedata
- my $reply=&Apache::lonnet::reply('dump:'.
- $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
- $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata',
- $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
- if ($reply!~/^error\:/) {
+ my $reply=&Apache::lonnet::reply('dump:'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata',
+ $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
+ if ($reply!~/^error\:/) {
+ foreach (split(/\&/,$reply)) {
+ my ($name,$value)=split(/\=/,$_);
+ $courseopt{&Apache::lonnet::unescape($name)}=
+ &Apache::lonnet::unescape($value);
+ }
+ }
+# --------------------------------------------------- Get userdata (if present)
+ if ($uname) {
+ my $reply=
+ &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);
+ if ($reply!~/^error\:/) {
foreach (split(/\&/,$reply)) {
my ($name,$value)=split(/\=/,$_);
- $courseopt{&Apache::lonnet::unescape($name)}=
+ $useropt{&Apache::lonnet::unescape($name)}=
&Apache::lonnet::unescape($value);
}
- }
-# --------------------------------------------------- Get userdata (if present)
- if ($uname) {
- my $reply=
- &Apache::lonnet::reply('dump:'.$udom.':'.$uname.':resourcedata',$uhome);
- if ($reply!~/^error\:/) {
- foreach (split(/\&/,$reply)) {
- my ($name,$value)=split(/\=/,$_);
- $useropt{&Apache::lonnet::unescape($name)}=
- &Apache::lonnet::unescape($value);
- }
- }
- }
+ }
+ }
# ------------------------------------------------------------------- Sort this
- @ids=sort {
- if ($fcat eq '') {
- $a<=>$b;
- } else {
- 1*$outpar[&parmval($fcat,$a,$defp{$a})]<=>
- 1*$outpar[&parmval($fcat,$b,$defp{$b})];
- }
- } @ids;
+ @ids=sort {
+ if ($fcat eq '') {
+ $a<=>$b;
+ } else {
+ my ($result,@outpar)=&parmval($fcat,$a,$defp{$a});
+ my $aparm=$outpar[$result];
+ ($result,@outpar)=&parmval($fcat,$b,$defp{$b});
+ my $bparm=$outpar[$result];
+ 1*$aparm<=>1*$bparm;
+ }
+ } @ids;
# ------------------------------------------------------------------ Start page
- $r->content_type('text/html');
- $r->send_http_header;
- $r->print(<<ENDHEAD);
-<html>
-<head>
-<title>LON-CAPA Course Parameters</title>
-<script>
-
- function pclose() {
- parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
- "height=350,width=350,scrollbars=no,menubar=no");
- parmwin.close();
- }
-
- function pjump(type,dis,value,marker,ret,call) {
- document.parmform.pres_marker.value='';
- parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
- +"&value="+escape(value)+"&marker="+escape(marker)
- +"&return="+escape(ret)
- +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
- "height=350,width=350,scrollbars=no,menubar=no");
-
- }
-
- function psub() {
- pclose();
- if (document.parmform.pres_marker.value!='') {
- document.parmform.action+='#'+document.parmform.pres_marker.value;
- var typedef=new Array();
- typedef=document.parmform.pres_type.value.split('_');
- if (document.parmform.pres_type.value!='') {
- if (typedef[0]=='date') {
- eval('document.parmform.recent_'+
- document.parmform.pres_type.value+
- '.value=document.parmform.pres_value.value;');
- } else {
- eval('document.parmform.recent_'+typedef[0]+
- '.value=document.parmform.pres_value.value;');
- }
- }
- document.parmform.submit();
- } else {
- document.parmform.pres_value.value='';
- document.parmform.pres_marker.value='';
- }
+ &startpage($r,$id,$udom,$csec,$uname);
+# if ($ENV{'form.url'}) {
+# $r->print('<input type="hidden" value="'.$ENV{'form.url'}.
+# '" name="url"><input type="hidden" name="command" value="set">');
+# }
+ foreach ('tolerance','date_default','date_start','date_end',
+ 'date_interval','int','float','string') {
+ $r->print('<input type="hidden" value="'.
+ $ENV{'form.recent_'.$_}.'" name="recent_'.$_.'">');
+ }
+
+ $r->print('<h2>'.$message.'</h2><table><tr><td>Sort list by</td><td>');
+ $r->print('<select name="fcat">');
+ $r->print('<option value="">Enclosing Map</option>');
+ foreach (reverse sort keys %allkeys) {
+ $r->print('<option value="'.$_.'"');
+ if ($fcat eq $_) { $r->print(' selected'); }
+ $r->print('>'.$allkeys{$_}.'</option>');
}
-
-</script>
-</head>
-<body bgcolor="#FFFFFF" onUnload="pclose()">
-<h1>Set Course Parameters</h1>
-<form method="post" action="/adm/parmset" name="envform">
-<h2>Course: $ENV{'course.'.$ENV{'request.course.id'}.'.description'}</h2>
-<h3>Course Environment</h3>
-<input type="submit" name="crsenv" value="Set Course Environment">
-</form>
-<form method="post" action="/adm/parmset" name="parmform">
-<h3>Course Assessments</h3>
-<b>
-Section/Group:
-<input type="text" value="$csec" size="6" name="csec">
-<br>
-For User
-<input type="text" value="$uname" size="12" name="uname">
-or ID
-<input type="text" value="$id" size="12" name="id">
-at Domain
-<input type="text" value="$udom" size="6" name="udom">
-</b>
-<input type="hidden" value='' name="pres_value">
-<input type="hidden" value='' name="pres_type">
-<input type="hidden" value='' name="pres_marker">
-ENDHEAD
- if ($ENV{'form.url'}) {
- $r->print('<input type="hidden" value="'.$ENV{'form.url'}.
- '" name="url"><input type="hidden" name="command" value="set">');
- }
- foreach ('tolerance','date_default','date_start','date_end',
- 'date_interval','int','float','string') {
- $r->print('<input type="hidden" value="'.
- $ENV{'form.recent_'.$_}.'" name="recent_'.$_.'">');
- }
-
- $r->print('<h2>'.$message.'</h2><table><tr><td>Sort list by</td><td>');
- $r->print('<select name="fcat">');
- $r->print('<option value="">Enclosing Map</option>');
- foreach (reverse sort keys %allkeys) {
- $r->print('<option value="'.$_.'"');
- if ($fcat eq $_) { $r->print(' selected'); }
- $r->print('>'.$allkeys{$_}.'</option>');
- }
+ if (!$pssymb) {
$r->print('</select></tr><tr><td>Select Enclosing Map</td><td><select name=pschp>');
- $r->print('<option value=all>All Maps</option>');
- foreach (keys %allmaps) {
- $r->print('<option value="'.$_.'"');
- if (($pssymb=~/^$allmaps{$_}/) ||
- ($pschp eq $_)) { $r->print(' selected'); }
- $r->print('>'.$allmaps{$_}.'</option>');
- }
- $r->print('</select></td></tr><tr><td>Select Parameter</td><td><select name=pscat>');
- $r->print('<option value=all>All Parameters</option>');
- foreach (reverse sort keys %allkeys) {
+ $r->print('<option value=all>All Maps</option>');
+ foreach (keys %allmaps) {
$r->print('<option value="'.$_.'"');
- if ($pscat eq $_) { $r->print(' selected'); }
- $r->print('>'.$allkeys{$_}.'</option>');
- }
- $r->print('</select></td></tr></table><br><input name=dis type="submit" value="Display">');
- if (($pscat) || ($pschp) || ($pssymb)) {
+ if (($pssymb=~/^$allmaps{$_}/) ||
+ ($pschp eq $_)) { $r->print(' selected'); }
+ $r->print('>'.$allmaps{$_}.'</option>');
+ }
+ } else {
+ my ($map,$id,$resource)=split(/___/,$pssymb);
+ $r->print('<tr><td>Specfic Resource</td><td> </td></tr>');
+ $r->print('<input type="hidden" value="'.$pssymb.'" name="symb">');
+ }
+ $r->print('</select></td></tr><tr><td>Select Parameter</td><td><select name=pscat>');
+ $r->print('<option value=all>All Parameters</option>');
+ foreach (reverse sort keys %allkeys) {
+ $r->print('<option value="'.$_.'"');
+ if ($pscat eq $_) { $r->print(' selected'); }
+ $r->print('>'.$allkeys{$_}.'</option>');
+ }
+ $r->print('</select></td></tr></table><br><input name=dis type="submit" value="Display">');
+ if (($pscat) || ($pschp) || ($pssymb)) {
# ----------------------------------------------------------------- Start Table
- my $catmarker='parameter_'.$pscat;
- $catmarker=~s/\./\_/g;
- my $coursespan=$csec?8:5;
- my $csuname=$ENV{'user.name'};
- my $csudom=$ENV{'user.domain'};
- $r->print(<<ENDTABLEHEAD);
+ my $catmarker='parameter_'.$pscat;
+ $catmarker=~s/\./\_/g;
+ my $coursespan=$csec?8:5;
+ my $csuname=$ENV{'user.name'};
+ my $csudom=$ENV{'user.domain'};
+ $r->print(<<ENDTABLEHEAD);
<p><table border=2>
<tr><td colspan=5></td>
<th colspan=$coursespan>Any User</th>
ENDTABLEHEAD
- if ($uname) {
- $r->print("<th colspan=3 rowspan=2>User $uname at Domain $udom</th>");
- }
- $r->print(<<ENDTABLETWO);
+ if ($uname) {
+ $r->print("<th colspan=3 rowspan=2>User $uname at Domain $udom</th>");
+ }
+ $r->print(<<ENDTABLETWO);
<th rowspan=3>Parameter in Effect</th>
<th rowspan=3>Current Session Value<br>($csuname at $csudom)</th>
</tr><tr><td colspan=5></td>
<th colspan=2>Resource Level</th>
<th colspan=3>in Course</th>
ENDTABLETWO
- if ($csec) {
- $r->print("<th colspan=3>in Section/Group $csec</th>");
- }
- $r->print(<<ENDTABLEHEADFOUR);
+ if ($csec) {
+ $r->print("<th colspan=3>in Section/Group $csec</th>");
+ }
+ $r->print(<<ENDTABLEHEADFOUR);
</tr><tr><th>Assessment URL and Title</th><th>Type</th>
<th>Enclosing Map</th><th>Part No.</th><th>Parameter Name</th>
<th>default</th><th>from Enclosing Map</th>
<th>general</th><th>for Enclosing Map</th><th>for Resource</th>
ENDTABLEHEADFOUR
- if ($csec) {
- $r->print('<th>general</th><th>for Enclosing Map</th><th>for Resource</th>');
- }
- if ($uname) {
- $r->print('<th>general</th><th>for Enclosing Map</th><th>for Resource</th>');
- }
- $r->print('</tr>');
- my $defbgone='';
- my $defbgtwo='';
- foreach (@ids) {
- my $rid=$_;
- my ($inmapid)=($rid=~/\.(\d+)$/);
- if (($pschp eq 'all') || ($allmaps{$pschp} eq $mapp{$rid}) ||
- ($pssymb eq $mapp{$rid}.'___'.$inmapid.'___'.
- &Apache::lonnet::declutter($bighash{'src_'.$rid}))) {
+ if ($csec) {
+ $r->print('<th>general</th><th>for Enclosing Map</th><th>for Resource</th>');
+ }
+ if ($uname) {
+ $r->print('<th>general</th><th>for Enclosing Map</th><th>for Resource</th>');
+ }
+ $r->print('</tr>');
+ my $defbgone='';
+ my $defbgtwo='';
+ foreach (@ids) {
+ my $rid=$_;
+ my ($inmapid)=($rid=~/\.(\d+)$/);
+ if (($pschp eq 'all') || ($allmaps{$pschp} eq $mapp{$rid}) ||
+ ($pssymb eq $symbp{$rid})) {
# ------------------------------------------------------ Entry for one resource
- if ($defbgone eq '"E0E099"') {
- $defbgone='"E0E0DD"';
- } else {
- $defbgone='"E0E099"';
- }
- if ($defbgtwo eq '"FFFF99"') {
- $defbgtwo='"FFFFDD"';
- } else {
- $defbgtwo='"FFFF99"';
+ if ($defbgone eq '"E0E099"') {
+ $defbgone='"E0E0DD"';
+ } else {
+ $defbgone='"E0E099"';
+ }
+ if ($defbgtwo eq '"FFFF99"') {
+ $defbgtwo='"FFFFDD"';
+ } else {
+ $defbgtwo='"FFFF99"';
+ }
+ my $thistitle='';
+ my %name= ();
+ undef %name;
+ my %part= ();
+ my %display=();
+ my %type= ();
+ my %default=();
+ my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid});
+
+ foreach (split(/\,/,$keyp{$rid})) {
+ if (($_ eq $catmarker) || ($pscat eq 'all')) {
+ $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part');
+ $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name');
+ $display{$_}=&Apache::lonnet::metadata($uri,$_.'.display');
+ unless ($display{$_}) { $display{$_}=''; }
+ $display{$_}.=' ('.$name{$_}.')';
+ $default{$_}=&Apache::lonnet::metadata($uri,$_);
+ $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type');
+ $thistitle=&Apache::lonnet::metadata($uri,$_.'.title');
}
- @outpar=();
- my $thistitle='';
- my %name= ();
- undef %name;
- my %part= ();
- my %display=();
- my %type= ();
- my %default=();
- my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid});
-
- foreach (split(/\,/,$keyp{$rid})) {
- if (($_ eq $catmarker) || ($pscat eq 'all')) {
- $part{$_}=&Apache::lonnet::metadata($uri,$_.'.part');
- $name{$_}=&Apache::lonnet::metadata($uri,$_.'.name');
- $display{$_}=&Apache::lonnet::metadata($uri,$_.'.display');
- unless ($display{$_}) { $display{$_}=''; }
- $display{$_}.=' ('.$name{$_}.')';
- $default{$_}=&Apache::lonnet::metadata($uri,$_);
- $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type');
- $thistitle=&Apache::lonnet::metadata($uri,$_.'.title');
- }
+ }
+ my $totalparms=scalar keys %name;
+ if ($totalparms>0) {
+ my $firstrow=1;
+ $r->print('<tr><td bgcolor='.$defbgone.
+ ' rowspan='.$totalparms.'><tt><font size=-1>'.
+ join(' / ',split(/\//,$uri)).
+ '</font></tt><p><b>'.
+ $bighash{'title_'.$rid});
+ if ($thistitle) {
+ $r->print(' ('.$thistitle.')');
}
- my $totalparms=scalar keys %name;
- if ($totalparms>0) {
- my $firstrow=1;
- $r->print('<tr><td bgcolor='.$defbgone.
- ' rowspan='.$totalparms.'><tt><font size=-1>'.
- join(' / ',split(/\//,$uri)).
- '</font></tt><p><b>'.
- $bighash{'title_'.$rid});
- if ($thistitle) {
- $r->print(' ('.$thistitle.')');
- }
- $r->print('</b></td>');
- $r->print('<td bgcolor='.$defbgtwo.
- ' rowspan='.$totalparms.'>'.$typep{$rid}.'</td>');
- $r->print('<td bgcolor='.$defbgone.
- ' rowspan='.$totalparms.'><tt><font size=-1>'.
- join(' / ',split(/\//,$mapp{$rid})).'</font></tt></td>');
- foreach (sort keys %name) {
- my $result=&parmval($part{$_}.'.'.$name{$_},$rid,$default{$_});
- unless ($firstrow) {
- $r->print('<tr>');
- } else {
- $firstrow=0;
- }
- $r->print("<td bgcolor=".$defbgtwo.
- ">$part{$_}</td><td bgcolor=".$defbgone.
- ">$display{$_}</td>");
- my $thismarker=$_;
- $thismarker=~s/^parameter\_//;
- my $mprefix=$rid.'&'.$thismarker.'&';
-
- $r->print('<td bgcolor='.
- (($result==11)?'"#AAFFAA"':'#FFDDDD').'>'.
- &valout($outpar[11],$type{$_}).'</td>');
- $r->print('<td bgcolor='.
- (($result==10)?'"#AAFFAA"':'#FFDDDD').'>'.
- &valout($outpar[10],$type{$_}).'</td>');
-
- $r->print('<td bgcolor='.
- (($result==9)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[9],$mprefix.'9',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==8)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[8],$mprefix.'8',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==7)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[7],$mprefix.'7',
- 'parmform.pres','psub').'</td>');
-
- if ($csec) {
- $r->print('<td bgcolor='.
- (($result==6)?'"#AAFFAA"':$defbgtwo).'>'.
- &plink($type{$_},$display{$_},$outpar[6],$mprefix.'6',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==5)?'"#AAFFAA"':$defbgtwo).'>'.
- &plink($type{$_},$display{$_},$outpar[5],$mprefix.'5',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==4)?'"#AAFFAA"':$defbgtwo).'>'.
- &plink($type{$_},$display{$_},$outpar[4],$mprefix.'4',
- 'parmform.pres','psub').'</td>');
- }
-
- if ($uname) {
- $r->print('<td bgcolor='.
- (($result==3)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[3],$mprefix.'3',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==2)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[2],$mprefix.'2',
- 'parmform.pres','psub').'</td>');
- $r->print('<td bgcolor='.
- (($result==1)?'"#AAFFAA"':$defbgone).'>'.
- &plink($type{$_},$display{$_},$outpar[1],$mprefix.'1',
- 'parmform.pres','psub').'</td>');
- }
- $r->print('<td bgcolor=#CCCCFF>'.&valout($outpar[$result],$type{$_}).'</td>');
- my $sessionval=&Apache::lonnet::EXT('resource.'.$part{$_}.
- '.'.$name{$_},$mapp{$rid}.'___'.$inmapid.'___'.$uri);
- if (($type{$_}=~/^date/) && ($sessionval))
- { $sessionval=localtime($sessionval); }
- $r->print('<td bgcolor=#999999><font color=#FFFFFF>'.$sessionval.' '.
- '</font></td>');
- $r->print("</tr>");
+ $r->print('</b></td>');
+ $r->print('<td bgcolor='.$defbgtwo.
+ ' rowspan='.$totalparms.'>'.$typep{$rid}.'</td>');
+ $r->print('<td bgcolor='.$defbgone.
+ ' rowspan='.$totalparms.'><tt><font size=-1>'.
+ join(' / ',split(/\//,$mapp{$rid})).'</font></tt></td>');
+ foreach (sort keys %name) {
+ unless ($firstrow) {
+ $r->print('<tr>');
+ } else {
+ $firstrow=0;
}
+ &print_row($r,$_,\%part,\%name,$rid,\%default,
+ \%type,\%display,$defbgone,$defbgtwo);
}
-# -------------------------------------------------- End entry for one resource
}
+# -------------------------------------------------- End entry for one resource
}
- $r->print('</table>');
}
- $r->print('</form></body></html>');
- untie(%bighash);
- untie(%parmhash);
+ $r->print('</table>');
}
+ $r->print('</form></body></html>');
+ untie(%bighash);
+ untie(%parmhash);
}
sub crsenv {
@@ -913,7 +905,7 @@
=item *
-valout() : output for value
+valout() : format a value for output
=item *
--albertel1013495303--