--- loncom/interface/lonparmset.pm 2002/08/08 13:44:17 1.56 +++ loncom/interface/lonparmset.pm 2002/08/08 17:03:20 1.57 @@ -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::lonnet; 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 $uname; my $udom; my $uhome; my $csec; +my $coursename; # -------------------------------------------- Figure out a cascading parameter @@ -229,12 +232,19 @@ sub startpage { } } + 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(); + } -

Set Course Parameters

+

Set Course Parameters for Course: +$ENV{'course.'.$ENV{'request.course.id'}.'.description'}

-

Course: $ENV{'course.'.$ENV{'request.course.id'}.'.description'}

Course Environment

@@ -260,45 +270,109 @@ ENDHEAD 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("' + .$$part{$which}.''); + } else { + $parm=~s|\[.*\]\s||g; + } + + $r->print(''.$parm.''); + 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(''.&valout($outpar[$result],$$type{$which}).''); + 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(''. + &valout($outpar[$result],$$type{$which}).''); + +} my $sessionval=&Apache::lonnet::EXT('resource.'.$$part{$which}. - '.'.$$name{$which},$symbp{$rid}); - $r->print(''. - &valout($sessionval,$$type{$which}).' '. - ''); + '.'.$$name{$which},$symbp{$rid}); + $r->print(''. + &valout($sessionval,$$type{$which}).' '. + ''); $r->print(''); + $r->print("\n"); } - sub print_td { my ($r,$which,$defbg,$result,$outpar,$mprefix,$value,$type,$display)=@_; - $r->print(''. - &plink($$type{$value},$$display{$value},$$outpar[$which], - $mprefix."$which",'parmform.pres','psub').''); + $r->print(''. + &plink($$type{$value},$$display{$value},$$outpar[$which], + $mprefix."$which",'parmform.pres','psub').''."\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 @@ sub assessparms { # -------------------------------------------------------- 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 @@ sub assessparms { $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 @@ sub assessparms { 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 @@ sub assessparms { $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 @@ sub assessparms { 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(''); # } + $r->print(''); + foreach ('tolerance','date_default','date_start','date_end', 'date_interval','int','float','string') { $r->print(''); } - $r->print('

'.$message.'

Sort list by'); - $r->print(''); + + $r->print(''); + + my $submitmessage; + if (($prevvisit) || ($pschp) || ($pssymb)) { + $submitmessage = "Update Display"; + } else { + $submitmessage = "Display"; } if (!$pssymb) { - $r->print('\n"); + + $r->print(''); + + $r->print(''); + + $r->print(''); + $r->print('\n"); } else { - my ($map,$id,$resource)=split(/___/,$pssymb); - $r->print(''); - $r->print(''); - } - $r->print('"); + $r->print(''); + $r->print(''); + $r->print(''); + } + + $r->print(''); +# $r->print(""); +# $r->print(""); +# $r->print(""); +# $r->print(""); + + if ($showoptions eq 'show') { + my $tempkey; + + $r->print(''); + + $r->print(''); + + $r->print(''); + + $r->print(''); + + } else { # hide options - include any necessary extras here + + $r->print(''."\n"); + + unless (@pscat) { + foreach (keys %allparms ) { + $r->print(''."\n"); + } + } else { + foreach (@pscat) { + $r->print(''."\n"); + } + } + + unless (@psprt) { + foreach (keys %allparts ) { + $r->print(''."\n"); + } + } else { + foreach (@psprt) { + $r->print(''."\n"); + } + } + } - $r->print('

Select Enclosing Map
Select Parameter Level'); + $r->print('

Select Enclosing Map
Specfic Resource 
Select Parameter
Specific Resource$resource

print(" checked ");} + $r->print(' name="showoptions" value="show" onclick="form.submit();">Show More Options
Show: $showoptions
pscat: @pscat
psprt: @psprt
fcat: $fcat
Select Parameters to View
'); + $r->print(''); + + my $cnt=0; + + foreach $tempkey (sort { $allparms{$a} cmp $allparms{$b} } + keys %allparms ) { + ++$cnt; + $r->print('') unless ($cnt%2); + $r->print(''); + } + $r->print('
print(' checked') unless (@pscat); + $r->print('>All Parameters
print('value="'.$tempkey.'"'); + if ($pscat[0] eq "all" || grep $_ eq $tempkey, @pscat) { + $r->print(' checked'); + } + $r->print('>'.$allparms{$tempkey}.'
'); + +# $r->print('
Select Parts'); + $r->print('

Sort list by'); + $r->print('


'); - if (($pscat) || ($pschp) || ($pssymb)) { + $r->print('
'); + + 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 - if ($uname) { - $r->print(""); - } - $r->print(<print('

Any UserUser $uname at Domain $udom
'); + $r->print(''); + $r->print(''); + if ($uname) { + $r->print(""); + } + $r->print(<Parameter in Effect - - + ENDTABLETWO - if ($csec) { - $r->print(""); - } - $r->print(<print(""); + } + $r->print(< ENDTABLEHEADFOUR - if ($csec) { - $r->print(''); - } - if ($uname) { - $r->print(''); - } - $r->print(''); - 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(''); + } + + if ($uname) { + $r->print(''); + } + + $r->print(''); + + 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(''); - $r->print(''); - $r->print(''); - foreach (sort keys %name) { - unless ($firstrow) { - $r->print(''); - } 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(''); + $r->print(''); + + $r->print(''); + + foreach (sort keys %name) { + unless ($firstrow) { + $r->print(''); + } 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('
Any User"); + $r->print("User $uname at Domain $udomCurrent Session Value
($csuname at $csudom)
Resource Level
Resource Level in Coursein Section/Group $csecin Section/Group $csec
Assessment URL and TitleType Enclosing MapPart No.Parameter Name defaultfrom Enclosing Map generalfor Enclosing Mapfor Resourcegeneralfor Enclosing Mapfor Resourcegeneralfor Enclosing Mapfor Resource
generalfor Enclosing Mapfor Resourcegeneralfor Enclosing Mapfor Resource
'. - join(' / ',split(/\//,$uri)). - '

'. - $bighash{'title_'.$rid}); - if ($thistitle) { - $r->print(' ('.$thistitle.')'); - } - $r->print('

'.$typep{$rid}.''. - join(' / ',split(/\//,$mapp{$rid})).'
'. + join(' / ',split(/\//,$uri)). + '

'. + "$bighash{'title_'.$rid}"); + + if ($thistitle) { + $r->print(' ('.$thistitle.')'); + } + $r->print('

'.$typep{$rid}. + ''); + + $r->print(' / res / '); + $r->print(join(' / ', split(/\//,$mapp{$rid}))); + + $r->print('
'); + $r->print(''); + } # 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
\n"); + + foreach (@ids) { + ($map)=(/([\d]*?)\./); + my $rid = $_; + +# $r->print("$mapid:$map: $rid
\n"); + + if ($map eq $mapid) { + my $uri=&Apache::lonnet::declutter($bighash{'src_'.$rid}); +# $r->print("Keys: $keyp{$rid}
\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(<

+Set Defaults for All Resources in map +$maptitle
+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 $uname \($person\) in \n"); + } else { + $r->print("all users in \n"); + } + + if ($csec) {$r->print("Section $csec of \n")}; + + $r->print("$coursename
"); + $r->print("

\n"); +#---------------------------------------------------------------- print table + $r->print('

'); + $r->print(''); + $r->print(''); + $r->print(''); + + foreach (sort keys %name) { + &print_row($r,$_,\%part,\%name,$mapid,\%default, + \%type,\%display,$defbgone,$defbgtwo, + $parmlev); +# $r->print("\n"); + } + $r->print("
Parameter NameDefault ValueParameter in Effect
resource.$part{$_}.$name{$_},$symbp{$mapid}
"); + } # 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(<

+Set Defaults for All Resources in Course +$coursename
+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 $uname \($person\) \n"); + } else { + $r->print("ALL USERS \n"); + } + + if ($csec) {$r->print("Section $csec\n")}; + $r->print("

\n"); +#---------------------------------------------------------------- print table + $r->print('

'); + $r->print(''); + $r->print(''); + $r->print(''); + + foreach (sort keys %name) { + &print_row($r,$_,\%part,\%name,$mapid,\%default, + \%type,\%display,$defbgone,$defbgtwo,$parmlev); +# $r->print("\n"); + } + $r->print("
Parameter NameDefault ValueParameter in Effect
resource.$part{$_}.$name{$_},$symbp{$mapid}
"); + } # end of $parmlev eq general } $r->print(''); 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 @@ sub crsenv { 'pageseparators' => 'Visibly Separate Items on Pages
'. '("yes" for visible separation)', 'pch.roles.denied'=> 'Disallow Resource Discussion for '. - 'Roles
"st": '. - 'student, "ta": '. - 'TA, "in": '. - 'instructor;
role,role,...) '. - Apache::loncommon::help_open_topic("Course_Disable_Discussion"), + 'Roles ' . + Apache::loncommon::help_open_topic("Course_Disable_Discussion") + , 'pch.users.denied' => 'Disallow Resource Discussion for Users
'. '(user:domain,user:domain,...)', @@ -869,6 +1296,8 @@ sub handler { 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