Diff for /loncom/interface/groupsort.pm between versions 1.68.6.1 and 1.68.6.4

version 1.68.6.1, 2012/05/02 19:10:13 version 1.68.6.4, 2013/01/08 03:51:06
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 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);
         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)$/) {
                               unless ($donechk) {
                                   $donechk = &get_allmaps(\%allmaps);
                               }
                               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 187  sub readfromfile {
     }      }
 }  }
   
 # --------------------------------------------------------- Read from bookmarks  sub get_allmaps {
       my ($allmaps) = @_;
 sub readfrombookmarks {      return unless (ref($allmaps) eq 'HASH');
     my ($r,$resources)=@_;      if (($env{'form.recover'}) &&
     my %bookmarks=&Apache::lonnet::dump('bookmarks');          ($env{'request.course.id'}) &&
 # the bookmark "hash" is just one entry          ($env{'form.readfile'} =~ m{/default(|_\d+)\.(page|sequence)$})) {
 # it's a javascript program code with arguments like ('title','url');          my $cid = $env{'request.course.id'};
     my @bookmarks=($bookmarks{'bookmarks'}=~/\((?:\'([^\']+)\'\,\'([^\']+)\'|\"([^\"]+)\"\,\"([^\"]+)\")\)\;/g);          my $cdom = $env{'course.'.$cid.'.domain'};
     for (my $index=0;$index<($#bookmarks+1)/2;$index++) {          my $cnum = $env{'course.'.$cid.'.num'};
         if ($bookmarks[$index*2+1]) {          my $chome = $env{'course.'.$cid.'.home'};
             my $url  = $bookmarks[$index*2+1];          my $lastchange =
             my $name = $bookmarks[$index*2];              &Apache::lonnet::get_coursechange($cdom,$cnum);
             $name =~ s/^LON\-CAPA\s+//;          if ($lastchange > $env{'request.course.tied'}) {
               my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum");
             push(@{$resources},{'url' => $url, 'title' => $name});              unless ($ferr) {
                   &Apache::loncommon::update_content_constraints($cdom,$cnum,
                                                                  $chome,$cid);
               }
           }
           my $navmap = Apache::lonnavmaps::navmap->new();
           if (defined($navmap)) {
               foreach my $res ($navmap->retrieveResources(undef,sub { $_[0]->is_map() },1,0,1)) {
                   $allmaps->{$res->src()} = 1;
               }
         }          }
     }      }
       return 1;
 }  }
   
 # ---------------------------------------------------------------- Main Handler  # ---------------------------------------------------------------- Main Handler
Line 205  sub handler { Line 221  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 231  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 315  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 327  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 353  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 360  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 397  END Line 404  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 424  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 435  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 445  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.68.6.1  
changed lines
  Added in v.1.68.6.4


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