--- loncom/interface/lonuserutils.pm 2008/04/30 23:16:19 1.52 +++ loncom/interface/lonuserutils.pm 2008/05/19 17:10:19 1.55 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Utility functions for managing LON-CAPA user accounts # -# $Id: lonuserutils.pm,v 1.52 2008/04/30 23:16:19 raeburn Exp $ +# $Id: lonuserutils.pm,v 1.55 2008/05/19 17:10:19 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -925,8 +925,15 @@ sub setup_date_selectors { sub get_dates_from_form { - my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate'); - my $enddate = &Apache::lonhtmlcommon::get_date_from_form('enddate'); + my ($startname,$endname) = @_; + if ($startname eq '') { + $startname = 'startdate'; + } + if ($endname eq '') { + $endname = 'enddate'; + } + my $startdate = &Apache::lonhtmlcommon::get_date_from_form($startname); + my $enddate = &Apache::lonhtmlcommon::get_date_from_form($endname); if ($env{'form.no_end_date'}) { $enddate = 0; } @@ -1252,34 +1259,11 @@ sub print_userlist { if ($env{'form.showrole'} eq 'Any') { $roleselected = ' selected="selected" '; } - my ($role_select,$cnum,$cdom); - if ($context eq 'domain') { - $role_select = &domain_roles_select(); - $r->print(''); - } else { - $role_select = ''; - $r->print(''); - if ($context eq 'course') { - ($cnum,$cdom) = &get_course_identity(); - $r->print(§ion_group_filter($cnum,$cdom)); - } + my ($cnum,$cdom); + $r->print(&role_filter($context)); + if ($context eq 'course') { + ($cnum,$cdom) = &get_course_identity(); + $r->print(§ion_group_filter($cnum,$cdom)); } if (!(($context eq 'domain') && ($env{'form.roletype'} eq 'course'))) { $r->print(' '.&list_submit_button(&mt('Update Display')). @@ -1451,6 +1435,41 @@ sub print_userlist { $env{'form.phase'}.'" />'); } +sub role_filter { + my ($context) = @_; + my $output; + my $roleselected = ''; + if ($env{'form.showrole'} eq 'Any') { + $roleselected = ' selected="selected" '; + } + my ($role_select); + if ($context eq 'domain') { + $role_select = &domain_roles_select(); + $output = ''; + } else { + $role_select = ''; + $output = ''; + } + return $output; +} + sub section_group_filter { my ($cnum,$cdom) = @_; my @filters; @@ -1844,7 +1863,10 @@ sub process_date_info { } sub show_users_list { - my ($r,$context,$mode,$permission,$statusmode,$userlist,$keylist)=@_; + my ($r,$context,$mode,$permission,$statusmode,$userlist,$keylist,$formname)=@_; + if ($formname eq '') { + $formname = 'studentform'; + } # # Variables for excel output my ($excel_workbook, $excel_sheet, $excel_filename,$row,$format); @@ -1859,6 +1881,9 @@ sub show_users_list { } else { push(@sortable,'extent'); } + if ($mode eq 'pickauthor') { + @sortable = ('username','fullname','email','status'); + } if (!grep(/^\Q$sortby\E$/,@sortable)) { $sortby = 'username'; } @@ -1899,7 +1924,7 @@ function photowindow(photolink) { END } } - if ($mode ne 'autoenroll') { + if ($mode ne 'autoenroll' && $mode ne 'pickauthor') { my $check_uncheck_js = &Apache::loncommon::check_uncheck_jscript(); my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox"); my $singconfirm = &mt(' for a single user?'); @@ -1941,8 +1966,8 @@ function verify_action (field) { alert("$alert"); } else { - var message = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].text; - var choice = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].value; + var message = document.$formname.bulkaction[document.$formname.bulkaction.selectedIndex].text; + var choice = document.$formname.bulkaction[document.$formname.bulkaction.selectedIndex].value; if (numchecked == 1) { message += singconf; } @@ -1951,14 +1976,14 @@ function verify_action (field) { } if (choice == 'chgdates' || choice == 'reenable' || choice == 'activate') { var datemsg = ''; - if ((document.studentform.startdate_month.value == '') && - (document.studentform.startdate_day.value == '') && - (document.studentform.startdate_year.value == '')) { + if ((document.$formname.startdate_month.value == '') && + (document.$formname.startdate_day.value == '') && + (document.$formname.startdate_year.value == '')) { datemsg = "\\n$lt{'acwi'},\\n$lt{'asyo'}.\\n"; } - if ((document.studentform.enddate_month.value == '') && - (document.studentform.enddate_day.value == '') && - (document.studentform.enddate_year.value == '')) { + if ((document.$formname.enddate_month.value == '') && + (document.$formname.enddate_day.value == '') && + (document.$formname.enddate_year.value == '')) { datemsg += "\\n$lt{'accw'},\\n$lt{'asyd'}.\\n"; } if (datemsg != '') { @@ -1966,9 +1991,9 @@ function verify_action (field) { } } if (choice == 'chgsec') { - var rolefilter = document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value; - var retained = document.studentform.retainsec.value; - var secshow = document.studentform.newsecs.value; + var rolefilter = document.$formname.showrole.options[document.$formname.showrole.selectedIndex].value; + var retained = document.$formname.retainsec.value; + var secshow = document.$formname.newsecs.value; if (secshow == '') { if (rolefilter == 'st' || retained == 0 || retained == "") { message += "\\n\\n$lt{'sewi'},\\n$lt{'ayes'},\\n$lt{'oryo'}.\\n"; @@ -1984,36 +2009,36 @@ function verify_action (field) { } } if (confirm(message)) { - document.studentform.phase.value = 'bulkchange'; - document.studentform.submit(); + document.$formname.phase.value = 'bulkchange'; + document.$formname.submit(); } } } function username_display_launch(username,domain) { var target; - for (var i=0; iprint(''.$results_description.'
'); } my ($output,$actionselect,%canchange,%canchangesec); - if ($mode eq 'html' || $mode eq 'view' || $mode eq 'autoenroll') { - if ($mode ne 'autoenroll') { + if ($mode eq 'html' || $mode eq 'view' || $mode eq 'autoenroll' || $mode eq 'pickauthor') { + if ($mode ne 'autoenroll' && $mode ne 'pickauthor') { if ($permission->{'cusr'}) { - $actionselect = &select_actions($context,$setting,$statusmode); + $actionselect = &select_actions($context,$setting,$statusmode,$formname); } $r->print(< @@ -2136,9 +2166,9 @@ END $output .= '    '.$lt{'owin'}.'
'; if ($actionselect) { $output .= <<"END"; -$lt{'ac'}: $actionselect

