-
- |
- |
- |
- |
- |
- |
-
-
- |
- |
- |
- |
- |
- |
-
+
+
-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} = $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
@@ -524,21 +549,31 @@ END
$storeuri='/'.(split(/\.(page|sequence)\/\//,$uri))[-1];
$storeuri=~s/\/+/\//g;
# ---------------------------------------------------------------- Bread crumbs
- $r->print(&Apache::lonhtmlcommon::crumbs($storeuri,'','',
- (($env{'form.catalogmode'} eq 'import')?
- 'document.forms.fileattr':'')).
- &Apache::lonhtmlcommon::select_recent('residx','resrecent',
-'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();'));
+ $r->print(
+ ''
+ .&Apache::lonhtmlcommon::crumbs(
+ $storeuri,
+ '',
+ '',
+ (($env{'form.catalogmode'} eq 'import')?
+ 'document.forms.fileattr':''))
+ .'
'
+ .&Apache::lonhtmlcommon::select_recent(
+ 'residx',
+ 'resrecent',
+ '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
my $reshome=$env{'course.'.$env{'request.course.id'}.'.reshome'};
if ($reshome) {
- $r->print("print('javascript:document.forms.fileattr.action="'.&Apache::loncommon::inhibit_menu_check($reshome).'";document.forms.fileattr.submit();');
} else {
$r->print($reshome);
}
- $r->print("'>".&mt('Home').'');
+ $r->print("'>".&mt('Home').'');
}
$r->print('');
# ------------------------------------------------------ Remember where we were
@@ -546,20 +581,19 @@ END
&Apache::lonhtmlcommon::store_recent('residx',$storeuri,$storeuri);
# -------------------------------------------------- Check All and Uncheck all
if ($env{'form.catalogmode'} eq 'import') {
- $r->print('
');
- $r->print('');
+ $r->print('');
+ $r->print('
');
}
# ----------------- output starting row to the indexed file/directory hierarchy
#$r->print(&initdebug());
#$r->print(&writedebug("Omit:@Omit")) if (@Omit);
#$r->print(&writedebug("Only:@Only")) if (@Only);
- $r->print('
');
- $r->print(&Apache::loncommon::start_data_table()
+ $r->print(&Apache::loncommon::start_data_table("LC_tableBrowseRes")
.&Apache::loncommon::start_data_table_header_row());
$r->print("".&mt('Name')." | \n");
$r->print("".&mt('Title')." | \n")
if ($hash{'display_attrs_0'} == 1);
- $r->print(''.&mt("Size")." (".&mt("bytes").") ".
+ $r->print(' | '.&mt("Size")." (".&mt("bytes").") ".
" | \n") if ($hash{'display_attrs_1'} == 1);
$r->print("".&mt("Last accessed")." | \n")
if ($hash{'display_attrs_2'} == 1);
@@ -723,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) {
@@ -746,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);
}
@@ -855,6 +901,7 @@ sub display_line {
my $fnptr = $filecom[3]&$dirptr;
my $msg = &mt('View').' '.$filecom[0].' '.&mt('resources');
$msg = &mt('Close').' '.$filecom[0].' '.&mt('directory') if $diropen eq 'opened';
+ my $nowOpen = ($diropen eq 'opened' ? 1 : 0);
my $tabtag='';
my $i=0;
@@ -862,7 +909,7 @@ sub display_line {
$tabtag=join('',$tabtag," | ")
if ($i != 9 &&
$hash{'display_attrs_'.$i} == 1);
- $i++;
+ $i++;
}
my $valign = ($hash{'display_attrs_7'} == 1 ? 'top' : 'bottom');
@@ -879,24 +926,23 @@ sub display_line {
$r->print("\n");
$r->print ('$tabtag");
+ $r->print(&mt("Up")."$tabtag");
$r->print(&Apache::loncommon::end_data_table_row());
return OK;
}
# Do we have permission to look at this?
-
- if($filecom[15] ne '1') { return OK if (!&Apache::lonnet::allowed('bre',$pathprefix.$filecom[0])); }
+ if($filecom[15] ne '1') { return OK if ((!&Apache::lonnet::allowed('bre',$pathprefix.$filecom[0])) && (!&Apache::lonnet::allowed('bro',$pathprefix.$filecom[0]))); }
# make absolute links appear on different background
#SB if ($absolute) { $fileclr='#ccdd99'; }
@@ -913,18 +959,17 @@ sub display_line {
my $anchor = $filecom[0];
$anchor =~ s/\W//g;
$r->print ('');
- $r->print ('');
- $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'.
+$r->print ('');
+ $r->print (' print (' alt="'.$msg.'" class="LC_fileicon" />'.
"\n");
my $quotable_filecom = &Apache::loncommon::escape_single($filecom[0]);
$r->print (' print (' class="LC_icon" />'."\n");
- $r->print (&mt("Domain")." - $listname ");
+ $r->print (' class="LC_fileicon" />'."\n");
+ $r->print (&mt("Domain")." - $listname ");
if (&Apache::lonnet::domain($listname,'description')) {
- $r->print("(".&Apache::lonnet::domain($listname,'description').
+ $r->print(" (".&Apache::lonnet::domain($listname,'description').
")");
}
$r->print("$tabtag");
@@ -940,50 +985,52 @@ sub display_line {
$anchor =~ s/\W//g;
#SB $r->print(" | $extrafield");
$r->print(&Apache::loncommon::start_data_table_row()
- .$extrafield.' | ');
+ .$extrafield.' | ');
&begin_form ($r,$curdir);
$r->print (' '."\n");
+ 'whitespace_21.gif" class="LC_icon" />'."\n");
$r->print ('');
- $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'.
+ $r->print ('');
+ $r->print (' print (' alt="'.$msg.'"/>'.
"\n");
my $quotable_curdir = &Apache::loncommon::escape_single($curdir);
$r->print (' ');
+ $iconpath.'quill.gif" class="LC_fileicon" />');
my $domain=(split(m|/|,$startdir))[2];
my $plainname=&Apache::loncommon::plainname($listname,$domain);
- $r->print ($listname);
- if (defined($plainname) && $plainname) { $r->print(" ($plainname) "); }
- $r->print(''.$tabtag);
+ $r->print ($listname.'');
+
+ if (defined($plainname) && $plainname) { $r->print(" ($plainname) "); }
+ $r->print(' | ');
$r->print(&Apache::loncommon::end_data_table_row());
- return OK;
+ return OK;
}
# display file
- if (($fnptr == 0 and $filecom[3] ne '') or $absolute) {
- my $title;
- my $filelink = $pathprefix.$filecom[0];
- if ($hash{'display_attrs_0'} == 1) {
- $title = &Apache::lonnet::gettitle($filelink);
- }
- my @file_ext = split (/\./,$listname);
- my $curfext = $file_ext[-1];
- if (@Omit) {
- foreach (@Omit) { return OK if (lc($curfext) eq $_); }
- }
- if (@Only) {
- my $skip = 1;
- foreach (@Only) { $skip = 0 if (lc($curfext) eq $_); }
- return OK if ($skip > 0);
- }
- # Set the icon for the file
- my $iconname = &Apache::loncommon::icon($listname);
+ if (($fnptr == 0 and $filecom[3] ne '') or $absolute) {
+ my $title;
+ my $filelink = $pathprefix.$filecom[0];
+ if ($hash{'display_attrs_0'} == 1) {
+ $title = &Apache::lonnet::gettitle($filelink);
+ }
+ my @file_ext = split (/\./,$listname);
+ my $curfext = $file_ext[-1];
+ if (@Omit) {
+ foreach (@Omit) { return OK if (lc($curfext) eq $_); }
+ }
+ if (@Only) {
+ my $skip = 1;
+ foreach (@Only) { $skip = 0 if (lc($curfext) eq $_); }
+ return OK if ($skip > 0);
+ }
+ # Set the icon for the file
+ my $iconname = &Apache::loncommon::icon($listname);
#SB $r->print("
);
- $r->print(&Apache::loncommon::start_data_table_row()); #SB valign="$valign" ?!?
- $r->print('');
+ $r->print(&Apache::loncommon::start_data_table_row()); #SB valign="$valign" ?!?
+ $r->print(' | ');
if ($env{'form.catalogmode'} eq 'interactive') {
my $quotable_filelink = &Apache::loncommon::escape_single($filelink);
@@ -991,17 +1038,17 @@ sub display_line {
$quotable_filelink,"')\">");
$r->print(" ".
"\n");
- $r->print(' | ');
+ $r->print(' | ');
} elsif ($env{'form.catalogmode'} eq 'import') {
$r->print(" | ');
+ $r->print(' | ');
$hash{"pre_${fnum}_link"}=$filelink;
$hash{"pre_${fnum}_title"}=$title;
if (!$hash{"pre_${fnum}_title"}) {
@@ -1016,66 +1063,55 @@ sub display_line {
$indent--;
}
# General indentation
- if ($indent > 0 and $indent < 16) {
- $r->print(" \n");
- } elsif ($indent >0) {
- my $ten = int($indent/10.);
- my $rem = $indent%10.0;
my $count = 0;
- while ($count < $ten) {
- $r->print(" \n");
- $count++;
+ while ($count < $indent) {
+ $r->print(' ');
+ $count++;
}
- $r->print(" \n") if $rem > 0;
- }
# Sequence open/close icon
if ($filelink=~/\.(page|sequence)$/) {
my $curdir = $startdir.$filecom[0].'/';
my $anchor = $curdir;
$anchor =~ s/\W//g;
$r->print ('');
- $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'.
+ $r->print ('');
+ $r->print ('');
+ $r->print (' print (' alt="'.$msg.'" />'.
"\n");
}
# Filetype icons
- $r->print(" \n");
+ $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");
+ $r->print("\n");
if ($hash{'display_attrs_0'} == 1) {
$r->print(' '.($title eq '' ? ' ' : $title).
' | '."\n");
}
- $r->print(' ',
+ $r->print(' | ',
$filecom[8]," | \n")
if $hash{'display_attrs_1'} == 1;
- $r->print(' '.
+ $r->print(' | '.
(&Apache::lonlocal::locallocaltime($filecom[9]))." | \n")
if $hash{'display_attrs_2'} == 1;
- $r->print(' '.
+ $r->print(' | '.
(&Apache::lonlocal::locallocaltime($filecom[10]))." | \n")
if $hash{'display_attrs_3'} == 1;
if ($hash{'display_attrs_4'} == 1) {
my $author = &Apache::lonnet::metadata($filelink,'author');
- $r->print(' '.($author eq '' ? ' ' : $author).
+ $r->print(' | '.($author eq '' ? ' ' : $author).
" | \n");
}
if ($hash{'display_attrs_5'} == 1) {
@@ -1095,17 +1131,13 @@ sub display_line {
# statistics
&dynmetaread($filelink);
$r->print("");
- &dynmetaprint($r,$filelink,'count');
- &dynmetaprint($r,$filelink,'course');
- &dynmetaprint($r,$filelink,'stdno');
- &dynmetaprint($r,$filelink,'avetries');
- &dynmetaprint($r,$filelink,'difficulty');
- &dynmetaprint($r,$filelink,'disc');
- &dynmetaprint($r,$filelink,'clear');
- &dynmetaprint($r,$filelink,'technical');
- &dynmetaprint($r,$filelink,'correct');
- &dynmetaprint($r,$filelink,'helpful');
- &dynmetaprint($r,$filelink,'depth');
+
+ for (qw(count course stdno avetries difficulty disc clear technical
+ correct helpful depth)) {
+
+ dynmetaprint($r,$filelink,$_);
+ }
+
$r->print(" | \n");
}
@@ -1128,11 +1160,9 @@ sub display_line {
&dynmetaread($filelink);
$r->print('');
&coursecontext($r,$filelink);
- &dynmetaprint($r,$filelink,'goto_list');
- &dynmetaprint($r,$filelink,'comefrom_list');
- &dynmetaprint($r,$filelink,'sequsage_list');
- &dynmetaprint($r,$filelink,'dependencies');
- &dynmetaprint($r,$filelink,'course_list');
+ for (qw(goto_list comefrom_list sequsage_list dependencies course_list)) {
+ dynmetaprint($r,$filelink,$_);
+ }
$r->print(' | ');
}
@@ -1141,7 +1171,7 @@ sub display_line {
if ($hash{'display_attrs_7'} == 1) {
# Show resource
my $output=&showpreview($filelink);
- $r->print(' '.($output eq '' ? ' ':$output).
+ $r->print(' | '.($output eq '' ? ' ':$output).
" | \n");
}
@@ -1188,36 +1218,32 @@ sub display_line {
#SB $r->print("
$extrafield");
$r->print(&Apache::loncommon::start_data_table_row()); # SB: bgcolor suggestion: darkgrey ("LC_info_row"?!?)
# $r->print(' |
');
- $r->print($extrafield.'');
+ $r->print($extrafield.' | ');
&begin_form ($r,$curdir);
my $indentm1 = $indent-1;
- if ($indentm1 < 12 and $indentm1 > 0) {
- $r->print(" \n");
- } else {
- my $ten = int($indentm1/10.);
- my $rem = $indentm1%10.0;
- my $count = 0;
- while ($count < $ten) {
- $r->print (" \n");
- $count++;
- }
- $r->print (" \n") if $rem > 0;
+ my $count = 0;
+ while ($count < $indentm1) {
+ $r->print (' ');
+ $count++;
}
$r->print ('');
- $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'.
+ $r->print ('');
+ $r->print (' print (' alt="'.$msg.'" class="LC_fileicon" />'.
"\n");
my $quotable_curdir = &Apache::loncommon::escape_single($curdir);
- $r->print (''
- .' '.
- "\n");
- $r->print ("$listname | \n");
+
+ my $location = &Apache::loncommon::lonhttpdurl("/adm/lonIcons");
+ my $icon = "navmap.folder.".($nowOpen ? "open":"closed").'.gif';
+ $r->print (''
+ .'
'
+ ."\n");
+ $r->print ("$listname");
+ $r->print('');
# Attributes
my $filelink = $startdir.$filecom[0].'/default';
@@ -1226,13 +1252,13 @@ sub display_line {
$r->print(' '.($title eq '' ? ' ' : $title).
' | '."\n");
}
- $r->print(' ',
+ $r->print(' | ',
$filecom[8]," | \n")
if $hash{'display_attrs_1'} == 1;
- $r->print(' '.
+ $r->print(' | '.
(&Apache::lonlocal::locallocaltime($filecom[9]))." | \n")
if $hash{'display_attrs_2'} == 1;
- $r->print(' '.
+ $r->print(' | '.
(&Apache::lonlocal::locallocaltime($filecom[10]))." | \n")
if $hash{'display_attrs_3'} == 1;
@@ -1295,6 +1321,7 @@ sub display_line {
" \n");
}
+
$r->print(&Apache::loncommon::end_data_table_row());
}
@@ -1344,7 +1371,6 @@ sub showpreview {
close(FH);
}
}
- $output=''.$output.'';
} elsif ($embstyle eq 'img') {
$output='
';
} elsif ($filelink=~m{^/res/($match_domain)/($match_username)/}) {
@@ -1375,7 +1401,7 @@ sub begin_form {
$uri=&Apache::loncommon::escape_single($uri);
$r->print ('