--- loncom/interface/loncreateuser.pm 2008/06/23 14:13:50 1.244 +++ loncom/interface/loncreateuser.pm 2008/07/13 09:53:16 1.254 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Create a user # -# $Id: loncreateuser.pm,v 1.244 2008/06/23 14:13:50 bisitz Exp $ +# $Id: loncreateuser.pm,v 1.254 2008/07/13 09:53:16 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -1396,18 +1396,31 @@ sub modify_login_block { } sub personal_data_display { - my ($ccuname,$ccdomain,$newuser,$context,$inst_results) = @_; - my ($output,$showforceid,%userenv,%canmodify); + my ($ccuname,$ccdomain,$newuser,$context,$inst_results,$rolesarray) = @_; + my ($output,$showforceid,%userenv,%canmodify,@inststatuses); my @userinfo = ('firstname','middlename','lastname','generation', 'permanentemail','id'); + my $rowcount = 0; + my $editable = 0; + if ($context eq 'selfcreate') { + if (ref($inst_results) eq 'HASH') { + @inststatuses = &get_inststatuses($inst_results); + if (@inststatuses == 0) { + @inststatuses = ('default'); + } + $rolesarray = \@inststatuses; + } + } if (!$newuser) { # Get the users information %userenv = &Apache::lonnet::get('environment', ['firstname','middlename','lastname','generation', 'permanentemail','id'],$ccdomain,$ccuname); + } + if ((!$newuser) || ($context eq 'selfcreate')) { %canmodify = &Apache::lonuserutils::can_modify_userinfo($context,$ccdomain, - \@userinfo); + \@userinfo,$rolesarray); } my %lt=&Apache::lonlocal::texthash( 'pd' => "Personal Data", @@ -1432,40 +1445,78 @@ sub personal_data_display { &Apache::lonhtmlcommon::start_pick_box(); foreach my $item (@userinfo) { my $rowtitle = $lt{$item}; + my $hiderow = 0; if ($item eq 'generation') { $rowtitle = $genhelp.$rowtitle; } - $output .= &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; + my $row = &Apache::lonhtmlcommon::row_title($rowtitle,undef,'LC_oddrow_value')."\n"; if ($newuser) { if (ref($inst_results) eq 'HASH') { if ($inst_results->{$item} ne '') { - $output .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item}; + $row .= '<input type="hidden" name="c'.$item.'" value="'.$inst_results->{$item}.'" />'.$inst_results->{$item}; } else { - $output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + if ($context eq 'selfcreate') { + if ($canmodify{$item}) { + $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + $editable ++; + } else { + $hiderow = 1; + } + } else { + $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + } } } else { - $output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + if ($context eq 'selfcreate') { + if ($canmodify{$item}) { + $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + $editable ++; + } else { + $hiderow = 1; + } + } else { + $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="" />'; + } } } else { if ($canmodify{$item}) { - $output .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; + $row .= '<input type="text" name="c'.$item.'" size="'.$textboxsize{$item}.'" value="'.$userenv{$item}.'" />'; } else { - $output .= $userenv{$item}; + $row .= $userenv{$item}; } if ($item eq 'id') { $showforceid = $canmodify{$item}; } } - $output .= &Apache::lonhtmlcommon::row_closure(1); + $row .= &Apache::lonhtmlcommon::row_closure(1); + if (!$hiderow) { + $output .= $row; + $rowcount ++; + } } $output .= &Apache::lonhtmlcommon::end_pick_box(); if (wantarray) { - return ($output,$showforceid); + if ($context eq 'selfcreate') { + return($output,$rowcount,$editable); + } else { + return ($output,$showforceid); + } } else { return $output; } } +sub get_inststatuses { + my ($insthashref) = @_; + my @inststatuses = (); + if (ref($insthashref) eq 'HASH') { + if (ref($insthashref->{'inststatus'}) eq 'ARRAY') { + @inststatuses = @{$insthashref->{'inststatus'}}; + } + } + return @inststatuses; +} + # ================================================================= Phase Three sub update_user_data { my ($r,$context) = @_; @@ -2069,7 +2120,10 @@ END if ($env{'form.popup'}) { $r->print('<p><a href="javascript:window.close()">'.&mt('Close window').'</a></p>'); } else { - $r->print('<p><a href="javascript:backPage(document.userupdate,'."'$env{'form.prevphase'}','modify'".')">'.&mt('Modify this user: <span class="LC_cusr_emph">([_1])</span>',$userinfo).'</a>'.(' 'x5).'<a href="javascript:backPage(document.userupdate)">'.&mt('Create/Modify Another User').'</a></p>'); + $r->print('<p><a href="javascript:backPage(document.userupdate,'."'$env{'form.prevphase'}','modify'".')">' + .&mt('Modify this user: [_1]','<span class="LC_cusr_emph">'.$env{'form.ccuname'}.':'.$env{'form.ccdomain'}.' ('.$userinfo.')</span>').'</a>' + .(' 'x5).'<a href="javascript:backPage(document.userupdate)">' + .&mt('Create/Modify Another User').'</a></p>'); } } $r->print(&Apache::loncommon::end_page()); @@ -3127,12 +3181,12 @@ sub print_main_menu { help => 'Course_User_Logs', action => 'changelogs', permission => $permission->{'cusr'}, - }, - { text => 'View Log-in History', - help => 'Course_User_Logins', - action => 'logins', - permission => $permission->{'cusr'}, - }); + },); +# { text => 'View Log-in History', +# help => 'Course_User_Logins', +# action => 'logins', +# permission => $permission->{'cusr'}, +# }); push(@menu,@courselinks); } my $menu_html = ''; @@ -3175,8 +3229,179 @@ sub print_selfenroll_menu { my $groupslist = &Apache::lonuserutils::get_groupslist(); my $setsec_js = &Apache::lonuserutils::setsections_javascript($formname,$groupslist); + my %alerts = &Apache::lonlocal::texthash( + acto => 'Activation of self-enrollment was selected for the following domain(s)', + butn => 'but no user types have been checked.', + wilf => "Please uncheck 'activate' or check at least one type.", + ); + my $selfenroll_js = <<"ENDSCRIPT"; +function update_types(caller,num) { + var delidx = getIndexByName('selfenroll_delete'); + var actidx = getIndexByName('selfenroll_activate'); + if (caller == 'selfenroll_all') { + var selall; + for (var i=0; i<document.$formname.selfenroll_all.length; i++) { + if (document.$formname.selfenroll_all[i].checked) { + selall = document.$formname.selfenroll_all[i].value; + } + } + if (selall == 1) { + if (delidx != -1) { + if (document.$formname.selfenroll_delete.length) { + for (var j=0; j<document.$formname.selfenroll_delete.length; j++) { + document.$formname.selfenroll_delete[j].checked = true; + } + } else { + document.$formname.elements[delidx].checked = true; + } + } + if (actidx != -1) { + if (document.$formname.selfenroll_activate.length) { + for (var j=0; j<document.$formname.selfenroll_activate.length; j++) { + document.$formname.selfenroll_activate[j].checked = false; + } + } else { + document.$formname.elements[actidx].checked = false; + } + } + document.$formname.selfenroll_newdom.selectedIndex = 0; + } + } + if (caller == 'selfenroll_activate') { + if (document.$formname.selfenroll_activate.length) { + for (var j=0; j<document.$formname.selfenroll_activate.length; j++) { + if (document.$formname.selfenroll_activate[j].value == num) { + if (document.$formname.selfenroll_activate[j].checked) { + for (var i=0; i<document.$formname.selfenroll_all.length; i++) { + if (document.$formname.selfenroll_all[i].value == '1') { + document.$formname.selfenroll_all[i].checked = false; + } + if (document.$formname.selfenroll_all[i].value == '0') { + document.$formname.selfenroll_all[i].checked = true; + } + } + } + } + } + } else { + for (var i=0; i<document.$formname.selfenroll_all.length; i++) { + if (document.$formname.selfenroll_all[i].value == '1') { + document.$formname.selfenroll_all[i].checked = false; + } + if (document.$formname.selfenroll_all[i].value == '0') { + document.$formname.selfenroll_all[i].checked = true; + } + } + } + } + if (caller == 'selfenroll_delete') { + if (document.$formname.selfenroll_delete.length) { + for (var j=0; j<document.$formname.selfenroll_delete.length; j++) { + if (document.$formname.selfenroll_delete[j].value == num) { + if (document.$formname.selfenroll_delete[j].checked) { + var delindex = getIndexByName('selfenroll_types_'+num); + if (delindex != -1) { + if (document.$formname.elements[delindex].length) { + for (var k=0; k<document.$formname.elements[delindex].length; k++) { + document.$formname.elements[delindex][k].checked = false; + } + } else { + document.$formname.elements[delindex].checked = false; + } + } + } + } + } + } else { + if (document.$formname.selfenroll_delete.checked) { + var delindex = getIndexByName('selfenroll_types_'+num); + if (delindex != -1) { + if (document.$formname.elements[delindex].length) { + for (var k=0; k<document.$formname.elements[delindex].length; k++) { + document.$formname.elements[delindex][k].checked = false; + } + } else { + document.$formname.elements[delindex].checked = false; + } + } + } + } + } + return; +} + +function validate_types(form) { + var needaction = new Array(); + var countfail = 0; + var actidx = getIndexByName('selfenroll_activate'); + if (actidx != -1) { + if (document.$formname.selfenroll_activate.length) { + for (var j=0; j<document.$formname.selfenroll_activate.length; j++) { + var num = document.$formname.selfenroll_activate[j].value; + if (document.$formname.selfenroll_activate[j].checked) { + countfail = check_types(num,countfail,needaction) + } + } + } else { + if (document.$formname.selfenroll_activate.checked) { + var num = document.enrollstudent.selfenroll_activate.value; + countfail = check_types(num,countfail,needaction) + } + } + } + if (countfail > 0) { + var msg = "$alerts{'acto'}\\n"; + var loopend = needaction.length -1; + if (loopend > 0) { + for (var m=0; m<loopend; m++) { + msg += needaction[m]+", "; + } + } + msg += needaction[loopend]+"\\n$alerts{'butn'}\\n$alerts{'wilf'}"; + alert(msg); + return; + } + setSections(form); +} + +function check_types(num,countfail,needaction) { + var typeidx = getIndexByName('selfenroll_types_'+num); + var count = 0; + if (typeidx != -1) { + if (document.$formname.elements[typeidx].length) { + for (var k=0; k<document.$formname.elements[typeidx].length; k++) { + if (document.$formname.elements[typeidx][k].checked) { + count ++; + } + } + } else { + if (document.$formname.elements[typeidx].checked) { + count ++; + } + } + if (count == 0) { + var domidx = getIndexByName('selfenroll_dom_'+num); + if (domidx != -1) { + var domname = document.$formname.elements[domidx].value; + needaction[countfail] = domname; + countfail ++; + } + } + } + return countfail; +} + +function getIndexByName(item) { + for (var i=0;i<document.$formname.elements.length;i++) { + if (document.$formname.elements[i].name == item) { + return i; + } + } + return -1; +} +ENDSCRIPT my $output = '<script type="text/javascript">'."\n". - $setsec_js."\n". + $setsec_js."\n".$selfenroll_js."\n". '</script>'."\n". '<h3>'.$lt->{'selfenroll'}.'</h3>'."\n". '<form name="'.$formname.'" method="post" action="/adm/createuser">'."\n". @@ -3205,14 +3430,20 @@ sub print_selfenroll_menu { if ($curr_types eq '*') { $output .= ' checked="checked" '; } - $output .= '/>'.&mt('Yes').'</label> <input type="radio" name="selfenroll_all" value="0" '; + $output .= 'onchange="javascript:update_types('. + "'selfenroll_all'".');" />'.&mt('Yes').'</label>'. + ' <input type="radio" name="selfenroll_all" value="0" '; if ($curr_types ne '*') { $output .= ' checked="checked" '; } - $output .= '/>'.&mt('No').'</label></td>' - .&Apache::loncommon::end_data_table_row(); + $output .= ' onchange="javascript:update_types('. + "'selfenroll_all'".');"/>'.&mt('No').'</label></td>'. + &Apache::loncommon::end_data_table_row(). + &Apache::loncommon::end_data_table(). + &mt('Or').'<br />'. + &Apache::loncommon::start_data_table(); my %currdoms; - if (($curr_types eq '') && ($env{'form.selfenroll_newdom'} eq '')) { + if ($curr_types eq '') { $output .= &new_selfenroll_dom_row($cdom,'0'); } elsif ($curr_types ne '*') { my @entries = split(/;/,$curr_types); @@ -3221,33 +3452,27 @@ sub print_selfenroll_menu { my ($currdom,$typestr) = split(/:/,$entry); $currdoms{$currdom} = 1; my $domdesc = &Apache::lonnet::domain($currdom); - my @currinsttypes = split(/,/,$typestr); + my @currinsttypes = split(',',$typestr); $output .= &Apache::loncommon::start_data_table_row() .'<td valign="top"><span class="LC_nobreak">'.&mt('Domain:').'<b>' .' '.$domdesc.' ('.$currdom.')' .'</b><input type="hidden" name="selfenroll_dom_'.$num .'" value="'.$currdom.'" /></span><br />' .'<span class="LC_nobreak"><label><input type="checkbox" ' - .'name="selfenroll_delete" value="'.$num.'" />' + .'name="selfenroll_delete" value="'.$num.'" onchange="javascript:update_types('."'selfenroll_delete','$num'".');" />' .&mt('Delete').'</label></span></td>'; - $output .= '<td valign="top">'.&mt('User types:').'<br />' + $output .= '<td valign="top"> '.&mt('User types:').'<br />' .&selfenroll_inst_types($num,$currdom,\@currinsttypes).'</td>' .&Apache::loncommon::end_data_table_row(); $num ++; } } } - if ($env{'form.selfenroll_newdom'} ne '') { - if (!defined($currdoms{$env{'form.selfenroll_newdom'}})) { - $output .= &new_selfenroll_dom_row($env{'form.selfenroll_newdom'},$num); - $num ++; - } - } - my $add_domtitle = &mt('Additional domain:'); + my $add_domtitle = &mt('Users in additional domain:'); if ($curr_types eq '*') { - $add_domtitle = &mt('Specific domain:'); + $add_domtitle = &mt('Users in specific domain:'); } elsif ($curr_types eq '') { - $add_domtitle = &mt('Other domain:'); + $add_domtitle = &mt('Users in other domain:'); } $output .= &Apache::loncommon::start_data_table_row() .'<td colspan="2"><span class="LC_nobreak">'.$add_domtitle.'</span><br />' @@ -3266,9 +3491,9 @@ sub print_selfenroll_menu { $regoff = ' checked="checked" '; } $output .= '<label>'. - '<input type="radio" name="registered" value="1"'.$regon.'/>'. + '<input type="radio" name="selfenroll_registered" value="1"'.$regon.'/>'. &mt('Yes').'</label> <label>'. - '<input type="radio" name="registered" value="0"'.$regoff.'/>'. + '<input type="radio" name="selfenroll_registered" value="0"'.$regoff.'/>'. &mt('No').'</label>'; } elsif ($item eq 'enroll_dates') { my $starttime = $env{'course.'.$env{'request.course.id'}.'.internal.selfenroll_start_date'}; @@ -3328,7 +3553,7 @@ sub print_selfenroll_menu { } $output .= &Apache::lonhtmlcommon::end_pick_box(). '<br /><input type="button" name="selfenrollconf" value="' - .&mt('Save changes').'" onclick="setSections(this.form);" />' + .&mt('Save changes').'" onclick="validate_types(this.form);" />' .'<input type="hidden" name="action" value="selfenroll" /></form>'; $r->print($output); return; @@ -3342,7 +3567,12 @@ sub new_selfenroll_dom_row { $output .= &Apache::loncommon::start_data_table_row() .'<td valign="top"><span class="LC_nobreak">'.&mt('Domain:').' <b>'.$domdesc .' ('.$newdom.')</b><input type="hidden" name="selfenroll_dom_'.$num - .'" value="'.$newdom.'" /></span></td>'; + .'" value="'.$newdom.'" /></span><br />' + .'<span class="LC_nobreak"><label><input type="checkbox" ' + .'name="selfenroll_activate" value="'.$num.'" ' + .'onchange="javascript:update_types(' + ."'selfenroll_activate','$num'".');" />' + .&mt('Activate').'</label></span></td>'; my @currinsttypes; $output .= '<td>'.&mt('User types:').'<br />' .&selfenroll_inst_types($num,$newdom,\@currinsttypes).'</td>' @@ -3357,7 +3587,11 @@ sub selfenroll_inst_types { my $numinrow = 4; my $count = 0; my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($currdom); + my $othervalue = 'any'; if ((ref($types) eq 'ARRAY') && (ref($usertypes) eq 'HASH')) { + if (keys(%{$usertypes}) > 0) { + $othervalue = 'other'; + } $output .= '<table><tr>'; foreach my $type (@{$types}) { if (($count > 0) && ($count%$numinrow == 0)) { @@ -3368,9 +3602,13 @@ sub selfenroll_inst_types { $type.'" '; if (ref($currinsttypes) eq 'ARRAY') { if (@{$currinsttypes} > 0) { - if (grep(/^\Q$type\E$/,@{$currinsttypes})) { + if (grep(/^any$/,@{$currinsttypes})) { + $output .= 'checked="checked"'; + } elsif (grep(/^\Q$type\E$/,@{$currinsttypes})) { $output .= 'checked="checked"'; } + } else { + $output .= 'checked="checked"'; } } $output .= ' name="selfenroll_types_'.$num.'" />'.$usertypes->{$type}.'</label></span></td>'; @@ -3380,13 +3618,21 @@ sub selfenroll_inst_types { if (($count > 0) && ($count%$numinrow == 0)) { $output .= '</tr><tr>'; } - $output .= '<td><span class="LC_nobreak"><label><input type = "checkbox" value="other" '; + $output .= '<td><span class="LC_nobreak"><label><input type = "checkbox" value="'.$othervalue.'"'; if (ref($currinsttypes) eq 'ARRAY') { if (@{$currinsttypes} > 0) { - if (grep(/^other$/,@{$currinsttypes})) { - $output .= 'checked="checked" '; + if (grep(/^any$/,@{$currinsttypes})) { + $output .= ' checked="checked"'; + } elsif ($othervalue eq 'other') { + if (grep(/^\Q$othervalue\E$/,@{$currinsttypes})) { + $output .= ' checked="checked"'; + } } + } else { + $output .= ' checked="checked"'; } + } else { + $output .= ' checked="checked"'; } $output .= ' name="selfenroll_types_'.$num.'" />'.$othertitle.'</label></span></td></tr></table>'; } @@ -3449,8 +3695,9 @@ sub print_userchangelogs_display { $curr{$key} = $defaults{$key}; } } - my (%whodunit,%changed); - $r->print(&role_display_filter($formname,$cdom,$cnum,\%curr)); + my (%whodunit,%changed,$version); + ($version) = ($r->dir_config('lonVersion') =~ /^([\d\.]+)\-/); + $r->print(&role_display_filter($formname,$cdom,$cnum,\%curr,$version)); my $showntablehdr = 0; my $tablehdr = &Apache::loncommon::start_data_table(). &Apache::loncommon::start_data_table_header_row(). @@ -3567,7 +3814,7 @@ ENDSCRIPT } sub role_display_filter { - my ($formname,$cdom,$cnum,$curr) = @_; + my ($formname,$cdom,$cnum,$curr,$version) = @_; my $context = 'course'; my $nolink = 1; my $output = '<table><tr><td valign="top">'. @@ -3618,9 +3865,14 @@ sub role_display_filter { next if (!&Apache::lonnet::auto_run($cnum,$cdom)); } $output .= '<option value="'.$chgtype.'"'.$selstr.'>'.$lt{$chgtype}.'</option>'."\n"; - } + } $output .= '</select></td><td> </td><td valign="middle"><input type="submit" value="'. - &mt('Update Display').'" /></tr></table><hr noshade><br />'; + &mt('Update Display').'" /></tr></table>'. + '<span class="LC_roleslog_note">'. + &mt('[_1]Note:[_2] Only changes made from servers running LON-CAPA 2.6.99.0 or later are displayed.'); + if ($version) { + $output .= ' '.&mt('This server is version [_3].','<b>','</b>',$version); } + $output .= '</span><hr noshade><br />'; return $output; } @@ -4302,26 +4554,57 @@ sub update_selfenroll_config { } else { next; } - } elsif ($curr_types eq '') { - my @types = &Apache::loncommon::get_env_multiple('form.selfenroll_types_0'); - if (@types > 0) { - $changes{'internal.selfenroll_types'} = $env{'form.selfenroll_dom_0'}.':'.join(',',@types); - } } else { + my %currdoms; my @entries = split(/;/,$curr_types); - my $num = 0; - my @latesttypes; my @deletedoms = &Apache::loncommon::get_env_multiple('form.selfenroll_delete'); + my @activations = &Apache::loncommon::get_env_multiple('form.selfenroll_activate'); my $newnum = 0; - for (my $j=0; $j<$env{'form.selfenroll_types_total'}; $j++) { - if (!grep(/^$j$/,@deletedoms)) { - my @types = &Apache::loncommon::get_env_multiple('form.selfenroll_types_'.$j); + my @latesttypes; + foreach my $num (@activations) { + my @types = &Apache::loncommon::get_env_multiple('form.selfenroll_types_'.$num); + if (@types > 0) { @types = sort(@types); my $typestr = join(',',@types); - $latesttypes[$newnum] = $env{'form.selfenroll_dom_'.$j}.':'.$typestr; + my $typedom = $env{'form.selfenroll_dom_'.$num}; + $latesttypes[$newnum] = $typedom.':'.$typestr; + $currdoms{$typedom} = 1; $newnum ++; } } + for (my $j=0; $j<$env{'form.selfenroll_types_total'}; $j++) { if ((!grep(/^$j$/,@deletedoms)) && (!grep(/^$j$/,@activations))) { + my @types = &Apache::loncommon::get_env_multiple('form.selfenroll_types_'.$j); + if (@types > 0) { + @types = sort(@types); + my $typestr = join(',',@types); + my $typedom = $env{'form.selfenroll_dom_'.$j}; + $latesttypes[$newnum] = $typedom.':'.$typestr; + $currdoms{$typedom} = 1; + $newnum ++; + } + } + } + if ($env{'form.selfenroll_newdom'} ne '') { + my $typedom = $env{'form.selfenroll_newdom'}; + if ((!defined($currdoms{$typedom})) && + (&Apache::lonnet::domain($typedom) ne '')) { + my $typestr; + my ($othertitle,$usertypes,$types) = + &Apache::loncommon::sorted_inst_types($typedom); + my $othervalue = 'any'; + if ((ref($types) eq 'ARRAY') && (ref($usertypes) eq 'HASH')) { + if (@{$types} > 0) { + $othervalue = 'other'; + $typestr = join(',',(@{$types},$othervalue)); + } + $typestr = $othervalue; + } else { + $typestr = $othervalue; + } + $latesttypes[$newnum] = $typedom.':'.$typestr; + $newnum ++ ; + } + } my $selfenroll_types = join(';',@latesttypes); if ($selfenroll_types ne $curr_types) { $changes{'internal.selfenroll_types'} = $selfenroll_types; @@ -4408,6 +4691,12 @@ sub update_selfenroll_config { } elsif ($newval eq '*') { $newval = &mt('Any user in any domain'); } + } elsif ($item eq 'registered') { + if ($newval eq '1') { + $newval = &mt('Yes'); + } elsif ($newval eq '0') { + $newval = &mt('No'); + } } $r->print('<li>'.&mt('"[_1]" set to "[_2]".',$title,$newval).'</li>'."\n"); } @@ -4423,13 +4712,10 @@ sub update_selfenroll_config { $r->print(&mt('An error occurred when saving changes to self-enrollment settings in this course.').'<br />'.&mt('The error was: [_1].',$putresult)); } } else { - $r->print(&mt('No changes were needed to the existing self-enrollment settings in this course.')); + $r->print(&mt('No changes were made to the existing self-enrollment settings in this course.')); } } else { - $r->print(&mt('No changes were needed to the existing self-enrollment settings in this course.')); - } - if ($env{'form.selfenroll_newdom'} ne '') { - &print_selfenroll_menu($r,$context,$permission); + $r->print(&mt('No changes were made to the existing self-enrollment settings in this course.')); } return; } @@ -4438,7 +4724,7 @@ sub get_selfenroll_titles { my @row = ('types','registered','enroll_dates','access_dates','section'); my %lt = &Apache::lonlocal::texthash ( types => 'Users allowed to self-enroll in this course', - registered => 'Restrict self-enrollment to registered students', + registered => 'Restrict self-enrollment to students officially registered for the course', enroll_dates => 'Dates self-enrollment available', access_dates => 'Course access dates for self-enrolled users', section => 'Section assigned to self-enrolled users',