version 1.326, 2006/08/07 16:23:04
|
version 1.332, 2006/08/10 15:36:49
|
Line 3314 ENDYESNO
|
Line 3314 ENDYESNO
|
} |
} |
|
|
sub components { |
sub components { |
my ($key,$uname,$udom,$exeuser,$exedomain)=@_; |
my ($key,$uname,$udom,$exeuser,$exedomain,$typeflag)=@_; |
my $typeflag=0; |
|
if ($key=~/\.type$/) { |
if ($typeflag) { |
$key=~s/\.type$//; |
$key=~s/\.type$//; |
$typeflag=1; |
|
} |
} |
|
|
|
my ($middle,$part,$name)= |
|
($key=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/); |
my $issection; |
my $issection; |
my ($middle,$part,$name)=($key=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s]+)\.(\w+)$/); |
|
my $section=&mt('All Students'); |
my $section=&mt('All Students'); |
if ($middle=~/^\[(.*)\]/) { |
if ($middle=~/^\[(.*)\]/) { |
$issection=$1; |
$issection=$1; |
Line 3345 sub components {
|
Line 3347 sub components {
|
$realmdescription=&mt('resource').' '.&Apache::lonnet::gettitle($middle); |
$realmdescription=&mt('resource').' '.&Apache::lonnet::gettitle($middle); |
} |
} |
my $what=$part.'.'.$name; |
my $what=$part.'.'.$name; |
return ($realm,$section,$name,$part,$typeflag, |
return ($realm,$section,$name,$part, |
$what,$middle,$uname,$udom,$issection,$realmdescription); |
$what,$middle,$uname,$udom,$issection,$realmdescription); |
} |
} |
|
|
|
my %standard_parms; |
|
sub load_parameter_names { |
|
open(my $config,"<$Apache::lonnet::perlvar{'lonTabDir'}/packages.tab"); |
|
while (my $configline=<$config>) { |
|
if ($configline !~ /\S/ || $configline=~/^\#/) { next; } |
|
chomp($configline); |
|
my ($short,$plain)=split(/:/,$configline); |
|
my (undef,$name,$type)=split(/\&/,$short,3); |
|
if ($type eq 'display') { |
|
$standard_parms{$name} = $plain; |
|
} |
|
} |
|
close($config); |
|
$standard_parms{'int_pos'} = 'Positive Integer'; |
|
$standard_parms{'int_zero_pos'} = 'Positive Integer or Zero'; |
|
%standard_parms=&Apache::lonlocal::texthash(%standard_parms); |
|
} |
|
|
sub standard_parameter_names { |
sub standard_parameter_names { |
my ($name)=@_; |
my ($name)=@_; |
my %standard_parms=&Apache::lonlocal::texthash('duedate' => 'Due Date', |
if (!%standard_parms) { |
'answerdate' => 'Answer Date', |
&load_parameter_names(); |
'opendate' => 'Open Date', |
} |
'maxtries' => 'Max. Number of Tries', |
|
'weight' => 'Weight', |
|
'date_start' => 'Starting Date', |
|
'date_end' => 'Ending Date', |
|
'interval' => 'Time Interval Length', |
|
'tol' => 'Numerical Tolerance', |
|
'sig' => 'Significant Digits', |
|
'contentopen' => 'Content Opening Date', |
|
'contentclose' => 'Content Closing Date', |
|
'discussend' => 'End of Discussion Time', |
|
'discusshide' => 'Discussion Hidden', |
|
'problemstatus' => 'Problem Status Visible', |
|
'int_pos' => 'Positive Integer', |
|
'int_zero_pos' => 'Positive Integer or Zero', |
|
'hinttries' => 'Number of Tries till Hints appear', |
|
'numbubbles' => 'Number of Bubbles in Exam Mode'); |
|
if ($standard_parms{$name}) { |
if ($standard_parms{$name}) { |
return $standard_parms{$name}; |
return $standard_parms{$name}; |
} else { |
} else { |
Line 3384 sub standard_parameter_names {
|
Line 3388 sub standard_parameter_names {
|
|
|
sub parm_change_log { |
sub parm_change_log { |
my ($r)=@_; |
my ($r)=@_; |
&startpage($r); |
$r->print(&Apache::loncommon::start_page('Parameter Change Log')); |
|
$r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Change Log')); |
|
|
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog', |
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog', |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
|
|
if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); } |
if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); } |
|
|
$r->print('<form action="/adm/parmset?action=settable" |
$r->print('<form action="/adm/parmset?action=parameterchangelog" |
method="post" name"parameterlog"> |
method="post" name="parameterlog">'); |
<input type="hidden" name="action" |
|
value="parameterchangelog" />'); |
|
|
|
my %saveable_parameters = ('show' => 'scalar',); |
my %saveable_parameters = ('show' => 'scalar',); |
&Apache::loncommon::store_course_settings('parameter_log', |
&Apache::loncommon::store_course_settings('parameter_log', |
Line 3410 sub parm_change_log {
|
Line 3414 sub parm_change_log {
|
$r->print('<nobr>'.&mt('[_1] Records',$countselect).'</nobr>'. |
$r->print('<nobr>'.&mt('[_1] Records',$countselect).'</nobr>'. |
'<label>'.&Apache::lonhtmlcommon::checkbox('includetypes',$env{'form.includetypes'},'1'). |
'<label>'.&Apache::lonhtmlcommon::checkbox('includetypes',$env{'form.includetypes'},'1'). |
' '.&mt('Include parameter types').'</label>'. |
' '.&mt('Include parameter types').'</label>'. |
'<input type="submit" value="'.&mt('Display').'" />'); |
'<input type="submit" value="'.&mt('Display').'" /></form>'); |
|
|
my $courseopt=&Apache::lonnet::get_courseresdata($env{'course.'.$env{'request.course.id'}.'.num'}, |
my $courseopt=&Apache::lonnet::get_courseresdata($env{'course.'.$env{'request.course.id'}.'.num'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}); |
$env{'course.'.$env{'request.course.id'}.'.domain'}); |
Line 3421 sub parm_change_log {
|
Line 3425 sub parm_change_log {
|
my $shown=0; |
my $shown=0; |
foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) { |
foreach my $id (sort { $parmlog{$b}{'exe_time'}<=>$parmlog{$a}{'exe_time'} } (keys(%parmlog))) { |
my @changes=keys(%{$parmlog{$id}{'logentry'}}); |
my @changes=keys(%{$parmlog{$id}{'logentry'}}); |
my $count=$#changes+1; |
my $count = 0; |
if (!$env{'form.includetypes'}) { $count=$count/2; } |
|
my $time = |
my $time = |
&Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'}); |
&Apache::lonlocal::locallocaltime($parmlog{$id}{'exe_time'}); |
my $plainname = |
my $plainname = |
Line 3441 sub parm_change_log {
|
Line 3444 sub parm_change_log {
|
$parmlog{$id}{'exe_udom'}); |
$parmlog{$id}{'exe_udom'}); |
} |
} |
my $row_start=&Apache::loncommon::start_data_table_row(); |
my $row_start=&Apache::loncommon::start_data_table_row(); |
$r->print($row_start.'<td rowspan="'.$count.'">'.$time.'</td> |
$r->print($row_start); |
<td rowspan="'.$count.'">'.$about_me_link. |
|
'<br /><tt>'.$parmlog{$id}{'exe_uname'}. |
|
':'.$parmlog{$id}{'exe_udom'}.'</tt>'. |
|
$send_msg_link.'</td>'); |
|
my $makenewrow=0; |
my $makenewrow=0; |
my %istype=(); |
my %istype=(); |
|
my $output; |
foreach my $changed (reverse(sort(@changes))) { |
foreach my $changed (reverse(sort(@changes))) { |
my $value=$parmlog{$id}{'logentry'}->{$changed}; |
my $value=$parmlog{$id}{'logentry'}{$changed}; |
my ($realm,$section,$parmname,$part,$typeflag,$what,$middle,$uname,$udom,$issection,$realmdescription)= |
my $typeflag = ($changed =~/\.type$/ && |
&components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'}); |
!exists($parmlog{$id}{'logentry'}{$changed.'.type'})); |
|
my ($realm,$section,$parmname,$part,$what,$middle,$uname,$udom,$issection,$realmdescription)= |
|
&components($changed,$parmlog{$id}{'uname'},$parmlog{$id}{'udom'},undef,undef,$typeflag); |
if ($typeflag) { |
if ($typeflag) { |
if (!$env{'form.includetypes'}) { next; } |
|
$istype{$parmname}=$value; |
$istype{$parmname}=$value; |
|
if (!$env{'form.includetypes'}) { next; } |
|
} |
|
$count++; |
|
if ($makenewrow) { |
|
$output .= $row_start; |
|
} else { |
|
$makenewrow=1; |
} |
} |
if ($makenewrow) { $r->print($row_start); } else { $makenewrow=1; } |
$output .='<td>'.$realm.'</td><td>'.$section.'</td><td>'. |
$r->print('<td>'.$realm.'</td><td>'.$section.'</td><td>'. |
|
&standard_parameter_names($parmname).'</td><td>'. |
&standard_parameter_names($parmname).'</td><td>'. |
($part?&mt('Part: [_1]',$part):&mt('All Parts')).'</td><td>'); |
($part?&mt('Part: [_1]',$part):&mt('All Parts')).'</td><td>'; |
my $stillactive=0; |
my $stillactive=0; |
if ($parmlog{$id}{'deleteflag'}) { |
if ($parmlog{$id}{'delflag'}) { |
$r->print(&mt('Deleted')); |
$output .= &mt('Deleted'); |
} else { |
} else { |
if ($typeflag) { |
if ($typeflag) { |
$r->print(&mt('Type: [_1]',&standard_parameter_names($value))); |
$output .= &mt('Type: [_1]',&standard_parameter_names($value)); |
} else { |
} else { |
my ($level,@all)=&parmval_by_symb($what,$middle,&Apache::lonnet::metadata($middle,$what), |
my ($level,@all)=&parmval_by_symb($what,$middle,&Apache::lonnet::metadata($middle,$what), |
$uname,$udom,$issection,$issection,$courseopt); |
$uname,$udom,$issection,$issection,$courseopt); |
if (&isdateparm($istype{$parmname})) { |
if (&isdateparm($istype{$parmname})) { |
$r->print(&Apache::lonlocal::locallocaltime($value)); |
$output .= &Apache::lonlocal::locallocaltime($value); |
} else { |
} else { |
$r->print($value); |
$output .= $value; |
} |
} |
if ($value ne $all[$level]) { |
if ($value ne $all[$level]) { |
$r->print('<br /><span class="LC_warning">'.&mt('Not active anymore').'</span>'); |
$output .= '<br /><span class="LC_warning">'.&mt('Not active anymore').'</span>'; |
} else { |
} else { |
$stillactive=1; |
$stillactive=1; |
} |
} |
} |
} |
} |
} |
$r->print('</td>'); |
$output .= '</td><td>'; |
if ($stillactive) { |
if ($stillactive) { |
my $title=&mt('Changed [_1]',&standard_parameter_names($parmname)); |
my $title=&mt('Changed [_1]',&standard_parameter_names($parmname)); |
my $description=&mt('Changed [_1] for [_2] to [_3]',&standard_parameter_names($parmname),$realmdescription, |
my $description=&mt('Changed [_1] for [_2] to [_3]',&standard_parameter_names($parmname),$realmdescription, |
(&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value)); |
(&isdateparm($istype{$parmname})?&Apache::lonlocal::locallocaltime($value):$value)); |
if (($uname) && ($udom)) { |
if (($uname) && ($udom)) { |
$r->print('<td>'. |
$output .= |
&Apache::loncommon::messagewrapper('Notify User',$uname,$udom,$title,$description). |
&Apache::loncommon::messagewrapper('Notify User', |
'</td>'); |
$uname,$udom,$title, |
|
$description); |
} else { |
} else { |
$r->print('<td>'. |
$output .= |
&Apache::lonrss::course_blog_link($id,$title,$description). |
&Apache::lonrss::course_blog_link($id,$title, |
'</td>'); |
$description); |
} |
} |
} else { |
|
$r->print('<td> </td>'); |
|
} |
} |
$r->print(&Apache::loncommon::end_data_table_row()); |
$output .= '</td>'.&Apache::loncommon::end_data_table_row(); |
} |
} |
|
$r->print('<td rowspan="'.$count.'">'.$time.'</td> |
|
<td rowspan="'.$count.'">'.$about_me_link. |
|
'<br /><tt>'.$parmlog{$id}{'exe_uname'}. |
|
':'.$parmlog{$id}{'exe_udom'}.'</tt>'. |
|
$send_msg_link.'</td>'.$output); |
|
|
$shown++; |
$shown++; |
if (!($env{'form.show'} eq &mt('all') |
if (!($env{'form.show'} eq &mt('all') |
|| $shown<=$env{'form.show'})) { last; } |
|| $shown<=$env{'form.show'})) { last; } |
} |
} |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print(&Apache::loncommon::end_data_table()); |
$r->print('</form>'); |
|
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
|
|