--- 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;