--- rat/lonsequence.pm	2002/04/02 21:05:50	1.6
+++ rat/lonsequence.pm	2002/05/23 10:19:30	1.8
@@ -2,7 +2,7 @@
 #
 # Sequence Handler
 #
-# $Id: lonsequence.pm,v 1.6 2002/04/02 21:05:50 www Exp $
+# $Id: lonsequence.pm,v 1.8 2002/05/23 10:19:30 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -42,7 +42,8 @@ use strict;
 use Apache::lonnet;
 use Apache::Constants qw(:common :http REDIRECT);
 use GDBM_File;
-
+use Apache::lonratedt;
+use Apache::lonratsrv;
 
 # ----------------------------------------------------------- Could not resolve
 
@@ -56,6 +57,95 @@ sub getlost {
  '</body></html>');
 }
 
+
+# ----------------------------------------- Attempt to read from resource space
+
+sub attemptread {
+    my $fn=shift;
+    &Apache::lonnet::repcopy($fn);
+    if (-e $fn) {
+	return &Apache::lonratedt::attemptread($fn);
+    } else {
+        return ();
+    }
+}
+
+# ---------------------------------------------------------------- View Handler
+
+sub viewmap {
+    my ($r,$url,$adv,$errtext)=@_;
+    $r->print('<html>');
+    if ($ENV{'form.forceselect'}) { $r->print(<<ENDSCRIPT);
+<script>
+
+function select_group() {
+    window.location="/adm/groupsort?catalogmode=groupimport&mode=rat&acts="+document.forms.fileattr.acts.value;
+}
+
+function queue(val) {
+    if (eval("document.forms."+val+".filelink.checked")) {
+	var l=val.length;
+	var v=val.substring(4,l);
+	document.forms.fileattr.acts.value+='1a'+v+'b';
+    }
+    else {
+	var l=val.length;
+	var v=val.substring(4,l);
+	document.forms.fileattr.acts.value+='0a'+v+'b';
+    }
+}
+
+
+
+</script>
+ENDSCRIPT
+    }
+    $r->print('<body bgcolor="#FFFFFF">'.&buttons($adv));
+    if ($ENV{'form.forceselect'}) { $r->print(<<ENDSELECT);
+<form name=fileattr><input type=hidden name=acts value=''>
+<input type="button" name="close" value='CLOSE' onClick="self.close()">
+<input type="button" name="groupimport" value='GROUP IMPORT'
+onClick="javascript:select_group()">
+</form>   
+ENDSELECT
+    }
+    if ($errtext) {
+	$r->print($errtext.'<hr>');
+    }
+    my $idx=0;
+    foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) {
+	if (defined($_)) {
+            $idx++;
+            if ($ENV{'form.forceselect'}) { 
+		$r->print('<form name="form'.$idx.'">');
+            }
+	    my ($title,$url)=split(/\:/,$_);
+            $title=~s/\&colon\;/\:/g;
+            $url=~s/\&colon\;/\:/g;
+            unless ($title) { $title=(split(/\//,$url))[-1] };
+            unless ($title) { $title='<i>Empty</i>'; }
+            if ($url) {
+		if ($ENV{'form.forceselect'}) {
+		    $r->print(<<ENDCHECKBOX);
+<input type='checkbox' name='filelink' 
+value='$url' onClick='javascript:queue("form$idx")' >
+<input type='hidden' name='title' value='$title'>
+ENDCHECKBOX
+                }
+		$r->print('<a href="'.&Apache::lonratsrv::qtescape($url).'">');
+            }
+            $r->print(&Apache::lonratsrv::qtescape($title));
+            if ($url) { $r->print('</a>'); }
+            if ($ENV{'form.forceselect'}) {
+		$r->print('</form>');
+            } else {
+		$r->print('<br>');
+            }
+        }
+    }
+    $r->print('</body></html>');
+}
+
 # ================================================================ Main Handler
 
 sub handler {
@@ -66,6 +156,9 @@ sub handler {
       $r->send_http_header;
       return OK;
    }
+ 
+   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+                                          ['forceselect']);
 
    my %hash;
    my %bighash;
@@ -116,8 +209,8 @@ sub handler {
            untie(%bighash);
            if ($disurl) {
 # -------------------------------------------------- Has first or last resource
-               &Apache::lonnet::symblist($requrl,{$disurl => $dismapid,
-                   'last_known' => &Apache::lonnet::declutter($disurl)}); 
+               &Apache::lonnet::symblist($requrl,$disurl => $dismapid,
+                   'last_known' => &Apache::lonnet::declutter($disurl)); 
 	       $r->content_type('text/html');
                $r->header_out(Location => 'http://'.$ENV{'HTTP_HOST'}.$disurl);
                return REDIRECT;