--- loncom/interface/groupsort.pm 2015/03/12 02:12:40 1.68.6.7 +++ loncom/interface/groupsort.pm 2013/01/08 03:46:07 1.70 @@ -2,7 +2,7 @@ # The LON-CAPA group sort handler # Allows for sorting prior to import into RAT. # -# $Id: groupsort.pm,v 1.68.6.7 2015/03/12 02:12:40 raeburn Exp $ +# $Id: groupsort.pm,v 1.70 2013/01/08 03:46:07 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -59,7 +59,7 @@ sub update_actions_hash { $ac++; } # sorting through the actions and changing the global database hash - foreach my $key (sort {$achash{$a}<=>$achash{$b}} (keys(%ahash))) { + foreach my $key (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) { if ($ahash{$key} eq '1') { $hash->{'store_'.$hash->{'pre_'.$key.'_link'}}= $hash->{'pre_'.$key.'_title'}; @@ -152,22 +152,17 @@ sub readfromfile { &Apache::lonnet::filelocation('',$env{'form.readfile'})); } else { my $parser = HTML::TokeParser->new(\$cont); - my ($token,$donechk,$allmaps); - $allmaps = {}; + my ($token,$donechk,%allmaps); while ($token = $parser->get_token) { if ($token->[0] eq 'S') { if ($token->[1] eq 'resource') { if ($env{'form.recover'}) { 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; - } + unless ($donechk) { + $donechk = &get_allmaps(\%allmaps); } - if ($allmaps->{$token->[2]->{'src'}}) { next; } + if ($allmaps{$token->[2]->{'src'}}) { next; } } } else { if ($token->[2]->{'type'} eq 'zombie') { next; } @@ -192,6 +187,35 @@ sub readfromfile { } } +sub get_allmaps { + my ($allmaps) = @_; + return unless (ref($allmaps) eq 'HASH'); + if (($env{'form.recover'}) && + ($env{'request.course.id'}) && + ($env{'form.readfile'} =~ m{/default(|_\d+)\.(page|sequence)$})) { + my $cid = $env{'request.course.id'}; + my $cdom = $env{'course.'.$cid.'.domain'}; + my $cnum = $env{'course.'.$cid.'.num'}; + my $chome = $env{'course.'.$cid.'.home'}; + my $lastchange = + &Apache::lonnet::get_coursechange($cdom,$cnum); + if ($lastchange > $env{'request.course.tied'}) { + my ($furl,$ferr) = &Apache::lonuserstate::readmap("$cdom/$cnum"); + 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 sub handler { my $r = shift; @@ -339,8 +363,8 @@ END if ($env{'form.recover'}) { $r->print(<  - + onClick="finish_import()" />  + END } else { # --- Continue Buttons @@ -350,12 +374,12 @@ END

$lt{'fin'}

  + onClick="window.location='$resurl?inhibitmenu=yes&catalogmode=import'" />    + onClick="window.location='/adm/searchcat?inhibitmenu=yes&catalogmode=import'" />    - + onClick="finish_import()" />  +

END @@ -421,12 +445,12 @@ END $r->print(""); $r->print(""); $r->print(""); - if (($env{'form.recover'}) && + if (($env{'form.recover'}) && ($resource->{'url'} =~ m{/uploaded/$match_domain/$match_courseid/supplemental/})) { - my $title = &Apache::loncommon::parse_supplemental_title($resource->{'title'}); + my $title = &Apache::loncommon::parse_supplemental_title($resource->{'title'}); $r->print($title); } else { - $r->print($resource->{'title'}); + $r->print($resource->{'title'}); } $r->print($resource->{'notes'}."\n"); $r->print($resource->{'url'}."" @@ -488,7 +512,7 @@ sub select_box { my ($total,$sel) = @_; my $string; $string = '