--- loncom/interface/lonindexer.pm 2011/07/04 09:24:58 1.209 +++ loncom/interface/lonindexer.pm 2013/08/08 14:44:11 1.213.4.5 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.209 2011/07/04 09:24:58 foxr Exp $ +# $Id: lonindexer.pm,v 1.213.4.5 2013/08/08 14:44:11 raeburn 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 @@ -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,}) @@ -755,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) { @@ -778,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); } @@ -992,10 +1006,10 @@ $r->print ('print(''. ''.$tabtag); + 'alt="'.&mt('save in Stored Links').'" style="width:22px;"/>'.$tabtag); $r->print(&Apache::loncommon::end_data_table_row()); return OK; } @@ -1077,25 +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('print(''. ''); + 'alt="'.&mt('save in Stored Links').'" style="width:22px;"/>'); if ($hash{'display_attrs_0'} == 1) { $r->print(' '.($title eq '' ? ' ' : $title). ' '."\n"); @@ -1246,10 +1256,10 @@ $r->print ('"); # Wishlistlink $r->print(''. ''); + 'alt="'.&mt('save in Stored Links').'" style="width:22px;"/>'); # Attributes my $filelink = $startdir.$filecom[0].'/default'; @@ -1338,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+)$/); @@ -1477,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.