--- loncom/interface/lonindexer.pm 2010/03/31 13:20:46 1.206 +++ loncom/interface/lonindexer.pm 2011/12/09 01:04:27 1.213 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.206 2010/03/31 13:20:46 raeburn Exp $ +# $Id: lonindexer.pm,v 1.213 2011/12/09 01:04:27 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -120,8 +120,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 +165,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 +392,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 +404,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,7 +417,7 @@ 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 @@ -460,11 +464,12 @@ ENDHEADER push(@select_form_order,$types); } $select_file_categories{'select_form_order'} = \@select_form_order; + my $onchange = 'this.form.submit();'; my $type_element= &Apache::loncommon::select_form( $typeselect, 'only', - %select_file_categories); + \%select_file_categories,$onchange); my $type_selector = ''; @@ -587,6 +592,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").") ". @@ -753,6 +759,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) { @@ -776,10 +784,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); } @@ -921,7 +939,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; } @@ -956,7 +974,7 @@ $r->print ('(".&Apache::lonnet::domain($listname,'description'). ")"); } - $r->print("$tabtag"); + $r->print("$tabtag"); $r->print(&Apache::loncommon::end_data_table_row()); return OK; @@ -988,7 +1006,12 @@ $r->print ('print(''.$tabtag); +# Wishlistlink + $r->print(''. + ''.$tabtag); $r->print(&Apache::loncommon::end_data_table_row()); return OK; } @@ -1070,19 +1093,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"); @@ -1230,7 +1255,13 @@ $r->print ('' ."\n"); - $r->print ("$listname\n"); + $r->print ("$listname"); +# Wishlistlink + $r->print(''. + ''); # Attributes my $filelink = $startdir.$filecom[0].'/default';