--- loncom/interface/lonpreferences.pm 2004/03/26 20:29:35 1.41 +++ loncom/interface/lonpreferences.pm 2004/11/02 00:17:24 1.49 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.41 2004/03/26 20:29:35 www Exp $ +# $Id: lonpreferences.pm,v 1.49 2004/11/02 00:17:24 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -92,6 +92,41 @@ sub des_decrypt { ################################################################ # Language Change Subroutines # ################################################################ + +sub wysiwygchanger { + my $r = shift; + my %userenv = &Apache::lonnet::get + ('environment',['wysiwygeditor']); + my $offselect=''; + my $onselect='checked="1"'; + if ($userenv{'wysiwygeditor'}) { + $onselect=''; + $offselect='checked="1"'; + } + my $switchoff=&mt('Disable WYSIWYG editor'); + my $switchon=&mt('Enable WYSIWYG editor'); + $r->print(< + +
+ $switchoff
+ $switchon +ENDLSCREEN + $r->print('
'); +} + + +sub verify_and_change_wysiwyg { + my $r = shift; + my $newsetting=$ENV{'form.wysiwyg'}; + &Apache::lonnet::put('environment',{'wysiwygeditor' => $newsetting}); + &Apache::lonnet::appenv('environment.wysiwygeditor' => $newsetting); + $r->print('

'.&mt('Setting WYSIWYG editor to:').' '.&mt($newsetting).'

'); +} + +################################################################ +# Language Change Subroutines # +################################################################ sub languagechanger { my $r = shift; my $user = $ENV{'user.name'}; @@ -626,6 +661,149 @@ ENDERROR return; } +################################################################ +# discussion display subroutines +################################################################ +sub discussionchanger { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my %userenv = &Apache::lonnet::get + ('environment',['discdisplay','discmarkread']); + my $discdisp = 'allposts'; + my $discmark = 'onmark'; + + if (defined($userenv{'discdisplay'})) { + unless ($userenv{'discdisplay'} eq '') { + $discdisp = $userenv{'discdisplay'}; + } + } + if (defined($userenv{'discmarkread'})) { + unless ($userenv{'discdisplay'} eq '') { + $discmark = $userenv{'discmarkread'}; + } + } + + my $newdisp = 'unread'; + my $newmark = 'ondisp'; + + my $function = &Apache::loncommon::get_users_function(); + my $color = &Apache::loncommon::designparm($function.'.tabbg', + $ENV{'user.domain'}); + my %lt = &Apache::lonlocal::texthash( + 'pref' => 'Display Preference', + 'curr' => 'Current setting ', + 'actn' => 'Action', + 'sdpf' => 'Set display preferences for discussion posts for both bulletin boards and individual resources in all your courses.', + 'prca' => 'Preferences can be set that determine', + 'whpo' => 'Which posts are displayed when you display a bulletin board or resource, and', + 'unwh' => 'Under what circumstances posts are identfied as "New"', + 'allposts' => 'All posts', + 'unread' => 'New posts only', + 'ondisp' => 'Once displayed', + 'onmark' => 'Once marked as read', + 'disa' => 'Posts displayed?', + 'npmr' => 'New posts cease to be identified as "New"?', + 'thde' => 'The preferences you set here can be overridden within each individual discussion.', + 'chgt' => 'Change to ' + ); + my $dispchange = $lt{'unread'}; + my $markchange = $lt{'ondisp'}; + my $currdisp = $lt{'allposts'}; + my $currmark = $lt{'onmark'}; + + if ($discdisp eq 'unread') { + $dispchange = $lt{'allposts'}; + $currdisp = $lt{'unread'}; + $newdisp = 'allposts'; + } + + if ($discmark eq 'ondisp') { + $markchange = $lt{'onmark'}; + $currmark = $lt{'ondisp'}; + $newmark = 'onmark'; + } + + $r->print(<<"END"); +
+ +
+$lt{'sdpf'}
$lt{'prca'}
  1. $lt{'whpo'}
  2. $lt{'unwh'}
+
+
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + +
$lt{'pref'}$lt{'curr'}$lt{'actn'}?
$lt{'disa'}$lt{$discdisp} $lt{'chgt'} "$dispchange"
$lt{'npmr'}$lt{$discmark} $lt{'chgt'} "$markchange"
+
+
+
+
+ +
+
+Note: $lt{'thde'} +
+END +} + +sub verify_and_change_discussion { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; + my $message=''; + if (defined($ENV{'form.discdisp'}) ) { + my $newdisp = $ENV{'form.newdisp'}; + if ($newdisp eq 'unread') { + $message .='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.
'; + &Apache::lonnet::del('environment',['discdisplay']); + &Apache::lonnet::delenv('environment\.discdisplay'); + } + } + 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.
'; + &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.
'; + &Apache::lonnet::del('environment',['discmarkread']); + &Apache::lonnet::delenv('environment\.discmarkread'); + } + } + $r->print(< +$message +ENDVCSCREEN +} + ###################################################### # other handler subroutines # ###################################################### @@ -644,7 +822,7 @@ sub handler { return OK if $r->header_only; # &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, - ['action']); + ['action','wysiwyg','returnurl']); # &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb @@ -690,8 +868,7 @@ sub handler { })); push (@Options,({ action => 'changemsgforward', - linktext => 'Change Message Forwarding', - text => 'and Notification Addresses', + linktext => 'Change Message Forwarding and Notification Addresses', href => '/adm/preferences', help => 'Prefs_Forwarding', breadcrumb => @@ -710,6 +887,7 @@ sub handler { push (@Options,{ action => 'none', linktext => q{Edit the 'About Me' Personal Information Screen}, + help => 'Prefs_About_Me', href => $aboutmeaction}); push (@Options,({ action => 'changecolors', linktext => 'Change Color Scheme', @@ -730,6 +908,7 @@ sub handler { push (@Options,({ action => 'changelanguages', linktext => 'Change Language Preferences', href => '/adm/preferences', + help => 'Prefs_Language', breadcrumb=> { href => '/adm/preferences?action=changelanguages', text => 'Change Language'}, @@ -742,6 +921,38 @@ sub handler { printmenu => 'yes', subroutine=>\&verify_and_change_languages, } )); + push (@Options,({ action => 'changewysiwyg', + linktext => 'Change WYSIWYG Editor Preferences', + href => '/adm/preferences', + breadcrumb => + { href => '/adm/preferences?action=changewysiwyg', + text => 'Change WYSIWYG Preferences'}, + subroutine => \&wysiwygchanger, + }, + { action => 'set_wysiwyg', + breadcrumb => + { href => '/adm/preferences?action=changewysiwyg', + text => 'Change WYSIWYG Preferences'}, + printmenu => 'yes', + subroutine => \&verify_and_change_wysiwyg, } + )); + push (@Options,({ action => 'changediscussions', + linktext => 'Change Discussion Display Preferences', + href => '/adm/preferences', + help => 'Change_Discussion_Display', + breadcrumb => + { href => '/adm/preferences?action=changediscussions', + text => 'Change Discussion Preferences'}, + subroutine => \&discussionchanger, + }, + { action => 'verify_and_change_discussion', + breadcrumb => + { href => '/adm/preferences?action=changediscussions', + text => 'Change Discussion Preferences'}, + printmenu => 'yes', + subroutine => \&verify_and_change_discussion, } + )); + if ($ENV{'user.name'} =~ /^(albertel|koretemey|korte|hallmat3|turtle)$/) { push (@Options,({ action => 'debugtoggle', printmenu => 'yes', @@ -755,6 +966,7 @@ sub handler { ENDHEADER my $call = undef; + my $help = undef; my $printmenu = 'yes'; foreach my $option (@Options) { if ($option->{'action'} eq $ENV{'form.action'}) { @@ -764,15 +976,16 @@ ENDHEADER &Apache::lonhtmlcommon::add_breadcrumb ($option->{'breadcrumb'}); } + $help=$option->{'help'}; } } $r->print(&Apache::loncommon::bodytag('Change Preferences')); $r->print(&Apache::lonhtmlcommon::breadcrumbs - (undef,'Change Preferences')); + (undef,'Change Preferences',$help)); if (defined($call)) { $call->($r); } - if ($printmenu eq 'yes') { + if (($printmenu eq 'yes') && (!$ENV{'form.returnurl'})) { my $optionlist = ''; if ($ENV{'user.name'} =~ /^(albertel|kortemey|korte|hallmat3|turtle)$/ @@ -792,10 +1005,10 @@ ENDHEADER $optiontext .= ''. - $option->{'linktext'}.''; + &mt($option->{'linktext'}).''; } if (exists($option->{'text'})) { - $optiontext .= ' '.$option->{'text'}; + $optiontext .= ' '.&mt($option->{'text'}); } if ($optiontext ne '') { $optiontext = ''.$optiontext.''; @@ -812,6 +1025,9 @@ ENDHEADER } $optionlist .= '
'; $r->print($optionlist); + } elsif ($ENV{'form.returnurl'}) { + $r->print('
'. + &mt('Return').''); } $r->print(<