--- loncom/interface/lonpreferences.pm 2004/02/21 01:31:04 1.35 +++ loncom/interface/lonpreferences.pm 2004/05/11 10:42:41 1.42 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.35 2004/02/21 01:31:04 matthew Exp $ +# $Id: lonpreferences.pm,v 1.42 2004/05/11 10:42:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,18 +25,6 @@ # # http://www.lon-capa.org/ # -# (Internal Server Error Handler -# -# (Login Screen -# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14, -# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer) -# -# 3/1/1 Gerd Kortemeyer) -# -# 3/1 Gerd Kortemeyer -# -# 2/13/02 2/14 2/15 Matthew Hall -# # This package uses the "londes.js" javascript code. # # TODOs that have to be completed: @@ -63,7 +51,7 @@ use Apache::lonlocal; ################################################## sub des_keys { # Make a new key for DES encryption. - # Each key has two parts which are returned seperately. + # Each key has two parts which are returned separately. # Please note: Each key must be passed through the &hex function # before it is output to the web browser. The hex versions cannot # be used to decrypt. @@ -503,7 +491,7 @@ sub passwordchanger { $errormessage

- @@ -638,6 +626,63 @@ 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']); + my $discdisplay=$userenv{'discdisplay'}; + my $discchange = 'unread'; + my $alllong = &mt('all posts'); + my $unreadlong = &mt('only unread posts'); + my $discbutton = $unreadlong; + my $currdisc = $alllong; + if ($discdisplay eq 'unread') { + $discchange = 'allposts'; + $discbutton = $alllong; + $currdisc = $unreadlong; + } + $r->print(< + +
+ENDLSCREEN + $r->print( +&mt('You can set a display preference for discussion posts for both bulletin boards and individual resources in all your courses.').'
'. +&mt('This default preference can be overridden within each individual discussion.').'

'. +&mt('Your discussion post display preference is currently set to display').' '.$currdisc. +'.

' + ); +} + +sub verify_and_change_discussion { + my $r = shift; + my $user = $ENV{'user.name'}; + my $domain = $ENV{'user.domain'}; +# Discussion + my $discdisplay = $ENV{'form.discdisplay'}; + my $message=''; + if ($discdisplay eq 'unread') { + &Apache::lonnet::put('environment',{'discdisplay' => $discdisplay}); + &Apache::lonnet::appenv('environment.discdisplay' => $discdisplay); + $message='Discussions set to display only unread posts'; + } else { + &Apache::lonnet::del('environment',['discdisplay']); + &Apache::lonnet::delenv('environment\.discdisplay'); + $message='Discussions set to display all posts'; + } + $r->print(< +$message +ENDVCSCREEN +} + ###################################################### # other handler subroutines # ###################################################### @@ -668,7 +713,7 @@ sub handler { my $currentauth=&Apache::lonnet::queryauthenticate($user,$domain); if ($currentauth =~ /^(unix|internal):/) { push (@Options,({ action => 'changepass', - linktext => 'Change password', + linktext => 'Change Password', href => '/adm/preferences', help => 'Change_Password', subroutine => \&passwordchanger, @@ -721,7 +766,7 @@ sub handler { '/adm/'.$ENV{'user.domain'}.'/'.$ENV{'user.name'}.'/aboutme'; push (@Options,{ action => 'none', linktext => - q{Edit the 'About Me' personal information screen}, + q{Edit the 'About Me' Personal Information Screen}, href => $aboutmeaction}); push (@Options,({ action => 'changecolors', linktext => 'Change Color Scheme', @@ -740,7 +785,7 @@ sub handler { subroutine => \&verify_and_change_colors, })); push (@Options,({ action => 'changelanguages', - linktext => 'Change Language Prefences', + linktext => 'Change Language Preferences', href => '/adm/preferences', breadcrumb=> { href => '/adm/preferences?action=changelanguages', @@ -754,6 +799,22 @@ sub handler { printmenu => 'yes', subroutine=>\&verify_and_change_languages, } )); + push (@Options,({ action => 'changediscussions', + linktext => 'Change Discussion Display Preferences', + href => '/adm/preferences', + breadcrumb => + { href => '/adm/preferences?action=changediscussions', + text => 'Change Discussions'}, + subroutine => \&discussionchanger, + }, + { action => 'verify_and_change_discussion', + breadcrumb => + { href => '/adm/preferences?action=changediscussions', + text => 'Change Discussions'}, + printmenu => 'yes', + subroutine => \&verify_and_change_discussion, } + )); + if ($ENV{'user.name'} =~ /^(albertel|koretemey|korte|hallmat3|turtle)$/) { push (@Options,({ action => 'debugtoggle', printmenu => 'yes', @@ -770,7 +831,6 @@ ENDHEADER my $printmenu = 'yes'; foreach my $option (@Options) { if ($option->{'action'} eq $ENV{'form.action'}) { - &Apache::lonnet::logthis('got action '.$option->{'action'}); $call = $option->{'subroutine'}; $printmenu = $option->{'printmenu'}; if (exists($option->{'breadcrumb'})) { @@ -788,7 +848,7 @@ ENDHEADER if ($printmenu eq 'yes') { my $optionlist = ''; if ($ENV{'user.name'} =~ - /^(albertel|koretemey|korte|hallmat3|turtle)$/ + /^(albertel|kortemey|korte|hallmat3|turtle)$/ ) { push (@Options,({ action => 'debugtoggle', linktext => 'Toggle Debug Messages',