[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 08 Aug 2002 17:03:20 -0000
This is a MIME encoded message
--albertel1028826200
Content-Type: text/plain
albertel Thu Aug 8 13:03:20 2002 EDT
Modified files:
/loncom/interface lonparmset.pm
Log:
- commit Mark Lucas's lonparmset
--albertel1028826200
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20020808130320.txt"
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.56 loncom/interface/lonparmset.pm:1.57
--- loncom/interface/lonparmset.pm:1.56 Thu Aug 8 09:44:17 2002
+++ loncom/interface/lonparmset.pm Thu Aug 8 13:03:20 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.56 2002/08/08 13:44:17 www Exp $
+# $Id: lonparmset.pm,v 1.57 2002/08/08 17:03:20 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -54,6 +54,8 @@
use Apache::Constants qw(:common :http REDIRECT);
use Apache::loncommon;
use GDBM_File;
+use Apache::lonhomework;
+use Apache::lonxml;
my %courseopt;
@@ -70,6 +72,7 @@
my $udom;
my $uhome;
my $csec;
+my $coursename;
# -------------------------------------------- Figure out a cascading parameter
@@ -229,12 +232,19 @@
}
}
+ function openWindow(url, wdwName, w, h, toolbar,scrollbar) {
+ var options = "width=" + w + ",height=" + h + ",";
+ options += "resizable=yes,scrollbars="+scrollbar+",status=no,";
+ options += "menubar=no,toolbar="+toolbar+",location=no,directories=no";
+ var newWin = window.open(url, wdwName, options);
+ newWin.focus();
+ }
</script>
</head>
<body bgcolor="#FFFFFF" onUnload="pclose()">
-<h1>Set Course Parameters</h1>
+<h1>Set Course Parameters for Course:
+$ENV{'course.'.$ENV{'request.course.id'}.'.description'}</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>
@@ -260,45 +270,109 @@
sub print_row {
my ($r,$which,$part,$name,$rid,$default,$type,$display,$defbgone,
- $defbgtwo)=@_;
+ $defbgtwo,$parmlev)=@_;
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 $parm=$$display{$which};
+
+ if ($parmlev eq 'full' || $parmlev eq 'brief') {
+ $r->print('<td bgcolor='.$defbgtwo.' align="center">'
+ .$$part{$which}.'</td>');
+ } else {
+ $parm=~s|\[.*\]\s||g;
+ }
+
+ $r->print('<td bgcolor='.$defbgone.'>'.$parm.'</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>');
+ if ($parmlev eq 'general') {
+
+ if ($uname) {
+ &print_td($r,3,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ } elsif ($csec) {
+ &print_td($r,6,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ } else {
+ &print_td($r,9,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ } elsif ($parmlev eq 'map') {
+
+ if ($uname) {
+ &print_td($r,2,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ } elsif ($csec) {
+ &print_td($r,5,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ } else {
+ &print_td($r,8,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ } else {
+
+ &print_td($r,11,'#FFDDDD',$result,\@outpar,$mprefix,$_,$type,$display);
+
+ if ($parmlev eq 'brief') {
+
+ &print_td($r,7,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+
+ if ($csec) {
+ &print_td($r,4,$defbgtwo,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ if ($uname) {
+ &print_td($r,1,$defbgone,$result,\@outpar,$mprefix,$_,$type,$display);
+ }
+ } else {
+
+ &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);
+ }
+ } # end of $brief if/else
+ } # end of $parmlev if/else
+
+ if ($parmlev eq 'full' || $parmlev eq 'brief') {
+ $r->print('<td bgcolor=#CCCCFF align="center">'.
+ &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>');
+ '.'.$$name{$which},$symbp{$rid});
+ $r->print('<td bgcolor=#999999 align="center"><font color=#FFFFFF>'.
+ &valout($sessionval,$$type{$which}).' '.
+ '</font></td>');
$r->print('</tr>');
+ $r->print("\n");
}
-
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>');
+ $r->print('<td bgcolor='.(($result==$which)?'"#AAFFAA"':$defbg).
+ ' align="center">'.
+ &plink($$type{$value},$$display{$value},$$outpar[$which],
+ $mprefix."$which",'parmform.pres','psub').'</td>'."\n");
+}
+
+sub get_env_multiple {
+ my ($name) = @_;
+ my @values;
+ if (defined($ENV{$name})) {
+ # exists is it an array
+ if (ref($ENV{$name})) {
+ @values=@{ $ENV{$name} };
+ } else {
+ $values[0]=$ENV{$name};
+ }
+ }
+ return(@values);
}
sub assessparms {
@@ -307,6 +381,16 @@
# -------------------------------------------------------- Variable declaration
my %allkeys;
my %allmaps;
+ my %alllevs;
+
+ $alllevs{'Resource Level'}='full';
+# $alllevs{'Resource Level [BRIEF]'}='brief';
+ $alllevs{'Map Level'}='map';
+ $alllevs{'Course Level'}='general';
+
+ my %allparms;
+ my %allparts;
+
my %defp;
%courseopt=();
%useropt=();
@@ -322,9 +406,24 @@
$udom=$ENV{'form.udom'};
unless ($udom) { $udom=$r->dir_config('lonDefDomain'); }
- my $pscat=$ENV{'form.pscat'};
+ my @pscat=&get_env_multiple('form.pscat');
my $pschp=$ENV{'form.pschp'};
+ my @psprt=&get_env_multiple('form.psprt');
+ my $showoptions=$ENV{'form.showoptions'};
+
my $pssymb='';
+ my $parmlev='';
+ my $prevvisit=$ENV{'form.prevvisit'};
+
+# unless ($parmlev==$ENV{'form.parmlev'}) {
+# $parmlev = 'full';
+# }
+
+ unless ($ENV{'form.parmlev'}) {
+ $parmlev = 'map';
+ } else {
+ $parmlev = $ENV{'form.parmlev'};
+ }
# ----------------------------------------------- Was this started from grades?
@@ -333,12 +432,14 @@
my $url=$ENV{'form.url'};
$url=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--;
$pssymb=&Apache::lonnet::symbread($url);
- $pscat='all';
+ @pscat='all';
$pschp='';
+ $parmlev = 'full';
} elsif ($ENV{'form.symb'}) {
$pssymb=$ENV{'form.symb'};
- $pscat='all';
+ @pscat='all';
$pschp='';
+ $parmlev = 'full';
} else {
$ENV{'form.url'}='';
}
@@ -410,39 +511,44 @@
$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 (split(/\,/,&Apache::lonnet::metadata($srcf,'keys'))) {
+ if ($_=~/^parameter\_(.*)/) {
+ my $key=$_;
+ my $allkey=$1;
+ $allkey=~s/\_/\./g;
+ my $display= &Apache::lonnet::metadata($srcf,$key.'.display');
+ my $name=&Apache::lonnet::metadata($srcf,$key.'.name');
+ my $part= &Apache::lonnet::metadata($srcf,$key.'.part');
+ my $parmdis = $display;
+ $parmdis =~ s|(\[Part.*$)||g;
+ my $partkey = $part;
+ $partkey =~ tr|_|.|;
+ $allparms{$name} = $parmdis;
+ $allparts{$part} = "[Part $part]";
+ $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});
+ $mapp{$mapid}=$mapp{$id};
$allmaps{$mapid}=$mapp{$id};
$symbp{$id}=$mapp{$id}.
'___'.$resid.'___'.
&Apache::lonnet::declutter($srcf);
+ $symbp{$mapid}=$mapp{$id}.'___(all)';
}
}
}
+ $mapp{'0.0'} = '';
+ $symbp{'0.0'} = '';
# ---------------------------------------------------------- Anything to store?
if ($ENV{'form.pres_marker'}) {
my ($sresid,$spnam,$snum)=split(/\&/,$ENV{'form.pres_marker'});
@@ -535,164 +641,487 @@
1*$aparm<=>1*$bparm;
}
} @ids;
-
+#----------------------------------------------- if all selected, fill in array
+ if ($pscat[0] eq "all" || !@pscat) {@pscat = (keys %allparms);}
+ if ($psprt[0] eq "all" || !@psprt) {@psprt = (keys %allparts);}
# ------------------------------------------------------------------ Start page
&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">');
# }
+ $r->print('<input type="hidden" value="true" name="prevvisit">');
+
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>');
+ $r->print('<h2>'.$message.'</h2><table>');
+
+ $r->print('<tr><td><hr /></td></tr>');
+
+ my $submitmessage;
+ if (($prevvisit) || ($pschp) || ($pssymb)) {
+ $submitmessage = "Update Display";
+ } else {
+ $submitmessage = "Display";
}
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 (sort keys %allmaps) {
- $r->print('<option value="'.$_.'"');
- if (($pssymb=~/^$allmaps{$_}/) ||
- ($pschp eq $_)) { $r->print(' selected'); }
- $r->print('>'.$allmaps{$_}.'</option>');
- }
+ $r->print('<tr><td>Select Parameter Level</td><td>');
+ $r->print('<select name="parmlev">');
+ foreach (reverse sort keys %alllevs) {
+ $r->print('<option value="'.$alllevs{$_}.'"');
+ if ($parmlev eq $alllevs{$_}) {
+ $r->print(' selected');
+ }
+ $r->print('>'.$_.'</option>');
+ }
+ $r->print("</select></td>\n");
+
+ $r->print('<td><input type="submit" name="dis" value="'.$submitmessage.'"></td>');
+
+ $r->print('</tr><tr><td><hr /></td>');
+
+ $r->print('<tr><td>Select Enclosing Map</td>');
+ $r->print('<td colspan="2"><select name="pschp">');
+ $r->print('<option value="all">All Maps</option>');
+ foreach (sort {$allmaps{$a} cmp $allmaps{$b}} keys %allmaps) {
+ $r->print('<option value="'.$_.'"');
+ if (($pschp eq $_)) { $r->print(' selected'); }
+ $r->print('>/res/'.$allmaps{$_}.'</option>');
+ }
+ $r->print("</select></td></tr>\n");
} 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>');
+ my ($map,$id,$resource)=split(/___/,$pssymb);
+ $r->print("<tr><td>Specific Resource</td><td>$resource</td>");
+ $r->print('<td><input type="submit" name="dis" value="'.$submitmessage.'"></td>');
+ $r->print('</tr>');
+ $r->print('<input type="hidden" value="'.$pssymb.'" name="symb">');
+ }
+
+ $r->print('<tr><td colspan="3"><hr /><input type="checkbox"');
+ if ($showoptions eq 'show') {$r->print(" checked ");}
+ $r->print(' name="showoptions" value="show" onclick="form.submit();">Show More Options<hr /></td></tr>');
+# $r->print("<tr><td>Show: $showoptions</td></tr>");
+# $r->print("<tr><td>pscat: @pscat</td></tr>");
+# $r->print("<tr><td>psprt: @psprt</td></tr>");
+# $r->print("<tr><td>fcat: $fcat</td></tr>");
+
+ if ($showoptions eq 'show') {
+ my $tempkey;
+
+ $r->print('<tr><td colspan="3" align="center">Select Parameters to View</td></tr>');
+
+ $r->print('<tr><td colspan="2"><table>');
+ $r->print('<tr><td><input type="checkbox" name="pscat" value="all"');
+ $r->print(' checked') unless (@pscat);
+ $r->print('>All Parameters</td>');
+
+ my $cnt=0;
+
+ foreach $tempkey (sort { $allparms{$a} cmp $allparms{$b} }
+ keys %allparms ) {
+ ++$cnt;
+ $r->print('</tr><tr>') unless ($cnt%2);
+ $r->print('<td><input type="checkbox" name="pscat" ');
+ $r->print('value="'.$tempkey.'"');
+ if ($pscat[0] eq "all" || grep $_ eq $tempkey, @pscat) {
+ $r->print(' checked');
+ }
+ $r->print('>'.$allparms{$tempkey}.'</td>');
+ }
+ $r->print('</tr></table>');
+
+# $r->print('<tr><td>Select Parts</td><td>');
+ $r->print('<td><select multiple name="psprt" size="5">');
+ $r->print('<option value="all"');
+ $r->print(' selected') unless (@psprt);
+ $r->print('>All Parts</option>');
+ foreach $tempkey (sort keys %allparts) {
+ unless ($tempkey =~ /\./) {
+ $r->print('<option value="'.$tempkey.'"');
+ if ($psprt[0] eq "all" || grep $_ == $tempkey, @psprt) {
+ $r->print(' selected');
+ }
+ $r->print('>'.$allparts{$tempkey}.'</option>');
+ }
+ }
+ $r->print('</select></td></tr><tr><td colspan="3"><hr /></td></tr>');
+
+ $r->print('<tr><td>Sort list by</td><td>');
+ $r->print('<select name="fcat">');
+ $r->print('<option value="">Enclosing Map</option>');
+ foreach (sort keys %allkeys) {
+ $r->print('<option value="'.$_.'"');
+ if ($fcat eq $_) { $r->print(' selected'); }
+ $r->print('>'.$allkeys{$_}.'</option>');
+ }
+ $r->print('</select></td>');
+
+ $r->print('</tr><tr><td colspan="3"><hr /></td></tr>');
+
+ } else { # hide options - include any necessary extras here
+
+ $r->print('<input type="hidden" name="fcat" value="'.$fcat.'">'."\n");
+
+ unless (@pscat) {
+ foreach (keys %allparms ) {
+ $r->print('<input type="hidden" name="pscat" value="'.$_.'">'."\n");
+ }
+ } else {
+ foreach (@pscat) {
+ $r->print('<input type="hidden" name="pscat" value="'.$_.'">'."\n");
+ }
+ }
+
+ unless (@psprt) {
+ foreach (keys %allparts ) {
+ $r->print('<input type="hidden" name="psprt" value="'.$_.'">'."\n");
+ }
+ } else {
+ foreach (@psprt) {
+ $r->print('<input type="hidden" name="psprt" value="'.$_.'">'."\n");
+ }
+ }
+
}
- $r->print('</select></td></tr></table><br><input name=dis type="submit" value="Display">');
- if (($pscat) || ($pschp) || ($pssymb)) {
+ $r->print('</table>');
+
+ my @temp_psprt;
+ map {
+ my $t = $_;
+ push(@temp_psprt,
+ grep {eval (/^$t\./ || ($_ == $t))} (keys %allparts));
+ } @psprt;
+
+ @psprt = @temp_psprt;
+
+ my @temp_pscat;
+ map {
+ my $cat = $_;
+ push(@temp_pscat, map { $_.'.'.$cat } @psprt);
+ } @pscat;
+
+ @pscat = @temp_pscat;
+
+ if (($prevvisit) || ($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);
-<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);
+ my @catmarker=map { tr|.|_|; 'parameter_'.$_; } @pscat;
+ my $csuname=$ENV{'user.name'};
+ my $csudom=$ENV{'user.domain'};
+
+
+ if ($parmlev eq 'full' || $parmlev eq 'brief') {
+
+ my $coursespan=$csec?8:5;
+ $r->print('<p><table border=2>');
+ $r->print('<tr><td colspan=5></td>');
+ $r->print('<th colspan='.($coursespan).'>Any User</th>');
+ if ($uname) {
+ $r->print("<th colspan=3 rowspan=2>");
+ $r->print("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>
+</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 $symbp{$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"';
- }
- 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.')');
- }
- $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);
- }
- }
+ 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})) {
+ my $tempkeyp = $_;
+ if (grep $_ eq $tempkeyp, @catmarker) {
+ $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>'.
+ "<a href=\"javascript:openWindow('/res/".$uri.
+ "', 'metadatafile', '450', '500', 'no', 'yes')\";".
+ " TARGET=_self>$bighash{'title_'.$rid}");
+
+ if ($thistitle) {
+ $r->print(' ('.$thistitle.')');
+ }
+ $r->print('</a></b></td>');
+ $r->print('<td bgcolor='.$defbgtwo.
+ ' rowspan='.$totalparms.'>'.$typep{$rid}.
+ '</td>');
+
+ $r->print('<td bgcolor='.$defbgone.
+ ' rowspan='.$totalparms.
+ '><tt><font size=-1>');
+
+ $r->print(' / res / ');
+ $r->print(join(' / ', split(/\//,$mapp{$rid})));
+
+ $r->print('</font></tt></td>');
+
+ foreach (sort keys %name) {
+ unless ($firstrow) {
+ $r->print('<tr>');
+ } else {
+ undef $firstrow;
+ }
+
+ &print_row($r,$_,\%part,\%name,$rid,\%default,
+ \%type,\%display,$defbgone,$defbgtwo,
+ $parmlev);
+ }
+ }
+ }
+ } # end foreach ids
# -------------------------------------------------- End entry for one resource
- }
- }
- $r->print('</table>');
+ $r->print('</table>');
+ } # end of brief/full
+#--------------------------------------------------- Entry for parm level map
+ if ($parmlev eq 'map') {
+ my $defbgone = '"E0E099"';
+ my $defbgtwo = '"FFFF99"';
+
+ my %maplist;
+
+ if ($pschp eq 'all') {
+ %maplist = %allmaps;
+ } else {
+ %maplist = ($pschp => $mapp{$pschp});
+ }
+
+#-------------------------------------------- for each map, gather information
+ my $mapid;
+ foreach $mapid (keys %maplist) {
+ my $maptitle = $allmaps{$mapid};
+
+#----------------------- loop through ids and get all parameter types for map
+#----------------------------------------- and associated information
+ my %name = ();
+ my %part = ();
+ my %display = ();
+ my %type = ();
+ my %default = ();
+ my $map = 0;
+
+# $r->print("Catmarker: @catmarker<br />\n");
+
+ foreach (@ids) {
+ ($map)=(/([\d]*?)\./);
+ my $rid = $_;
+
+# $r->print("$mapid:$map: $rid <br /> \n");
+
+ if ($map eq $mapid) {
+ my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid});
+# $r->print("Keys: $keyp{$rid} <br />\n");
+
+#--------------------------------------------------------------------
+# @catmarker contains list of all possible parameters including part #s
+# $fullkeyp contains the full part/id # for the extraction of proper parameters
+# $tempkeyp contains part 0 only (no ids - ie, subparts)
+# When storing information, store as part 0
+# When requesting information, request from full part
+#-------------------------------------------------------------------
+ foreach (split(/\,/,$keyp{$rid})) {
+ my $tempkeyp = $_;
+ my $fullkeyp = $tempkeyp;
+ $tempkeyp =~ s/_[\d_]+_/_0_/;
+
+ if ((grep $_ eq $fullkeyp, @catmarker) &&(!$name{$tempkeyp})) {
+ $part{$tempkeyp}="0";
+ $name{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.name');
+ $display{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.display');
+ unless ($display{$tempkeyp}) { $display{$tempkeyp}=''; }
+ $display{$tempkeyp}.=' ('.$name{$tempkeyp}.')';
+ $display{$tempkeyp} =~ s/_[\d_]+_/_0_/;
+ $default{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp);
+ $type{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.type');
+ }
+ } # end loop through keys
+ }
+ } # end loop through ids
+
+#---------------------------------------------------- print header information
+ $r->print(<<ENDMAPONE);
+<center><h4>
+<font color="red">Set Defaults for All Resources in map
+<i>$maptitle</i><br />
+Specifically for
+ENDMAPONE
+ if ($uname) {
+ my %name=&Apache::lonnet::userenvironment($udom,$uname,
+ ('firstname','middlename','lastname','generation', 'id'));
+ my $person=$name{'firstname'}.' '.$name{'middlename'}.' '
+ .$name{'lastname'}.' '.$name{'generation'};
+ $r->print("User <i>$uname \($person\) </i> in \n");
+ } else {
+ $r->print("<i>all</i> users in \n");
+ }
+
+ if ($csec) {$r->print("Section <i>$csec</i> of \n")};
+
+ $r->print("<i>$coursename</i><br />");
+ $r->print("</font></h4>\n");
+#---------------------------------------------------------------- print table
+ $r->print('<p><table border="2">');
+ $r->print('<tr><th>Parameter Name</th>');
+ $r->print('<th>Default Value</th>');
+ $r->print('<th>Parameter in Effect</th></tr>');
+
+ foreach (sort keys %name) {
+ &print_row($r,$_,\%part,\%name,$mapid,\%default,
+ \%type,\%display,$defbgone,$defbgtwo,
+ $parmlev);
+# $r->print("<tr><td>resource.$part{$_}.$name{$_},$symbp{$mapid}</td></tr>\n");
+ }
+ $r->print("</table></center>");
+ } # end each map
+ } # end of $parmlev eq map
+#--------------------------------- Entry for parm level general (Course level)
+ if ($parmlev eq 'general') {
+ my $defbgone = '"E0E099"';
+ my $defbgtwo = '"FFFF99"';
+
+#-------------------------------------------- for each map, gather information
+ my $mapid="0.0";
+#----------------------- loop through ids and get all parameter types for map
+#----------------------------------------- and associated information
+ my %name = ();
+ my %part = ();
+ my %display = ();
+ my %type = ();
+ my %default = ();
+
+ foreach (@ids) {
+ my $rid = $_;
+
+ my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid});
+
+#--------------------------------------------------------------------
+# @catmarker contains list of all possible parameters including part #s
+# $fullkeyp contains the full part/id # for the extraction of proper parameters
+# $tempkeyp contains part 0 only (no ids - ie, subparts)
+# When storing information, store as part 0
+# When requesting information, request from full part
+#-------------------------------------------------------------------
+ foreach (split(/\,/,$keyp{$rid})) {
+ my $tempkeyp = $_;
+ my $fullkeyp = $tempkeyp;
+ $tempkeyp =~ s/_[\d_]+_/_0_/;
+ if ((grep $_ eq $fullkeyp, @catmarker) &&(!$name{$tempkeyp})) {
+ $part{$tempkeyp}="0";
+ $name{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.name');
+ $display{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.display');
+ unless ($display{$tempkeyp}) { $display{$tempkeyp}=''; }
+ $display{$tempkeyp}.=' ('.$name{$tempkeyp}.')';
+ $display{$tempkeyp} =~ s/_[\d_]+_/_0_/;
+ $default{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp);
+ $type{$tempkeyp}=&Apache::lonnet::metadata($uri,$fullkeyp.'.type');
+ }
+ } # end loop through keys
+ } # end loop through ids
+
+#---------------------------------------------------- print header information
+ $r->print(<<ENDMAPONE);
+<center><h4>
+<font color="red">Set Defaults for All Resources in Course
+<i>$coursename</i><br />
+ENDMAPONE
+ if ($uname) {
+ my %name=&Apache::lonnet::userenvironment($udom,$uname,
+ ('firstname','middlename','lastname','generation', 'id'));
+ my $person=$name{'firstname'}.' '.$name{'middlename'}.' '
+ .$name{'lastname'}.' '.$name{'generation'};
+ $r->print(" User <i>$uname \($person\) </i> \n");
+ } else {
+ $r->print("<i>ALL</i> USERS \n");
+ }
+
+ if ($csec) {$r->print("Section <i>$csec</i>\n")};
+ $r->print("</font></h4>\n");
+#---------------------------------------------------------------- print table
+ $r->print('<p><table border="2">');
+ $r->print('<tr><th>Parameter Name</th>');
+ $r->print('<th>Default Value</th>');
+ $r->print('<th>Parameter in Effect</th></tr>');
+
+ foreach (sort keys %name) {
+ &print_row($r,$_,\%part,\%name,$mapid,\%default,
+ \%type,\%display,$defbgone,$defbgtwo,$parmlev);
+# $r->print("<tr><td>resource.$part{$_}.$name{$_},$symbp{$mapid}</td></tr>\n");
+ }
+ $r->print("</table></center>");
+ } # end of $parmlev eq general
}
$r->print('</form></body></html>');
untie(%bighash);
untie(%parmhash);
-}
+} # end sub assessparms
-# Set course environment parameters
+# ------------------------------------------- Set course environment parameters
sub crsenv {
my $r=shift;
my $setoutput='';
@@ -757,11 +1186,9 @@
'pageseparators' => '<b>Visibly Separate Items on Pages</b><br>'.
'("<tt>yes</tt>" for visible separation)',
'pch.roles.denied'=> '<b>Disallow Resource Discussion for '.
- 'Roles</b><br>"<tt>st</tt>": '.
- 'student, "<tt>ta</tt>": '.
- 'TA, "<tt>in</tt>": '.
- 'instructor;<br><tt>role,role,...</tt>) '.
- Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
+ 'Roles</b> ' .
+ Apache::loncommon::help_open_topic("Course_Disable_Discussion")
+ ,
'pch.users.denied' =>
'<b>Disallow Resource Discussion for Users</b><br>'.
'(<tt>user:domain,user:domain,...</tt>)',
@@ -869,6 +1296,8 @@
if (($ENV{'request.course.id'}) &&
(&Apache::lonnet::allowed('opa',$ENV{'request.course.id'}))) {
+
+ $coursename=$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
unless (($ENV{'form.crsenv'}) || (!$ENV{'request.course.fn'})) {
# --------------------------------------------------------- Bring up assessment
--albertel1028826200--