version 1.8, 2002/05/09 20:57:26
|
version 1.21, 2003/06/14 00:15:01
|
Line 27
|
Line 27
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
# YEAR=2001 |
# YEAR=2001 |
# 8/7,8/8,10/14,10/15,12/10 Scott Harrison |
|
# YEAR=2002 |
# YEAR=2002 |
# 1/17 Scott Harrison |
|
# |
# |
### |
### |
|
|
Line 39 use strict;
|
Line 37 use strict;
|
|
|
use Apache::Constants qw(:common); |
use Apache::Constants qw(:common); |
use GDBM_File; |
use GDBM_File; |
|
use Apache::loncommon; |
|
|
my %hash; # variable to tie to user specific database |
my %hash; # variable to tie to user specific database |
my $iconpath; # variable to be accessible to multiple subroutines |
my $iconpath; # variable to be accessible to multiple subroutines |
|
|
|
sub cleanup { |
|
if (tied(%hash)){ |
|
&Apache::lonnet::logthis('Cleanup groupsort: hash'); |
|
unless (untie(%hash)) { |
|
&Apache::lonnet::logthis('Failed cleanup groupsort: hash'); |
|
} |
|
} |
|
} |
|
|
# ---------------------------------------------------------------- Main Handler |
# ---------------------------------------------------------------- Main Handler |
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
|
['acts','catalogmode','mode']); |
# color scheme |
# color scheme |
my $fileclr = '#ffffe6'; |
my $fileclr = '#ffffe6'; |
my $titleclr = '#ddffff'; |
my $titleclr = '#ddffff'; |
Line 60 sub handler {
|
Line 70 sub handler {
|
if ($ENV{'form.mode'} eq 'simple') { |
if ($ENV{'form.mode'} eq 'simple') { |
$finishimport=(<<ENDSMP); |
$finishimport=(<<ENDSMP); |
function finish_import() { |
function finish_import() { |
alert("Finishing a simple import"); |
opener.document.forms.simpleedit.importdetail.value=''; |
|
for (var num=0; num<document.forms.groupsort.fnum.value; num++) { |
|
opener.document.forms.simpleedit.importdetail.value+='&'+ |
|
escape(eval("document.forms.groupsort.title"+num+".value"))+'='+ |
|
escape(eval("document.forms.groupsort.filelink"+num+".value")); |
|
} |
|
opener.document.forms.simpleedit.submit(); |
|
self.close(); |
} |
} |
ENDSMP |
ENDSMP |
} else { |
} else { |
Line 121 function orderchange(val,newval) {
|
Line 138 function orderchange(val,newval) {
|
} |
} |
</script> |
</script> |
</head> |
</head> |
<body bgcolor="#FFFFFF"> |
|
END |
END |
|
$r->print(&Apache::loncommon::bodytag('Sort Imported Resources')); |
# read pertinent machine configuration |
# read pertinent machine configuration |
my $domain = $r->dir_config('lonDefDomain'); |
my $domain = $r->dir_config('lonDefDomain'); |
$iconpath = $r->dir_config('lonIconsURL') . "/"; |
$iconpath = $r->dir_config('lonIconsURL') . "/"; |
|
|
my %shash; # sort order (key is resource location, value is sort order) |
my %shash; # sort order (key is resource location, value is sort order) |
my %thash; # title (key is resource location, value is title) |
my %thash; # title (key is resource location, value is title) |
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
|
my ($name, $value) = split(/=/,$_); |
|
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
if ($name eq 'acts') { |
|
$ENV{'form.'.$name}=$value; |
|
} |
|
if ($name eq 'catalogmode') { |
|
$ENV{'form.'.$name}=$value; |
|
} |
|
} |
|
my $diropendb; |
my $diropendb; |
|
# ------------------------------ which file do we open? Easy if explictly given |
if ($ENV{'form.catalogmode'} eq 'groupsearch') { |
if ($ENV{'form.catalogmode'} eq 'groupsearch') { |
$diropendb = |
$diropendb = |
"/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_searchcat.db"; |
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_searchcat.db"; |
} |
} |
elsif ($ENV{'form.catalogmode'} eq 'groupimport') { |
elsif ($ENV{'form.catalogmode'} eq 'groupimport') { |
$diropendb = |
$diropendb = |
"/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db"; |
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_indexer.db"; |
|
} |
|
elsif ($ENV{'form.catalogmode'} eq 'groupsec') { |
|
$diropendb = |
|
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_groupsec.db"; |
} |
} |
|
# --------------------- not explicitly given, choose the one most recently used |
else { # choose last accessed |
else { # choose last accessed |
my $dsearch; my $dindex; |
my @dbfn; |
my $dsearcht; my $dindext; |
my @dbst; |
$dsearch = |
|
"/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_searchcat.db"; |
$dbfn[0] = |
if (-e $dsearch) { |
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_searchcat.db"; |
$dsearcht=(stat($dsearch))[9]; |
$dbst[0]=-1; |
|
if (-e $dbfn[0]) { |
|
$dbst[0]=(stat($dbfn[0]))[9]; |
} |
} |
$dindex = |
$dbfn[1] = |
"/home/httpd/perl/tmp/$domain\_$ENV{'user.name'}_indexer.db"; |
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_indexer.db"; |
if (-e $dindex) { |
$dbst[1]=-1; |
$dindext=(stat($dindex))[9]; |
if (-e $dbfn[1]) { |
|
$dbst[1]=(stat($dbfn[1]))[9]; |
} |
} |
if (!$dsearcht and !$dindext) { |
$dbfn[2] = |
$diropendb=''; |
"/home/httpd/perl/tmp/$ENV{'user.domain'}_$ENV{'user.name'}_groupsec.db"; |
} |
$dbst[2]=-1; |
elsif ($dsearcht>$dindext) { |
if (-e $dbfn[2]) { |
$diropendb=$dsearch; |
$dbst[2]=(stat($dbfn[2]))[9]; |
} |
} |
else { |
# Expand here for more modes |
$diropendb=$dindex; |
# .... |
} |
|
|
# Okay, find most recent existing |
|
|
|
my $newest=0; |
|
$diropendb=''; |
|
for (my $i=0; $i<=$#dbfn; $i++) { |
|
if ($dbst[$i]>$newest) { |
|
$newest=$dbst[$i]; |
|
$diropendb=$dbfn[$i]; |
|
} |
|
} |
|
|
} |
} |
if (tie(%hash,'GDBM_File',$diropendb,&GDBM_WRCREAT,0640)) { |
# ----------------------------- 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 = $ENV{'form.acts'}; |
my @Acts = split(/b/,$acts); |
my @Acts = split(/b/,$acts); |
my %ahash; |
my %ahash; |
Line 263 END
|
Line 290 END
|
untie %hash; |
untie %hash; |
my $ctr = 0; |
my $ctr = 0; |
my $clen = scalar(keys %shash); |
my $clen = scalar(keys %shash); |
$r->print('<h2><font color="#888888">The LearningOnline With CAPA '. |
$r->print(<<END); |
'Group Sorter</font></h2>'."\n"); |
<b><font color="#888888">Finalize order of resources</font></b> |
$r->print('<b><font color="#888888">Finalize order of resources</font>'. |
<form method='post' action='/adm/groupsort' name='groupsort' |
'</b>'."\n"); |
enctype='application/x-www-form-urlencoded'> |
$r->print("<form method='post' action='/adm/groupsort' name='groupsort' ". |
|
"enctype='application/x-www-form-urlencoded'>"); |
|
$r->print(<<END); |
|
<input type="hidden" name="fnum" value="$clen" /> |
<input type="hidden" name="fnum" value="$clen" /> |
<input type="hidden" name="oldval" value="" /> |
<input type="hidden" name="oldval" value="" /> |
<input type="hidden" name="newval" value="" /> |
<input type="hidden" name="newval" value="" /> |
|
<input type="hidden" name="mode" value="$ENV{'form.mode'}" /> |
END |
END |
|
|
|
# --- Expand here if "GO BACK" button desired |
if ($ENV{'form.catalogmode'} eq 'groupimport') { |
if ($ENV{'form.catalogmode'} eq 'groupimport') { |
$r->print(<<END); |
$r->print(<<END); |
<input type="button" name="alter" value="GO BACK" |
<input type="button" name="alter" value="GO BACK" |
Line 282 END
|
Line 309 END
|
} |
} |
if ($ENV{'form.catalogmode'} eq 'groupsearch') { |
if ($ENV{'form.catalogmode'} eq 'groupsearch') { |
$r->print(<<END); |
$r->print(<<END); |
<input type="button" name="alter" value="GO BACK" |
<input type="button" name="alter" value="New Search" |
onClick="window.location='/adm/searchcat?catalogmode=groupsearch'" /> |
onClick="window.location='/adm/searchcat?catalogmode=groupsearch&cleargroupsort=1'" /> |
END |
END |
} |
} |
|
# --- |
|
|
$r->print(<<END); |
$r->print(<<END); |
<input type="button" name="alter" value="FINISH IMPORT" |
<input type="button" name="alter" value="FINISH IMPORT" |
onClick="finish_import()" /> |
onClick="finish_import()" /> |
Line 302 END
|
Line 331 END
|
$ctr++; |
$ctr++; |
my @file_ext = split(/\./,$key); |
my @file_ext = split(/\./,$key); |
my $curfext = $file_ext[scalar(@file_ext)-1]; |
my $curfext = $file_ext[scalar(@file_ext)-1]; |
|
my $iconname="unknown.gif"; |
|
my $embstyle = &Apache::loncommon::fileembstyle($curfext); |
|
# The unless conditional that follows is a bit of overkill |
|
$iconname = $curfext.".gif" unless |
|
(!defined($embstyle) || $embstyle eq 'unk' || $embstyle eq 'hdn'); |
$r->print("<tr><td bgcolor='$fileclr'>"); |
$r->print("<tr><td bgcolor='$fileclr'>"); |
$r->print(&movers($clen,$ctr)); |
$r->print(&movers($clen,$ctr)); |
$r->print(&hidden($ctr-1,$thash{$key},$key)); |
$r->print(&hidden($ctr-1,$thash{$key},$key)); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print(&select_box($clen,$ctr)); |
$r->print(&select_box($clen,$ctr)); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print("<img src='$iconpath$curfext.gif'>"); |
$r->print("<img src='$iconpath$iconname'>"); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print("</td><td bgcolor='$fileclr'>"); |
$r->print("$thash{$key}</td><td bgcolor='$fileclr'>\n"); |
$r->print("$thash{$key}</td><td bgcolor='$fileclr'>\n"); |
$r->print("$key</td></tr>\n"); |
$r->print("$key</td></tr>\n"); |