Diff for /loncom/interface/groupsort.pm between versions 1.66 and 1.72

version 1.66, 2010/05/03 13:53:47 version 1.72, 2013/01/09 16:30:19
Line 37  use GDBM_File; Line 37  use GDBM_File;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use LONCAPA;  use LONCAPA qw(:DEFAULT :match);
   
 my $iconpath; # variable to be accessible to multiple subroutines  my $iconpath; # variable to be accessible to multiple subroutines
 my %hash; # variable to tie to user specific database  my %hash; # variable to tie to user specific database
Line 86  sub update_actions_hash { Line 86  sub update_actions_hash {
 sub readfromdb {  sub readfromdb {
     my ($r,$resources)=@_;      my ($r,$resources)=@_;
   
     my $diropendb =       my $diropendb = LONCAPA::tempdir() .
        "/home/httpd/perl/tmp/$env{'user.domain'}_$env{'user.name'}_sel_res.db";         "$env{'user.domain'}_$env{'user.name'}_sel_res.db";
   
 # ----------------------------- diropendb is now the filename of the db to open  # ----------------------------- diropendb is now the filename of the db to open
     if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {      if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {
Line 152  sub readfromfile { Line 152  sub readfromfile {
   &Apache::lonnet::filelocation('',$env{'form.readfile'}));    &Apache::lonnet::filelocation('',$env{'form.readfile'}));
     } else {      } else {
         my $parser = HTML::TokeParser->new(\$cont);          my $parser = HTML::TokeParser->new(\$cont);
         my $token;          my ($token,$donechk,$allmaps);
           $allmaps = {};
         while ($token = $parser->get_token) {          while ($token = $parser->get_token) {
     if ($token->[0] eq 'S') {      if ($token->[0] eq 'S') {
                 if ($token->[1] eq 'resource') {                  if ($token->[1] eq 'resource') {
     if ($env{'form.recover'}) {      if ($env{'form.recover'}) {
  if ($token->[2]->{'type'} ne 'zombie') { next; }   if ($token->[2]->{'type'} ne 'zombie') { next; }
                           if ($token->[2]->{'src'} =~ /\.(page|sequence)$/) {
                               if (($env{'request.course.id'}) &&
                                   ($env{'form.readfile'} =~ m{/default(|_\d+)\.(page|sequence)$})) {
                                   unless ($donechk) {
                                       $allmaps = &Apache::loncommon::allmaps_incourse();
                                       $donechk = 1;
                                   }
                               }
                               if ($allmaps->{$token->[2]->{'src'}}) { next; }
                           }
     } else {      } else {
  if ($token->[2]->{'type'} eq 'zombie') { next; }   if ($token->[2]->{'type'} eq 'zombie') { next; }
     }      }
Line 181  sub readfromfile { Line 192  sub readfromfile {
     }      }
 }  }
   
 # --------------------------------------------------------- Read from bookmarks  
   
 sub readfrombookmarks {  
     my ($r,$resources)=@_;  
     my %bookmarks=&Apache::lonnet::dump('bookmarks');  
 # the bookmark "hash" is just one entry  
 # it's a javascript program code with arguments like ('title','url');  
     my @bookmarks=($bookmarks{'bookmarks'}=~/\((?:\'([^\']+)\'\,\'([^\']+)\'|\"([^\"]+)\"\,\"([^\"]+)\")\)\;/g);  
     for (my $index=0;$index<($#bookmarks+1)/2;$index++) {  
         if ($bookmarks[$index*2+1]) {  
     my $url  = $bookmarks[$index*2+1];  
     my $name = $bookmarks[$index*2];  
     $name =~ s/^LON\-CAPA\s+//;  
   
     push(@{$resources},{'url' => $url, 'title' => $name});  
  }  
     }  
 }  
   
 # ---------------------------------------------------------------- Main Handler  # ---------------------------------------------------------------- Main Handler
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     
    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
      ['acts','mode','readfile','recover','bookmarks']);       ['acts','mode','readfile','recover']);
   
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
     $r->send_http_header;      $r->send_http_header;
Line 215  sub handler { Line 207  sub handler {
     my $finishimport='';      my $finishimport='';
     my $begincondition='';      my $begincondition='';
     my $endcondition='';      my $endcondition='';
     if (($env{'form.readfile'}) || ($env{'form.bookmarks'}))  {      if (($env{'form.readfile'}))  {
         $begincondition='if (eval("document.forms.groupsort.include"+num+".checked")) {';          $begincondition='if (eval("document.forms.groupsort.include"+num+".checked")) {';
  $endcondition='}';   $endcondition='}';
     }      }
Line 299  END Line 291  END
   
     if ($env{'form.readfile'}) {      if ($env{'form.readfile'}) {
  &readfromfile($r,\@resources);   &readfromfile($r,\@resources);
     } elsif ($env{'form.bookmarks'}) {  
  &readfrombookmarks($r,\@resources);  
     } else {      } else {
  &readfromdb($r,\@resources);   &readfromdb($r,\@resources);
     }      }
Line 313  END Line 303  END
     } else {      } else {
         $title = 'Sort Imported Resources';          $title = 'Sort Imported Resources';
     }      }
     if ($env{'form.bookmarks'}) {      if (($clen > 1) || ($env{'form.readfile'})) {
         $title = 'Import Resources from Bookmarks';  
     }  
     if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {  
  my %lt=&Apache::lonlocal::texthash(   my %lt=&Apache::lonlocal::texthash(
  'fin'=> 'Finalize order of resources',   'fin'=> 'Finalize order of resources',
  'ci' => 'Continue Import',   'ci' => 'Continue Import',
Line 342  END Line 329  END
 <input type="hidden" name="newval" value="" />  <input type="hidden" name="newval" value="" />
 <input type="hidden" name="mode" value="$env{'form.mode'}" />  <input type="hidden" name="mode" value="$env{'form.mode'}" />
 <input type="hidden" name="readfile" value="$env{'form.readfile'}" />  <input type="hidden" name="readfile" value="$env{'form.readfile'}" />
 <input type="hidden" name="bookmarks" value="$env{'form.bookmarks'}" />  
 <input type="hidden" name="recover" value="$env{'form.recover'}" />  <input type="hidden" name="recover" value="$env{'form.recover'}" />
 END  END
   
Line 350  END Line 336  END
         # ---          # ---
   
         my $buttontext = $lt{'re'};          my $buttontext = $lt{'re'};
         if ($env{'form.bookmarks'}) {          if ($env{'form.recover'}) {
             $buttontext = $lt{'ip'}  
         }  
         if ($env{'form.recover'} || $env{'form.bookmarks'}) {  
     $r->print(<<END);      $r->print(<<END);
 <input type="button" name="alter" value="$buttontext"  <input type="button" name="alter" value="$buttontext"
  onClick="finish_import()" />&nbsp;   onClick="finish_import()" />&nbsp;
Line 382  END Line 365  END
         if ($clen > 0) {          if ($clen > 0) {
             $r->print(&Apache::loncommon::start_data_table()              $r->print(&Apache::loncommon::start_data_table()
                      .&Apache::loncommon::start_data_table_header_row());                       .&Apache::loncommon::start_data_table_header_row());
             if (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {               if (($env{'form.readfile'})) { 
                 $r->print("<th>$lt{'in'}</th>\n");                  $r->print("<th>$lt{'in'}</th>\n");
             } else {               } else { 
                 $r->print('<th colspan="2">'.$lt{'co'}.'</th>'."\n");                   $r->print('<th colspan="2">'.$lt{'co'}.'</th>'."\n"); 
Line 397  END Line 380  END
             } else {              } else {
                 $errtxt = 'There are no resources to import.';                  $errtxt = 'There are no resources to import.';
             }              }
             if ($env{'form.bookmarks'}) {  
                 $errtxt = 'There are no resources in your bookmarks to import.';  
             }  
             $r->print('<p class="LC_info">'.&mt($errtxt).'</p>');              $r->print('<p class="LC_info">'.&mt($errtxt).'</p>');
         }          }
     } else {      } else {
Line 420  END Line 400  END
     foreach my $resource (@resources) {      foreach my $resource (@resources) {
  $ctr++;   $ctr++;
  my $iconname=&Apache::loncommon::icon($resource->{'url'});   my $iconname=&Apache::loncommon::icon($resource->{'url'});
  if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {   if (($clen > 1) || ($env{'form.readfile'})) {
     $r->print(&Apache::loncommon::start_data_table_row()      $r->print(&Apache::loncommon::start_data_table_row()
                      ."<td>");                       ."<td>");
             if (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {              if (($env{'form.readfile'})) {
  $r->print(&checkbox($ctr-1));   $r->print(&checkbox($ctr-1));
     } else {      } else {
  $r->print(&movers($clen,$ctr));   $r->print(&movers($clen,$ctr));
Line 431  END Line 411  END
  }   }
  $r->print(&hidden($ctr-1,$resource->{'title'},$resource->{'url'},   $r->print(&hidden($ctr-1,$resource->{'title'},$resource->{'url'},
   $resource->{'id'}));    $resource->{'id'}));
  if (($clen > 1)  || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {   if (($clen > 1)  || ($env{'form.readfile'})) {
     $r->print("</td>");      $r->print("</td>");
             unless (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {              unless (($env{'form.readfile'})) {
  $r->print("<td>".   $r->print("<td>".
   &select_box($clen,$ctr).    &select_box($clen,$ctr).
   "</td>");    "</td>");
Line 441  END Line 421  END
     $r->print("<td>");      $r->print("<td>");
     $r->print("<img src='$iconname' />");      $r->print("<img src='$iconname' />");
     $r->print("</td><td>");      $r->print("</td><td>");
     $r->print($resource->{'title'}.$resource->{'notes'}."</td><td>\n");              if (($env{'form.recover'}) &&
                   ($resource->{'url'} =~ m{/uploaded/$match_domain/$match_courseid/supplemental/})) {
                   my $title = &Apache::loncommon::parse_supplemental_title($resource->{'title'});
                   $r->print($title);
               } else {
                   $r->print($resource->{'title'});
               }
               $r->print($resource->{'notes'}."</td><td>\n");
     $r->print($resource->{'url'}."</td>"      $r->print($resource->{'url'}."</td>"
                      .&Apache::loncommon::end_data_table_row()                       .&Apache::loncommon::end_data_table_row()
                      ."\n");                       ."\n");
  }    } 
     }      }
     if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {      if (($clen > 1) || ($env{'form.readfile'})) {
         if ($clen > 0) {          if ($clen > 0) {
             $r->print(&Apache::loncommon::end_data_table());              $r->print(&Apache::loncommon::end_data_table());
         }          }

Removed from v.1.66  
changed lines
  Added in v.1.72


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.