--- loncom/interface/groupsort.pm 2007/06/29 22:41:24 1.52
+++ loncom/interface/groupsort.pm 2007/07/11 23:51:19 1.55
@@ -2,7 +2,7 @@
# The LON-CAPA group sort handler
# Allows for sorting prior to import into RAT.
#
-# $Id: groupsort.pm,v 1.52 2007/06/29 22:41:24 banghart Exp $
+# $Id: groupsort.pm,v 1.55 2007/07/11 23:51:19 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -43,6 +43,44 @@ my $iconpath; # variable to be accessibl
my %hash; # variable to tie to user specific database
+sub update_actions_hash {
+ my ($hash) = @_;
+ my $acts=$env{'form.acts'};
+ my @Acts=split(/b/,$acts);
+ my %ahash;
+ my %achash;
+ my $ac=0;
+ # some initial hashes for working with data
+ foreach (@Acts) {
+ my ($state,$ref)=split(/a/);
+ $ahash{$ref}=$state;
+ $achash{$ref}=$ac;
+ $ac++;
+ }
+ # sorting through the actions and changing the global database hash
+ 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'};
+ $hash->{'storectr_'.$hash{'pre_'.$key.'_link'}}=
+ $hash->{'storectr'}+0;
+ $hash->{'storectr'}++;
+ }
+ if ($ahash{$key} eq '0') {
+ if ($hash->{'store_'.$hash{'pre_'.$key.'_link'}}) {
+ delete($hash->{'store_'.$hash{'pre_'.$key.'_link'}});
+ }
+ }
+ }
+ # deleting the previously cached listing
+ foreach my $key (keys(%{ $hash })) {
+ next if ($key !~ /^pre_(\d+)_link/);
+ my $which = $1;
+ delete($hash->{'pre_'.$which.'_title'});
+ delete($hash->{'pre_'.$which.'_link'});
+ }
+}
+
sub readfromdb {
my ($r,$shash,$thash)=@_;
@@ -51,35 +89,8 @@ sub readfromdb {
# ----------------------------- diropendb is now the filename of the db to open
if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT(),0640)) {
- my $acts = $env{'form.acts'};
- my @Acts = split(/b/,$acts);
- my %ahash;
- my %achash;
- my $ac = 0;
- foreach (@Acts) {
- my ($state,$ref) = split(/a/);
- $ahash{$ref} = $state;
- $achash{$ref} = $ac;
- $ac++;
- }
- foreach (sort {$achash{$a} <=> $achash{$b}} (keys %ahash)) {
- my $key = $_;
- if ($ahash{$key} eq '1') {
- if ($hash{'pre_'.$key.'_title'} eq 'Not_retrieved') {
- $hash{'pre_'.$key.'_title'} = &Apache::lonnet::gettitle($hash{'pre_'.$key.'_link'},'title');
- }
- $hash{'store_'.$hash{'pre_'.$key.'_link'}} =
- $hash{'pre_'.$key.'_title'};
- $hash{'storectr_'.$hash{'pre_'.$key.'_link'}} =
- $hash{'storectr'}+0;
- $hash{'storectr'}++;
- }
- if ($ahash{$key} eq '0') {
- if ($hash{'store_'.$hash{'pre_'.$key.'_link'}}) {
- delete $hash{'store_'.$hash{'pre_'.$key.'_link'}};
- }
- }
- }
+ &update_actions_hash(\%hash);
+
foreach (keys %hash) {
if ($_ =~ /^store_/) {
my $key = $_;
@@ -353,7 +364,7 @@ END
END
-
+ $r->print(&Apache::loncommon::inhibit_menu_check('input'));
# ---
if ($env{'form.recover'}) {
@@ -368,9 +379,9 @@ END
&Apache::loncommon::escape_single(&Apache::loncommon::lastresurl());
$r->print(<
+ onClick="window.location='$resurl?inhibitmenu=yes&catalogmode=import'" />
+ onClick="window.location='/adm/searchcat?inhibitmenu=yes&catalogmode=import'" />
@@ -396,6 +407,8 @@ END
END
+ $r->print(&Apache::loncommon::inhibit_menu_check('input'));
+
}
foreach (sort {$shash{$a}<=>$shash{$b}} (keys %shash)) {
my $key=$_;