--- loncom/interface/lonindexer.pm 2008/09/19 09:08:53 1.183 +++ loncom/interface/lonindexer.pm 2009/03/17 20:07:45 1.190 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.183 2008/09/19 09:08:53 bisitz Exp $ +# $Id: lonindexer.pm,v 1.190 2009/03/17 20:07:45 schulted Exp $ # # Copyright Michigan State University Board of Trustees # @@ -178,7 +178,7 @@ ENDSUBM # --------------------- define extra fields and buttons in case of special mode if ($env{'form.catalogmode'} eq 'interactive') { #SB $extrafield=''. - $extrafield=''. + $extrafield=''. ''; $colspan=" colspan='2' "; @@ -189,7 +189,7 @@ END } elsif ($env{'form.catalogmode'} eq 'import') { #SB $extrafield=''. - $extrafield=''. + $extrafield=''. ''; $colspan=" colspan='2' "; @@ -409,7 +409,7 @@ function gothere(val) { ENDHEADER my ($headerdom)=($uri=~m{^/res/($match_domain)/}); - $r->print(&Apache::loncommon::start_page('Browse Resources',$js, + $r->print(&Apache::loncommon::start_page('Content Library',$js, {'domain' => $headerdom,})); # ---------------------------------- get state of file types to be showing if ($env{'form.only'}) { @@ -420,7 +420,7 @@ ENDHEADER # ---------------------------------- get state of file attributes to be showing if ($env{'form.attrs'}) { - for (my $i=0; $i<=11; $i++) { + for (my $i=0; $i<=14; $i++) { delete $hash{'display_attrs_'.$i}; if ($env{'form.attr'.$i} == 1) { $attrchk[$i] = 'checked'; @@ -428,7 +428,7 @@ ENDHEADER } } } else { - for (my $i=0; $i<=11; $i++) { + for (my $i=0; $i<=14; $i++) { $attrchk[$i] = 'checked' if $hash{'display_attrs_'.$i} == 1; } } @@ -444,6 +444,9 @@ ENDHEADER 'st' => 'Statistics', 'au' => 'Author', 'kw' => 'Keywords', + 'sb' => 'Subject', + 'nt' => 'Notes', + 'ab' => 'Abstract', 'ln' => 'Language', 'sa' => 'Source Available', 'sr' => 'Show resource', @@ -467,17 +470,20 @@ ENDHEADER + + +   @@ -521,13 +527,13 @@ END # -------------------------------------------------------- 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 @@ -543,12 +549,12 @@ END #$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_tableOfContent") .&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); @@ -569,7 +575,16 @@ END if ($hash{'display_attrs_11'} == 1); $r->print("".&mt("Resource")."\n") if ($hash{'display_attrs_7'} == 1); - $r->print(&Apache::loncommon::end_data_table_header_row()); + $r->print("".&mt("Subject")."\n") + if ($hash{'display_attrs_12'} == 1); + $r->print("".&mt("Notes")."\n") + if ($hash{'display_attrs_13'} == 1); + $r->print("".&mt("Abstract")."\n") + if ($hash{'display_attrs_14'} == 1); + + $r->print(&Apache::loncommon::end_data_table_header_row()); + + # ----------------- read in what directories have previously been set to "open" foreach (keys %hash) { @@ -831,10 +846,11 @@ 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; - while ($i<=11) { + while ($i<=14) { $tabtag=join('',$tabtag," ") if ($i != 9 && $hash{'display_attrs_'.$i} == 1); @@ -862,11 +878,11 @@ sub display_line { $r->print(&Apache::loncommon::inhibit_menu_check('input')); $r->print (''."\n"); - $r->print (''."\n"); - $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. + $r->print (''."\n"); + $r->print ('print (' name="'.$msg.'" type="image" class="LC_icon" />'. "\n"); - $r->print(&mt("Up")."$tabtag"); + $r->print(&mt("Up")."$tabtag"); $r->print(&Apache::loncommon::end_data_table_row()); return OK; } @@ -889,16 +905,15 @@ 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 (' name="'.$msg.'" type="image" class="LC_icon" />'. "\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_icon" />'."\n"); + $r->print (&mt("Domain")." - $listname "); if (&Apache::lonnet::domain($listname,'description')) { $r->print("(".&Apache::lonnet::domain($listname,'description'). ")"); @@ -916,50 +931,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 (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); my $quotable_curdir = &Apache::loncommon::escape_single($curdir); $r->print (''.$msg.''); + $iconpath.'quill.gif" class="LC_indexer_icon" />'); 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(''.$tabtag); $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); -#SB $r->print(""); - $r->print(&Apache::loncommon::start_data_table_row()); # valign="$valign" ?!?" - $r->print(''); + 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(''); if ($env{'form.catalogmode'} eq 'interactive') { my $quotable_filelink = &Apache::loncommon::escape_single($filelink); @@ -967,7 +984,7 @@ sub display_line { $quotable_filelink,"')\">"); $r->print("\"\"". "\n"); - $r->print(""); + $r->print(''); } elsif ($env{'form.catalogmode'} eq 'import') { $r->print("
\n"); $r->print("print("checked"); } $r->print(" />\n"); - $r->print("
"); + $r->print(''); $hash{"pre_${fnum}_link"}=$filelink; $hash{"pre_${fnum}_title"}=$title; if (!$hash{"pre_${fnum}_title"}) { @@ -992,21 +1009,12 @@ sub display_line { $indent--; } # General indentation - if ($indent > 0 and $indent < 11) { - $r->print("\"\"\n"); - } elsif ($indent >0) { - my $ten = int($indent/10.); - my $rem = $indent%10.0; my $count = 0; - while ($count < $ten) { + while ($count < $indent) { $r->print("\"\"\n"); - $count++; + "whitespace_21.gif class='LC_icon' />\n"); + $count++; } - $r->print("\"\"\n") if $rem > 0; - } # Sequence open/close icon if ($filelink=~/\.(page|sequence)$/) { my $curdir = $startdir.$filecom[0].'/'; @@ -1014,8 +1022,8 @@ sub display_line { $anchor =~ s/\W//g; $r->print (''); $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. + 'arrow'.($nowOpen ? "open" : "closed" ).'.gif"'); + $r->print (' name="'.$msg.'" type="image" class="LC_icon" />'. "\n"); } # Filetype icons @@ -1034,18 +1042,18 @@ sub display_line { 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; @@ -1060,7 +1068,6 @@ sub display_line { $r->print(' '.($keywords eq '' ? ' ' : $keywords). " \n"); } -#' if ($hash{'display_attrs_6'} == 1) { my $lang = &Apache::lonnet::metadata($filelink,'language'); @@ -1112,14 +1119,38 @@ sub display_line { &dynmetaprint($r,$filelink,'course_list'); $r->print(''); } - if ($hash{'display_attrs_7'} == 1) { + + + + if ($hash{'display_attrs_7'} == 1) { # Show resource my $output=&showpreview($filelink); $r->print(' '.($output eq '' ? ' ':$output). " \n"); - } - $r->print(&Apache::loncommon::end_data_table_row()); } + + if ($hash{'display_attrs_12'} == 1) { + my $subject = &Apache::lonnet::metadata($filelink,'subject'); + $r->print(' '.($subject eq '' ? ' ' : $subject). + " \n"); + } + + if ($hash{'display_attrs_13'} == 1) { + my $notes = &Apache::lonnet::metadata($filelink,'notes'); + $r->print(' '.($notes eq '' ? ' ' : $notes). + " \n"); + } + + if ($hash{'display_attrs_14'} == 1) { + my $abstract = &Apache::lonnet::metadata($filelink,'abstract'); + $r->print(' '.($abstract eq '' ? ' ' : $abstract). + " \n"); + } + + $r->print(&Apache::loncommon::end_data_table_row()); +} + + # -- display directory if ($fnptr == $dirptr) { @@ -1129,36 +1160,31 @@ 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 < 11 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 ("\"\"\n"); + $count++; } $r->print (''); - $r->print ('print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. + $r->print (''); + $r->print ('print (' name="'.$msg.'" class="LC_icon" />'. "\n"); my $quotable_curdir = &Apache::loncommon::escape_single($curdir); - $r->print ('' - .''.&mt('Open Folder').''. - "\n"); - $r->print ("$listname\n"); + + my $location = &Apache::loncommon::lonhttpdurl("/adm/lonIcons"); + my $icon = "navmap.folder.".($nowOpen ? "open":"closed").'.gif'; + $r->print ('' + .''.&mt('Open Folder').''. + "\n"); + $r->print ("$listname\n"); # Attributes my $filelink = $startdir.$filecom[0].'/default'; @@ -1167,13 +1193,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; @@ -1194,19 +1220,37 @@ sub display_line { $r->print(' '.($lang eq '' ? ' ' : $lang). " \n"); } + if ($hash{'display_attrs_8'} == 1) { $r->print(' '); } if ($hash{'display_attrs_10'} == 1) { $r->print(' '); } - if ($hash{'display_attrs_11'} == 1) { - $r->print(' '); - } if ($hash{'display_attrs_7'} == 1) { $r->print(' '); - } - $r->print(&Apache::loncommon::end_data_table_row()); + } + if ($hash{'display_attrs_11'} == 1) { + $r->print(' '); + } + if ($hash{'display_attrs_12'} == 1) { + my $subject = &Apache::lonnet::metadata($filelink,'subject'); + $r->print(' '.($subject eq '' ? ' ' : $subject). + " \n"); + } + if ($hash{'display_attrs_13'} == 1) { + my $notes = &Apache::lonnet::metadata($filelink,'notes'); + $r->print(' '.($notes eq '' ? ' ' : $notes). + " \n"); + } + + if ($hash{'display_attrs_14'} == 1) { + my $abstract = &Apache::lonnet::metadata($filelink,'abstract'); + $r->print(' '.($abstract eq '' ? ' ' : $abstract). + " \n"); + } + + $r->print(&Apache::loncommon::end_data_table_row()); } } @@ -1255,7 +1299,7 @@ sub showpreview { close(FH); } } - $output=''.$output.''; + $output=''.$output.''; } elsif ($embstyle eq 'img') { $output=''.&mt('Preview').''; } elsif ($filelink=~m{^/res/($match_domain)/($match_username)/}) {