--- loncom/interface/courseprefs.pm 2010/12/24 17:51:16 1.28.2.7 +++ loncom/interface/courseprefs.pm 2011/01/15 01:33:04 1.43 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Handler to set configuration settings for a course # -# $Id: courseprefs.pm,v 1.28.2.7 2010/12/24 17:51:16 raeburn Exp $ +# $Id: courseprefs.pm,v 1.43 2011/01/15 01:33:04 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -215,6 +215,7 @@ use Apache::lonnet; use Apache::loncommon(); use Apache::lonhtmlcommon(); use Apache::lonconfigsettings; +use Apache::lonparmset; use Apache::lonlocal; use LONCAPA qw(:DEFAULT :match); @@ -267,8 +268,8 @@ sub handler { my %lt; if ($crstype eq 'Community') { %lt = ( - conf => 'Community Configuration', - edit => 'Edit Community Configuration', + conf => 'Community Settings', + edit => 'Edit Community Settings', gens => 'General community settings', idnu => 'Community ID or number', desc => 'Community Description', @@ -286,7 +287,7 @@ sub handler { defd => 'Default dates for member access', stuv => 'Member-viewable membership list options', stul => 'Member agreement needed to be listed', - clas => 'Membership and Facilitator Listing', + clas => 'Membership and facilitator listing', priv => 'Privileged users (Domain Coordinators) in facilitator listing', defc => 'Default Community Spreadsheet', defs => 'Default User Spreadsheet', @@ -294,8 +295,8 @@ sub handler { ); } else { %lt = ( - conf => 'Course Configuration', - edit => 'Edit Course Configuration', + conf => 'Course Settings', + edit => 'Edit Course Settings', gens => 'General course settings', idnu => 'Course ID or number', desc => 'Course Description', @@ -313,7 +314,7 @@ sub handler { defd => 'Default dates for student access', stuv => 'Student-viewable classlist options', stul => 'Student agreement needed to be listed', - clas => 'Classlists and Staff Listing', + clas => 'Classlists and staff listing', priv => 'Privileged users (Domain Coordinators) in staff listing', defc => 'Default Course Spreadsheet', defs => 'Default Student Spreadsheet', @@ -338,7 +339,7 @@ sub handler { if ($phase eq 'releaseinfo') { my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; - if ($loncaparev) { + if ($loncaparev) { &display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype); return OK; } @@ -353,8 +354,6 @@ sub handler { 'courseinfo' => { text => $lt{'gens'}, help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['owner','co-owners','loncaparev','description', 'courseid','categories','hidefromcat', 'externalsyllabus','cloners','url','rolenames'], @@ -373,10 +372,8 @@ sub handler { }, }, 'localization' => - { text => 'Language and Time Localization', + { text => 'Language and time localization', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['languages','timezone','datelocale'], itemtext => { languages => 'Languages used', @@ -388,9 +385,7 @@ sub handler { { text => 'Feedback messages', help => 'Course_Environment', header => [{col1 => 'Questions about:', - col2 => 'Recipients'}, - {col1 => 'Questions about:', - col2 => 'Custom Text'}], + col2 => 'Recipients'}], ordered => ['question.email','comment.email','policy.email'], itemtext => { 'question.email' => 'Resource Content', @@ -439,8 +434,6 @@ sub handler { 'appearance' => { text => 'Display of resources ', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['default_xml_style','pageseparators', 'disable_receipt_display','texengine', 'tthoptions'], @@ -455,8 +448,6 @@ sub handler { 'grading' => { text => 'Grading', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['grading','rndseed', 'receiptalg','disablesigfigs'], itemtext => { @@ -470,8 +461,6 @@ sub handler { 'printouts' => { text => 'Printout generation', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value',}], ordered => ['problem_stream_switch','suppress_tries', 'default_paper_size','print_header_format', 'disableexampointprint','canuse_pdfforms'], @@ -487,8 +476,6 @@ sub handler { 'spreadsheet' => { text => 'Spreadsheets', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['spreadsheet_default_classcalc', 'spreadsheet_default_studentcalc', 'spreadsheet_default_assesscalc','hideemptyrows'], @@ -502,8 +489,6 @@ sub handler { 'bridgetasks' => { text => 'Bridge tasks', help => 'Course_Environment', - header => [{col1 => 'Setting', - col2 => 'Value'}], ordered => ['task_messages','task_grading', 'suppress_embed_prompt'], itemtext => { @@ -559,17 +544,12 @@ sub print_config_box { my $itemtext = $item->{'itemtext'}; my $rowtotal = 0; my $output = - '
'. - &mt($item->{text}).' '. - &Apache::loncommon::help_open_topic($item->{'help'}).' | '."\n". - '|||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-
|
-
|
'; +'; return ($output,$rowtotal); } @@ -1717,6 +1685,7 @@ sub print_courseinfo { '', input => 'textbox', size => '40', + advanced => 1 }, 'description' => { text => ''.&mt($itemtext->{'description'}).'', @@ -1739,13 +1708,14 @@ sub print_courseinfo { text => ''.&mt($itemtext->{'cloners'}).' '. &mt('Owner and Coordinators included automatically'), input => 'textbox', - size => '40', + size => '40' }, 'rolenames' => { text => ''.&mt($itemtext->{'rolenames'}).' '. '('.$replace.')', input => 'textbox', size => '20', + advanced => 1 }, 'externalsyllabus' => { text => ''.&mt($itemtext->{'externalsyllabus'}).' ('. @@ -1777,7 +1747,11 @@ sub print_courseinfo { next if (!$can_categorize); } $count ++; - $datatable .= &item_table_row_start($items{$item}{text},$count); + if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) { + $datatable .= &item_table_row_start($items{$item}{text},$count,"advanced"); + } else { + $datatable .= &item_table_row_start($items{$item}{text},$count); + } if ($items{$item}{input} eq 'radio') { $datatable .= &yesno_radio($item,$settings); } elsif ($item eq 'cloners') { @@ -2094,6 +2068,11 @@ sub display_loncaparev_constraints { my $cdom = $env{'course.'.$cid.'.domain'}; my $cnum = $env{'course.'.$cid.'.num'}; my $output; + my %lt = &Apache::lonlocal::texthash ( + 'all' => 'all', + 'section/group' => 'section/group', + 'user' => 'user', + ); my (%checkparms,%checkresponsetypes,%checkcrstypes,%anonsurvey,%randomizetry); &Apache::loncommon::build_release_hashes(\%checkparms,\%checkresponsetypes, \%checkcrstypes,\%anonsurvey,\%randomizetry); @@ -2103,7 +2082,7 @@ sub display_loncaparev_constraints { } my (%fromparam,%rowspan,%bymap,%byresource,@scopeorder,%toshow,%allmaps, %byresponsetype,%bysubmission); - @scopeorder = ('course','section/group','user'); + @scopeorder = ('all','section/group','user'); my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); if (ref($resourcedata) eq 'HASH') { foreach my $key (keys(%{$resourcedata})) { @@ -2121,18 +2100,18 @@ sub display_loncaparev_constraints { if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { $middle = $1; $which = $2; - $scope = 'user'; + $scope = 'user'; } elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { $middle = $1; $which = $2; $scope = 'section/group'; } else { - $scope = 'course'; + $scope = 'all'; } my $what="$stdname=$valname"; if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { $level = 'general'; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { push(@{$fromparam{$rev}{$scope}},$what); @@ -2153,7 +2132,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { $level = 'folder'; $map = $1; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { push(@{$bymap{$map}{$rev}{$scope}},$what); @@ -2173,7 +2152,7 @@ sub display_loncaparev_constraints { } elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { $level = 'resource'; $resource = $1; - if ($scope eq 'course') { + if ($scope eq 'all') { if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { push(@{$byresource{$resource}{$rev}{$scope}},$what); @@ -2212,7 +2191,7 @@ sub display_loncaparev_constraints { if ($newrow) { $output .= &Apache::loncommon::continue_data_table_row(); } - $output .= ' '.$scope.' | ';
+ $output .= ''.$lt{$scope}.' | ';
foreach my $which (sort(keys(%{$fromparam{$rev}{$scope}}))) {
$output .= ''.$which.' | '.
join(' | ';
@@ -2223,7 +2202,7 @@ sub display_loncaparev_constraints {
if ($newrow) {
$output .= &Apache::loncommon::continue_data_table_row();
}
- $output .= '',@{$fromparam{$rev}{$scope}{$which}}).' '.$scope.' | | '.
+ $output .= ' | '.$lt{$scope}.' | | '.
join(' | '.
&Apache::loncommon::end_data_table_row();
$newrow = 1;
@@ -2316,7 +2295,7 @@ sub display_loncaparev_constraints {
my $mapres_header = '',@{$fromparam{$rev}{$scope}}).' '. &mt('Requirements for specific folders or resources'). ''; - if ((keys(%toshow) > 0) || (keys(%byresource) > 0) || + if ((keys(%toshow) > 0) || (keys(%byresource) > 0) || (keys(%bysubmission) > 0) || (keys(%byresponsetype))) { $output .= $mapres_header; } @@ -2329,21 +2308,22 @@ sub display_loncaparev_constraints { $r->print($output); if (defined($navmap)) { &show_contents_view($r,$navmap,$cid,\%toshow,\%bymap,\%byresource,\%bysubmission, - \%byresponsetype,\@scopeorder); + \%byresponsetype,\@scopeorder,\%lt); } - $r->print(''); + $r->print(' '); } else { $r->print(' '. &mt('No version requirements from resource content or settings.'). - ' '); + ''); } $r->print(&Apache::loncommon::end_page()); return; } sub show_contents_view { - my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype,$scopeorder) = @_; - if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || + my ($r,$navmap,$cid,$toshow,$bymap,$byresource,$bysubmission,$byresponsetype, + $scopeorder,$lt) = @_; + if ((keys(%{$toshow}) > 0) || (keys(%{$byresource}) > 0) || (keys(%{$bysubmission}) > 0) || (keys(%{$byresponsetype}) > 0)) { my $location=&Apache::loncommon::lonhttpdurl("/adm/lonIcons"); my $whitespace = '![]() '.$icon.' '.&mt('Main Course Documents').' | ');
- &releases_by_map($r,$bymap,$topmap,$scopeorder);
+ &releases_by_map($r,$bymap,$topmap,$scopeorder,$lt);
$r->print(&Apache::loncommon::end_data_table_row());
my $it=$navmap->getIterator(undef,undef,undef,1,1,undef);
my $curRes;
@@ -2424,7 +2404,7 @@ sub show_contents_view {
$r->print('
|