--- loncom/interface/lonpreferences.pm 2004/03/16 20:18:01 1.38 +++ loncom/interface/lonpreferences.pm 2004/05/25 22:00:21 1.43 @@ -1,7 +1,7 @@ # The LearningOnline Network # Preferences # -# $Id: lonpreferences.pm,v 1.38 2004/03/16 20:18:01 albertel Exp $ +# $Id: lonpreferences.pm,v 1.43 2004/05/25 22:00:21 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -25,8 +25,6 @@ # # http://www.lon-capa.org/ # -# 2/13/02 2/14 2/15 Matthew Hall -# # This package uses the "londes.js" javascript code. # # TODOs that have to be completed: @@ -628,6 +626,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"); +
+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.