version 1.125, 2004/10/20 10:51:50
|
version 1.130, 2005/02/17 08:50:20
|
Line 74 my @Omit = ();
|
Line 74 my @Omit = ();
|
|
|
|
|
|
|
# |
|
# Escapes strings that may have embedded 's that will be put into |
|
# javascript strings as 'strings'. |
|
# The assumptions are: |
|
# There has been no effort to escape ' with \' |
|
# Any \'s in the string are intended to be there as part of the URL |
|
# and must also be escaped. |
|
# Parameters: |
|
# input - The string to escape. |
|
# Returns: |
|
# The escaped string (' replaced by \' and \ replaced by \\). |
|
# |
|
sub javascript_escape { |
|
my ($input) = @_; |
|
|
|
# I imagine a regexp wizard could combine the two expressions below. |
|
# If you do you might want to comment the result. |
|
|
|
$input =~ s/\\/\\\\/g; # Escape the /'s..(must be first)> |
|
$input =~ s/\'/\\\'/g; # Esacpe the 's.... |
|
|
|
return $input; |
|
} |
|
|
|
|
|
|
|
# ----------------------------- Handling routine called via Apache and mod_perl |
# ----------------------------- Handling routine called via Apache and mod_perl |
sub handler { |
sub handler { |
Line 161 sub handler {
|
Line 136 sub handler {
|
} |
} |
#Hijack lonindexer to verify a title and be close down. |
#Hijack lonindexer to verify a title and be close down. |
if ($ENV{'form.launch'} eq '2') { |
if ($ENV{'form.launch'} eq '2') { |
$r->content_type('text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
my $extra=''; |
my $extra=''; |
if (defined($ENV{'form.titleelement'}) && |
if (defined($ENV{'form.titleelement'}) && |
$ENV{'form.titleelement'} ne '') { |
$ENV{'form.titleelement'} ne '') { |
Line 170 sub handler {
|
Line 145 sub handler {
|
$verify_title=~s/'/\\'/g; |
$verify_title=~s/'/\\'/g; |
$extra='window.opener.document.forms["'.$ENV{'form.form'}.'"].elements["'.$ENV{'form.titleelement'}.'"].value=\''.$verify_title.'\';'; |
$extra='window.opener.document.forms["'.$ENV{'form.form'}.'"].elements["'.$ENV{'form.titleelement'}.'"].value=\''.$verify_title.'\';'; |
} |
} |
|
my $html=&Apache::lonxml::xmlbegin(); |
$r->print(<<ENDSUBM); |
$r->print(<<ENDSUBM); |
<html> |
$html |
<script type="text/javascript"> |
<!-- Generated by lonindexer.pm --> |
|
<head> |
|
<script type="text/javascript"> |
function load() { |
function load() { |
window.opener.document.forms["$ENV{'form.form'}"] |
window.opener.document.forms["$ENV{'form.form'}"] |
.elements["$ENV{'form.element'}"] |
.elements["$ENV{'form.element'}"] |
Line 180 sub handler {
|
Line 158 sub handler {
|
$extra |
$extra |
window.close(); |
window.close(); |
} |
} |
</script> |
</script> |
<body onLoad=load();> |
</head> |
|
<body onLoad="load();"> |
</body> |
</body> |
</html> |
</html> |
ENDSUBM |
ENDSUBM |
Line 368 END
|
Line 347 END
|
} |
} |
|
|
# ---------------------------------------------------------------- Print Header |
# ---------------------------------------------------------------- Print Header |
|
my $html=&Apache::lonxml::xmlbegin(); |
$r->print(<<ENDHEADER); |
$r->print(<<ENDHEADER); |
<html> |
$html |
<head> |
<head> |
<title>The LearningOnline Network With CAPA Directory Browser</title> |
<title>The LearningOnline Network With CAPA Directory Browser</title> |
|
|
|
<!-- Generated by lonindexer.pm --> |
|
|
<script type="text/javascript"> |
<script type="text/javascript"> |
$catalogmodefunctions |
$catalogmodefunctions |
function openWindow(url, wdwName, w, h, toolbar,scrollbar,locationbar) { |
function openWindow(url, wdwName, w, h, toolbar,scrollbar,locationbar) { |
Line 509 END
|
Line 491 END
|
(($ENV{'form.catalogmode'} eq 'groupimport')? |
(($ENV{'form.catalogmode'} eq 'groupimport')? |
'document.forms.fileattr':'')). |
'document.forms.fileattr':'')). |
&Apache::lonhtmlcommon::select_recent('residx','resrecent', |
&Apache::lonhtmlcommon::select_recent('residx','resrecent', |
'this.form.action=this.form.resrecent.options[this.form.resrecent.selectedIndex].value;this.form.submit();')); |
'window.status=this.form.resrecent.options[this.form.resrecent.selectedIndex].value;this.form.action=this.form.resrecent.options[this.form.resrecent.selectedIndex].value;this.form.submit();')); |
# -------------------------------------------------------- Resource Home Button |
# -------------------------------------------------------- Resource Home Button |
my $reshome=$ENV{'course.'.$ENV{'request.course.id'}.'.reshome'}; |
my $reshome=$ENV{'course.'.$ENV{'request.course.id'}.'.reshome'}; |
if ($reshome) { |
if ($reshome) { |
Line 527 END
|
Line 509 END
|
&Apache::lonhtmlcommon::store_recent('residx',$storeuri,$storeuri); |
&Apache::lonhtmlcommon::store_recent('residx',$storeuri,$storeuri); |
# ----------------- output starting row to the indexed file/directory hierarchy |
# ----------------- output starting row to the indexed file/directory hierarchy |
my $titleclr="#ddffff"; |
my $titleclr="#ddffff"; |
# $r->print(&initdebug()); |
#$r->print(&initdebug()); |
# $r->print(&writedebug("Omit:@Omit")) if (@Omit); |
#$r->print(&writedebug("Omit:@Omit")) if (@Omit); |
# $r->print(&writedebug("Only:@Only")) if (@Only); |
#$r->print(&writedebug("Only:@Only")) if (@Only); |
$r->print("<table width='100\%' border=0><tr><td bgcolor=#777777>\n"); |
$r->print('<table width="100%" border="0"><tr><td bgcolor="#777777">'."\n"); |
$r->print("<table width='100\%' border=0><tr bgcolor=$titleclr>\n"); |
$r->print('<table width="100%" border="0"><tr bgcolor="'.$titleclr.'">'."\n"); |
$r->print("<td $colspan><b>".&mt('Name')."</b></td>\n"); |
$r->print("<td $colspan><b>".&mt('Name')."</b></td>\n"); |
$r->print("<td><b>".&mt('Title')."</b></td>\n") |
$r->print("<td><b>".&mt('Title')."</b></td>\n") |
if ($hash{'display_attrs_0'} == 1); |
if ($hash{'display_attrs_0'} == 1); |
Line 739 sub dynmetaread {
|
Line 721 sub dynmetaread {
|
} |
} |
|
|
sub initdebug { |
sub initdebug { |
|
my $html=&Apache::lonxml::xmlbegin(); |
return <<ENDJS; |
return <<ENDJS; |
<script> |
<script> |
var debugging = true; |
var debugging = true; |
Line 751 function output(text) {
|
Line 734 function output(text) {
|
debuggingWindow.document.writeln(text); |
debuggingWindow.document.writeln(text); |
} |
} |
} |
} |
output("<html><head><title>Debugging Window</title></head><body><pre>"); |
output('$html<head><title>Debugging Window</title><!-- for lonindexer.pm --></head><body><pre>'); |
</script> |
</script> |
ENDJS |
ENDJS |
} |
} |
Line 871 sub display_line {
|
Line 854 sub display_line {
|
$diropen.'.gif"'); |
$diropen.'.gif"'); |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
"\n"); |
"\n"); |
my $quotable_filecom = &javascript_escape($filecom[0]); |
my $quotable_filecom = &Apache::loncommon::escape_single($filecom[0]); |
$r->print ('<a href="javascript:gothere(\''.$quotable_filecom. |
$r->print ('<a href="javascript:gothere(\''.$quotable_filecom. |
'\')"><img src="'.$iconpath.'server.gif"'); |
'\')"><img src="'.$iconpath.'server.gif"'); |
$r->print (' border="0" /></a>'."\n"); |
$r->print (' border="0" /></a>'."\n"); |
Line 899 sub display_line {
|
Line 882 sub display_line {
|
'.gif"'); |
'.gif"'); |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
"\n"); |
"\n"); |
my $quotable_curdir = &javascript_escape($curdir); |
my $quotable_curdir = &Apache::loncommon::escape_single($curdir); |
$r->print ('<a href="javascript:gothere(\''.$quotable_curdir |
$r->print ('<a href="javascript:gothere(\''.$quotable_curdir |
.'\')"><img src='. |
.'\')"><img src='. |
$iconpath.'quill.gif border="0" name="'.$msg. |
$iconpath.'quill.gif border="0" name="'.$msg. |
Line 930 sub display_line {
|
Line 913 sub display_line {
|
$r->print("<tr valign='$valign' bgcolor=$fileclr><td nowrap='1' align='top'>"); |
$r->print("<tr valign='$valign' bgcolor=$fileclr><td nowrap='1' align='top'>"); |
|
|
if ($ENV{'form.catalogmode'} eq 'interactive') { |
if ($ENV{'form.catalogmode'} eq 'interactive') { |
my $quotable_filelink = &javascript_escape($filelink); |
my $quotable_filelink = &Apache::loncommon::escape_single($filelink); |
$r->print("<a href=\"javascript:select_data(\'", |
$r->print("<a href=\"javascript:select_data(\'", |
$quotable_filelink,"')\">"); |
$quotable_filelink,"')\">"); |
$r->print("<img src='",$iconpath,"select.gif' border='0' /></a>". |
$r->print("<img src='",$iconpath,"select.gif' border='0' /></a>". |
Line 991 sub display_line {
|
Line 974 sub display_line {
|
if ($filelink=~/\.(page|sequence)$/) { |
if ($filelink=~/\.(page|sequence)$/) { |
$r->print('</form>'); |
$r->print('</form>'); |
} |
} |
my $quotable_filelink = &javascript_escape($filelink); |
my $quotable_filelink = &Apache::loncommon::escape_single($filelink); |
|
|
|
|
$r->print (" <a href=\"javascript:openWindow('".$quotable_filelink. |
$r->print (" <a href=\"javascript:openWindow('".$quotable_filelink. |
Line 1058 sub display_line {
|
Line 1041 sub display_line {
|
my $source = &Apache::lonnet::metadata($filelink,'sourceavail'); |
my $source = &Apache::lonnet::metadata($filelink,'sourceavail'); |
if($source eq 'open') { |
if($source eq 'open') { |
my $sourcelink = &Apache::lonsource::make_link($filelink,$listname); |
my $sourcelink = &Apache::lonsource::make_link($filelink,$listname); |
my $quotable_sourcelink = &javascript_escape($sourcelink); |
my $quotable_sourcelink = &Apache::loncommon::escape_single($sourcelink); |
$r->print('<td>'."<a href=\"javascript:openWindow('" |
$r->print('<td>'."<a href=\"javascript:openWindow('" |
.$quotable_sourcelink. |
.$quotable_sourcelink. |
"', 'previewsource', '700', '700', 'no', 'yes','yes')\";". |
"', 'previewsource', '700', '700', 'no', 'yes','yes')\";". |
Line 1137 sub display_line {
|
Line 1120 sub display_line {
|
'folder_pointer_'.$diropen.'.gif"'); |
'folder_pointer_'.$diropen.'.gif"'); |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
$r->print (' name="'.$msg.'" height="22" type="image" border="0">'. |
"\n"); |
"\n"); |
my $quotable_curdir = &javascript_escape($curdir); |
my $quotable_curdir = &Apache::loncommon::escape_single($curdir); |
$r->print ('<a href="javascript:gothere(\'' |
$r->print ('<a href="javascript:gothere(\'' |
.$quotable_curdir.'\')"><img src="'. |
.$quotable_curdir.'\')"><img src="'. |
$iconpath.'folder_'.$diropen.'.gif" border="0" /></a>'. |
$iconpath.'folder_'.$diropen.'.gif" border="0" /></a>'. |
Line 1257 sub cleanup {
|
Line 1240 sub cleanup {
|
} |
} |
} |
} |
|
|
|
|
|
|
|
|
|
|
=head1 NAME |
=head1 NAME |
|
|
Apache::lonindexer - mod_perl module for cross server filesystem browsing |
Apache::lonindexer - mod_perl module for cross server filesystem browsing |