--- loncom/interface/lonindexer.pm 2010/06/06 02:40:30 1.207
+++ loncom/interface/lonindexer.pm 2013/07/19 18:24:17 1.219
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Directory Indexer
#
-# $Id: lonindexer.pm,v 1.207 2010/06/06 02:40:30 raeburn Exp $
+# $Id: lonindexer.pm,v 1.219 2013/07/19 18:24:17 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -34,9 +34,8 @@
## 1. Description of functions ##
## 2. Modules used by this module ##
## 3. Choices for different output views (detailed, summary, xml, etc) ##
-## 4. BEGIN block (to be run once after compilation) ##
-## 5. Handling routine called via Apache and mod_perl ##
-## 6. Other subroutines ##
+## 4. Handling routine called via Apache and mod_perl ##
+## 5. Other subroutines ##
## ##
###############################################################################
@@ -60,7 +59,6 @@ use LONCAPA qw(:match);
# ---------------------------------------- variables used throughout the module
my %hash; # global user-specific gdbm file
my %dirs; # keys are directories, values are the open/close status
-my %language; # has the reference information present in language.tab
my %dynhash; # hash of hashes for dynamic metadata
my %dynread; # hash of directories already read for dynamic metadata
my %fieldnames; # Metadata fieldnames
@@ -120,8 +118,8 @@ sub handler {
my $colspan='';
$extrafield='';
- my $diropendb =
- "/home/httpd/perl/tmp/$env{'user.domain'}_$env{'user.name'}_sel_res.db";
+ my $diropendb = LONCAPA::tempdir() .
+ "$env{'user.domain'}_$env{'user.name'}_sel_res.db";
%hash = ();
{
my %dbfile;
@@ -165,6 +163,8 @@ sub handler {
ENDSUBM
$r->print(&Apache::loncommon::start_page(undef,$js,
{'only_body' =>1,
+ 'add_modal' => 1,
+ 'add_wishlist' => 1,
'add_entries' =>
{'onload' => "load();"},}
).
@@ -390,6 +390,7 @@ function uncheckAll() {
}
}
}
+
function openWindow(url, wdwName, w, h, toolbar,scrollbar,locationbar) {
var xpos = (screen.width-w)/2;
xpos = (xpos < 0) ? '0' : xpos;
@@ -401,6 +402,7 @@ function openWindow(url, wdwName, w, h,
var newWin = window.open(url, wdwName, options);
newWin.focus();
}
+
function gothere(val) {
window.location=val+'?acts='+document.forms.fileattr.acts.value$inhibit_menu;
}
@@ -413,14 +415,14 @@ ENDHEADER
if ($env{'form.catalogmode'}) {
# "Popup mode"
$r->print(&Apache::loncommon::start_page('Browse published resources',$js,
- {'only_body' => 1,
+ {'only_body' => 1, 'add_wishlist'=>1, 'add_modal' =>1,
'domain' => $headerdom,}));
} else {
# Only display page header and breadcrumbs in non-popup mode
&Apache::lonhtmlcommon::clear_breadcrumbs();
&Apache::lonhtmlcommon::add_breadcrumb({
'text' => 'Browse published resources',
- 'href' => '/res/fhwfdev/?launch=1',
+ 'href' => '/res/'.$headerdom.'/?launch=1',
});
$r->print(&Apache::loncommon::start_page('Browse published resources',$js,
{'domain' => $headerdom,})
@@ -588,6 +590,7 @@ END
$r->print(&Apache::loncommon::start_data_table("LC_tableBrowseRes")
.&Apache::loncommon::start_data_table_header_row());
$r->print("
".&mt('Name')." \n");
+ $r->print(" \n");
$r->print("".&mt('Title')." \n")
if ($hash{'display_attrs_0'} == 1);
$r->print(''.&mt("Size")." (".&mt("bytes").") ".
@@ -754,6 +757,8 @@ sub scanDir {
sub get_list {
my ($r,$uri)=@_;
my @list=();
+ my $listerror;
+
(my $luri = $uri) =~ s/\//_/g;
if ($env{'form.updatedisplay'}) {
foreach (keys %hash) {
@@ -777,10 +782,20 @@ sub get_list {
$hash{'dirlist_files_'.$luri} = join("\n",@list);
} else {
# is really a directory
- @list = &Apache::lonnet::dirlist($uri);
+ (my $listref,$listerror) = &Apache::lonnet::dirlist($uri);
+ if (ref($listref) eq 'ARRAY') {
+ @list = @{$listref};
+ }
$hash{'dirlist_files_'.$luri} = join("\n",@list);
$hash{'dirlist_timestamp_files_'.$luri} = time;
}
+#Checking for error messages associated with empty directories or inaccessible servers (See Bug 4984)
+ if (($listerror eq 'no_such_dir') || ($listerror eq 'no_such_host') || ($listerror eq 'no_host')) {
+ $r->print("" . &mt("Directory does not exist."). "
");
+ } elsif ($listerror eq 'con_lost') {
+ $r->print("" . &mt("Directory temporarily not accessible."). "
");
+ }
+
return @list=&match_ext($r,@list);
}
@@ -922,7 +937,7 @@ sub display_line {
$r->print (' print (' alt="'.$msg.'" class="LC_fileicon" />'.
"\n");
- $r->print(&mt("Up")." $tabtag");
+ $r->print(&mt("Up")." $tabtag");
$r->print(&Apache::loncommon::end_data_table_row());
return OK;
}
@@ -957,7 +972,7 @@ $r->print (' (".&Apache::lonnet::domain($listname,'description').
")");
}
- $r->print("$tabtag");
+ $r->print(" $tabtag");
$r->print(&Apache::loncommon::end_data_table_row());
return OK;
@@ -989,7 +1004,12 @@ $r->print (' print(''.$tabtag);
+# Wishlistlink
+ $r->print(' '.
+ ' '.$tabtag);
$r->print(&Apache::loncommon::end_data_table_row());
return OK;
}
@@ -1071,19 +1091,21 @@ $r->print (' \n");
my $quotable_filelink = &Apache::loncommon::escape_single($filelink);
- $r->print (" $listname ");
+ $r->print (" $listname ");
$quotable_filelink = &Apache::loncommon::escape_single($filelink.'.meta');
&Apache::loncommon::inhibit_menu_check(\$quotable_filelink);
- $r->print (" (".&mt('metadata')." ) ");
+ $r->print (" (".&mt('metadata')." ) ");
# Close form to open/close sequence
if ($filelink=~/\.(page|sequence)$/) {
$r->print('');
}
$r->print(" \n");
+# Wishlistlink
+ $r->print(''.
+ ' ');
if ($hash{'display_attrs_0'} == 1) {
$r->print(' '.($title eq '' ? ' ' : $title).
' '."\n");
@@ -1231,7 +1253,13 @@ $r->print (' '
."\n");
- $r->print ("$listname\n");
+ $r->print ("$listname");
+# Wishlistlink
+ $r->print(''.
+ ' ');
# Attributes
my $filelink = $startdir.$filecom[0].'/default';
@@ -1320,15 +1348,18 @@ sub coursecontext {
my $filesymb=&Apache::lonnet::symbread($filelink);
if ($filesymb) {
my ($map,$index,$resource)=&Apache::lonnet::decode_symb($filesymb);
- $r->print(&mt('Already in this course: [_1] in folder/map [_2]. ',
- &Apache::lonnet::gettitle($resource),
- &Apache::lonnet::gettitle($map)));
+ $r->print(
+ &mt('Already in this course:').' '
+ .&mt('[_1] in folder/map [_2]',
+ &Apache::lonnet::gettitle($resource),
+ &Apache::lonnet::gettitle($map))
+ .' ');
}
}
sub showpreview {
my ($filelink)=@_;
- if ($filelink=~m-^(/ext/|http://)-) {
+ if ($filelink=~m-^(/ext/|https?://)-) {
return &mt('External Resource, preview not enabled');
}
my ($curfext)=($filelink=~/\.(\w+)$/);
@@ -1459,18 +1490,6 @@ This module enables a scheme of browsing
This is part of the LearningOnline Network with CAPA project
described at http://www.lon-capa.org.
-=head1 BEGIN SUBROUTINE
-
-This routine is only run once after compilation.
-
-=over 4
-
-=item *
-
-Initializes %language hash table.
-
-=back
-
=head1 HANDLER SUBROUTINE
This routine is called by Apache and mod_perl.