--- loncom/interface/lonmodifycourse.pm 2006/11/14 20:38:21 1.28 +++ loncom/interface/lonmodifycourse.pm 2009/07/31 03:01:31 1.46 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # handler for DC-only modifiable course settings # -# $Id: lonmodifycourse.pm,v 1.28 2006/11/14 20:38:21 raeburn Exp $ +# $Id: lonmodifycourse.pm,v 1.46 2009/07/31 03:01:31 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -33,7 +33,7 @@ use Apache::lonnet; use Apache::loncommon; use Apache::lonhtmlcommon; use Apache::lonlocal; -use Apache::londropadd; +use Apache::lonuserutils; use Apache::lonpickcourse; use LONCAPA::Enrollment; use lib '/home/httpd/lib/perl'; @@ -43,6 +43,22 @@ sub get_dc_settable { return ('courseowner','coursecode','authtype','autharg'); } +sub catalog_settable { + my ($confhash) = @_; + my @settable; + if (ref($confhash) eq 'HASH') { + if ($confhash->{'togglecats'} ne 'crs') { + push(@settable,'togglecats'); + } + if ($confhash->{'categorize'} ne 'crs') { + push(@settable,'categorize'); + } + } else { + push(@settable,('togglecats','categorize')); + } + return @settable; +} + sub get_enrollment_settings { my ($cdom,$cnum) = @_; my %settings = &Apache::lonnet::dump('environment',$cdom,$cnum); @@ -67,7 +83,7 @@ sub get_enrollment_settings { } else { $enrollvar{$type} = localtime($settings{$item}); } - } elsif ($type eq "sectionums") { + } elsif ($type eq "sectionnums") { $enrollvar{$type} = $settings{$item}; $enrollvar{$type} =~ s/,/, /g; } elsif ($type eq "authtype" @@ -102,30 +118,34 @@ sub print_course_search_page { &print_header($r); my $filterlist = ['descriptfilter', 'instcodefilter','ownerfilter', - 'ownerdomfilter','coursefilter']; + 'coursefilter']; my $filter = {}; - my $type = 'Course'; + my ($numtitles,$type,$cctitle,$dctitle); + $type = $env{'form.type'}; + if (!defined($env{'form.type'})) { + $type = 'Course'; + } my $action = '/adm/modifycourse'; - my $cctitle = &Apache::lonnet::plaintext('cc',$type); - my $dctitle = &Apache::lonnet::plaintext('dc'); - my %lt=&Apache::lonlocal::texthash( - 'some' => "Certain settings which control auto-enrollment of students from your institution's student information system.", - 'crqo' => 'The total disk space allocated for storage of portfolio files in all groups in a course.', - 'tmod' => 'To view or modify these settings use the criteria below to select a course from this domain.', - ); - $r->print('
';
$menu_html.='';
@@ -186,6 +236,16 @@ sub print_modification_menu {
return;
}
+sub print_ccrole_selected {
+ my ($r,$cdesc,$domdesc) = @_;
+ &print_header($r);
+ my ($cdom,$cnum) = split(/_/,$env{'form.pickedcourse'});
+ $r->print('');
+}
+
sub print_settings_display {
my ($r,$cdom,$cnum,$cdesc,$type) = @_;
my %enrollvar = &get_enrollment_settings($cdom,$cnum);
@@ -200,7 +260,6 @@ sub print_settings_display {
'back' => "Back to options page",
);
- my @bgcolors = ('#eeeeee','#cccccc');
my $cctitle = &Apache::lonnet::plaintext('cc',$type);
my $dctitle = &Apache::lonnet::plaintext('dc');
my @modifiable_params = &get_dc_settable();
@@ -225,10 +284,16 @@ sub print_settings_display {
$disp_table .= &Apache::loncommon::end_data_table()."\n";
&print_header($r,$cdesc);
$r->print('
-
+'.$lt{'caes'}.'
-'.$lt{'caes'}.$cdesc.'
'.$lt{'cour'}.'
@@ -236,8 +301,8 @@ sub print_settings_display {
'.$lt{'back'}.' '.&mt('Modify [_1]-only settings',$dctitle).''."\n". -&hidden_form_elements(). -''); +&hidden_form_elements(). +'
'); } sub print_setquota { @@ -246,10 +311,10 @@ sub print_setquota { my $cctitle = &Apache::lonnet::plaintext('cc',$type); my $subdiv = &mt('Although a [_1] will assign the disk quota for each individual group, the size of the quota is constrained by the total disk space allocated by the [_2] for portfolio files in a course.',$cctitle,$dctitle); my %lt = &Apache::lonlocal::texthash( - 'cquo' => 'Disk space for storage of group portfolio files', + 'cquo' => 'Disk space for storage of group portfolio', 'gpqu' => 'Course portfolio files disk space', 'each' => 'Each course group can be assigned a quota for portfolio files uploaded to the group.', - 'modi' => 'Modify quota', + 'modi' => 'Save', 'back' => "Back to options page", ); my %settings = &Apache::lonnet::get('environment',['internal.coursequota'],$cdom,$cnum); @@ -276,6 +341,59 @@ ENDDOCUMENT return; } +sub print_catsettings { + my ($r,$cdom,$cnum,$cdesc) = @_; + &print_header($r,$cdesc); + my %lt = &Apache::lonlocal::texthash( + 'back' => 'Back to options page', + ); + $r->print(''."\n"); + return; +} + sub print_course_modification_page { my ($r,$cdom,$cnum,$cdesc,$domdesc) = @_; my %longtype = &course_settings_descrip(); @@ -290,7 +408,7 @@ sub print_course_modification_page { 'name' => "Name", 'unme' => "Username:Domain", 'stus' => "Status", - 'cquo' => "Disk space for storage of group portfolio files", + 'cquo' => "Disk space for storage of group portfolio", 'gpqu' => "Course portfolio files disk space", 'each' => "Each course group can be assigned a quota for portfolio files uploaded to the group.", 'cose' => "Course settings for LON-CAPA courses that control automated student enrollment based on classlist data available from your institution's student information system fall into two groups: (a) settings that can be modified by a Course Coordinator using the ", @@ -310,9 +428,8 @@ all settings except course code, course 'usrd' => 'Use the radio buttons to select a different course owner.', 'deam' => "Default Authentication method", 'deus' => "The default authentication method, and default authentication parameter (domain, initial password or argument) are used when automatic enrollment of students in a course requires addition of new user accounts in your domain, and the class list file contains empty entries for the <authtype> and <autharg> properties for the new student. If you choose 'internally authenticated', and leave the initial password field empty, the automated enrollment process will create a randomized password for each new student account that it adds to your LON-CAPA domain.", - 'gobt' => "Modify settings", + 'gobt' => "Save", ); - my @bgcolors = ('#eeeeee','#cccccc'); my @coursepersonnel = &Apache::lonnet::getkeys('nohist_userroles',$cdom,$cnum); my @local_ccs = (); @@ -365,19 +482,24 @@ all settings except course code, course } unless ($curr_authtype eq '') { $curr_authfield = $curr_authtype.'arg'; - } - my $javascript_validations=&Apache::londropadd::javascript_validations('modifycourse',$krbdefdom,$curr_authtype,$curr_authfield); - my %param = ( formname => 'document.cmod', + } + my $javascript_validations=&Apache::lonuserutils::javascript_validations('modifycourse',$krbdefdom,$curr_authtype,$curr_authfield); + my %param = ( formname => 'document.'.$env{'form.phase'}, kerb_def_dom => $krbdefdom, kerb_def_auth => $krbdef, mode => 'modifycourse', curr_authtype => $curr_authtype, curr_autharg => $enrollvar{'autharg'} ); - my $krbform = &Apache::loncommon::authform_kerberos(%param); - my $intform = &Apache::loncommon::authform_internal(%param); - my $locform = &Apache::loncommon::authform_local(%param); - + my (%authform,$authenitems); + $authform{'krb'} = &Apache::loncommon::authform_kerberos(%param); + $authform{'int'} = &Apache::loncommon::authform_internal(%param); + $authform{'loc'} = &Apache::loncommon::authform_local(%param); + foreach my $item ('krb','int','loc') { + if ($authform{$item} ne '') { + $authenitems .= $authform{$item}.'