--- loncom/interface/lonparmset.pm 2006/04/14 16:38:43 1.287
+++ loncom/interface/lonparmset.pm 2006/04/15 21:12:56 1.290
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.287 2006/04/14 16:38:43 albertel Exp $
+# $Id: lonparmset.pm,v 1.290 2006/04/15 21:12:56 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -397,7 +397,10 @@ sub storeparm_by_symb {
{
my $logid;
sub log_parmset {
- my ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec,$cgroup)=@_;
+ my ($storehash,$delflag,$uname,$udom)=@_;
+ my $logentry=join(',',map {
+ &Apache::lonnet::escape($_).'=>'.&Apache::lonnet::escape($$storehash{$_});
+ } keys %$storehash);
$logid++;
my $id=time().'00000'.$$.'00000'.$logid;
&Apache::lonnet::put('nohist_parameterlog',
@@ -406,15 +409,10 @@ sub storeparm_by_symb {
$id.'_exe_udom' => $env{'user.domain'},
$id.'_exe_time' => time(),
$id.'_exe_ip' => $ENV{'REMOTE_ADDR'},
- $id.'_symb' => $symb,
- $id.'_spnam' => $spnam,
- $id.'_snum' => $snum,
- $id.'_nval' => $nval,
- $id.'_ntype' => $ntype,
+ $id.'_delflag' => $delflag,
+ $id.'_logentry' => $logentry,
$id.'_uname' => $uname,
$id.'_udom' => $udom,
- $id.'_csec' => $csec,
- $id.'_cgroup' => $cgroup
},
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'}
@@ -425,7 +423,6 @@ sub storeparm_by_symb {
sub storeparm_by_symb_inner {
# ---------------------------------------------------------- Get symb, map, etc
my ($symb,$spnam,$snum,$nval,$ntype,$uname,$udom,$csec,$cgroup)=@_;
- &log_parmset(@_);
# ---------------------------------------------------------- Construct prefixes
$spnam=~s/\_([^\_]+)$/\.$1/;
my $map=(&Apache::lonnet::decode_symb($symb))[0];
@@ -479,9 +476,11 @@ sub storeparm_by_symb_inner {
if ($delete) {
$reply=&Apache::lonnet::del
('resourcedata',[keys(%storecontent)],$cdom,$cnum);
+ &log_parmset(\%storecontent,1);
} else {
$reply=&Apache::lonnet::cput
('resourcedata',\%storecontent,$cdom,$cnum);
+ &log_parmset(\%storecontent);
}
&Apache::lonnet::devalidatecourseresdata($cnum,$cdom);
} else {
@@ -502,9 +501,11 @@ sub storeparm_by_symb_inner {
if ($delete) {
$reply=&Apache::lonnet::del
('resourcedata',[keys(%storecontent)],$udom,$uname);
+ &log_parmset(\%storecontent,1,$uname,$udom);
} else {
$reply=&Apache::lonnet::cput
('resourcedata',\%storecontent,$udom,$uname);
+ &log_parmset(\%storecontent,0,$uname,$udom);
}
&Apache::lonnet::devalidateuserresdata($uname,$udom);
}
@@ -2421,6 +2422,7 @@ sub storedata {
if (&Apache::lonnet::put('resourcedata',{$tkey=>$data,
$tkey.'.type' => $typeof},
$tudom,$tuname) eq 'ok') {
+ &log_parmset({$tkey=>$data,$tkey.'.type' => $typeof},0,$tuname,$tudom);
$r->print('
'.&mt('Stored modified parameter for').' '.
&Apache::loncommon::plainname($tuname,$tudom));
} else {
@@ -2436,6 +2438,7 @@ sub storedata {
} elsif ($cmd eq 'del') {
if ($tuname) {
if (&Apache::lonnet::del('resourcedata',[$tkey],$tudom,$tuname) eq 'ok') {
+ &log_parmset({$tkey=>''},1,$tuname,$tudom);
$r->print('
'.&mt('Deleted parameter for').' '.&Apache::loncommon::plainname($tuname,$tudom));
} else {
$r->print('
'. - &Apache::lonlocal::locallocaltime($parmlog{$id.'_exe_time'}). - ' | '.
- &Apache::loncommon::aboutmewrapper(
- &Apache::loncommon::plainname($parmlog{$id.'_exe_uname'},
- $parmlog{$id.'_exe_udom'}),
- $parmlog{$id.'_exe_uname'},
- $parmlog{$id.'_exe_udom'}).' '. - $parmlog{$id.'_exe_uname'}.':'.$parmlog{$id.'_exe_udom'}.''. - ((($parmlog{$id.'_exe_uname'} ne $env{'user.name'}) || - ($parmlog{$id.'_exe_udom'} ne $env{'user.domain'}))? - ' '.&Apache::loncommon::messagewrapper(&mt('Send message'), - $parmlog{$id.'_exe_uname'}, - $parmlog{$id.'_exe_udom'}):''). - ' | '. - $level{'parmlevel_'.$parmlog{$id.'_snum'}}. - ' | '.
- &mt($allparms{$name}).' '.$name.''. - ' | '. - ($part?&mt('Part: [_1]',$part):&mt('All parts')). - ' | '. - $parmlog{$id.'_symb'}. - ' | '. - ($parmlog{$id.'_nval'}? - (&isdateparm($spnam)?&Apache::lonlocal::locallocaltime($parmlog{$id.'_nval'}):$parmlog{$id.'_nval'}) - :&mt('Deleted Parameter')). - ' |
'.$time.' | +'.$about_me_link.
+ ' '.$parmlog{$id.'_exe_uname'}. + ':'.$parmlog{$id.'_exe_udom'}.''. + $send_msg_link.' | ');
+ my $makenewrow=0;
+ my %istype=();
+ foreach my $changed (sort @changes) {
+ my ($key,$value)=split(/\=\>/,&Apache::lonnet::unescape($changed));
+ my ($realm,$section,$parmname,$part,$typeflag)=
+ &components($key,$parmlog{$id.'_uname'},$parmlog{$id.'_udom'});
+ if ($typeflag) { $istype{$parmname}=$value; }
+ if ($makenewrow) { $r->print('|||||
'.$realm.' | '.$section.' | '. + &mt('Part: [_1]',$part).' | '); + if ($parmlog{$id.'_deleteflag'}) { + $r->print(&mt('Deleted')); + } else { + if ($typeflag) { + $r->print(&mt('Type: [_1]',$value)); + } elsif (&isdateparm($istype{$parmname})) { + $r->print(&Apache::lonlocal::locallocaltime($value)); + } else { + $r->print($value); + } + } + $r->print(' |