version 1.42, 2004/05/11 10:42:41
|
version 1.43, 2004/05/25 22:00:21
|
Line 634 sub discussionchanger {
|
Line 634 sub discussionchanger {
|
my $user = $ENV{'user.name'}; |
my $user = $ENV{'user.name'}; |
my $domain = $ENV{'user.domain'}; |
my $domain = $ENV{'user.domain'}; |
my %userenv = &Apache::lonnet::get |
my %userenv = &Apache::lonnet::get |
('environment',['discdisplay']); |
('environment',['discdisplay','discmarkread']); |
my $discdisplay=$userenv{'discdisplay'}; |
my $discdisp = 'allposts'; |
my $discchange = 'unread'; |
my $discmark = 'onmark'; |
my $alllong = &mt('all posts'); |
|
my $unreadlong = &mt('only unread posts'); |
if (defined($userenv{'discdisplay'})) { |
my $discbutton = $unreadlong; |
unless ($userenv{'discdisplay'} eq '') { |
my $currdisc = $alllong; |
$discdisp = $userenv{'discdisplay'}; |
if ($discdisplay eq 'unread') { |
} |
$discchange = 'allposts'; |
} |
$discbutton = $alllong; |
if (defined($userenv{'discmarkread'})) { |
$currdisc = $unreadlong; |
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'; |
} |
} |
$r->print(<<ENDLSCREEN); |
|
|
if ($discmark eq 'ondisp') { |
|
$markchange = $lt{'onmark'}; |
|
$currmark = $lt{'ondisp'}; |
|
$newmark = 'onmark'; |
|
} |
|
|
|
$r->print(<<"END"); |
<form name="server" action="/adm/preferences" method="post"> |
<form name="server" action="/adm/preferences" method="post"> |
<input type="hidden" name="action" value="verify_and_change_discussion" /> |
<input type="hidden" name="action" value="verify_and_change_discussion" /> |
<br /> |
<br /> |
ENDLSCREEN |
$lt{'sdpf'}<br/> $lt{'prca'} <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol> |
$r->print( |
<br /> |
&mt('You can set a display preference for discussion posts for both bulletin boards and individual resources in all your courses.').'<br/>'. |
<br /> |
&mt('This default preference can be overridden within each individual discussion.').'<br/><br />'. |
<table border="0" cellpadding="0" cellspacing="0"> |
&mt('Your discussion post display preference is currently set to display').' '.$currdisc. |
<tr> |
'.<br /><br /><input type="hidden" name="discdisplay" value="'. |
<td width="100%" bgcolor="#000000"> |
$discchange.'" /><input type="submit" value="'. |
<table width="100%" border="0" cellpadding="1" cellspacing="0"> |
&mt('Change to display').' '.$discbutton.'" /></form>' |
<tr> |
); |
<td width="100%" bgcolor="#000000"> |
|
<table border="0" cellpadding="3" cellspacing="3" bgcolor="#FFFFFF"> |
|
<tr bgcolor="$color"> |
|
<td><b>$lt{'pref'}</b></td> |
|
<td><b>$lt{'curr'}</b></td> |
|
<td><b>$lt{'actn'}?</b></td> |
|
</tr> |
|
<tr bgcolor="#dddddd"> |
|
<td>$lt{'disa'}</td> |
|
<td>$lt{$discdisp}</td> |
|
<td><input type="checkbox" name="discdisp" /><input type="hidden" name="newdisp" value="$newdisp" /> $lt{'chgt'} "$dispchange"</td> |
|
</tr><tr bgcolor="#eeeeee"> |
|
<td>$lt{'npmr'}</td> |
|
<td>$lt{$discmark}</td> |
|
<td><input type="checkbox" name="discmark" /><input type="hidden" name="newmark" value="$newmark" /> $lt{'chgt'} "$markchange"</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
</tr> |
|
</table> |
|
<br /> |
|
<br /> |
|
<input type="submit" name="sub" value="Store Changes" /> |
|
<br /> |
|
<br /> |
|
Note: $lt{'thde'} |
|
</form> |
|
END |
} |
} |
|
|
sub verify_and_change_discussion { |
sub verify_and_change_discussion { |
my $r = shift; |
my $r = shift; |
my $user = $ENV{'user.name'}; |
my $user = $ENV{'user.name'}; |
my $domain = $ENV{'user.domain'}; |
my $domain = $ENV{'user.domain'}; |
# Discussion |
|
my $discdisplay = $ENV{'form.discdisplay'}; |
|
my $message=''; |
my $message=''; |
if ($discdisplay eq 'unread') { |
if (defined($ENV{'form.discdisp'}) ) { |
&Apache::lonnet::put('environment',{'discdisplay' => $discdisplay}); |
my $newdisp = $ENV{'form.newdisp'}; |
&Apache::lonnet::appenv('environment.discdisplay' => $discdisplay); |
if ($newdisp eq 'unread') { |
$message='Discussions set to display only unread posts'; |
$message .='In discussions: only new posts will be displayed.<br/>'; |
} else { |
&Apache::lonnet::put('environment',{'discdisplay' => $newdisp}); |
&Apache::lonnet::del('environment',['discdisplay']); |
&Apache::lonnet::appenv('environment.discdisplay' => $newdisp); |
&Apache::lonnet::delenv('environment\.discdisplay'); |
} else { |
$message='Discussions set to display all posts'; |
$message .= 'In discussions: all posts will be displayed.<br/>'; |
|
&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.<br/>'; |
|
&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.<br/>'; |
|
&Apache::lonnet::del('environment',['discmarkread']); |
|
&Apache::lonnet::delenv('environment\.discmarkread'); |
|
} |
} |
} |
$r->print(<<ENDVCSCREEN); |
$r->print(<<ENDVCSCREEN); |
</p> |
</p> |
Line 804 sub handler {
|
Line 890 sub handler {
|
href => '/adm/preferences', |
href => '/adm/preferences', |
breadcrumb => |
breadcrumb => |
{ href => '/adm/preferences?action=changediscussions', |
{ href => '/adm/preferences?action=changediscussions', |
text => 'Change Discussions'}, |
text => 'Change Discussion Preferences'}, |
subroutine => \&discussionchanger, |
subroutine => \&discussionchanger, |
}, |
}, |
{ action => 'verify_and_change_discussion', |
{ action => 'verify_and_change_discussion', |
breadcrumb => |
breadcrumb => |
{ href => '/adm/preferences?action=changediscussions', |
{ href => '/adm/preferences?action=changediscussions', |
text => 'Change Discussions'}, |
text => 'Change Discussion Preferences'}, |
printmenu => 'yes', |
printmenu => 'yes', |
subroutine => \&verify_and_change_discussion, } |
subroutine => \&verify_and_change_discussion, } |
)); |
)); |