print('');
- foreach my $s ('all',sort keys %sectionhash) {
- $r->print(' print(' selected');
- last;
- }
+ my %sectionhash = &Apache::loncommon::get_sections();
+ return if (!%sectionhash);
+
+ $r->print('');
+ foreach my $s ('all',sort keys %sectionhash) {
+ $r->print(' print(' selected');
+ last;
}
- $r->print('>'.$s." \n");
}
- $r->print(" \n");
- }
+ $r->print('>'.$s." \n");
+ }
+ $r->print(" \n");
}
sub groupmenu {
my ($r,$selectedgroups)=@_;
- my %grouphash;
- my $numgrp = &Apache::loncommon::coursegroups(
- \%grouphash,
- $env{'course.'.$env{'request.course.id'}.'.domain'},
- $env{'course.'.$env{'request.course.id'}.'.num'});
- if ($numgrp) {
- $r->print('');
- foreach my $group (sort(keys(%grouphash))) {
- $r->print(' print(' selected');
- last;
- }
- }
- $r->print('>'.$group." \n");
- }
- $r->print(" \n");
+ my %grouphash = &Apache::longroup::coursegroups();
+ return if (!%grouphash);
+
+ $r->print('');
+ foreach my $group (sort(keys(%grouphash))) {
+ $r->print(' print(' selected');
+ last;
+ }
+ }
+ $r->print('>'.$group." \n");
}
+ $r->print(" \n");
}
@@ -1416,7 +1406,6 @@ sub assessparms {
my $uhome;
my $csec;
my $cgroup;
- my $grouplist;
my @usersgroups = ();
my $coursename=$env{'course.'.$env{'request.course.id'}.'.description'};
@@ -1488,8 +1477,8 @@ sub assessparms {
$id='';
} else {
$message=
- "".&mt("Unknown ID")." '$id' ".
- &mt('at domain')." '$udom' ";
+ ''.&mt("Unknown ID")." '$id' ".
+ &mt('at domain')." '$udom' ";
}
} else {
$uname=$env{'form.uname'};
@@ -1500,17 +1489,17 @@ sub assessparms {
$uhome=&Apache::lonnet::homeserver($uname,$udom);
if ($uhome eq 'no_host') {
$message=
- "".&mt("Unknown user")." '$uname' ".
- &mt("at domain")." '$udom' ";
+ ''.&mt("Unknown user")." '$uname' ".
+ &mt("at domain")." '$udom' ";
$uname='';
} else {
$csec=&Apache::lonnet::getsection($udom,$uname,
$env{'request.course.id'});
if ($csec eq '-1') {
- $message="".
+ $message=''.
&mt("User")." '$uname' ".&mt("at domain")." '$udom' ".
- &mt("not in this course")." ";
+ &mt("not in this course")."";
$uname='';
$csec=$env{'form.csec'};
$cgroup=$env{'form.cgroup'};
@@ -1522,16 +1511,12 @@ sub assessparms {
.$name{'lastname'}.' '.$name{'generation'}.
" \n".&mt('ID').": ".$name{'id'}.'';
}
- $grouplist = &Apache::lonnet::get_users_groups(
+ @usersgroups = &Apache::lonnet::get_users_groups(
$udom,$uname,$env{'request.course.id'});
- if ($grouplist) {
- @usersgroups = &Apache::lonnet::sort_course_groups($grouplist,
- $env{'request.course.id'});
- unless (grep/^\Q$cgroup\E$/,@usersgroups) {
+ if (@usersgroups > 0) {
+ unless (grep(/^\Q$cgroup\E$/,@usersgroups)) {
$cgroup = $usersgroups[0];
- }
- } else {
- $cgroup = '';
+ }
}
}
}
@@ -1587,8 +1572,9 @@ sub assessparms {
&displaymenu($r,\%allparms,\%allparts,\@pscat,\@psprt,\%keyorder);
} else {
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($pssymb);
- $r->print(&mt('Specific Resource').": ".$resource.
- ' '.
+ my $title = &Apache::lonnet::gettitle($pssymb);
+ $r->print(&mt('Specific Resource: [_1] ([_2])',$title,$resource).
+ ' '.
''.&mt('Show all parts').': ');
}
@@ -1748,7 +1734,7 @@ ENDTABLEHEADFOUR
'
'.
"$title");
@@ -1947,7 +1933,7 @@ ENDMAPONE
}
if ($csec) {$r->print(&mt("Section")." $csec \n")};
- if ($cgroup) {$r->print(&mt("Group")." $csec \n")};
+ if ($cgroup) {$r->print(&mt("Group")." $cgroup \n")};
$r->print("\n");
#---------------------------------------------------------------- print table
$r->print('
');
@@ -1990,8 +1976,8 @@ sub crsenv {
my $r=shift;
my $setoutput='';
- my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,
- 'Edit Course Environment');
+ my $breadcrumbs =
+ &Apache::lonhtmlcommon::breadcrumbs('Edit Course Environment');
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
@@ -2092,9 +2078,13 @@ sub crsenv {
}
}
}
+
+ my $start_table =&Apache::loncommon::start_data_table();
+ my $start_header_row=&Apache::loncommon::start_data_table_header_row();
+ my $end_header_row =&Apache::loncommon::end_data_table_header_row();
# ------------------------- Re-init course environment entries for this session
- &Apache::lonnet::coursedescription($env{'request.course.id'}
+ &Apache::lonnet::coursedescription($env{'request.course.id'},
{'freshen_cache' => 1});
# -------------------------------------------------------- Get parameters again
@@ -2108,9 +2098,9 @@ sub crsenv {
('url' => ''.&mt('Top Level Map').' '.
'".
- &mt('Select Map').' '.
+ &mt('Select Map').' '.
&mt('Modification may make assessment data inaccessible').
- ' ',
+ '',
'description' => ''.&mt('Course Description').' ',
'courseid' => ''.&mt('Course ID or number').
' '.
@@ -2181,8 +2171,8 @@ sub crsenv {
'('.&mt('or set value to "[_1]" to allow all roles',"yes ").')',
'rndseed'
=> ''.&mt('Randomization algorithm used').' '.
- ''.&mt('Modifying this will make problems').' '.
- &mt('have different numbers and answers').' ',
+ ''.&mt('Modifying this will make problems').' '.
+ &mt('have different numbers and answers').' ',
'receiptalg'
=> ''.&mt('Receipt algorithm used').' '.
&mt('This controls how receipt numbers are generated.'),
@@ -2208,6 +2198,8 @@ sub crsenv {
'disable_receipt_display'
=> ''.&mt('Disable display of problem receipts').' '.
' ('.&mt('"[_1]" to disable, anything else if not','yes ').')',
+ 'task_messages'
+ => ''.&mt('Send message to student when clicking Done on Tasks. [_1] to send a message only to student, [_2] to send message to student and add record to user information page for instructors. Leave blank to disable.','only_student ','student_and_user_notes_screen ').' ',
'disablesigfigs'
=> ''.&mt('Disable checking of Significant Figures').' '.
' ('.&mt('"[_1]" to disable, anything else if not','yes ').')',
@@ -2244,7 +2236,8 @@ sub crsenv {
'default_enrollment_end_date',
'tthoptions',
'disablesigfigs',
- 'disableexampointprint'
+ 'disableexampointprint',
+ 'task_messages'
);
foreach my $parameter (sort(keys(%values))) {
unless (($parameter =~ m/^internal\./)||($parameter =~ m/^metadata\./)) {
@@ -2254,13 +2247,15 @@ sub crsenv {
}
}
}
+
foreach my $parameter (@Display_Order) {
my $description = $descriptions{$parameter};
# onchange is javascript to automatically check the 'Set' button.
my $onchange = 'onFocus="javascript:window.document.forms'.
"['envform'].elements['".$parameter."_setparmval']".
'.checked=true;"';
- $output .= ''.$description.' ';
+ $output .= &Apache::loncommon::start_data_table_row().
+ ''.$description.' ';
if ($parameter =~ /^default_enrollment_(start|end)_date$/) {
$output .= ''.
&Apache::lonhtmlcommon::date_setter('envform',
@@ -2277,17 +2272,19 @@ sub crsenv {
$output .= ' '.
&Apache::lonhtmlcommon::checkbox($parameter.'_setparmval').
' ';
- $output .= " \n";
+ $output .= &Apache::loncommon::end_data_table_row()."\n";
}
my $onchange = 'onFocus="javascript:window.document.forms'.
'[\'envform\'].elements[\'newp_setparmval\']'.
'.checked=true;"';
- $output.=''.&mt('Create New Environment Variable').' '.
+ $output.=&Apache::loncommon::start_data_table_row().
+ ''.&mt('Create New Environment Variable').' '.
''.
' '.
- ' ';
+ ' '.
+ &Apache::loncommon::end_data_table_row()."\n";
}
my %lt=&Apache::lonlocal::texthash(
'par' => 'Parameter',
@@ -2309,16 +2306,18 @@ sub crsenv {
$browse_js);
my $end_page =
&Apache::loncommon::end_page();
+ my $end_table=&Apache::loncommon::end_data_table();
$r->print(<
$setoutput
-
-
-$lt{'par'} $lt{'val'} $lt{'set'}?
+$start_table
+$start_header_row
+$lt{'par'} $lt{'val'} $lt{'set'}?
+$end_header_row
$output
-
+$end_table
$end_page
@@ -2405,8 +2404,8 @@ sub storedata {
$r->print(' '.&mt('Stored modified parameter for').' '.
&Apache::loncommon::plainname($tuname,$tudom));
} else {
- $r->print(''.
- &mt('Error storing parameters').' ');
+ $r->print(''.
+ &mt('Error storing parameters').'
');
}
&Apache::lonnet::devalidateuserresdata($tuname,$tudom);
} else {
@@ -2420,8 +2419,8 @@ sub storedata {
&log_parmset({$tkey=>''},1,$tuname,$tudom);
$r->print(' '.&mt('Deleted parameter for').' '.&Apache::loncommon::plainname($tuname,$tudom));
} else {
- $r->print(''.
- &mt('Error deleting parameters').' ');
+ $r->print(''.
+ &mt('Error deleting parameters').'
');
}
&Apache::lonnet::devalidateuserresdata($tuname,$tudom);
} else {
@@ -2438,8 +2437,8 @@ sub storedata {
&log_parmset({$tkey=>$data,$tkey.'.type' => $typeof},0,$tuname,$tudom);
$r->print(' '.&mt('Stored modified date for').' '.&Apache::loncommon::plainname($tuname,$tudom));
} else {
- $r->print(''.
- &mt('Error storing parameters').' ');
+ $r->print(''.
+ &mt('Error storing parameters').'
');
}
&Apache::lonnet::devalidateuserresdata($tuname,$tudom);
} else {
@@ -2460,8 +2459,8 @@ sub storedata {
&log_parmset(\%loghash,1);
$r->print(''.&mt('Deleted [_1] parameter(s) ',$delentries));
} else {
- $r->print(''.
- &mt('Error deleting parameters').' ');
+ $r->print(''.
+ &mt('Error deleting parameters').'
');
}
&Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
@@ -2470,8 +2469,8 @@ sub storedata {
&log_parmset(\%newdata,0);
$r->print(''.&mt('Stored [_1] parameter(s)',$putentries/2).' ');
} else {
- $r->print(''.
- &mt('Error storing parameters').' ');
+ $r->print(''.
+ &mt('Error storing parameters').'
');
}
&Apache::lonnet::devalidatecourseresdata($crs,$dom);
}
@@ -2546,12 +2545,12 @@ sub listdata {
}
$middle=~s/\.+$//;
$middle=~s/^\.+//;
- my $realm=''.&mt('All Resources').' ';
+ my $realm=''.&mt('All Resources').' ';
if ($middle=~/^(.+)\_\_\_\(all\)$/) {
- $realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' ('.$1.') ';
+ $realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' ('.$1.') ';
} elsif ($middle) {
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle);
- $realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).' ('.$url.' in '.$map.' id: '.$id.') ';
+ $realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).' ('.$url.' in '.$map.' id: '.$id.') ';
}
if ($sortorder eq 'realmstudent') {
if ($realm ne $oldrealm) {
@@ -2578,7 +2577,7 @@ sub listdata {
}
if ($part ne $oldpart) {
$r->print(&tableend().
- "\n".&mt('Part').": $part ");
+ "\n".&mt('Part').": $part ");
$oldpart=$part;
}
#
@@ -2653,7 +2652,7 @@ sub newoverview {
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
my $start_page = &Apache::loncommon::start_page('Set Parameters');
- my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Overview');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Overview');
$r->print(<print(<{'permission'});
$menu_html.='';
- $menu_html.='';
+ $menu_html.=' ';
+ $menu_html.= &mt($menu_item->{'text'}).'';
if (exists($menu_item->{'help'})) {
$menu_html.=
&Apache::loncommon::help_open_topic($menu_item->{'help'});
@@ -3097,8 +3096,7 @@ sub setrestrictmeta {
my $put_result;
$r->print(&Apache::loncommon::start_page('Restrict Metadata'));
- $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef,
- 'Restrict Metadata'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Restrict Metadata'));
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
my $key_base = $env{'course.'.$env{'request.course.id'}.'.'};
@@ -3155,7 +3153,7 @@ sub defaultsetter {
my $start_page =
&Apache::loncommon::start_page('Parameter Setting Default Actions');
- my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs(undef,'Defaults');
+ my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs('Defaults');
$r->print(<'.&mt('All Resources').'';
+ my $realm=''.&mt('All Resources').' ';
+ my $realmdescription=&mt('all resources');
if ($middle=~/^(.+)\_\_\_\(all\)$/) {
- $realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' ('.$1.') ';
- } elsif ($middle) {
+ $realm=''.&mt('Folder/Map').': '.&Apache::lonnet::gettitle($1).' ('.$1.') ';
+ $realmdescription=&mt('folder').' '.&Apache::lonnet::gettitle($1);
+ } elsif ($middle) {
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle);
- $realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).' ('.$url.' in '.$map.' id: '.$id.') ';
+ $realm=''.&mt('Resource').': '.&Apache::lonnet::gettitle($middle).' ('.$url.' in '.$map.' id: '.$id.') ';
+ $realmdescription=&mt('resource').' '.&Apache::lonnet::gettitle($middle);
}
my $what=$part.'.'.$name;
return ($realm,$section,$name,$part,$typeflag,
- $what,$middle,$uname,$udom,$issection);
+ $what,$middle,$uname,$udom,$issection,$realmdescription);
}
sub standard_parameter_names {
@@ -3347,9 +3348,18 @@ sub standard_parameter_names {
'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');
+ 'hinttries' => 'Number of Tries till Hints appear',
+ 'numbubbles' => 'Number of Bubbles in Exam Mode');
if ($standard_parms{$name}) {
return $standard_parms{$name};
} else {
@@ -3357,18 +3367,47 @@ sub standard_parameter_names {
}
}
+#
+# Parameter Change Log
+#
+
+
sub parm_change_log {
my ($r)=@_;
&startpage($r);
my %parmlog=&Apache::lonnet::dump('nohist_parameterlog',
$env{'course.'.$env{'request.course.id'}.'.domain'},
$env{'course.'.$env{'request.course.id'}.'.num'});
+
+ if ((keys(%parmlog))[0]=~/^error\:/) { undef(%parmlog); }
+
+ $r->print('');
$r->print(&Apache::loncommon::end_page());
}
@@ -3506,8 +3557,7 @@ sub handler {
} elsif (! exists($env{'form.action'})) {
$r->print(&header());
- $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef,
- 'Parameter Manager'));
+ $r->print(&Apache::lonhtmlcommon::breadcrumbs('Parameter Manager'));
&print_main_menu($r,$parm_permission);
} elsif ($env{'form.action'} eq 'crsenv' && $parm_permission) {
&Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=crsenv',