--- loncom/interface/lonindexer.pm 2009/12/02 18:33:27 1.203 +++ loncom/interface/lonindexer.pm 2011/10/17 12:41:30 1.211 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.203 2009/12/02 18:33:27 bisitz Exp $ +# $Id: lonindexer.pm,v 1.211 2011/10/17 12:41:30 raeburn 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; @@ -321,10 +321,8 @@ function select_group() { function changeURL(val) { if (window.opener.document) { - var elementname = "$element"+"_value"; - var checkboxname = "$element"+"_setparmval"; + var elementname = "$element"; window.opener.document.forms["$form"].elements[elementname].value=val; - window.opener.document.forms["$form"].elements[checkboxname].checked=true; } else { alert("The file you selected is: "+val); } @@ -452,26 +450,29 @@ ENDHEADER } } + my @file_categories = &Apache::loncommon::filecategories(); + my %select_file_categories; + my @select_form_order = (''); + $select_file_categories{''} = &mt('All file types'); + foreach my $cat (@file_categories) { + my $types = join(",",&Apache::loncommon::filecategorytypes($cat)); + $select_file_categories{$types} = &mt($cat); + 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,$onchange); + my $type_selector = ''; + # ------------------------------- output state of file attributes to be showing # All versions has to the last item # since it does not take an extra col my %lt=&Apache::lonlocal::texthash( - 'ti' => 'Title', - 'si' => 'Size', - 'la' => 'Last access', - 'lm' => 'Last modified', - 'st' => 'Statistics', - 'au' => 'Author', - 'kw' => 'Keywords', - 'sb' => 'Subject', - 'nt' => 'Notes', - 'ab' => 'Abstract', - 'ln' => 'Language', - 'gl' => 'Grade Level', - 'sd' => 'Standards', - 'sa' => 'Source Available', - 'sr' => 'Show resource', - 'li' => 'Linked/Related Resources', 'av' => 'All versions', 'ud' => 'Update Display', 'pr' => 'Problems', @@ -479,59 +480,61 @@ ENDHEADER 'at' => 'All types', 'hd' => 'Display Options' ); - $r->print(< + my @disp_order = ('0','4','5','6','13','1','2','3','10','14','8','11','7','12','15','16'); + my %disp_options = &Apache::lonlocal::texthash ( + 0 => 'Title', + 4 => 'Author', + 5 => 'Keywords', + 6 => 'Language', + 13 => 'Notes', + 1 => 'Size', + 2 => 'Last access', + 3 => 'Last modified', + 10 => 'Source Available', + 14 => 'Abstract', + 8 => 'Statistics', + 11 => 'Linked/Related Resources', + 7 => 'Show resource', + 12 => 'Subject', + 15 => 'Grade Level', + 16 => 'Standards', + ); + my $cell = 0; + my $numinrow = 4; + $r->print(' +
-$lt{'hd'} - - - - - - - - - - - - - - - - - - +'.$lt{'hd'}.' +
 
'."\n"); + foreach my $item (@disp_order) { + my $style = 'padding-left: 12px; padding-right: 8px;'; + if ($cell%$numinrow == 0) { + $r->print(''); + } + $cell ++; + if ($cell > 3 * $numinrow) { + $style .= ' padding-bottom: 6px;'; + } + if (defined($disp_options{$item})) { + $r->print(''."\n"); + } + if ($cell > 1 && $cell%$numinrow == 0) { + $r->print(''); + } + } + $r->print(< - - - - - - + +
'. + '
  + +$type_selector
-END - my @file_categories = &Apache::loncommon::filecategories(); - my %select_file_categories; - my @select_form_order = (''); - $select_file_categories{''} = &mt('All file types'); - foreach my $cat (@file_categories) { - my $types = join(",",&Apache::loncommon::filecategorytypes($cat)); - $select_file_categories{$types} = &mt($cat); - push(@select_form_order,$types); - } - $select_file_categories{'select_form_order'} = \@select_form_order; - my $type_element= - &Apache::loncommon::select_form( - $typeselect, - 'only', - %select_file_categories); - $type_element = ''; - $r->print($type_element - .'
'); - $r->print(< $closebutton $groupimportbutton @@ -585,6 +588,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").") ". @@ -751,6 +755,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) { @@ -774,10 +780,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')) { + $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); } @@ -919,7 +935,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; } @@ -954,7 +970,7 @@ $r->print ('(".&Apache::lonnet::domain($listname,'description'). ")"); } - $r->print("$tabtag"); + $r->print("$tabtag"); $r->print(&Apache::loncommon::end_data_table_row()); return OK; @@ -986,7 +1002,12 @@ $r->print ('print(''.$tabtag); +# Wishlistlink + $r->print(''. + ''.$tabtag); $r->print(&Apache::loncommon::end_data_table_row()); return OK; } @@ -1081,6 +1102,12 @@ $r->print ('\n"); +# Wishlistlink + $r->print(''. + ''); if ($hash{'display_attrs_0'} == 1) { $r->print(' '.($title eq '' ? ' ' : $title). ' '."\n"); @@ -1223,12 +1250,18 @@ $r->print ('print ('' - .''.&mt('Open Folder').''. - "\n"); - $r->print ("$listname\n"); + $r->print ('' + .''.&mt('Open Folder').'' + ."\n"); + $r->print ("$listname"); +# Wishlistlink + $r->print(''. + ''); # Attributes my $filelink = $startdir.$filecom[0].'/default';