X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FCGI%2FBrowse.pm;h=d9f4b8a5db8b1e48a9b8702514993e149447ba3a;hp=3eb7f30ec710eaf675f7c0553f4b4e3982496fc9;hb=31a7aca27ffd75e0aee9836704599cdb95dc2421;hpb=a7e968ce327855f2ba2624ca8517069a936c9b5b diff --git a/lib/BackupPC/CGI/Browse.pm b/lib/BackupPC/CGI/Browse.pm index 3eb7f30..d9f4b8a 100644 --- a/lib/BackupPC/CGI/Browse.pm +++ b/lib/BackupPC/CGI/Browse.pm @@ -28,7 +28,7 @@ # #======================================================================== # -# Version 2.1.0_CVS, released 3 Jul 2003. +# Version 3.0.0beta2, released 11 Nov 2006. # # See http://backuppc.sourceforge.net. # @@ -37,6 +37,7 @@ package BackupPC::CGI::Browse; use strict; +use Encode; use BackupPC::CGI::Lib qw(:all); use BackupPC::View; use BackupPC::Attrib qw(:all); @@ -106,6 +107,7 @@ sub action $attr = $view->dirAttrib($num, $share, $relDir); if ( !defined($attr) ) { + $relDir = decode_utf8($relDir); ErrorExit(eval("qq{$Lang->{Can_t_browse_bad_directory_name2}}")); } @@ -156,6 +158,7 @@ sub action } my $dirName = $f; $dirName =~ s/ / /g; + $dirName = decode_utf8($dirName); push(@DirStr, {needTick => 1, tdArgs => " class=\"$tdStyle\"", link => <{type}); my $modeStr = sprintf("0%o", $a->{mode} & 07777); $iconStr = < + EOF $attrStr .= <$typeStr @@ -215,14 +218,11 @@ EOF $attrStr .= " \n"; } (my $fDisp = "${EscHTML($f)}") =~ s/ / /g; + $fDisp = decode_utf8($fDisp); if ( $gotDir ) { $fileStr .= < -
-  $iconStr - -  $fDisp -
+  $iconStr $fDisp $attrStr @@ -230,11 +230,7 @@ EOF } else { $fileStr .= < -
-  $iconStr - -  $fDisp -
+  $iconStr $fDisp $attrStr @@ -259,7 +255,7 @@ EOF } } $share = $currDir; - my $dirDisplay = "$share/$dir"; + my $dirDisplay = decode_utf8("$share/$dir"); $dirDisplay =~ s{//+}{/}g; $dirDisplay =~ s{/+$}{}g; $dirDisplay = "/" if ( $dirDisplay eq "" ); @@ -290,26 +286,22 @@ EOF } else { $fileStr = eval("qq{$Lang->{The_directory_is_empty}}"); } - my @otherDirs; my $pathURI = $dir; my $shareURI = $share; $pathURI =~ s/([^\w.\/-])/uc sprintf("%%%02x", ord($1))/eg; $shareURI =~ s/([^\w.\/-])/uc sprintf("%%%02x", ord($1))/eg; - foreach my $i ( $view->backupList($share, $dir) ) { - push(@otherDirs, $i); - } - if ( @otherDirs ) { - my $otherDirs = join(",\n", @otherDirs); - my $inc = 0; - foreach my $value (@otherDirs) { - my $selected = undef; - my $showDate = timeStamp2($Backups[$inc]{startTime}); - $selected = " selected" if ($value == $num); - $otherDirs .= "\n"; - $inc++; + if ( my @otherDirs = $view->backupList($share, $dir) ) { + my $otherDirs; + foreach my $i ( @otherDirs ) { + my $selected; + my $showDate = timeStamp2($Backups[$i]{startTime}); + my $backupNum = $Backups[$i]{num}; + $selected = " selected" if ( $backupNum == $num ); + $otherDirs .= "\n"; } $filledBackup .= eval("qq{$Lang->{Visit_this_directory_in_backup}}"); } + $dir = decode_utf8($dir); my $content = eval("qq{$Lang->{Backup_browse_for__host}}"); Header(eval("qq{$Lang->{Browse_backup__num_for__host}}"), $content); Trailer();