--- loncom/interface/lonpreferences.pm 2007/05/08 17:23:10 1.102 +++ loncom/interface/lonpreferences.pm 2008/01/20 22:38:06 1.112 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.102 2007/05/08 17:23:10 raeburn Exp $ +# $Id: lonpreferences.pm,v 1.112 2008/01/20 22:38:06 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -168,11 +168,11 @@ sub verify_and_change_languages { if ($newlanguage) { &Apache::lonnet::put('environment',{'languages' => $newlanguage}); &Apache::lonnet::appenv('environment.languages' => $newlanguage); - $message='Set new preferred languages to '.$newlanguage; + $message=&mt('Set new preferred languages to ').'"'.$newlanguage.'".'; } else { &Apache::lonnet::del('environment',['languages']); &Apache::lonnet::delenv('environment\.languages'); - $message='Reset preferred language'; + $message=&mt('Reset preferred language.'); } $r->print(< $newtexengine}); &Apache::lonnet::appenv('environment.texengine' => $newtexengine); - $message='Set new preferred math display to '.$newtexengine; + $message=&mt('Set new preferred math display to ').'"'.$newtexengine.'".'; } else { &Apache::lonnet::del('environment',['texengine']); &Apache::lonnet::delenv('environment\.texengine'); - $message='Reset preferred math display.'; + $message=&mt('Reset preferred math display.'); } @@ -467,14 +467,20 @@ sub screennamechanger { ('environment',['screenname','nickname']); my $screenname=$userenv{'screenname'}; my $nickname=$userenv{'nickname'}; + my %lt = &Apache::lonlocal::texthash( + text_screenname => 'New screenname (shown if you post anonymously):', + text_nickname => 'New nickname (shown if you post non-anonymously):', + text_submit => 'Change', + ); $r->print(< -
New screenname (shown if you post anonymously): +
$lt{'text_screenname'} -
New nickname (shown if you post non-anonymously): +
$lt{'text_nickname'} - +
+ ENDSCREEN } @@ -490,11 +496,11 @@ sub verify_and_change_screenname { if ($newscreen) { &Apache::lonnet::put('environment',{'screenname' => $newscreen}); &Apache::lonnet::appenv('environment.screenname' => $newscreen); - $message='Set new screenname to '.$newscreen; + $message=&mt('Set new screenname to ').'"'.$newscreen.'.".'; } else { &Apache::lonnet::del('environment',['screenname']); &Apache::lonnet::delenv('environment\.screenname'); - $message='Reset screenname'; + $message=&mt('Reset screenname.'); } # Nickname $message.='
'; @@ -503,11 +509,11 @@ sub verify_and_change_screenname { if ($newscreen) { &Apache::lonnet::put('environment',{'nickname' => $newscreen}); &Apache::lonnet::appenv('environment.nickname' => $newscreen); - $message.='Set new nickname to '.$newscreen; + $message.=&mt('Set new nickname to ').'"'.$newscreen.'".'; } else { &Apache::lonnet::del('environment',['nickname']); &Apache::lonnet::delenv('environment\.nickname'); - $message.='Reset nickname'; + $message.=&mt('Reset nickname.'); } &Apache::lonnet::devalidate_cache_new('namescache',$user.':'.$domain); $r->print(<print(< + + + + +ENDSCREEN +} + +sub verify_and_change_clicker { + my $r = shift; + my $user = $env{'user.name'}; + my $domain = $env{'user.domain'}; + my $newclickers = $env{'form.clickers'}; + $newclickers=~s/[^\w\:\-]+/\,/gs; + $newclickers=~tr/a-z/A-Z/; + $newclickers=~s/[\:\-]+/\-/g; + $newclickers=~s/\,+/\,/g; + $newclickers=~s/^\,//; + $newclickers=~s/\,$//; + &Apache::lonnet::put('environment',{'clickers' => $newclickers}); + &Apache::lonnet::appenv('environment.clickers' => $newclickers); + $r->print(&mt('Registering clickers: [_1]',$newclickers)); +} + +################################################################ # Message Forward # ################################################################ @@ -576,47 +624,75 @@ sub msgforwardchanger { crit => 'Critical only', reg => 'Non-critical only', foad => 'Forwarding Address(es)', - mnot => 'Message Notification Email Address(es)', + foad_exmpl => 'e.g. userA:domain1,userB:domain2,...', + mnot => 'Email Address(es) which should be notified about new LON-CAPA messages', # old: 'Message Notification Email Address(es)', + mnot_exmpl => 'e.g. joe@doe.com', chg => 'Change', - email => 'The e-mail address you entered', + email => 'The e-mail address entered in row ', notv => 'is not a valid e-mail address', - toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one', + toen => "To enter multiple addresses, enter one address at a time, click 'Change' and then add the next one", prme => 'Back to preferences menu', ); my $forwardingHelp = Apache::loncommon::help_open_topic("Prefs_Forwarding", - "What are forwarding ". - "and notification ". - "addresses"); + &mt("What are forwarding and notification addresses?")); my $criticalMessageHelp = Apache::loncommon::help_open_topic("Course_Critical_Message", - "What are critical messages"); + &mt("What are critical messages?")); my @allow_html = split(/,/,$userenv{'notifywithhtml'}); my %allnot = &get_notifications(\%userenv); my $validatescript = &Apache::lonhtmlcommon::javascript_valid_email(); my $jscript = qq| |; @@ -626,26 +702,36 @@ $message $forwardingHelp
-$lt{'foad'} (user:domain,user:domain,...): +$lt{'foad'} ($lt{'foad_exmpl'}):
$criticalMessageHelp -$lt{'mnot'} (joe\@doe.com):
+$lt{'mnot'} ($lt{'mnot_exmpl'}):
ENDMSG my @sortforwards = sort (keys(%allnot)); my $output = &Apache::loncommon::start_data_table(). &Apache::loncommon::start_data_table_header_row(). + ' '. ''.&mt('Action').''. ''.&mt('Notification address').''. - &mt('Messages to forward').''. - &mt('Excerpt retains HTML tags included in message').''. + &mt('Types of message for which notification is sent').''. + &mt('Excerpt retains HTML tags in message').''. &Apache::loncommon::end_data_table_header_row(); my $num = 0; + my $counter = 1; foreach my $item (@sortforwards) { $output .= &Apache::loncommon::start_data_table_row(). - ''. - &mt('Delete').''. + ''.$counter.''. + '   '. + ''. ''; + $num.'" onFocus="javascript:address_changes('."'$num'". + ')" />'; my %chk; if (defined($allnot{$item}{'crit'})) { if (defined($allnot{$item}{'reg'})) { @@ -659,7 +745,9 @@ ENDMSG foreach my $type ('all','crit','reg') { $output .= ' '; + '" value="'.$type.'" '.$chk{$type}. + ' onchange="javascript:address_changes('."'$num'".')" />'. + $lt{$type}.' '; } my $htmlon = ''; my $htmloff = ''; @@ -669,11 +757,16 @@ ENDMSG $htmloff = 'checked="checked" '; } $output .= ' '. + '" value="1" '.$htmlon. + ' onchange="javascript:address_changes('."'$num'".')" />'. + &mt('Yes').' '. ''. + $htmloff. ' onchange="javascript:address_changes('."'$num'". +')" />'. + &mt('No').''. &Apache::loncommon::end_data_table_row(); $num ++; + $counter ++; } my %defchk = ( all => 'checked="checked" ', @@ -681,10 +774,12 @@ ENDMSG reg => '', ); $output .= &Apache::loncommon::start_data_table_row(). - ''. - &mt('Add').''. + ''.$counter.''. + ''. ''; + '" onFocus="javascript:new_address('."'$num'".')" />'; foreach my $type ('all','crit','reg') { $output .= '',$caller,$mailtoken); return 1; } } if ($newpass1 ne $newpass2) { &passwordchanger($r, ''. - &mt('The new passwords you entered do not match').'. '. - &mt('Please try again').'.',$caller,$mailtoken); + &mt('The new passwords you entered do not match.').' '. + &mt('Please try again.').'',$caller,$mailtoken); return 1; } if (length($newpass1) < 7) { &passwordchanger($r, ''. - &mt('Passwords must be a minimum of 7 characters long').'. '. - &mt('Please try again').'.',$caller,$mailtoken); + &mt('Passwords must be a minimum of 7 characters long.').' '. + &mt('Please try again.').'',$caller,$mailtoken); return 1; } # @@ -1253,7 +1355,7 @@ ENDERROR if ($badpassword) { # I can't figure out how to enter bad characters on my browser. my $errormessage =''. - &mt('The password you entered contained illegal characters').'.
'. + &mt('The password you entered contained illegal characters.').'
'. &mt('Valid characters are').(<<"ENDERROR"); : space and
@@ -1274,7 +1376,7 @@ ENDERROR
     } else {
 	# error error: run in circles, scream and shout
         $r->print("

".&mt("The password for [_1] was not changed",$user)."

". - &mt('Please make sure your old password was entered correctly').'.'); + &mt('Please make sure your old password was entered correctly.')); return 1; } return; @@ -1394,11 +1496,11 @@ sub verify_and_change_discussion { if (defined($env{'form.discdisp'}) ) { my $newdisp = $env{'form.newdisp'}; if ($newdisp eq 'unread') { - $message .='In discussions: only new posts will be displayed.
'; + $message .=&mt('In discussions: only new posts will be displayed.').'
'; &Apache::lonnet::put('environment',{'discdisplay' => $newdisp}); &Apache::lonnet::appenv('environment.discdisplay' => $newdisp); } else { - $message .= 'In discussions: all posts will be displayed.
'; + $message .= &mt('In discussions: all posts will be displayed.').'
'; &Apache::lonnet::del('environment',['discdisplay']); &Apache::lonnet::delenv('environment\.discdisplay'); } @@ -1406,11 +1508,11 @@ sub verify_and_change_discussion { if (defined($env{'form.discmark'}) ) { my $newmark = $env{'form.newmark'}; if ($newmark eq 'ondisp') { - $message.='In discussions: new posts will be cease to be identified as "new" after display.
'; + $message.=&mt('In discussions: new posts will be cease to be identified as "NEW" after display.').'
'; &Apache::lonnet::put('environment',{'discmarkread' => $newmark}); &Apache::lonnet::appenv('environment.discmarkread' => $newmark); } else { - $message.='In discussions: posts will be identified as "new" until marked as read by the reader.
'; + $message.=&mt('In discussions: posts will be identified as "NEW" until marked as read by the reader.').'
'; &Apache::lonnet::del('environment',['discmarkread']); &Apache::lonnet::delenv('environment\.discmarkread'); } @@ -1709,6 +1811,23 @@ sub handler { printmenu => 'yes', })); + push (@Options,({ action => 'changeclicker', + linktext => 'Register Response Devices ("Clickers")', + href => '/adm/preferences', + subroutine => \&clickerchanger, + breadcrumb => + { href => '/adm/preferences?action=changeicons', + text => 'Register Clicker'}, + }, + { action => 'verify_and_change_clicker', + subroutine => \&verify_and_change_clicker, + breadcrumb => + { href => '/adm/preferences?action=changeclicker', + text => 'Register Clicker'}, + printmenu => 'yes', + })); + + if (&Apache::lonnet::allowed('whn',$env{'request.course.id'}) || &Apache::lonnet::allowed('whn',$env{'request.course.id'}.'/' .$env{'request.course.sec'})) {