--- loncom/interface/lonparmset.pm 2001/02/08 12:36:57 1.22 +++ loncom/interface/lonparmset.pm 2001/05/10 01:06:06 1.29 @@ -11,7 +11,7 @@ # # 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28, # 12/08,12/12, -# 16/01/01,02/08 Gerd Kortemeyer +# 16/01/01,02/08,03/20,03/23,03/24,03/26,05/09 Gerd Kortemeyer package Apache::lonparmset; @@ -36,6 +36,7 @@ my %keyp; my %defp; my %allkeys; +my %allmaps; my $uname; my $udom; @@ -138,7 +139,16 @@ sub valout { sub plink { my ($type,$dis,$value,$marker,$return,$call)=@_; - return ''. &valout($value,$type).''; } @@ -174,6 +184,23 @@ sub handler { $udom=$ENV{'form.udom'}; unless ($udom) { $udom=$r->dir_config('lonDefDomain'); } + my $pscat=$ENV{'form.pscat'}; + my $pschp=$ENV{'form.pschp'}; + my $pssymb=''; + +# ----------------------------------------------- Was this started from grades? + + if (($ENV{'form.command'} eq 'set') && ($ENV{'form.url'}) + && (!$ENV{'form.dis'})) { + my $url=$ENV{'form.url'}; + $url=~s-^http://($ENV{'SERVER_NAME'}|$ENV{'HTTP_HOST'})--; + $pssymb=&Apache::lonnet::symbread($url); + $pscat='all'; + $pschp=''; + } else { + $ENV{'form.url'}=''; + } + my $id=$ENV{'form.id'}; if (($id) && ($udom)) { $uname=(&Apache::lonnet::idget($udom,$id))[1]; @@ -226,8 +253,9 @@ sub handler { $ENV{'request.course.fn'}.'_parms.db',&GDBM_READER,0640))) { # --------------------------------------------------------- Get all assessments - %allkeys=(); - %defp=(); + undef %allkeys; + undef %allmaps; + undef %defp; map { if ($_=~/^src\_(\d+)\.(\d+)$/) { my $mapid=$1; @@ -264,6 +292,7 @@ sub handler { &Apache::lonnet::metadata($srcf,'keys')); $mapp{$id}= &Apache::lonnet::declutter($bighash{'map_id_'.$mapid}); + $allmaps{$mapid}=$mapp{$id}; $symbp{$id}=$mapp{$id}. '___'.$resid.'___'. &Apache::lonnet::declutter($srcf); @@ -312,6 +341,18 @@ sub handler { 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'); + } + +# Store parameter $reply=&Apache::lonnet::critical('put:'. $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'. $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':resourcedata:'. @@ -319,6 +360,20 @@ sub handler { $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'); + } + +# Store parameter $reply= &Apache::lonnet::critical('put:'.$udom.':'.$uname.':resourcedata:'. $storecontent,$uhome); @@ -360,10 +415,11 @@ sub handler { if ($fcat eq '') { $a<=>$b; } else { - $outpar[&parmval($fcat,$a,$defp{$a})]<=> - $outpar[&parmval($fcat,$b,$defp{$b})]; + 1*$outpar[&parmval($fcat,$a,$defp{$a})]<=> + 1*$outpar[&parmval($fcat,$b,$defp{$b})]; } - } @ids; + } @ids; + # ------------------------------------------------------------------ Start page $r->content_type('text/html'); $r->send_http_header; @@ -393,6 +449,18 @@ sub handler { 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=''; @@ -417,22 +485,52 @@ or ID at Domain - - + ENDHEAD + if ($ENV{'form.url'}) { + $r->print(''); + } + map { + $r->print(''); + } ('tolerance','date_default','date_start','date_end','date_interval', + 'int','float','string'); - $r->print('

'.$message.'

Sort list by '); - $r->print(''); $r->print(''); map { $r->print(''); } keys %allkeys; - $r->print(''); + $r->print( + 'Select Enclosing MapSelect Parameter
' + ); + if (($pscat) || ($pschp) || ($pssymb)) { # ----------------------------------------------------------------- Start Table + my $catmarker='parameter_'.$pscat; + $catmarker=~s/\./\_/g; my $coursespan=$csec?8:5; $r->print(< @@ -466,6 +564,11 @@ ENDTABLEHEADFOUR my $defbgone=''; my $defbgtwo=''; map { + 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}))) { # ------------------------------------------------------ Entry for one resource if ($defbgone eq '"E0E099"') { $defbgone='"E0E0DD"'; @@ -478,7 +581,6 @@ ENDTABLEHEADFOUR $defbgtwo='"FFFF99"'; } @outpar=(); - my $rid=$_; my $thistitle=''; my %name= (); my %part= (); @@ -501,6 +603,7 @@ ENDTABLEHEADFOUR my $totalparms=scalar keys %name; my $isdef=1; unless ($totalparms) { $totalparms=1; $isdef=0; } + if ($pscat ne 'all') { $totalparms=1; } $r->print(''); if ($isdef) { map { + if (($_ eq $catmarker) || ($pscat eq 'all')) { my $result=&parmval($part{$_}.'.'.$name{$_},$rid,$default{$_}); $r->print(""); + } } sort keys %name; } else { - $r->print("\n"); + $r->print("\n"); } # -------------------------------------------------- End entry for one resource + } } @ids; - $r->print('
'. join(' / ',split(/\//,$uri)). @@ -517,6 +620,7 @@ ENDTABLEHEADFOUR join(' / ',split(/\//,$mapp{$rid})).'\n
'); + $r->print(''); + } + $r->print(''); untie(%bighash); untie(%parmhash); }