-

  -

+$lt{'ac'}: $actionselect

+

  +

END my @allroles; if ($env{'form.showrole'} eq 'Any') { @@ -2186,16 +2216,20 @@ END &Apache::loncommon::start_data_table_header_row(); if ($mode eq 'autoenroll') { $output .= " - $lt{'type'} + $lt{'type'} "; } else { - $output .= "\n".''.&mt('Count').''."\n"; + if ($mode eq 'pickauthor') { + $output .= "\n".' '."\n"; + } else { + $output .= "\n".''.&mt('Count').''."\n"; + } if ($actionselect) { $output .= ''.&mt('Select').''."\n"; } } foreach my $item (@cols) { - $output .= "$lt{$item}\n"; + $output .= "$lt{$item}\n"; } my %role_types = &role_type_names(); if ($context eq 'course' && $mode ne 'autoenroll') { @@ -2210,8 +2244,8 @@ END $clickerchg = 'off'; } $output .= ' '."\n".' '. - ''. + ''. $clicker_options{$clickerchg}.' '.$lt{'clicker'}."\n". ' '."\n"; @@ -2226,8 +2260,8 @@ END $photochg = 'off'; } $output .= ' '."\n".' '. - ''. + ''. $photo_options{$photochg}.' '.$lt{'photo'}."\n". ' '."\n"; } @@ -2426,7 +2460,7 @@ END } else { $in{'end'} = &Apache::lonlocal::locallocaltime($in{'end'}); } - if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') { + if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll' || $mode eq 'pickauthor') { $r->print(&Apache::loncommon::start_data_table_row()); my $checkval; if ($mode eq 'autoenroll') { @@ -2448,7 +2482,9 @@ END } $r->print("$cellentry\n"); } else { - $r->print("$rowcount\n"); + if ($mode ne 'pickauthor') { + $r->print("$rowcount\n"); + } if ($actionselect) { my $showcheckbox; if ($role =~ /^cr\//) { @@ -2482,6 +2518,8 @@ END } else { $r->print(' '); } + } elsif ($mode eq 'pickauthor') { + $r->print(''); } } foreach my $item (@cols) { @@ -2549,7 +2587,7 @@ END $row++; } } - if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') { + if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll' || $mode eq 'pickauthor') { $r->print(&Apache::loncommon::end_data_table().'
'); } elsif ($mode eq 'excel') { $excel_workbook->close(); @@ -2592,7 +2630,7 @@ sub role_type_names { } sub select_actions { - my ($context,$setting,$statusmode) = @_; + my ($context,$setting,$statusmode,$formname) = @_; my %lt = &Apache::lonlocal::texthash( revoke => "Revoke user roles", delete => "Delete user roles", @@ -2653,7 +2691,7 @@ sub select_actions { } } if ($options) { - $output = ''."\n". ''."\n".$options."\n".''; if ($choices{'dates'}) {