[LON-CAPA-cvs] cvs: loncom(version_1_2_X) /interface lonfeedback.pm lonnavmaps.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 07 Oct 2004 19:55:52 -0000
albertel Thu Oct 7 15:55:52 2004 EDT
Modified files: (Branch: version_1_2_X)
/loncom/interface lonnavmaps.pm lonfeedback.pm
Log:
backport changes from lonnavmaps 1.297 and 1.299, and lonfeedbak 1.127 and 1.128
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.267.2.7 loncom/interface/lonnavmaps.pm:1.267.2.8
--- loncom/interface/lonnavmaps.pm:1.267.2.7 Tue Sep 21 15:28:34 2004
+++ loncom/interface/lonnavmaps.pm Thu Oct 7 15:55:52 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.267.2.7 2004/09/21 19:28:34 albertel Exp $
+# $Id: lonnavmaps.pm,v 1.267.2.8 2004/10/07 19:55:52 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -1373,37 +1373,16 @@
}
# Check for any unread discussions in all resources.
- if (0 && !$args->{'resource_no_folder_link'}) {
- my $totdisc = 0;
- my $haveDisc = '';
- my @allres=$navmap->retrieveResources();
- foreach my $resource (@allres) {
- if ($resource->hasDiscussion()) {
- my $ressymb;
- if ($resource->symb() =~ m-(___adm/\w+/\w+)/(\d+)/bulletinboard$-) {
- $ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard';
- } else {
- $ressymb = $resource->symb();
- }
- $haveDisc .= $ressymb.':';
- $totdisc ++;
- }
- }
- if ($totdisc > 0) {
- $haveDisc =~ s/:$//;
- my %lt = &Apache::lonlocal::texthash(
- 'mapr' => 'Mark all posts read',
- );
- $result .= (<<END);
- <a href="javascript:document.clearbubbles.submit()">$lt{'mapr'}</a> <a href="javascript:void(open('/adm/help/NavMaps_MarkPosts_Read.hlp', 'Help_for_NavMaps_MarkPosts', 'menubar=0,toolbar=1,scrollbars=1,width=350,height=400,resizable=yes'))" title="Online Help"><image src="/adm/help/gif/smallHelp.gif" border="0" alt="(Help: NavMaps_MarkPostsLink)" /></a>
+ if (!$args->{'resource_no_folder_link'}) {
+ my $time=time;
+ my $mapr = &mt('Mark all posts read');
+ $result .= (<<END);
+ <a href="javascript:document.clearbubbles.submit()">$mapr</a> <a href="javascript:void(open('/adm/help/NavMaps_MarkPosts_Read.hlp', 'Help_for_NavMaps_MarkPosts', 'menubar=0,toolbar=1,scrollbars=1,width=350,height=400,resizable=yes'))" title="Online Help"><image src="/adm/help/gif/smallHelp.gif" border="0" alt="(Help: NavMaps_MarkPostsLink)" /></a>
<form name="clearbubbles" method="post" action="/adm/feedback">
<input type="hidden" name="navurl" value="$ENV{'QUERY_STRING'}" />
- <input type="hidden" name="navmaps" value="$haveDisc" />
+ <input type="hidden" name="navtime" value="$time" />
</form>
END
- } else {
- $result .= '<br />';
- }
}
$result .= "<br />\n";
if ($r) {
Index: loncom/interface/lonfeedback.pm
diff -u loncom/interface/lonfeedback.pm:1.99.2.9 loncom/interface/lonfeedback.pm:1.99.2.10
--- loncom/interface/lonfeedback.pm:1.99.2.9 Thu Sep 16 15:42:09 2004
+++ loncom/interface/lonfeedback.pm Thu Oct 7 15:55:52 2004
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Feedback
#
-# $Id: lonfeedback.pm,v 1.99.2.9 2004/09/16 19:42:09 matthew Exp $
+# $Id: lonfeedback.pm,v 1.99.2.10 2004/10/07 19:55:52 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,6 +36,7 @@
use Apache::lontexconvert();
use Apache::lonlocal; # must not have ()
use Apache::lonhtmlcommon();
+use Apache::lonnavmaps();
sub discussion_open {
my ($status)=@_;
@@ -1120,6 +1121,24 @@
ENDPREVIEW
}
+sub has_discussion {
+ my $resourcesref = shift;
+ my $navmap = Apache::lonnavmaps::navmap->new();
+ my @allres=$navmap->retrieveResources();
+ foreach my $resource (@allres) {
+ if ($resource->hasDiscussion()) {
+ my $ressymb;
+ if ($resource->symb() =~ m-(___adm/\w+/\w+)/(\d+)/bulletinboard$-) {
+ $ressymb = 'bulletin___'.$2.$1.'/'.$2.'/bulletinboard';
+ } else {
+ $ressymb = $resource->symb();
+ }
+ push @{$resourcesref}, $ressymb;
+ }
+ }
+ return;
+}
+
sub handler {
my $r = shift;
if ($r->header_only) {
@@ -1131,15 +1150,11 @@
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl']);
- if ($ENV{'form.navmaps'}) {
+ ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navtime','navurl']);
+ if ($ENV{'form.navtime'}) {
my %discinfo = ();
my @resources = ();
- if ($ENV{'form.navmaps'} =~ /:/) {
- @resources = split/:/,$ENV{'form.navmaps'};
- } else {
- @resources = ("$ENV{'form.navmaps'}");
- }
+ &has_discussion(\@resources);
my $numitems = @resources;
my $feedurl = '/adm/navmaps';
if ($ENV{'form.navurl'}) {
@@ -1147,7 +1162,8 @@
}
my %lt = &Apache::lonlocal::texthash(
'mnpa' => 'Marked "New" posts as read in a total of',
- 'robb' => 'resources/bulletin boards.'
+ 'robb' => 'resources/bulletin boards.',
+ 'twnp' => 'There are currently no resources or bulletin boards with unread discussion postings.'
);
foreach (@resources) {
# backward compatibility (bulletin boards used to be 'wrapped')
@@ -1158,9 +1174,14 @@
}
}
my $lastkey = $ressymb.'_lastread';
- $discinfo{$lastkey} = time;
+ $discinfo{$lastkey} = $ENV{'form.navtime'};
+ }
+ my $textline = "<b>$lt{'mnpa'} $numitems $lt{'robb'}</b>";
+ if ($numitems > 0) {
+ &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
+ } else {
+ $textline = "<b>$lt{'twnp'}</b>";
}
- &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
&Apache::loncommon::content_type($r,'text/html');
$r->send_http_header;
$r->print (<<ENDREDIR);
@@ -1172,7 +1193,7 @@
</head>
<body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { this.document.reldt.submit(); self.close(); }'>
<img align="right" src="/adm/lonIcons/lonlogos.gif" />
-<b>$lt{'mnpa'} $numitems $lt{'robb'}</b>
+$textline
<form name="reldt" action="$feedurl" target="loncapaclient">
</form>
<br /><a href="$feedurl">Continue</a>