[LON-CAPA-cvs] cvs: loncom /interface lonpreferences.pm
raeburn
lon-capa-cvs@mail.lon-capa.org
Tue, 25 May 2004 22:00:22 -0000
This is a MIME encoded message
--raeburn1085522422
Content-Type: text/plain
raeburn Tue May 25 18:00:22 2004 EDT
Modified files:
/loncom/interface lonpreferences.pm
Log:
Additional discussion display setting added - can now set when new posts stop being marked as new - either by intervention from user - mark as read - or automatically - on display. Can be overridden by user in a specific discussion.
--raeburn1085522422
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20040525180022.txt"
Index: loncom/interface/lonpreferences.pm
diff -u loncom/interface/lonpreferences.pm:1.42 loncom/interface/lonpreferences.pm:1.43
--- loncom/interface/lonpreferences.pm:1.42 Tue May 11 06:42:41 2004
+++ loncom/interface/lonpreferences.pm Tue May 25 18:00:21 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Preferences
#
-# $Id: lonpreferences.pm,v 1.42 2004/05/11 10:42:41 raeburn Exp $
+# $Id: lonpreferences.pm,v 1.43 2004/05/25 22:00:21 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -634,48 +634,134 @@
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;
+ ('environment',['discdisplay','discmarkread']);
+ my $discdisp = 'allposts';
+ my $discmark = 'onmark';
+
+ if (defined($userenv{'discdisplay'})) {
+ unless ($userenv{'discdisplay'} eq '') {
+ $discdisp = $userenv{'discdisplay'};
+ }
}
- $r->print(<<ENDLSCREEN);
+ 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");
<form name="server" action="/adm/preferences" method="post">
<input type="hidden" name="action" value="verify_and_change_discussion" />
<br />
-ENDLSCREEN
- $r->print(
-&mt('You can set a display preference for discussion posts for both bulletin boards and individual resources in all your courses.').'<br/>'.
-&mt('This default preference can be overridden within each individual discussion.').'<br/><br />'.
-&mt('Your discussion post display preference is currently set to display').' '.$currdisc.
-'.<br /><br /><input type="hidden" name="discdisplay" value="'.
-$discchange.'" /><input type="submit" value="'.
-&mt('Change to display').' '.$discbutton.'" /></form>'
- );
+$lt{'sdpf'}<br/> $lt{'prca'} <ol><li>$lt{'whpo'}</li><li>$lt{'unwh'}</li></ol>
+<br />
+<br />
+<table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td width="100%" bgcolor="#000000">
+ <table width="100%" border="0" cellpadding="1" cellspacing="0">
+ <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 {
my $r = shift;
- my $user = $ENV{'user.name'};
- my $domain = $ENV{'user.domain'};
-# Discussion
- my $discdisplay = $ENV{'form.discdisplay'};
+ my $user = $ENV{'user.name'};
+ my $domain = $ENV{'user.domain'};
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';
+ if (defined($ENV{'form.discdisp'}) ) {
+ my $newdisp = $ENV{'form.newdisp'};
+ if ($newdisp eq 'unread') {
+ $message .='In discussions: only new posts will be displayed.<br/>';
+ &Apache::lonnet::put('environment',{'discdisplay' => $newdisp});
+ &Apache::lonnet::appenv('environment.discdisplay' => $newdisp);
+ } else {
+ $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);
</p>
@@ -804,13 +890,13 @@
href => '/adm/preferences',
breadcrumb =>
{ href => '/adm/preferences?action=changediscussions',
- text => 'Change Discussions'},
+ text => 'Change Discussion Preferences'},
subroutine => \&discussionchanger,
},
{ action => 'verify_and_change_discussion',
breadcrumb =>
{ href => '/adm/preferences?action=changediscussions',
- text => 'Change Discussions'},
+ text => 'Change Discussion Preferences'},
printmenu => 'yes',
subroutine => \&verify_and_change_discussion, }
));
--raeburn1085522422--