[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);
-	        &nbsp;&nbsp;&nbsp;<a href="javascript:document.clearbubbles.submit()">$lt{'mapr'}</a>&nbsp;<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);
+	        &nbsp;&nbsp;&nbsp;<a href="javascript:document.clearbubbles.submit()">$mapr</a>&nbsp;<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>