version 1.591, 2019/03/02 15:40:14
|
version 1.594, 2020/02/10 02:11:46
|
Line 976 sub storeparm_by_symb_inner {
|
Line 976 sub storeparm_by_symb_inner {
|
# |
# |
# @param {string} $value - the parameter value |
# @param {string} $value - the parameter value |
# @param {string} $type - the parameter type |
# @param {string} $type - the parameter type |
# @param {string} $name - the parameter name (unused) |
|
# @param {boolean} $editable - Set to true to get an icon when no value is defined. |
# @param {boolean} $editable - Set to true to get an icon when no value is defined. |
sub valout { |
sub valout { |
my ($value,$type,$name,$editable)=@_; |
my ($value,$type,$name,$editable)=@_; |
Line 1071 sub plink {
|
Line 1070 sub plink {
|
my ($type,$dis,$value,$marker,$return,$call,$recursive,$extra)=@_; |
my ($type,$dis,$value,$marker,$return,$call,$recursive,$extra)=@_; |
my $winvalue=$value; |
my $winvalue=$value; |
unless ($winvalue) { |
unless ($winvalue) { |
if ((&isdateparm($type) || (&is_specialstring($type))) { |
if (&isdateparm($type) || (&is_specialstring($type))) { |
$winvalue=$env{'form.recent_'.$type}; |
$winvalue=$env{'form.recent_'.$type}; |
} elsif ($type eq 'string_yesno') { |
} elsif ($type eq 'string_yesno') { |
if ($env{'form.recent_string'} =~ /^(yes|no)$/i) { |
if ($env{'form.recent_string'} =~ /^(yes|no)$/i) { |
Line 1084 sub plink {
|
Line 1083 sub plink {
|
my ($parmname)=((split(/\&/,$marker))[1]=~/\_([^\_]+)$/); |
my ($parmname)=((split(/\&/,$marker))[1]=~/\_([^\_]+)$/); |
my ($hour,$min,$sec,$val)=&preset_defaults($parmname); |
my ($hour,$min,$sec,$val)=&preset_defaults($parmname); |
unless (defined($winvalue)) { $winvalue=$val; } |
unless (defined($winvalue)) { $winvalue=$val; } |
my $valout = &valout($value,$type,$parmname,1); |
my $valout = &valout($value,$type,1); |
my $unencmarker = $marker; |
my $unencmarker = $marker; |
foreach my $item (\$type, \$dis, \$winvalue, \$marker, \$return, \$call, |
foreach my $item (\$type, \$dis, \$winvalue, \$marker, \$return, \$call, |
\$hour, \$min, \$sec, \$extra) { |
\$hour, \$min, \$sec, \$extra) { |
Line 1716 sub print_row {
|
Line 1715 sub print_row {
|
} |
} |
} |
} |
my ($parmname)=($thismarker=~/\_([^\_]+)$/); |
my ($parmname)=($thismarker=~/\_([^\_]+)$/); |
$effective_parm = &valout($recursinfo->[0],$recursinfo->[1],$parmname); |
$effective_parm = &valout($recursinfo->[0],$recursinfo->[1]); |
$r->print('<td style="background-color:#CCCCFF;" align="center">'.$effective_parm. |
$r->print('<td style="background-color:#CCCCFF;" align="center">'.$effective_parm. |
'<br /><span class="LC_parm_recursive">'.$rectitle.' '. |
'<br /><span class="LC_parm_recursive">'.$rectitle.' '. |
$effparm_level.'</span></td>'); |
$effparm_level.'</span></td>'); |
} else { |
} else { |
if ($result) { |
if ($result) { |
$effective_parm = &valout($outpar[$result],$typeoutpar[$result],$parmname); |
$effective_parm = &valout($outpar[$result],$typeoutpar[$result]); |
} |
} |
if ($eff_groupparm) { |
if ($eff_groupparm) { |
$effective_parm = $eff_groupparm; |
$effective_parm = $eff_groupparm; |
Line 1739 sub print_row {
|
Line 1738 sub print_row {
|
$sessionvaltype=$$defaulttype{$which}; |
$sessionvaltype=$$defaulttype{$which}; |
} |
} |
$r->print('<td style="background-color:#999999;" align="center"><font color="#FFFFFF">'. |
$r->print('<td style="background-color:#999999;" align="center"><font color="#FFFFFF">'. |
&valout($sessionval,$sessionvaltype,$$name{$which}).' '. |
&valout($sessionval,$sessionvaltype).' '. |
'</font></td>'); |
'</font></td>'); |
} |
} |
$r->print('</tr>'); |
$r->print('</tr>'); |
Line 1820 sub print_td {
|
Line 1819 sub print_td {
|
} |
} |
if ($nolink) { |
if ($nolink) { |
my ($parmname)=((split(/\&/,$mprefix))[1]=~/\_([^\_]+)$/); |
my ($parmname)=((split(/\&/,$mprefix))[1]=~/\_([^\_]+)$/); |
$r->print(&valout($currval,$currtype,$parmname)); |
$r->print(&valout($currval,$currtype)); |
} else { |
} else { |
$r->print(&plink($currtype, |
$r->print(&plink($currtype, |
$$display{$value},$currval, |
$$display{$value},$currval, |
Line 1860 sub check_other_groups {
|
Line 1859 sub check_other_groups {
|
if ($result > 3) { |
if ($result > 3) { |
$bgcolor = '#AAFFAA'; |
$bgcolor = '#AAFFAA'; |
} |
} |
$grp_parm = &valout($coursereply,$resulttype,$parmname); |
$grp_parm = &valout($coursereply,$resulttype); |
$output = '<td style="background-color:'.$bgcolor.';" align="center">'; |
$output = '<td style="background-color:'.$bgcolor.';" align="center">'; |
if ($resultgroup && $resultlevel) { |
if ($resultgroup && $resultlevel) { |
if ($resultlevel eq 'recursive') { |
if ($resultlevel eq 'recursive') { |
Line 3071 sub assessparms {
|
Line 3070 sub assessparms {
|
"'".$uname."'","'".$udom."'"). |
"'".$uname."'","'".$udom."'"). |
'</p>'; |
'</p>'; |
$uname=''; |
$uname=''; |
$csec=$env{'form.csec'}; |
if ($env{'request.course.sec'} ne '') { |
|
$csec=$env{'request.course.sec'}; |
|
} else { |
|
$csec=$env{'form.csec'}; |
|
} |
|
$cgroup=$env{'form.cgroup'}; |
|
} elsif ($env{'request.course.sec'} ne '') { |
|
if ($csec ne $env{'request.course.sec'}) { |
|
$message='<span class="LC_error">'. |
|
&mt("User '[_1]' at domain '[_2]' not in section '[_3]'", |
|
$uname,$udom,$env{'request.course.sec'}). |
|
'</span>'; |
|
$uname=''; |
|
$csec=$env{'request.course.sec'}; |
|
} |
$cgroup=$env{'form.cgroup'}; |
$cgroup=$env{'form.cgroup'}; |
} else { |
} else { |
my %name=&Apache::lonnet::userenvironment($udom,$uname, |
my %name=&Apache::lonnet::userenvironment($udom,$uname, |
Line 4389 sub listdata {
|
Line 4402 sub listdata {
|
$tableopen=0; |
$tableopen=0; |
my $foundkeys=0; |
my $foundkeys=0; |
my %keyorder=&standardkeyorder(); |
my %keyorder=&standardkeyorder(); |
|
my $readonlyall = $readonly; |
|
|
my ($secidx,%grouphash); |
my ($secidx,%grouphash); |
if (($env{'request.course.sec'} ne '') && ($caller eq 'overview')) { |
if (($env{'request.course.sec'} ne '') && ($caller eq 'overview')) { |
Line 4450 sub listdata {
|
Line 4464 sub listdata {
|
my ($middle,$part,$name)= |
my ($middle,$part,$name)= |
($thiskey=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s\-]+)\.(\w+)$/); |
($thiskey=~/^$env{'request.course.id'}\.(?:(.+)\.)*([\w\s\-]+)\.(\w+)$/); |
my $section=&mt('All Students'); |
my $section=&mt('All Students'); |
|
$readonly = $readonlyall; |
my $showval = $$resourcedata{$thiskey}; |
my $showval = $$resourcedata{$thiskey}; |
if ($middle=~/^\[(.*)\]/) { |
if ($middle=~/^\[(.*)\]/) { |
my $issection=$1; |
my $issection=$1; |
Line 5386 sub oldversion_warning {
|
Line 5401 sub oldversion_warning {
|
# @param {integer} $shift - time to shift, in seconds |
# @param {integer} $shift - time to shift, in seconds |
# @returns {string} - error name or 'ok' |
# @returns {string} - error name or 'ok' |
sub dateshift { |
sub dateshift { |
my ($shift)=@_; |
my ($shift,$numchanges)=@_; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $sec = $env{'request.course.sec'}; |
my %data=&Apache::lonnet::dump('resourcedata',$dom,$crs); |
my %data=&Apache::lonnet::dump('resourcedata',$dom,$crs); |
# ugly retro fix for broken version of types |
# ugly retro fix for broken version of types |
foreach my $key (keys(%data)) { |
foreach my $key (keys(%data)) { |
Line 5403 sub dateshift {
|
Line 5419 sub dateshift {
|
# go through all parameters and look for dates |
# go through all parameters and look for dates |
foreach my $key (keys(%data)) { |
foreach my $key (keys(%data)) { |
if ($data{$key.'.type'}=~/^date_(start|end)$/) { |
if ($data{$key.'.type'}=~/^date_(start|end)$/) { |
|
if ($sec ne '') { |
|
next unless ($key =~ /^$env{'request.course.id'}\.\[$sec\]\./); |
|
} |
my $newdate=$data{$key}+$shift; |
my $newdate=$data{$key}+$shift; |
|
$$numchanges ++; |
$storecontent{$key}=$newdate; |
$storecontent{$key}=$newdate; |
} |
} |
} |
} |
Line 5815 sub date_shift_one {
|
Line 5835 sub date_shift_one {
|
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; |
my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; |
|
my $sec = $env{'request.course.sec'}; |
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
text=>"Shifting Dates"}); |
text=>"Shifting Dates"}); |
|
my $submit_text = &mt('Shift all dates accordingly'); |
|
if ($sec ne '') { |
|
$submit_text = &mt("Shift all dates set explicitly for section '[_1]', accordingly",$sec); |
|
} |
my $start_page=&Apache::loncommon::start_page('Shift Dates'); |
my $start_page=&Apache::loncommon::start_page('Shift Dates'); |
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); |
my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Shift'); |
$r->print($start_page.$breadcrumbs); |
$r->print($start_page.$breadcrumbs); |
Line 5833 sub date_shift_one {
|
Line 5857 sub date_shift_one {
|
'</td></tr></table>'. |
'</td></tr></table>'. |
'<input type="hidden" name="action" value="dateshift2" />'. |
'<input type="hidden" name="action" value="dateshift2" />'. |
'<input type="hidden" name="timebase" value="'.$env{'form.timebase'}.'" />'. |
'<input type="hidden" name="timebase" value="'.$env{'form.timebase'}.'" />'. |
'<input type="submit" value="'.&mt('Shift all dates accordingly').'" /></form>'); |
'<input type="submit" value="'.$submit_text.'" /></form>'); |
&endSettingsScreen($r); |
&endSettingsScreen($r); |
$r->print(&Apache::loncommon::end_page()); |
$r->print(&Apache::loncommon::end_page()); |
} |
} |
Line 5845 sub date_shift_two {
|
Line 5869 sub date_shift_two {
|
my ($r) = @_; |
my ($r) = @_; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'}; |
|
my $sec = $env{'request.course.sec'}; |
my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; |
my $crstype = $env{'course.'.$env{'request.course.id'}.'.type'}; |
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=dateshift1&timebase='.$env{'form.timebase'}, |
text=>"Shifting Dates"}); |
text=>"Shifting Dates"}); |
Line 5853 sub date_shift_two {
|
Line 5878 sub date_shift_two {
|
$r->print($start_page.$breadcrumbs); |
$r->print($start_page.$breadcrumbs); |
&startSettingsScreen($r,'parmset',$crstype); |
&startSettingsScreen($r,'parmset',$crstype); |
my $timeshifted=&Apache::lonhtmlcommon::get_date_from_form('timeshifted'); |
my $timeshifted=&Apache::lonhtmlcommon::get_date_from_form('timeshifted'); |
$r->print('<h2>'.&mt('Shift Dates').'</h2>'. |
$r->print('<h2>'.&mt('Shift Dates').'</h2>'); |
'<p>'.&mt('Shifting all dates such that [_1] becomes [_2]', |
if ($sec ne '') { |
&Apache::lonlocal::locallocaltime($env{'form.timebase'}), |
$r->print('<p>'. |
&Apache::lonlocal::locallocaltime($timeshifted)).'</p>'); |
&mt("Shift all dates set explicitly for section '[_1]', such that [_2] becomes [_3]", |
|
$sec,&Apache::lonlocal::locallocaltime($env{'form.timebase'}), |
|
&Apache::lonlocal::locallocaltime($timeshifted)). |
|
'</p>'); |
|
} else { |
|
$r->print('<p>'.&mt('Shifting all dates such that [_1] becomes [_2]', |
|
&Apache::lonlocal::locallocaltime($env{'form.timebase'}), |
|
&Apache::lonlocal::locallocaltime($timeshifted)). |
|
'</p>'); |
|
} |
my $delta=$timeshifted-$env{'form.timebase'}; |
my $delta=$timeshifted-$env{'form.timebase'}; |
&dateshift($delta); |
my $numchanges = 0; |
|
my $result = &dateshift($delta,\$numchanges); |
|
if ($result eq 'ok') { |
|
$r->print( |
|
&Apache::lonhtmlcommon::confirm_success(&mt('Completed shifting of [quant,_1,date setting]', |
|
$numchanges))); |
|
} elsif ($result eq 'con_delayed') { |
|
$r->print( |
|
&Apache::lonhtmlcommon::confirm_success(&mt('Queued shifting of [quant,_1,date setting]', |
|
$numchanges))); |
|
} else { |
|
$r->print( |
|
&Apache::lonhtmlcommon::confirm_success(&mt('An error occurred attempting to shift dates'),1)); |
|
} |
$r->print( |
$r->print( |
&Apache::lonhtmlcommon::confirm_success(&mt('Done')). |
|
'<br /><br />'. |
'<br /><br />'. |
&Apache::lonhtmlcommon::actionbox( |
&Apache::lonhtmlcommon::actionbox( |
['<a href="/adm/parmset">'.&mt('Content and Problem Settings').'</a>'])); |
['<a href="/adm/parmset">'.&mt('Content and Problem Settings').'</a>'])); |