--- loncom/interface/lonparmset.pm 2002/11/19 19:26:35 1.78 +++ loncom/interface/lonparmset.pm 2003/04/18 15:24:53 1.87 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set parameters for assessments # -# $Id: lonparmset.pm,v 1.78 2002/11/19 19:26:35 matthew Exp $ +# $Id: lonparmset.pm,v 1.87 2003/04/18 15:24:53 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -72,6 +72,8 @@ my %mapp; my %typep; my %keyp; +my %maptitles; + my $uname; my $udom; my $uhome; @@ -96,13 +98,13 @@ Returns: A list, the first item is the 11- resource default 10- map default 9 - General Course -8 - Map level in course +8 - Map or Folder level in course 7 - resource level in course 6 - General for section -5 - Map level for section +5 - Map or Folder level for section 4 - resource level in section 3 - General for specific student -2 - Map level for specific student +2 - Map or Folder level for specific student 1 - resource level for specific student =cut @@ -283,11 +285,13 @@ sub plink { sub startpage { my ($r,$id,$udom,$csec,$uname)=@_; - $r->content_type('text/html'); - $r->send_http_header; my $bodytag=&Apache::loncommon::bodytag('Set Course Parameters','', 'onUnload="pclose()"'); + my $chooseopt=&Apache::loncommon::select_dom_form($udom,'udom').' '. + &Apache::loncommon::selectstudent_link('parmform','uname','udom'); + my $selscript=&Apache::loncommon::studentbrowser_javascript(); + $r->print(< @@ -341,6 +345,7 @@ sub startpage { newWin.focus(); } +$selscript $bodytag
@@ -358,7 +363,7 @@ For User or ID at Domain - +$chooseopt @@ -544,6 +549,7 @@ sub extractResourceInformation { my $defp = shift; my $mapp = shift; my $symbp = shift; + my $maptitles=shift; foreach (keys %$bighash) { if ($_=~/^src\_(\d+)\.(\d+)$/) { @@ -584,6 +590,9 @@ sub extractResourceInformation { &Apache::lonnet::declutter($$bighash{'map_id_'.$mapid}); $$mapp{$mapid}=$$mapp{$id}; $$allmaps{$mapid}=$$mapp{$id}; + $$maptitles{$mapid}= + $$bighash{'title_'.$$bighash{'ids_'.&Apache::lonnet::clutter($$mapp{$id})}}; + $$maptitles{$$mapp{$id}}=$$maptitles{$mapid}; $$symbp{$id}=$$mapp{$id}. '___'.$resid.'___'. &Apache::lonnet::declutter($srcf); @@ -751,7 +760,7 @@ sub assessparms { } # --------------------------------------------------------- Get all assessments - extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp); + extractResourceInformation(\%bighash, \@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles); $mapp{'0.0'} = ''; $symbp{'0.0'} = ''; @@ -780,6 +789,8 @@ sub assessparms { if ($snum==5) { $storeunder=$seclevelm; } if ($snum==4) { $storeunder=$seclevelr; } + my $delete; + if ($ENV{'form.pres_value'} eq '') { $delete=1;} my %storecontent = ($storeunder => $ENV{'form.pres_value'}, $storeunder.'.type' => $ENV{'form.pres_type'}); my $reply=''; @@ -796,10 +807,17 @@ sub assessparms { &Apache::lonnet::expirespread('','','assesscalc'); } # Store parameter - $reply=&Apache::lonnet::cput - ('resourcedata',\%storecontent, - $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, - $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + if ($delete) { + $reply=&Apache::lonnet::del + ('resourcedata',[keys(%storecontent)], + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + } else { + $reply=&Apache::lonnet::cput + ('resourcedata',\%storecontent, + $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}, + $ENV{'course.'.$ENV{'request.course.id'}.'.num'}); + } } else { # ------------------------------------------------------------------ Store User # @@ -815,14 +833,20 @@ sub assessparms { &Apache::lonnet::expirespread($uname,$udom,'assesscalc'); } # Store parameter - $reply=&Apache::lonnet::cput - ('resourcedata',\%storecontent,$udom,$uname); + if ($delete) { + $reply=&Apache::lonnet::del + ('resourcedata',[keys(%storecontent)],$udom,$uname); + } else { + $reply=&Apache::lonnet::cput + ('resourcedata',\%storecontent,$udom,$uname); + } } if ($reply=~/^error\:(.*)/) { $message.="Write Error: $1"; } # ---------------------------------------------------------------- Done storing + $message.='

Changes can take up to 10 minutes before being active for all students

'; } # --------------------------------------------- Devalidate cache for this child &Apache::lonnet::devalidatecourseresdata( @@ -895,13 +919,13 @@ sub assessparms { $r->print('
'); - $r->print('Select Enclosing Map'); + $r->print('Select Enclosing Map or Folder'); $r->print('\n"); } else { @@ -964,7 +988,7 @@ sub assessparms { $r->print('Sort list by'); $r->print('