--- loncom/interface/lonindexer.pm 2006/12/11 02:12:08 1.155 +++ loncom/interface/lonindexer.pm 2007/07/11 20:32:15 1.170 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Directory Indexer # -# $Id: lonindexer.pm,v 1.155 2006/12/11 02:12:08 albertel Exp $ +# $Id: lonindexer.pm,v 1.170 2007/07/11 20:32:15 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -128,7 +128,6 @@ sub handler { if ($env{'form.launch'} eq '1') { &start_fresh_session(\%dbfile); } - while(my($key,$value)=each(%dbfile)) { $hash{$key}=$value; } @@ -174,7 +173,7 @@ ENDSUBM if ($env{'form.catalogmode'} eq 'interactive') { $extrafield=''. ''; + ' class="LC_icon" />'; $colspan=" colspan='2' "; my $cl=&mt('Close'); $closebutton=<'. ''; + ' class="LC_icon" />'; $colspan=" colspan='2' "; my $cl=&mt('Close'); my $gi=&mt('Import'); @@ -242,7 +241,7 @@ END # # if (!defined($mode) || ($mode ne 'edit' && $mode ne 'parmset')) { - my $location = "/adm/groupsort?catalogmode=import&"; + my $location = "/adm/groupsort?&inhibitmenu=yes&catalogmode=import&"; $location .= "mode=".$mode."&"; $location .= "acts="; $catalogmodefunctions=<<"END"; @@ -346,10 +345,38 @@ function queue(val) { END } + my $inhibit_menu = "+'&".&Apache::loncommon::inhibit_menu_check()."'"; # ---------------------------------------------------------------- Print Header + my $js = <<"ENDHEADER"; ENDHEADER @@ -385,11 +412,10 @@ ENDHEADER $ac++; } # sorting through the actions and changing the global database hash - foreach (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) { - my $key=$_; + foreach my $key (sort {$achash{$a}<=>$achash{$b}} (keys %ahash)) { if ($ahash{$key} eq '1') { $hash{'store_'.$hash{'pre_'.$key.'_link'}}= - $hash{'pre_'.$key.'_title'}; + $hash{'pre_'.$key.'_title'}; $hash{'storectr_'.$hash{'pre_'.$key.'_link'}}= $hash{'storectr'}+0; $hash{'storectr'}++; @@ -474,6 +500,7 @@ ENDHEADER $closebutton $groupimportbutton END + $r->print(&Apache::loncommon::inhibit_menu_check('input')); # -------------- Filter out sequence containment in crumbs and "recent folders" my $storeuri=$uri; $storeuri='/'.(split(/\.(page|sequence)\/\//,$uri))[-1]; @@ -489,7 +516,7 @@ END if ($reshome) { $r->print("print('javascript:document.forms.fileattr.action="'.$reshome.'";document.forms.fileattr.submit();'); + $r->print('javascript:document.forms.fileattr.action="'.&Apache::loncommon::inhibit_menu_check($reshome).'";document.forms.fileattr.submit();'); } else { $r->print($reshome); } @@ -499,6 +526,9 @@ END # ------------------------------------------------------ Remember where we were &Apache::loncommon::storeresurl($storeuri); &Apache::lonhtmlcommon::store_recent('residx',$storeuri,$storeuri); +# -------------------------------------------------- Check All and Uncheck all + $r->print('
'); + $r->print(''); # ----------------- output starting row to the indexed file/directory hierarchy my $titleclr="#ddffff"; #$r->print(&initdebug()); @@ -680,7 +710,7 @@ sub get_list { $uri=~s/\/+/\//g; foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$uri))) { my @ratpart=split(/\:/,$_); - push @list,$ratpart[1]; + push(@list,&LONCAPA::map::qtescape($ratpart[1])); } $hash{'dirlist_files_'.$luri} = join("\n",@list); } else { @@ -689,7 +719,7 @@ sub get_list { $hash{'dirlist_files_'.$luri} = join("\n",@list); $hash{'dirlist_timestamp_files_'.$luri} = time; } - return @list=&match_ext($r,@list); + return @list=&match_ext($r,@list); } sub dynmetaread { @@ -812,7 +842,7 @@ sub display_line { $updir='/'.(split(/\.(page|sequence)\/\//,$startdir))[-1]; $updir=~s/\/+/\//g; - $r->print("$extrafield"); + $r->print("$extrafield"); $r->print("\n"); $r->print ('
'."\n"); + $r->print(&Apache::loncommon::inhibit_menu_check('input')); $r->print (''."\n"); $r->print (''."\n"); $r->print ('print (' name="'.$msg.'" height="22" type="image" border="0" />'. + $r->print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); $r->print(&mt("Up")."
$tabtag\n"); return OK; @@ -840,24 +871,24 @@ sub display_line { if ($filecom[1] eq 'domain') { $r->print (''."\n") if ($env{'form.dirPointer'} eq "on"); - $r->print("$extrafield"); + $r->print("$extrafield"); $r->print(""); &begin_form ($r,$filecom[0]); my $anchor = $filecom[0]; - $anchor =~ s/\///g; + $anchor =~ s/\W//g; $r->print ('
'); $r->print (''); $r->print ('print (' name="'.$msg.'" height="22" type="image" border="0" />'. + $r->print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); my $quotable_filecom = &Apache::loncommon::escape_single($filecom[0]); $r->print ('print (' border="0" />'."\n"); + $r->print (' class="LC_icon" />'."\n"); $r->print (&mt("Domain")." - $listname "); - if ($Apache::lonnet::domaindescription{$listname}) { - $r->print("(".$Apache::lonnet::domaindescription{$listname}. + if (&Apache::lonnet::domain($listname,'description')) { + $r->print("(".&Apache::lonnet::domain($listname,'description'). ")"); } $r->print ("$tabtag\n"); @@ -866,24 +897,23 @@ sub display_line { # display user directory } if ($filecom[1] eq 'user') { - $r->print("$extrafield"); - $r->print("\n"); + # $r->print("$extrafield"); my $curdir = $startdir.$filecom[0].'/'; my $anchor = $curdir; - $anchor =~ s/\///g; + $anchor =~ s/\W//g; + $r->print("$extrafield"); &begin_form ($r,$curdir); $r->print (''."\n"); + 'whitespace1.gif" class="LC_icon" />'."\n"); $r->print (''); $r->print ('print (' name="'.$msg.'" height="22" type="image" border="0" />'. + $r->print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); my $quotable_curdir = &Apache::loncommon::escape_single($curdir); $r->print (''); + .'\')">'.$msg.''); my $domain=(split(m|/|,$startdir))[2]; my $plainname=&Apache::loncommon::plainname($listname,$domain); $r->print ($listname); @@ -894,7 +924,11 @@ sub display_line { # 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) { @@ -907,13 +941,13 @@ sub display_line { } # Set the icon for the file my $iconname = &Apache::loncommon::icon($listname); - $r->print(""); + $r->print(""); if ($env{'form.catalogmode'} eq 'interactive') { my $quotable_filelink = &Apache::loncommon::escape_single($filelink); $r->print(""); - $r->print("\"\"". + $r->print("\"\"". "\n"); $r->print(""); } elsif ($env{'form.catalogmode'} eq 'import') { @@ -927,54 +961,56 @@ sub display_line { $r->print(" />\n"); $r->print(""); $hash{"pre_${fnum}_link"}=$filelink; + $hash{"pre_${fnum}_title"}=$title; + if (!$hash{"pre_${fnum}_title"}) { + $hash{"pre_${fnum}_title"} = 'Not_retrieved'; + } $fnum++; } # Form to open or close sequences if ($filelink=~/\.(page|sequence)$/) { my $curdir = $startdir.$filecom[0].'/'; - my $anchor = $curdir; - $anchor =~ s/\///g; &begin_form($r,$curdir); $indent--; } # General indentation if ($indent > 0 and $indent < 11) { - $r->print("\"\"\n"); + $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"); + $r->print("\"\"\n"); $count++; } $r->print("\"\"\n") if $rem > 0; + ".gif class='LC_icon' />\n") if $rem > 0; } # Sequence open/close icon if ($filelink=~/\.(page|sequence)$/) { my $curdir = $startdir.$filecom[0].'/'; my $anchor = $curdir; - $anchor =~ s/\///g; + $anchor =~ s/\W//g; $r->print (''); $r->print ('print (' name="'.$msg.'" height="22" type="image" border="0" />'. + $r->print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); } # Filetype icons - $r->print("\"\"\n"); + $r->print("\"\"\n"); my $quotable_filelink = &Apache::loncommon::escape_single($filelink); - $r->print (" $listname "); - + $quotable_filelink = &Apache::loncommon::escape_single($filelink.'.meta'); + &Apache::loncommon::inhibit_menu_check(\$quotable_filelink); $r->print (" (metadata) "); # Close form to open/close sequence if ($filelink=~/\.(page|sequence)$/) { @@ -982,7 +1018,6 @@ sub display_line { } $r->print("\n"); if ($hash{'display_attrs_0'} == 1) { - my $title = &Apache::lonnet::gettitle($filelink,'title'); $r->print(' '.($title eq '' ? ' ' : $title). ' '."\n"); } @@ -1038,6 +1073,7 @@ sub display_line { if($source eq 'open') { my $sourcelink = &Apache::lonsource::make_link($filelink,$listname); my $quotable_sourcelink = &Apache::loncommon::escape_single($sourcelink); + &Apache::loncommon::inhibit_menu_check(\$quotable_sourcelink); $r->print(''."print("$extrafield"); + $anchor =~ s/\W//g; + $r->print("$extrafield"); &begin_form ($r,$curdir); my $indentm1 = $indent-1; if ($indentm1 < 11 and $indentm1 > 0) { $r->print("\"\"\n"); + ".gif class='LC_icon' />\n"); } else { my $ten = int($indentm1/10.); my $rem = $indentm1%10.0; my $count = 0; while ($count < $ten) { $r->print ("\"\"\n"); + ,"whitespace10.gif class='LC_icon' />\n"); $count++; } $r->print ("\"\"\n") if $rem > 0; + ".gif class='LC_icon' />\n") if $rem > 0; } $r->print (''); $r->print ('print (' name="'.$msg.'" height="22" type="image" border="0" />'. + $r->print (' name="'.$msg.'" type="image" class="LC_indexer_icon" />'. "\n"); my $quotable_curdir = &Apache::loncommon::escape_single($curdir); $r->print ('' .''.&mt('Open Folder').''. + $iconpath.'folder_'.$diropen.'.gif" class="LC_icon" />'. "\n"); $r->print ("$listname\n"); # Attributes my $filelink = $startdir.$filecom[0].'/default'; if ($hash{'display_attrs_0'} == 1) { - my $title = &Apache::lonnet::gettitle($filelink,'title'); + my $title = &Apache::lonnet::gettitle($filelink); $r->print(' '.($title eq '' ? ' ' : $title). ' '."\n"); } @@ -1203,7 +1239,7 @@ sub showpreview { $output=''.&mt('Preview').''; } elsif ($filelink=~m{^/res/($match_domain)/($match_username)/}) { $output=''.&mt('Preview').''; } return $output; @@ -1225,7 +1261,8 @@ sub dynmetaprint { sub begin_form { my ($r,$uri) = @_; my $anchor = $uri; - $anchor =~ s/\///g; + $anchor =~ s/\W//g; + $uri=&Apache::loncommon::escape_single($uri); $r->print ('
'. "\n"); $r->print (''."\n"); + $r->print(&Apache::loncommon::inhibit_menu_check('input')); $dnum++; }