--- loncom/interface/lonparmset.pm 2000/11/28 02:53:40 1.16
+++ loncom/interface/lonparmset.pm 2001/03/20 22:01:13 1.24
@@ -9,7 +9,9 @@
#
# 10/11,10/12,10/16 Gerd Kortemeyer)
#
-# 11/20,11/21,11/22,11/23,11/24,11/25,11/27 Gerd Kortemeyer
+# 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,03/20 Gerd Kortemeyer
package Apache::lonparmset;
@@ -31,6 +33,7 @@ my %symbp;
my %mapp;
my %typep;
my %keyp;
+my %defp;
my %allkeys;
@@ -123,16 +126,6 @@ sub parmval {
return $result;
}
-# ---------------------------------------------------------------- Sort routine
-
-sub bycat {
- if ($fcat eq '') {
- $a<=>$b;
- } else {
- &parmval($fcat,$a)<=>&parmval($fcat,$b);
- }
-}
-
# ------------------------------------------------------------ Output for value
sub valout {
@@ -145,9 +138,18 @@ sub valout {
sub plink {
my ($type,$dis,$value,$marker,$return,$call)=@_;
- return ''.
- &valout($value,$type).'';
+ &valout($value,$type).'';
}
# ================================================================ Main Handler
@@ -179,6 +181,8 @@ sub handler {
$csec=$ENV{'form.csec'};
$udom=$ENV{'form.udom'};
+ unless ($udom) { $udom=$r->dir_config('lonDefDomain'); }
+
my $id=$ENV{'form.id'};
if (($id) && ($udom)) {
$uname=(&Apache::lonnet::idget($udom,$id))[1];
@@ -186,7 +190,7 @@ sub handler {
$id='';
} else {
$message=
- "
Unknown ID '$id' at domain '$udom'
";
+ "Unknown ID '$id' at domain '$udom'";
}
} else {
$uname=$ENV{'form.uname'};
@@ -198,14 +202,14 @@ sub handler {
if ($uhome eq 'no_host') {
$message=
- "Unknown user '$uname' at domain '$udom'
";
+ "Unknown user '$uname' at domain '$udom'";
$uname='';
} else {
$csec=&Apache::lonnet::usection(
$udom,$uname,$ENV{'request.course.id'});
if ($csec eq '-1') {
- $message="".
- "User '$uname' at domain '$udom' not in this course
";
+ $message="".
+ "User '$uname' at domain '$udom' not in this course";
$uname='';
$csec=$ENV{'form.csec'};
} else {
@@ -232,7 +236,7 @@ sub handler {
# --------------------------------------------------------- Get all assessments
%allkeys=();
-
+ %defp=();
map {
if ($_=~/^src\_(\d+)\.(\d+)$/) {
my $mapid=$1;
@@ -247,6 +251,7 @@ sub handler {
if ($_=~/^parameter\_(.*)/) {
my $key=$_;
my $allkey=$1;
+ $allkey=~s/\_/\./;
my $display=
&Apache::lonnet::metadata($srcf,$key.'.display');
unless ($display) {
@@ -254,6 +259,10 @@ sub handler {
&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 {
@@ -312,6 +321,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,13 +340,27 @@ 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);
}
if ($reply=~/^error\:(.*)/) {
- $message.="Write Error: $1
";
+ $message.="Write Error: $1";
}
# ---------------------------------------------------------------- Done storing
}
@@ -355,7 +390,15 @@ sub handler {
}
# ------------------------------------------------------------------- Sort this
- @ids=sort bycat @ids;
+
+ @ids=sort {
+ if ($fcat eq '') {
+ $a<=>$b;
+ } else {
+ $outpar[&parmval($fcat,$a,$defp{$a})]<=>
+ $outpar[&parmval($fcat,$b,$defp{$b})];
+ }
+ } @ids;
# ------------------------------------------------------------------ Start page
$r->content_type('text/html');
$r->send_http_header;
@@ -383,8 +426,18 @@ sub handler {
function psub() {
pclose();
- if ((document.parmform.pres_value.value!='') &&
- (document.parmform.pres_marker.value!='')) {
+ 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 (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='';
@@ -414,8 +467,13 @@ at Domain
ENDHEAD
-
- $r->print($message.'Sort list by ');
+ map {
+ $r->print('');
+ } ('tolerance','date_default','date_start','date_end','date_interval',
+ 'int','float','string');
+
+ $r->print('
'.$message.'
Sort list by ');
$r->print('