Diff for /loncom/interface/lonfeedback.pm between versions 1.97 and 1.99.2.9

version 1.97, 2004/07/04 23:56:58 version 1.99.2.9, 2004/09/16 19:42:09
Line 92  sub list_discussion { Line 92  sub list_discussion {
 # Get discussion display settings for this discussion  # Get discussion display settings for this discussion
     my $lastkey = $ressymb.'_lastread';      my $lastkey = $ressymb.'_lastread';
     my $showkey = $ressymb.'_showonlyunread';      my $showkey = $ressymb.'_showonlyunread';
     my $visitkey = $ressymb.'_visit';  
     my $ondispkey = $ressymb.'_markondisp';      my $ondispkey = $ressymb.'_markondisp';
     my %dischash = &Apache::lonnet::get('nohist_'.$ENV{'request.course.id'}.'_discuss',[$lastkey,$showkey,$visitkey,$ondispkey],$ENV{'user.domain'},$ENV{'user.name'});      my %dischash = &Apache::lonnet::get('nohist_'.$ENV{'request.course.id'}.'_discuss',[$lastkey,$showkey,$ondispkey],$ENV{'user.domain'},$ENV{'user.name'});
     my %discinfo = ();      my %discinfo = ();
     my $showonlyunread = 0;      my $showonlyunread = 0;
     my $markondisp = 0;      my $markondisp = 0;
     my $prevread = 0;      my $prevread = 0;
     my $previous = 0;      my $previous = 0;
     my $visit = 0;  
     my $newpostsflag = 0;      my $newpostsflag = 0;
   
 # Retain identification of "NEW" posts identified in last display, if continuing 'previous' browsing of posts.  # Retain identification of "NEW" posts identified in last display, if continuing 'previous' browsing of posts.
Line 115  sub list_discussion { Line 113  sub list_discussion {
     }      }
   
 # Get discussion display default settings for user  # Get discussion display default settings for user
     my %userenv = &Apache::lonnet::get('environment',['discdisplay','discmarkread'],$ENV{'user.domain'},$ENV{'user.name'});      if ($ENV{'environment.discdisplay'} eq 'unread') {
     my $discdisplay=$userenv{'discdisplay'};  
     if ($discdisplay eq 'unread') {  
         $showonlyunread = 1;          $showonlyunread = 1;
     }      }
     my $discmarkread=$userenv{'discmarkread'};      if ($ENV{'environment.discmarkread'} eq 'ondisp') {
     if ($discmarkread eq 'ondisp') {  
         $markondisp = 1;          $markondisp = 1;
     }      }
   
 # Override user's default if user specified display setting for this discussion  # Override user's default if user specified display setting for this discussion
     if (defined($dischash{$ondispkey})) {      if (defined($dischash{$ondispkey})) {
         $markondisp = $dischash{$ondispkey};   unless ($dischash{$showkey} eq '') {
       $markondisp = $dischash{$ondispkey};
    }
     }      }
     if ($markondisp) {      if ($markondisp) {
         $discinfo{$lastkey} = time;          $discinfo{$lastkey} = time;
     }      }
   
     if (defined($dischash{$showkey})) {      if (defined($dischash{$showkey})) {
         $showonlyunread = $dischash{$showkey};   unless ($dischash{$showkey} eq '') {
     }      $showonlyunread = $dischash{$showkey};
    }
     if (defined($dischash{$visitkey})) {  
         $visit = $dischash{$visitkey};  
     }      }
     $visit ++;  
   
     my $seeid=&Apache::lonnet::allowed('rin',$crs);      my $seeid=&Apache::lonnet::allowed('rin',$crs);
     my $viewgrades=(&Apache::lonnet::allowed('vgr',$crs)      my $viewgrades=(&Apache::lonnet::allowed('vgr',$crs)
Line 166  sub list_discussion { Line 160  sub list_discussion {
     }      }
           
     my $now = time;      my $now = time;
     $discinfo{$visitkey} = $visit;      if (%discinfo) {
    &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});
     &Apache::lonnet::put('nohist_'.$ENV{'request.course.id'}.'_discuss',\%discinfo,$ENV{'user.domain'},$ENV{'user.name'});      }
   
     if ($contrib{'version'}) {      if ($contrib{'version'}) {
         my $oldest = $contrib{'1:timestamp'};          my $oldest = $contrib{'1:timestamp'};
Line 223  sub list_discussion { Line 217  sub list_discussion {
     if ($hidden) {      if ($hidden) {
  $message='<font color="#888888">'.$message.'</font>';   $message='<font color="#888888">'.$message.'</font>';
     }      }
     my $screenname=&Apache::loncommon::screenname(  #    my $screenname=&Apache::loncommon::screenname(
     $contrib{$idx.':sendername'},  #    $contrib{$idx.':sendername'},
     $contrib{$idx.':senderdomain'});  #    $contrib{$idx.':senderdomain'});
     my $plainname=&Apache::loncommon::nickname(  #    my $plainname=&Apache::loncommon::nickname(
     $contrib{$idx.':sendername'},  #    $contrib{$idx.':sendername'},
     $contrib{$idx.':senderdomain'});  #    $contrib{$idx.':senderdomain'});
           my ($screenname,$plainname)=($contrib{$idx.':screenname'},
    $contrib{$idx.':plainname'});
     my $sender=&mt('Anonymous');      my $sender=&mt('Anonymous');
     if ((!$contrib{$idx.':anonymous'}) || ($seeid)) {      if ((!$contrib{$idx.':anonymous'}) || ($seeid)) {
  $sender=&Apache::loncommon::aboutmewrapper(   $sender=&Apache::loncommon::aboutmewrapper(
Line 382  sub list_discussion { Line 377  sub list_discussion {
     $discussion .= '&previous='.$prevread;      $discussion .= '&previous='.$prevread;
  }   }
  $discussion .='">'.&mt('Chronological View').'</a>&nbsp;&nbsp;</td>';   $discussion .='">'.&mt('Chronological View').'</a>&nbsp;&nbsp;</td>';
     }       }
     if ($newpostsflag) {      if ($newpostsflag) {
  if (!$markondisp) {   if (!$markondisp) {
     $discussion .='<td align="right"><a href="/adm/feedback?markread='.$ressymb.'">'.&mt('Mark new posts as read').'</a>&nbsp;&nbsp;';      $discussion .='<td align="right"><a href="/adm/feedback?markread='.$ressymb.'">'.&mt('Mark new posts as read').'</a>&nbsp;&nbsp;';
Line 455  sub list_discussion { Line 450  sub list_discussion {
             my $colspan=$maxdepth+1;              my $colspan=$maxdepth+1;
             $discussion .= <<END;               $discussion .= <<END; 
             <tr bgcolor="#FFFFFF">              <tr bgcolor="#FFFFFF">
              <td colspan="'.$colspan.'" valign="top">               <td colspan="$colspan" valign="top">
               <table border="0" bgcolor="#FFFFFF" width="100%" cellspacing="2" cellpadding="2">                <table border="0" bgcolor="#FFFFFF" width="100%" cellspacing="2" cellpadding="2">
                <tr>                 <tr>
                 <td align="left">                  <td align="left">
Line 552  sub mail_screen { Line 547  sub mail_screen {
   }    }
   my $latexHelp=&Apache::loncommon::helpLatexCheatsheet();    my $latexHelp=&Apache::loncommon::helpLatexCheatsheet();
   my $htmlheader=&Apache::lonhtmlcommon::htmlareaheaders();    my $htmlheader=&Apache::lonhtmlcommon::htmlareaheaders();
   my $onsubmit='';  
   if ((&Apache::lonhtmlcommon::htmlareabrowser()) &&  
       (!&Apache::lonhtmlcommon::htmlareablocked())) {  
       $onsubmit='document.mailform.onsubmit();';  
   }  
   my $send=&mt('Send');    my $send=&mt('Send');
   $r->print(<<ENDDOCUMENT);    $r->print(<<ENDDOCUMENT);
 <html>  <html>
Line 600  $htmlheader Line 590  $htmlheader
         }          }
   
         if (rec) {          if (rec) {
             $onsubmit              if (typeof(document.mailform.onsubmit)=='function') {
    document.mailform.onsubmit();
       }
     document.mailform.submit();      document.mailform.submit();
         } else {          } else {
             alert('Please check a feedback type.');              alert('Please check a feedback type.');
Line 642  $r->print(&generate_preview_button(). Line 634  $r->print(&generate_preview_button().
   
 sub print_display_options {  sub print_display_options {
     my ($r,$symb,$previous,$dispchg,$markchg,$feedurl) = @_;      my ($r,$symb,$previous,$dispchg,$markchg,$feedurl) = @_;
    # backward compatibility (bulletin boards used to be 'wrapped')
       if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) {
           $feedurl=~s|^/adm/wrapper||;
       }
   
     my $function = &Apache::loncommon::get_users_function();      my $function = &Apache::loncommon::get_users_function();
     my $tabcolor = &Apache::loncommon::designparm($function.'.tabbg',      my $tabcolor = &Apache::loncommon::designparm($function.'.tabbg',
                                                     $ENV{'user.domain'});                                                      $ENV{'user.domain'});
Line 777  sub fail_redirect { Line 774  sub fail_redirect {
 <body bgcolor="#FFFFFF">  <body bgcolor="#FFFFFF">
 <img align="right" src="/adm/lonIcons/lonlogos.gif" />  <img align="right" src="/adm/lonIcons/lonlogos.gif" />
 <b>Sorry, no recipients  ...</b>  <b>Sorry, no recipients  ...</b>
   <br /><a href="$feedurl">Continue</a>
 </body>  </body>
 </html>  </html>
 ENDFAILREDIR  ENDFAILREDIR
Line 786  sub redirect_back { Line 784  sub redirect_back {
   my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$status,$previous) = @_;    my ($r,$feedurl,$typestyle,$sendsomething,$sendposts,$status,$previous) = @_;
   my $prevtag = '';    my $prevtag = '';
   my $qrystr = '';    my $qrystr = '';
    # backward compatibility (bulletin boards used to be 'wrapped')
     if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) {
         $feedurl=~s|^/adm/wrapper||;
     }
   
   if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' };    if ($feedurl=~/^\/adm\//) { $feedurl.='?register=1' };
   if ($previous > 0) {    if ($previous > 0) {
       $qrystr = 'previous='.$previous;        $qrystr = 'previous='.$previous;
Line 811  $typestyle Line 814  $typestyle
 <form name="reldt" action="$feedurl" target="loncapaclient">  <form name="reldt" action="$feedurl" target="loncapaclient">
 $prevtag  $prevtag
 </form>  </form>
   <br /><a href="$feedurl">Continue</a>
 </body>  </body>
 </html>  </html>
 ENDREDIR  ENDREDIR
Line 833  ENDNOREDIR Line 837  ENDNOREDIR
 <body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { self.close(); }'>  <body bgcolor="#FFFFFF" onLoad='if (window.name!="loncapaclient") { self.close(); }'>
 <img align="right" src="/adm/lonIcons/lonlogos.gif" />  <img align="right" src="/adm/lonIcons/lonlogos.gif" />
 <b>Sorry, no feedback possible on this resource  ...</b>  <b>Sorry, no feedback possible on this resource  ...</b>
   <br /><a href="$feedurl">Continue</a>
 </body>  </body>
 </html>  </html>
 ENDNOREDIRTWO  ENDNOREDIRTWO
Line 1110  sub generate_preview_button { Line 1115  sub generate_preview_button {
 <input type="hidden" name="subject">  <input type="hidden" name="subject">
 <input type="hidden" name="comment" />  <input type="hidden" name="comment" />
 <input type="button" value="$pre"  <input type="button" value="$pre"
 onClick="document.mailform.onsubmit();this.form.comment.value=document.mailform.comment.value;this.form.subject.value=document.mailform.subject.value;this.form.submit();" />  onClick="if (typeof(document.mailform.onsubmit)=='function') {document.mailform.onsubmit();};this.form.comment.value=document.mailform.comment.value;this.form.subject.value=document.mailform.subject.value;this.form.submit();" />
 </form>  </form>
 ENDPREVIEW  ENDPREVIEW
 }  }
Line 1126  sub handler { Line 1131  sub handler {
 # --------------------------- Get query string for limited number of parameters  # --------------------------- Get query string for limited number of parameters
   
   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
          ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes']);           ['hide','unhide','deldisc','postdata','preview','replydisc','threadedon','threadedoff','onlyunread','allposts','previous','markread','markonread','markondisp','modifydisp','changes','navmaps','navurl']);
   if ($ENV{'form.modifydisp'}) {    if ($ENV{'form.navmaps'}) {
         my %discinfo = ();
         my @resources = ();
         if ($ENV{'form.navmaps'} =~ /:/) {
             @resources = split/:/,$ENV{'form.navmaps'};
         } else {
             @resources = ("$ENV{'form.navmaps'}");
         }
         my $numitems = @resources;
         my $feedurl = '/adm/navmaps';
         if ($ENV{'form.navurl'}) {
             $feedurl .= '?'.$ENV{'form.navurl'};
         }
         my %lt = &Apache::lonlocal::texthash(
             'mnpa' => 'Marked "New" posts as read in a total of',
             'robb' => 'resources/bulletin boards.'
         );       
         foreach (@resources) {
   # backward compatibility (bulletin boards used to be 'wrapped')
             my $ressymb=$_;
             if ($ressymb =~ m/bulletin___\d+___/) {
                 unless ($ressymb =~ m|bulletin___\d+___adm/wrapper|) {
                     $ressymb=~s|(bulletin___\d+___)|$1adm/wrapper/|;
                 }
             }
             my $lastkey = $ressymb.'_lastread';
             $discinfo{$lastkey} = time;
         }
         &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);
   <html>
   <head>
   <title>New posts marked as read</title>
   <meta http-equiv="pragma" content="no-cache" />
   <meta HTTP-EQUIV="Refresh" CONTENT="2; url=$feedurl" />
   </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>
   <form name="reldt" action="$feedurl" target="loncapaclient">
   </form>
   <br /><a href="$feedurl">Continue</a>
   </body>
   </html>
   ENDREDIR
         return OK;
     } elsif ($ENV{'form.modifydisp'}) {
       &Apache::loncommon::content_type($r,'text/html');        &Apache::loncommon::content_type($r,'text/html');
       $r->send_http_header;        $r->send_http_header;
       my $symb=$ENV{'form.modifydisp'};        my $symb=$ENV{'form.modifydisp'};
Line 1135  sub handler { Line 1188  sub handler {
       my $previous=$ENV{'form.previous'};        my $previous=$ENV{'form.previous'};
       my ($dispchg,$markchg) = split/_/,$ENV{'form.changes'};        my ($dispchg,$markchg) = split/_/,$ENV{'form.changes'};
       my $feedurl = &Apache::lonnet::clutter($url);        my $feedurl = &Apache::lonnet::clutter($url);
    # backward compatibility (bulletin boards used to be 'wrapped')  
         if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) {
             $feedurl=~s|^/adm/wrapper||;
         }
       &print_display_options($r,$symb,$previous,$dispchg,$markchg,$feedurl);        &print_display_options($r,$symb,$previous,$dispchg,$markchg,$feedurl);
       return OK;        return OK;
   } elsif (($ENV{'form.markondisp'}) || ($ENV{'form.markonread'}) || ($ENV{'form.allposts'}) || ($ENV{'form.onlyunread'}) ) {    } elsif (($ENV{'form.markondisp'}) || ($ENV{'form.markonread'}) || ($ENV{'form.allposts'}) || ($ENV{'form.onlyunread'}) ) {
Line 1305  sub handler { Line 1362  sub handler {
   if ($feedurl=~/\.(problem|exam|quiz|assess|survey|form)$/) {    if ($feedurl=~/\.(problem|exam|quiz|assess|survey|form)$/) {
       unless ($symb) { $goahead=0; }        unless ($symb) { $goahead=0; }
   }    }
   # backward compatibility (bulltin boards used to be 'wrapped')    # backward compatibility (bulletin boards used to be 'wrapped')
   if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) {    if ($feedurl=~m|^/adm/wrapper/adm/.*/bulletinboard$|) {
       $feedurl=~s|^/adm/wrapper||;        $feedurl=~s|^/adm/wrapper||;
   }    }

Removed from v.1.97  
changed lines
  Added in v.1.99.2.9


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>