# Craig Barratt <cbarratt@users.sourceforge.net>
#
# COPYRIGHT
-# Copyright (C) 2003 Craig Barratt
+# Copyright (C) 2003-2009 Craig Barratt
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
#
#========================================================================
#
-# Version 3.0.0beta0, released 11 Jul 2006.
+# Version 3.2.0, released 31 Jul 2010.
#
# See http://backuppc.sourceforge.net.
#
package BackupPC::CGI::Browse;
use strict;
-use Encode;
+use Encode qw/decode_utf8/;
use BackupPC::CGI::Lib qw(:all);
use BackupPC::View;
use BackupPC::Attrib qw(:all);
#
# default to the newest backup
#
- if ( !defined($In{num}) && defined(@Backups) ) {
+ if ( !defined($In{num}) && defined(@Backups) && @Backups > 0 ) {
$i = @Backups - 1;
$num = $Backups[$i]{num};
}
my $backupTime = timeStamp2($Backups[$i]{startTime});
my $backupAge = sprintf("%.1f", (time - $Backups[$i]{startTime})
/ (24 * 3600));
- my $view = BackupPC::View->new($bpc, $host, \@Backups);
+ my $view = BackupPC::View->new($bpc, $host, \@Backups, {nlink => 1, only_increment => $In{only_increment}});
if ( $dir eq "" || $dir eq "." || $dir eq ".." ) {
$attr = $view->dirAttrib($num, "", "");
$attr = $view->dirAttrib($num, $share, $relDir);
if ( !defined($attr) ) {
+ $relDir = decode_utf8($relDir);
ErrorExit(eval("qq{$Lang->{Can_t_browse_bad_directory_name2}}"));
}
push(@DirStr, {needTick => 1,
tdArgs => " class=\"$tdStyle\"",
link => <<EOF});
-<a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path">$imgStr</a><a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path" class="$linkStyle"> $dirName</a></td></tr>
+<a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path&only_increment=$In{only_increment}">$imgStr</a><a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path&only_increment=$In{only_increment}" class="$linkStyle"> $dirName</a></td></tr>
EOF
$fileCnt++;
$gotDir = 1;
$a->{type});
my $modeStr = sprintf("0%o", $a->{mode} & 07777);
$iconStr = <<EOF;
-<img src="$Conf{CgiImageDirURL}/icon-$typeStr.gif" align="center">
+<img src="$Conf{CgiImageDirURL}/icon-$typeStr.png" valign="top">
EOF
$attrStr .= <<EOF;
<td align="center" class="fviewborder">$typeStr</td>
if ( $gotDir ) {
$fileStr .= <<EOF;
<tr><td class="fviewborder">
- <input type="checkbox" name="fcb$checkBoxCnt" value="$path"> $iconStr <a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path">$fDisp</a>
+ <input type="checkbox" name="fcb$checkBoxCnt" value="$path"> $iconStr <a href="$MyURL?action=browse&host=${EscURI($host)}&num=$num&share=$shareURI&dir=$path&only_increment=$In{only_increment}">$fDisp</a>
</td>
$attrStr
</tr>
}
}
$share = $currDir;
- my $dirDisplay = "$share/$dir";
+ my $dirDisplay = decode_utf8("$share/$dir");
$dirDisplay =~ s{//+}{/}g;
$dirDisplay =~ s{/+$}{}g;
$dirDisplay = "/" if ( $dirDisplay eq "" );
- $dirDisplay = decode_utf8($dirDisplay);
my $filledBackup;
if ( (my @mergeNums = @{$view->mergeNums}) > 1 ) {
my $showDate = timeStamp2($Backups[$i]{startTime});
my $backupNum = $Backups[$i]{num};
$selected = " selected" if ( $backupNum == $num );
- $otherDirs .= "<option value=\"$MyURL?action=browse&host=${EscURI($host)}&num=$backupNum&share=$shareURI&dir=$pathURI\"$selected>#$backupNum - ($showDate)</option>\n";
+ $otherDirs .= "<option value=\"$MyURL?action=browse&host=${EscURI($host)}&num=$backupNum&share=$shareURI&dir=$pathURI&only_increment=$In{only_increment}\"$selected>#$backupNum - ($showDate)</option>\n";
}
$filledBackup .= eval("qq{$Lang->{Visit_this_directory_in_backup}}");
}
+
+ # XXX ASA
+ $filledBackup .= "<li><input type=checkbox name=only_increment value=checked $In{only_increment}> show only this increment";
+
+ $dir = decode_utf8($dir);
+ $share = decode_utf8($share);
my $content = eval("qq{$Lang->{Backup_browse_for__host}}");
Header(eval("qq{$Lang->{Browse_backup__num_for__host}}"), $content);
Trailer();