--- loncom/interface/groupsort.pm 2006/06/08 07:20:41 1.42
+++ loncom/interface/groupsort.pm 2006/07/21 08:29:47 1.46
@@ -2,7 +2,7 @@
# The LON-CAPA group sort handler
# Allows for sorting prior to import into RAT.
#
-# $Id: groupsort.pm,v 1.42 2006/06/08 07:20:41 www Exp $
+# $Id: groupsort.pm,v 1.46 2006/07/21 08:29:47 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -191,12 +191,32 @@ sub readfromfile {
return ($shash,$thash);
}
+# --------------------------------------------------------- Read from bookmarks
+
+sub readfrombookmarks {
+ my ($r,$shash,$thash)=@_;
+ 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);
+ my $order=1;
+ for (my $index=0;$index<($#bookmarks+1)/2;$index++) {
+ if ($bookmarks[$index*2+1]) {
+ $$thash{$bookmarks[$index*2+1]}=$bookmarks[$index*2];
+ $$thash{$bookmarks[$index*2+1]}=~s/^LON\-CAPA\s+//;
+ $$shash{$bookmarks[$index*2+1]}=$order;
+ $order++;
+ }
+ }
+ return ($shash,$thash);
+}
+
# ---------------------------------------------------------------- Main Handler
sub handler {
my $r = shift;
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['acts','mode','readfile','recover']);
+ ['acts','mode','readfile','recover','bookmarks']);
# color scheme
my $fileclr = '#ffffe6';
my $titleclr = '#ddffff';
@@ -209,7 +229,7 @@ sub handler {
my $finishimport='';
my $begincondition='';
my $endcondition='';
- if ($env{'form.readfile'}) {
+ if (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$begincondition='if (eval("document.forms.groupsort.include"+num+".checked")) {';
$endcondition='}';
}
@@ -293,13 +313,15 @@ END
if ($env{'form.readfile'}) {
&readfromfile($r,\%shash,\%thash,\%nhash);
+ } elsif ($env{'form.bookmarks'}) {
+ &readfrombookmarks($r,\%shash,\%thash);
} else {
&readfromdb($r,\%shash,\%thash);
}
my $ctr = 0;
my $clen = scalar(keys %shash);
- if (($clen > 1) || ($env{'form.readfile'})) {
+ if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
my %lt=&Apache::lonlocal::texthash(
'fin'=> 'Finalize order of resources',
'ci' => 'Continue Import',
@@ -322,6 +344,7 @@ END
+
END
@@ -329,9 +352,9 @@ END
my $resurl = &Apache::loncommon::lastresurl();
$r->print(<
+ onClick="window.location='$resurl?catalogmode=import'" />
+ onClick="window.location='/adm/searchcat?catalogmode=import'" />
END
# ---
@@ -342,7 +365,7 @@ END
END
$r->print("
");
$r->print("\n");
- if ($env{'form.readfile'}) {
+ if (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print("$lt{'in'} | \n");
} else {
$r->print("$lt{'co'} | \n");
@@ -365,18 +388,18 @@ END
my $key=$_;
$ctr++;
my $iconname=&Apache::loncommon::icon($key);
- if (($clen > 1) || ($env{'form.readfile'})) {
+ if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print(" ");
- if ($env{'form.readfile'}) {
+ if (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print(&checkbox($ctr-1));
} else {
$r->print(&movers($clen,$ctr));
}
}
$r->print(&hidden($ctr-1,$thash{$key},$key));
- if (($clen > 1) || ($env{'form.readfile'})) {
+ if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print(" | ");
- unless ($env{'form.readfile'}) {
+ unless (($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print("".
&select_box($clen,$ctr).
" | ");
@@ -388,7 +411,7 @@ END
$r->print("$key \n");
}
}
- if (($clen > 1) || ($env{'form.readfile'})) {
+ if (($clen > 1) || ($env{'form.readfile'}) || ($env{'form.bookmarks'})) {
$r->print("
|
");
} else {
$r->print(<