Updates in preparation for 3.0.0beta2:
authorcbarratt <cbarratt>
Sun, 12 Nov 2006 07:54:42 +0000 (07:54 +0000)
committercbarratt <cbarratt>
Sun, 12 Nov 2006 07:54:42 +0000 (07:54 +0000)
* Config Editor "Save" button is now always visible, but greyed out
  until there are changes to save.

* Config editor allows other tabs to be selected when there is an
  error, which allows you to fix an error (eg: missing binary) in
  an exiting config file.  Errors are now displayed at the top of
  the page in addition to next to the erroneous setting.

* Fixed config.pl editor writing to solve bug with multi-line text
  strings ending in newline.  Reported and root caused by Les Stott
  and Jerry Groendyke.

* Fixed error recovery case in BackupPC::PoolWrite, reported by
  Samuel Bancal.

* New directory/file/hardlink and symlink image icons from Jono
  Woodhouse, making directory browse more compact.

* Reordered the Server navigation bar links, suggested by David Relson.

* Fixed typos in init.d/src/gentoo-backuppc, configure.pl and config.pl
  reported by David Relson.

78 files changed:
ChangeLog
bin/BackupPC
bin/BackupPC_archive
bin/BackupPC_archiveHost
bin/BackupPC_attribPrint
bin/BackupPC_compressPool
bin/BackupPC_dump
bin/BackupPC_fixupBackupSummary
bin/BackupPC_link
bin/BackupPC_nightly
bin/BackupPC_restore
bin/BackupPC_sendEmail
bin/BackupPC_serverMesg
bin/BackupPC_tarCreate
bin/BackupPC_tarExtract
bin/BackupPC_tarPCCopy
bin/BackupPC_trashClean
bin/BackupPC_zcat
bin/BackupPC_zipCreate
conf/BackupPC_stnd.css
conf/config.pl
configure.pl
doc-src/BackupPC.pod
images/icon-dir.gif [deleted file]
images/icon-dir.png [new file with mode: 0644]
images/icon-file.gif [deleted file]
images/icon-file.png [new file with mode: 0644]
images/icon-hardlink.gif [deleted file]
images/icon-hardlink.png [new file with mode: 0644]
images/icon-symlink.gif [deleted file]
images/icon-symlink.png [new file with mode: 0644]
init.d/src/gentoo-backuppc
lib/BackupPC/Attrib.pm
lib/BackupPC/CGI/AdminOptions.pm
lib/BackupPC/CGI/Archive.pm
lib/BackupPC/CGI/ArchiveInfo.pm
lib/BackupPC/CGI/Browse.pm
lib/BackupPC/CGI/DirHistory.pm
lib/BackupPC/CGI/EditConfig.pm
lib/BackupPC/CGI/EmailSummary.pm
lib/BackupPC/CGI/GeneralInfo.pm
lib/BackupPC/CGI/HostInfo.pm
lib/BackupPC/CGI/LOGlist.pm
lib/BackupPC/CGI/Lib.pm
lib/BackupPC/CGI/Queue.pm
lib/BackupPC/CGI/RSS.pm
lib/BackupPC/CGI/ReloadServer.pm
lib/BackupPC/CGI/Restore.pm
lib/BackupPC/CGI/RestoreFile.pm
lib/BackupPC/CGI/RestoreInfo.pm
lib/BackupPC/CGI/StartServer.pm
lib/BackupPC/CGI/StartStopBackup.pm
lib/BackupPC/CGI/StopServer.pm
lib/BackupPC/CGI/Summary.pm
lib/BackupPC/CGI/View.pm
lib/BackupPC/Config/Meta.pm
lib/BackupPC/FileZIO.pm
lib/BackupPC/Lang/de.pm
lib/BackupPC/Lang/en.pm
lib/BackupPC/Lang/es.pm
lib/BackupPC/Lang/fr.pm
lib/BackupPC/Lang/it.pm
lib/BackupPC/Lang/nl.pm
lib/BackupPC/Lang/pt_br.pm
lib/BackupPC/Lib.pm
lib/BackupPC/PoolWrite.pm
lib/BackupPC/Storage.pm
lib/BackupPC/Storage/Text.pm
lib/BackupPC/View.pm
lib/BackupPC/Xfer/Archive.pm
lib/BackupPC/Xfer/BackupPCd.pm
lib/BackupPC/Xfer/Rsync.pm
lib/BackupPC/Xfer/RsyncDigest.pm
lib/BackupPC/Xfer/RsyncFileIO.pm
lib/BackupPC/Xfer/Smb.pm
lib/BackupPC/Xfer/Tar.pm
lib/BackupPC/Zip/FileMember.pm
makeDist

index 4818cad..f6cc6e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 # Version __VERSION__, __RELEASEDATE__
 #------------------------------------------------------------------------
 
+* Config Editor "Save" button is now always visible, but greyed out
+  until there are changes to save.
+
+* Config editor allows other tabs to be selected when there is an
+  error, which allows you to fix an error (eg: missing binary) in
+  an exiting config file.  Errors are now displayed at the top of
+  the page in addition to next to the erroneous setting.
+
 * configure.pl checks version of Encode.pm.  Reported by Chris Stone.
 
 * Several fixes to bin/BackupPC_fixupBackupSummary from Stian Jordet.
 
+* Fixed config.pl editor writing to solve bug with multi-line text
+  strings ending in newline.  Reported and root caused by Les Stott
+  and Jerry Groendyke.
+
+* Fixed error recovery case in BackupPC::PoolWrite, reported by
+  Samuel Bancal.
+
 * Fixed table width in backup browsing to avoid Firefox layout anomoly,
   provided by Jono Woodhouse.
 
-* CSS file updates from Jono Woodhouse.  Priod (v2) version is included
+* CSS file updates from Jono Woodhouse.  Prior (v2) version is included
   as BackupPC_stnd_orig.css in case people prefer the old skin.
 
 * More compact host summary, including disabled host indication,
   from Jono Woodhouse.
 
+* New directory/file/hardlink and symlink image icons from Jono
+  Woodhouse, making directory browse more compact.
+
 * BackupPC.pid is now world readable, suggested by Casper Thomsen.
 
+* Reordered the Server navigation bar links, suggested by David Relson.
+
+* Fixed typos in init.d/src/gentoo-backuppc, configure.pl and config.pl
+  reported by David Relson.
+
 #------------------------------------------------------------------------
 # Version 3.0.0beta1, 30 Jul 2006
 #------------------------------------------------------------------------
@@ -45,6 +68,8 @@
 * Added some CGI utf8 conversions from Rodrigo Real and Vincent
   Fleuranceau.
 
+* Rsync transfers now correctly handle file names with \n or \r.
+
 * Host name is forced to lower case, to match 2.x.
 
 * Fixed LOG file naming in BackupPC_restore and BackupPC_archive.
index cf70977..8e718de 100755 (executable)
@@ -47,7 +47,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index ad10f1f..f1fb9bd 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 84dae6a..5740914 100755 (executable)
@@ -38,7 +38,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 72ea295..08e01be 100755 (executable)
@@ -31,7 +31,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 83867f0..4ca8048 100755 (executable)
@@ -49,7 +49,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index f47b6e3..ae8fab1 100755 (executable)
@@ -70,7 +70,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 671b186..502845f 100755 (executable)
@@ -30,7 +30,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta0, released 11 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index be888d3..03c740e 100755 (executable)
@@ -39,7 +39,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 2639b41..366345f 100755 (executable)
@@ -55,7 +55,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 8af7550..773322e 100755 (executable)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 4b8d652..5c33fae 100755 (executable)
@@ -31,7 +31,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 332afc8..48f7c42 100755 (executable)
@@ -43,7 +43,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 4eeabfa..e0fd0fb 100755 (executable)
@@ -53,7 +53,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 2f57fe6..7988a14 100755 (executable)
@@ -27,7 +27,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index e9477a8..c703528 100755 (executable)
@@ -36,7 +36,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index d5a58d4..3f7637e 100755 (executable)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 59dff2a..f3f99b8 100755 (executable)
@@ -32,7 +32,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 46731d8..93bf95b 100755 (executable)
@@ -52,7 +52,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 0d0e681..a50bcab 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * BackupPC standard CSS definitions
  *
- * Version 3.0.0beta1, released 30 Jul 2006.
+ * Version 3.0.0beta2, released 31 Oct 2006.
  *
  * See http://backuppc.sourceforge.net.
  *
@@ -24,7 +24,7 @@ body {
 table {
     border-collapse: collapse;
     color: #000000;
-    padding:0px;
+    padding: 2px;
 }
 
 h1 {
@@ -129,7 +129,7 @@ a.navbar {
 }
 
 .editSaveButton {
-    color:#ff0000;
+    color:#c0c0c0;
     font-size:14pt;
     font-weight:bold;
 }
@@ -156,8 +156,9 @@ a.navbar {
 }
 
 .fviewborder {
+    border-left:1px solid #666666;
     border-bottom:1px solid #000000;
-    border-left:1px dotted #666666;
+    border-right:1px solid #666666;
     background-color:#eeeeee;
     font-size:9pt;
 }
@@ -187,13 +188,14 @@ a.navbar {
 
 .histView {
     border-bottom:1px solid #000000;
-    border-left:2px solid #ffffff;
+    border-left:1px solid #000000;
     background-color:#eeeeee;
     font-size:10pt;
 }
 
 .histViewMis {
     border-bottom:1px solid #000000;
+    border-left:1px solid #000000;
     background-color:#ffdddd;
 }
 
@@ -224,8 +226,9 @@ div.NavTitle {
 
 #Content {
     float:right;
-    width:80%;
+    width:79%;
     left:20%;
     top:10px;
+    right:10px;
     position:absolute;
 }
index af66a76..069dd66 100644 (file)
@@ -1181,7 +1181,7 @@ $Conf{RsyncdAuthRequired} = 1;
 #
 # When rsync checksum caching is enabled (by adding the
 # --checksum-seed=32761 option to $Conf{RsyncArgs}), the cached
-# checksums can be occaisonally verified to make sure the file
+# checksums can be occasionally verified to make sure the file
 # contents matches the cached checksums.  This is to avoid the
 # risk that disk problems might cause the pool file contents to
 # get corrupted, but the cached checksums would make BackupPC
@@ -1231,9 +1231,11 @@ $Conf{RsyncArgs} = [
             '--recursive',
 
            #
-           # If you are using a patched client rsync that supports the
-           # --checksum-seed option (see http://backuppc.sourceforge.net),
-           # then uncomment this to enabled rsync checksum cachcing
+           # Rsync >= 2.6.3 supports the --checksum-seed option
+            # which allows rsync checksum caching on the server.
+           # Uncomment this to enable rsync checksum caching if
+            # you have a recent client rsync version and you want
+            # to enable checksum caching.
            #
            #'--checksum-seed=32761',
 
@@ -1268,9 +1270,11 @@ $Conf{RsyncRestoreArgs} = [
            '--recursive',
 
            #
-           # If you are using a patched client rsync that supports the
-           # --checksum-seed option (see http://backuppc.sourceforge.net),
-           # then uncomment this to enabled rsync checksum cachcing
+           # Rsync >= 2.6.3 supports the --checksum-seed option
+            # which allows rsync checksum caching on the server.
+           # Uncomment this to enable rsync checksum caching if
+            # you have a recent client rsync version and you want
+            # to enable checksum caching.
            #
            #'--checksum-seed=32761',
 
index 74a221c..7cf5149 100755 (executable)
@@ -356,10 +356,10 @@ while ( 1 ) {
 
 print <<EOF;
 
-Please specify a data directory for BackupPC.  This is where the
-all the PC backup data is stored.  This file system needs to be
-big enough to accommodate all the PCs you expect to backup (eg:
-at least several GB per machine).
+Please specify a data directory for BackupPC.  This is where all the
+PC backup data is stored.  This file system needs to be big enough to
+accommodate all the PCs you expect to backup (eg: at least several GB
+per machine).
 
 EOF
 
index 0200209..5e1b190 100644 (file)
@@ -966,10 +966,9 @@ Alternatively, rather than backup all the file systems as a single
 share ("/"), it is easier to restore a single file system if you backup
 each file system separately.  To do this you should list each file system
 mount point in $Conf{TarShareName} or $Conf{RsyncShareName}, and add the
---one-file-system option to $Conf{TarClientCmd} or add --one-file-system
-(note the different punctuation) to $Conf{RsyncArgs}.  In this case there
-is no need to exclude /proc explicitly since it looks like a different
-file system.
+--one-file-system option to $Conf{TarClientCmd} or $Conf{RsyncArgs}.
+In this case there is no need to exclude /proc explicitly since it looks
+like a different file system.
 
 Next you should decide whether to run tar over ssh, rsh or nfs. Ssh is
 the preferred method. Rsh is not secure and therefore not recommended.
@@ -2724,7 +2723,7 @@ instead of X.0Y. The first digit is for major new releases, the middle
 digit is for significant feature releases and improvements (most of
 the releases have been in this category), and the last digit is for
 bug fixes. You should think of the old 1.00, 1.01, 1.02 and 1.03 as
-1..0, 1.1.0, 1.2.0 and 1.3.0.
+1.0.0, 1.1.0, 1.2.0 and 1.3.0.
 
 Additionally, patches might be made available.  A patched version
 number is of the form X.Y.ZplN (eg: 2.1.0pl2), where N is the
diff --git a/images/icon-dir.gif b/images/icon-dir.gif
deleted file mode 100644 (file)
index dafa818..0000000
Binary files a/images/icon-dir.gif and /dev/null differ
diff --git a/images/icon-dir.png b/images/icon-dir.png
new file mode 100644 (file)
index 0000000..1aedb77
Binary files /dev/null and b/images/icon-dir.png differ
diff --git a/images/icon-file.gif b/images/icon-file.gif
deleted file mode 100644 (file)
index 95a1145..0000000
Binary files a/images/icon-file.gif and /dev/null differ
diff --git a/images/icon-file.png b/images/icon-file.png
new file mode 100644 (file)
index 0000000..c836c10
Binary files /dev/null and b/images/icon-file.png differ
diff --git a/images/icon-hardlink.gif b/images/icon-hardlink.gif
deleted file mode 100644 (file)
index 02562c4..0000000
Binary files a/images/icon-hardlink.gif and /dev/null differ
diff --git a/images/icon-hardlink.png b/images/icon-hardlink.png
new file mode 100644 (file)
index 0000000..029871c
Binary files /dev/null and b/images/icon-hardlink.png differ
diff --git a/images/icon-symlink.gif b/images/icon-symlink.gif
deleted file mode 100644 (file)
index 02562c4..0000000
Binary files a/images/icon-symlink.gif and /dev/null differ
diff --git a/images/icon-symlink.png b/images/icon-symlink.png
new file mode 100644 (file)
index 0000000..0518d85
Binary files /dev/null and b/images/icon-symlink.png differ
index 98d3cf6..4de84ba 100755 (executable)
@@ -14,7 +14,7 @@ source /etc/conf.d/backuppc
 
 checkconfig() {
        if [ ! -f ${CONF_FILE} ] ; then
-               eeror "No ${CONF_FILE} exists!"
+               eerror "No ${CONF_FILE} exists!"
        fi
 }
 
index fb904b5..d7b621f 100644 (file)
@@ -30,7 +30,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index b7da86a..c2d80a1 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index d11b3f3..e89b4f6 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index dc0675a..2e94e01 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index e327b05..d9f4b8a 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -204,7 +204,7 @@ EOF
                                                                   $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>
index 6fb0366..acbe73a 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 68c77a8..df38ebd 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -357,14 +357,14 @@ sub action
         ErrorExit(eval("qq{$Lang->{Only_privileged_users_can_edit_config_files}}"));
     }
 
-    if ( defined($In{menu}) || $In{editAction} eq $Lang->{CfgEdit_Button_Save} ) {
+    if ( defined($In{menu}) || $In{saveAction} eq "Save" ) {
        $errors = errorCheck();
        if ( %$errors ) {
            #
            # If there are errors, then go back to the same menu
            #
-           $In{editAction} = "";
-            $In{newMenu} = "";
+           $In{saveAction} = "";
+            #$In{newMenu} = "";
        }
         if ( (my $var = $In{overrideUncheck}) ne "" ) {
             #
@@ -401,7 +401,7 @@ sub action
        $newConf = { %$mainConf, %$hostConf };
     }
 
-    if ( $In{editAction} ne $Lang->{CfgEdit_Button_Save} && $In{newMenu} ne ""
+    if ( $In{saveAction} ne "Save" && $In{newMenu} ne ""
                    && defined($ConfigMenu{$In{newMenu}}) ) {
         $menu = $In{newMenu};
     }
@@ -475,9 +475,15 @@ EOF
        $content .= eval("qq($Lang->{CfgEdit_Header_Host})");
     }
 
-    my $saveDisplay = "block";
-    $saveDisplay = "none" if ( !$In{modified}
-                          || $In{editAction} eq $Lang->{CfgEdit_Button_Save} );
+    my $saveStyle = "";
+    my $saveColor = "#ff0000";
+    
+    if ( $In{modified} && $In{saveAction} ne "Save" && !%$errors ) {
+        $saveStyle = "style=\"color:$saveColor\"";
+    } else {
+        $In{modified} = 0;
+    }
+
     #
     # Add action and host to the URL so the nav bar link is
     # highlighted
@@ -488,7 +494,7 @@ EOF
 <table border="0" cellpadding="2">
 <tr>$groupText</tr>
 <tr>
-<form method="post" name="form1" action="$url">
+<form method="post" name="editForm" action="$url">
 <input type="hidden" name="host" value="$host">
 <input type="hidden" name="menu" value="$menu">
 <input type="hidden" name="newMenu" value="">
@@ -498,65 +504,78 @@ EOF
 <input type="hidden" name="overrideUncheck" value="">
 <input type="hidden" name="addVar" value="">
 <input type="hidden" name="action" value="editConfig">
-<input type="submit" class="editSaveButton" style="display: $saveDisplay" name="editAction" value="${EscHTML($Lang->{CfgEdit_Button_Save})}">
+<input type="hidden" name="saveAction" value="">
+<input type="button" class="editSaveButton" name="editAction"
+    value="${EscHTML($Lang->{CfgEdit_Button_Save})}" $saveStyle
+    onClick="saveSubmit();">
+<p>
 
 <script language="javascript" type="text/javascript">
 <!--
 
+    function saveSubmit()
+    {
+        if ( document.editForm.modified.value != 0 ) {
+            document.editForm.saveAction.value = 'Save';
+            document.editForm.submit();
+        }
+        return false;
+    }
+
     function deleteSubmit(varName)
     {
-        document.form1.deleteVar.value = varName;
-       document.form1.modified.value = 1;
-        document.form1.submit();
+        document.editForm.deleteVar.value = varName;
+       document.editForm.modified.value = 1;
+        document.editForm.submit();
         return;
     }
 
     function insertSubmit(varName)
     {
-        document.form1.insertVar.value = varName;
-       document.form1.modified.value = 1;
-        document.form1.submit();
+        document.editForm.insertVar.value = varName;
+       document.editForm.modified.value = 1;
+        document.editForm.submit();
         return;
     }
 
     function addSubmit(varName, checkKey)
     {
         if ( checkKey
-            && eval("document.form1.addVarKey_" + varName + ".value") == "" ) {
+            && eval("document.editForm.addVarKey_" + varName + ".value") == "" ) {
             alert("New key must be non-empty");
             return;
         }
-        document.form1.addVar.value = varName;
-       document.form1.modified.value = 1;
-        document.form1.submit();
+        document.editForm.addVar.value = varName;
+       document.editForm.modified.value = 1;
+        document.editForm.submit();
         return;
     }
 
     function menuSubmit(menuName)
     {
-        document.form1.newMenu.value = menuName;
-        document.form1.submit();
+        document.editForm.newMenu.value = menuName;
+        document.editForm.submit();
     }
 
     function varChange(varName)
     {
-       document.form1.editAction.style.display = "block";
-       document.form1.modified.value = 1;
+       document.editForm.modified.value = 1;
+        document.editForm.editAction.style.color = '$saveColor';
     }
 
     function checkboxChange(varName)
     {
-       document.form1.editAction.style.display = "block";
-       document.form1.modified.value = 1;
+       document.editForm.modified.value = 1;
+        document.editForm.editAction.style.color = '$saveColor';
        // Do nothing if the checkbox is now set
-        if ( eval("document.form1.override_" + varName + ".checked") ) {
+        if ( eval("document.editForm.override_" + varName + ".checked") ) {
            return false;
        }
        var allVars = {};
        var varRE  = new RegExp("^v_z_(" + varName + ".*)");
        var origRE = new RegExp("^orig_z_(" + varName + ".*)");
-        for ( var i = 0 ; i < document.form1.elements.length ; i++ ) {
-           var e = document.form1.elements[i];
+        for ( var i = 0 ; i < document.editForm.elements.length ; i++ ) {
+           var e = document.editForm.elements[i];
            var re;
            if ( (re = varRE.exec(e.name)) != null ) {
                if ( allVars[re[1]] == null ) {
@@ -581,7 +600,7 @@ EOF
            } else {
                 // copy the original variable values
                //debugMsg("setting " + v);
-               eval("document.form1.v_z_" + v + ".value = document.form1.orig_z_" + v + ".value");
+               eval("document.editForm.v_z_" + v + ".value = document.editForm.orig_z_" + v + ".value");
             }
        }
        if ( sameShape ) {
@@ -589,17 +608,17 @@ EOF
        } else {
             // need to rebuild the form since the compound variable
             // has changed shape
-            document.form1.overrideUncheck.value = varName;
-           document.form1.submit();
+            document.editForm.overrideUncheck.value = varName;
+           document.editForm.submit();
            return false;
        }
     }
 
     function checkboxSet(varName)
     {
-       document.form1.editAction.style.display = "block";
-       document.form1.modified.value = 1;
-        eval("document.form1.override_" + varName + ".checked = 1;");
+       document.editForm.modified.value = 1;
+        document.editForm.editAction.style.color = '$saveColor';
+        eval("document.editForm.override_" + varName + ".checked = 1;");
         return false;
     }
 
@@ -632,6 +651,7 @@ EOF
 EOF
 
     my $doneParam = {};
+    my $tblContent;
 
     #
     # There is a special case of the user deleting just the field
@@ -651,7 +671,7 @@ EOF
 
     my $isError = %$errors;
 
-    if ( !$isError && $In{editAction} eq $Lang->{CfgEdit_Button_Save} ) {
+    if ( !$isError && $In{saveAction} eq "Save" ) {
         my($mesg, $err);
        if ( $host ne "" ) {
            $hostConf = $bpc->ConfigDataRead($host) if ( !defined($hostConf) );
@@ -707,7 +727,7 @@ EOF
             $newConf->{Hosts} = $hostsSave;
        }
         if ( defined($err) ) {
-            $content .= <<EOF;
+            $tblContent .= <<EOF;
 <tr><td colspan="2" class="border"><span class="editError">$err</span></td></tr>
 EOF
         }
@@ -715,7 +735,7 @@ EOF
         if ( $mesg ne "" ) {
             (my $mesgBR = $mesg) =~ s/\n/<br>\n/g;
              # uncomment this if you want the changes to be displayed
-#            $content .= <<EOF;
+#            $tblContent .= <<EOF;
 #<tr><td colspan="2" class="border"><span class="editComment">$mesgBR</span></td></tr>
 #EOF
             foreach my $str ( split(/\n/, $mesg) ) {
@@ -744,7 +764,7 @@ EOF
 
        if ( defined($paramInfo->{text}) ) {
             my $text = eval("qq($Lang->{$paramInfo->{text}})");
-           $content .= <<EOF;
+           $tblContent .= <<EOF;
 <tr><td colspan="2" class="editHeader">$text</td></tr>
 EOF
            next;
@@ -760,7 +780,7 @@ EOF
 
         $doneParam->{$param} = 1;
 
-        $content .= fieldEditBuild($ConfigMeta{$param},
+        $tblContent .= fieldEditBuild($ConfigMeta{$param},
                               $param,
                               $newConf->{$param},
                               $errors,
@@ -774,23 +794,32 @@ EOF
         if ( defined($paramInfo->{comment}) ) {
             my $topDir = $bpc->TopDir;
             my $text = eval("qq($Lang->{$paramInfo->{comment}})");
-           $content .= <<EOF;
+           $tblContent .= <<EOF;
 <tr><td colspan="2" class="editComment">$text</td></tr>
 EOF
         }
     }
 
     #
-    # Emit any remaining errors - should not happen
+    # Emit a summary of all the errors
     #
+    my $errorTxt;
+
+    if ( %$errors ) {
+       $errorTxt .= <<EOF;
+<tr><td colspan="2" class="border"><span class="editError">$Lang->{CfgEdit_Error_No_Save}</span></td></tr>
+EOF
+    }
+
     foreach my $param ( sort(keys(%$errors)) ) {
-       $content .= <<EOF;
+       $errorTxt .= <<EOF;
 <tr><td colspan="2" class="border"><span class="editError">$errors->{$param}</span></td></tr>
 EOF
-       delete($errors->{$param});
     }
 
     $content .= <<EOF;
+$errorTxt
+$tblContent
 </table>
 EOF
 
@@ -816,9 +845,8 @@ EOF
         $doneParam->{$param} = 1;
     }
 
-    if ( defined($In{menu}) || $In{editAction} eq $Lang->{CfgEdit_Button_Save} ) {
-        if ( $In{editAction} eq $Lang->{CfgEdit_Button_Save}
-                && !$userHost ) {
+    if ( defined($In{menu}) || $In{saveAction} eq "Save" ) {
+        if ( $In{saveAction} eq "Save" && !$userHost ) {
             #
             # Emit the new settings as orig_z_ parameters
             #
@@ -1006,6 +1034,7 @@ EOF
             $In{addVar} = "";
         }
         $content .= "<table border=\"1\" cellspacing=\"0\">\n";
+        my $colspan;
 
         if ( ref($type) eq "HASH" && ref($type->{child}) eq "HASH"
                     && $type->{child}{type} eq "horizHash" ) {
@@ -1017,8 +1046,9 @@ EOF
             }
             $content .= "<tr><td class=\"border\"></td>\n";
             for ( my $i = 0 ; $i < @order ; $i++ ) {
-                $content .= "<td class=\"border\">$order[$i]</td>\n";
+                $content .= "<td class=\"tableheader\">$order[$i]</td>\n";
             }
+            $colspan = @order + 1;
             $content .= "</tr>\n";
             for ( my $i = 0 ; $i < @$varValue ; $i++ ) {
                 if ( @$varValue > 1 || $type->{emptyOk} ) {
@@ -1055,9 +1085,10 @@ EOF
                                     $overrideVar, $overrideSet);
                 $content .= "</tr>\n";
             }
+            $colspan = 2;
         }
         $content .= <<EOF;
-<tr><td class="border"><input type="button" name="add_$varName" value="${EscHTML($Lang->{CfgEdit_Button_Add})}"
+<tr><td class="border" colspan="$colspan"><input type="button" name="add_$varName" value="${EscHTML($Lang->{CfgEdit_Button_Add})}"
     onClick="addSubmit('$varName')"></td></tr>
 </table>
 EOF
@@ -1181,7 +1212,6 @@ EOF
             $content .= <<EOF;
 <span class="editError">$errors->{$varName}</span><br>
 EOF
-           delete($errors->{$varName});
         }
         my $onChange;
        if ( defined($overrideVar) ) {
@@ -1190,7 +1220,7 @@ EOF
             $onChange .= "varChange('$overrideVar');";
        }
         if ( $onchangeSubmit ) {
-            $onChange .= "document.form1.submit();";
+            $onChange .= "document.editForm.submit();";
         }
        if ( $onChange ne "" ) {
             $onChange = " onChange=\"$onChange\"";
@@ -1401,17 +1431,36 @@ sub fieldInputParse
             return 1;
         }
 
+        my $v = $In{"v_z_$varName"};
+
         if ( $type->{type} eq "integer" ) {
-            $$value = 0 + $In{"v_z_$varName"};
+            if ( $v =~ /^-?\d+\s*$/s || $v eq "" ) {
+                $$value = 0 + $v;
+            } else {
+                # error value - keep in string form
+                $$value = $v;
+            }
         } elsif ( $type->{type} eq "float" ) {
-            $$value = 0 + $In{"v_z_$varName"};
+            if ( $v =~ /^-?\d*(\.\d*)?\s*$/s || $v eq "" ) {
+                $$value = 0 + $v;
+            } else {
+                # error value - keep in string form
+                $$value = $v;
+            }
         } elsif ( $type->{type} eq "shortlist" ) {
-            $$value = [split(/[,\s]+/, $In{"v_z_$varName"})];
-            if ( $type->{child} eq "float"
-                    || $type->{child} eq "integer"
-                    || $type->{child} eq "boolean" ) {
+            $$value = [split(/[,\s]+/, $v)];
+            if ( $type->{child} eq "float" ) {
+                foreach ( @$$value ) {
+                    if ( /^-?\d*(\.\d*)?\s*$/s || $v eq "" ) {
+                        $_ += 0;
+                    }
+                }
+            } elsif ( $type->{child} eq "integer"
+                        || $type->{child} eq "boolean" ) {
                 foreach ( @$$value ) {
-                    $_ += 0;
+                    if ( /^-?\d+\s*$/s || $v eq "" ) {
+                        $_ += 0;
+                    }
                 }
             }
         } else {
index f36c806..32c95db 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 99a3afc..044d1f5 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 730d644..01e2924 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 0cd27b2..8dab19a 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index c776d3f..fe0aabe 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -412,14 +412,14 @@ sub Header
     my($title, $content, $noBrowse, $contentSub, $contentPost) = @_;
     my @adminLinks = (
         { link => "",                      name => $Lang->{Status}},
-        { link => "?action=adminOpts",     name => $Lang->{Admin_Options},
-                                           priv => 1},
+        { link => "?action=summary",       name => $Lang->{PC_Summary}},
         { link => "?action=editConfig",    name => $Lang->{CfgEdit_Edit_Config},
                                            priv => 1},
         { link => "?action=editConfig&newMenu=hosts",
                                            name => $Lang->{CfgEdit_Edit_Hosts},
                                            priv => 1},
-        { link => "?action=summary",       name => $Lang->{PC_Summary}},
+        { link => "?action=adminOpts",     name => $Lang->{Admin_Options},
+                                           priv => 1},
         { link => "?action=view&type=LOG", name => $Lang->{LOG_file},
                                            priv => 1},
         { link => "?action=LOGlist",       name => $Lang->{Old_LOGs},
index 4223d8f..3e522a3 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index b5d9ab1..60c6691 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index e644611..bdfa248 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 9f5cb05..494372b 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index e0fbe67..4b3a372 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 5b222f0..0d43f24 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index dd643cc..c7cb9e4 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 07b6456..7cb093b 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 1baa907..3a17460 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 3fad9f9..725e850 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 0f5ab98..335fde4 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 89cc286..c33a443 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -206,7 +206,7 @@ use vars qw(%ConfigMeta);
     },
     SmbShareUserName   => "string",
     SmbSharePasswd     => "string",
-    SmbClientPath      => {type => "string", undefIfEmpty => 1},
+    SmbClientPath      => {type => "execPath", undefIfEmpty => 1},
     SmbClientFullCmd   => "string",
     SmbClientIncrCmd   => "string",
     SmbClientRestoreCmd => "string",
index 016b513..c520725 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index eb2de94..c0c2038 100644 (file)
@@ -472,7 +472,7 @@ Wiederherstellung korrekt ist.)
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restore auf Computer</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -587,8 +587,8 @@ Sie starten eine direkte Wiederherstellung auf den Computer \$In{hostDest}.
 Die folgenden Dateien werden auf die Freigabe \$In{shareDest} wiederhergestellt, von
 dem Backup mit der Nummer \$num:
 <p>
-<table border>
-<tr><td>Original Datei/Verzeichnis:</td><td>Wird wiederhergestellt nach:</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Original Datei/Verzeichnis:</td><td>Wird wiederhergestellt nach:</td></tr>
 \$fileListStr
 </table>
 
@@ -838,7 +838,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -880,7 +880,7 @@ Diese Ansicht zeigt alle unterschiedlichen Versionen der Dateien in den Datensic
 \${h2("Historie von \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Datensicherungnummer</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Sicherungszeitpunkt</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1337,7 +1337,7 @@ $Lang{howLong_not_been_backed_up} = "Backup nicht erfolgreich";
 $Lang{howLong_not_been_backed_up_for_days_days} = "kein Backup seit \$days Tagen";
 
 #######################################################################
-# RSS strings (all ENGLISH currently)
+# RSS strings
 #######################################################################
 $Lang{RSS_Doc_Title}       = "BackupPC Server";
 $Lang{RSS_Doc_Description} = "RSS Feed für BackupPC";
@@ -1353,7 +1353,7 @@ Letzte Aktion: \$host_last_attempt;
 EOF
 
 #######################################################################
-# Configuration editor strings (all ENGLISH currently)
+# Configuration editor strings
 #######################################################################
 
 $Lang{Only_privileged_users_can_edit_config_files} = "Nur privilegierte Nutzer können die Administrationsoptionen ändern.";
@@ -1426,6 +1426,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Host \$host Konfigurationseditor")}
 <p>
 Beachte: Wähle Überschreiben, wenn du einen host spezifischen Wert verändern willst 
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Speichern";
@@ -1435,6 +1436,8 @@ $Lang{CfgEdit_Button_Add}      = "Hinzuf
 $Lang{CfgEdit_Button_Override} = "Überschreiben";
 $Lang{CfgEdit_Button_New_Key}  = "Neuer Schlüssel";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Error: \$var muss eine Zahl sein";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index b6349fc..7c58322 100644 (file)
@@ -462,7 +462,7 @@ selected will be overwritten!
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restore the files to host</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -578,8 +578,8 @@ You are about to start a restore directly to the machine \$In{hostDest}.
 The following files will be restored to share \$In{shareDest}, from
 backup number \$num:
 <p>
-<table border>
-<tr><td>Original file/dir</td><td>Will be restored to</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Original file/dir</td><td>Will be restored to</td></tr>
 \$fileListStr
 </table>
 
@@ -831,7 +831,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -878,7 +878,7 @@ the backups:
 \${h2("History of \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1418,6 +1418,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Host \$host Configuration Editor")}
 <p>
 Note: Check Override if you want to modify a value specific to this host.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Save";
@@ -1427,6 +1428,8 @@ $Lang{CfgEdit_Button_Add}      = "Add";
 $Lang{CfgEdit_Button_Override} = "Override";
 $Lang{CfgEdit_Button_New_Key}  = "New Key";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Error: \$var must be an integer";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index d90ce40..8ac23a4 100644 (file)
@@ -463,7 +463,7 @@ seleccionado ser
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restaurar los archivos al host</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -579,8 +579,8 @@ Est
 Los siguientes archivos serán restaurados en la unidad \$In{shareDest}, de
 la copia de seguridad número \$num:
 <p>
-<table border>
-<tr><td>Archivo/Dir Original </td><td>Será restaurado a</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Archivo/Dir Original </td><td>Será restaurado a</td></tr>
 \$fileListStr
 </table>
 
@@ -832,7 +832,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -879,7 +879,7 @@ las copias de seguridad:
 \${h2("History of \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Backup number</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1422,6 +1422,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Host \$host Configuration Editor")}
 <p>
 Note: Check Override if you want to modify a value specific to this host.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Save";
@@ -1431,6 +1432,8 @@ $Lang{CfgEdit_Button_Add}      = "Add";
 $Lang{CfgEdit_Button_Override} = "Override";
 $Lang{CfgEdit_Button_New_Key}  = "New Key";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Error: \$var must be an integer";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index ebcc768..15b50ad 100644 (file)
@@ -462,7 +462,7 @@ tous les fichiers correspondant 
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restaure les fichiers vers l'hôte</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -577,8 +577,8 @@ Vous 
 la machine \$In{hostDest}. Les fichiers suivants vont être restaurés 
 dans le partage \$In{shareDest}, depuis la sauvegarde numéro \$num:
 <p>
-<table border>
-<tr><td>Fichier/Répertoire original</td><td>Va être restauré à</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Fichier/Répertoire original</td><td>Va être restauré à</td></tr>
 \$fileListStr
 </table>
 
@@ -830,7 +830,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -876,7 +876,7 @@ Cette page montre toutes les version disponibles des fichiers sauvegard
 \${h2("Historique de \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Numéro de sauvegarde</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Date</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1419,6 +1419,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Éditeur de la configuration de \$host")}
 <p>
 Note: Cochez Écraser pour modifier une valeur spécifique à cette machine.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Sauvegarder";
@@ -1428,6 +1429,8 @@ $Lang{CfgEdit_Button_Add}      = "Ajouter";
 $Lang{CfgEdit_Button_Override} = "Écraser";
 $Lang{CfgEdit_Button_New_Key}  = "Nouvelle clé";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Erreur: \$var doit être un nombre entier";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index 74cecf3..27f3b04 100644 (file)
@@ -468,7 +468,7 @@ sar&agrave; sovrascritto!
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Ripristino dei file sull\'host</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -585,8 +585,8 @@ Si sta per avviare il ripristino diretto sulla macchina \$In{hostDest}.
 I file seguenti saranno ripristinati sulla condivisione \$In{shareDest}
 dal backup numero \$num:
 <p>
-<table border>
-<tr><td>File/directory originale</td><td>Ripristinato su</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>File/directory originale</td><td>Ripristinato su</td></tr>
 \$fileListStr
 </table>
 
@@ -838,7 +838,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -885,7 +885,7 @@ Questa videata mostra tutte le versioni uniche disponibili nei diversi backup:
 \${h2("Cronologia di \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Numero backup</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Data backup</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1429,6 +1429,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Host \$host Configuration Editor")}
 <p>
 Note: Check Override if you want to modify a value specific to this host.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Save";
@@ -1438,6 +1439,8 @@ $Lang{CfgEdit_Button_Add}      = "Add";
 $Lang{CfgEdit_Button_Override} = "Override";
 $Lang{CfgEdit_Button_New_Key}  = "New Key";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Error: \$var must be an integer";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index 384e077..0a903f6 100644 (file)
@@ -463,7 +463,7 @@ overschreven worden!
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Zet de bestanden terug naar de pc</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -579,8 +579,8 @@ U hebt gevraagd om bestanden rechtstreeks terug te zetten op de machine \$In{hos
 De volgende bestanden zullen hersteld worden in share \$In{shareDest}, 
 uit backup nummer \$num:
 <p>
-<table border>
-<tr><td>Oorspronkelijk bestand/map</td><td>zal hersteld worden in</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Oorspronkelijk bestand/map</td><td>zal hersteld worden in</td></tr>
 \$fileListStr
 </table>
 
@@ -832,7 +832,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -880,7 +880,7 @@ alle backups heen:
 \${h2("Geschiedenis van \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>backup nummer</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>backup moment</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1434,6 +1434,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Bewerken specifieke configuratie van machine \$host ")}
 <p>
 NB: Selecteer 'Overschrijven' als je een waarde wil wijzigen specifiek voor deze machine.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Bewaren";
@@ -1443,6 +1444,8 @@ $Lang{CfgEdit_Button_Add}      = "Toevoegen";
 $Lang{CfgEdit_Button_Override} = "Overschrijven";
 $Lang{CfgEdit_Button_New_Key}  = "Nieuwe sleutel";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Fout: \$var moet een geheel getal zijn";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index e9af551..94ea463 100644 (file)
@@ -467,7 +467,7 @@ selecionado ser
 <input type="hidden" name="type" value="3">
 \$hiddenStr
 <input type="hidden" value="\$In{action}" name="action">
-<table border="0">
+<table class="tableStnd" border="0">
 <tr>
     <td>Restaurar os arquivos no host</td>
     <td><!--<input type="text" size="40" value="\${EscHTML(\$host)}"
@@ -583,8 +583,8 @@ Est
 Os seguintes arquivos serão restaurados na unidade \$In{shareDest}, a partir
 do Backup número \$num:
 <p>
-<table border>
-<tr><td>Arquivo/Dir Original </td><td>Será restaurado em</td></tr>
+<table class="tableStnd" border>
+<tr class="tableheader"><td>Arquivo/Dir Original </td><td>Será restaurado em</td></tr>
 \$fileListStr
 </table>
 
@@ -836,7 +836,7 @@ $Lang{Backup_browse_for__host} = <<EOF;
 </td><td width="3%">
 </td><td valign="top">
     <br>
-        <table border="0" width="100%" align="left" cellpadding="3" cellspacing="1">
+        <table border width="100%" align="left" cellpadding="3" cellspacing="1">
         \$fileHeader
         \$topCheckAll
         \$fileStr
@@ -882,7 +882,7 @@ Este quadro mostra cada vers
 \${h2("Histórico de \${EscHTML(\$dirDisplay)}")}
 
 <br>
-<table cellspacing="2" cellpadding="3">
+<table border cellspacing="2" cellpadding="3">
 <tr class="fviewheader"><td>Backup numero</td>\$backupNumStr</tr>
 <tr class="fviewheader"><td>Backup time</td>\$backupTimeStr</tr>
 \$fileStr
@@ -1351,7 +1351,7 @@ Estado: \$host_state;
 EOF
 
 #######################################################################
-# Configuration editor strings (all ENGLISH currently)
+# Configuration editor strings
 #######################################################################
 
 $Lang{Only_privileged_users_can_edit_config_files} = "Somente usuários privilegiados podem editar as configurações.";
@@ -1425,6 +1425,7 @@ $Lang{CfgEdit_Header_Host} = <<EOF;
 \${h1("Editor de configurações do Host \$host")}
 <p>
 Note: Marque Override se você quiser modificar um valor especificamente neste host.
+<p>
 EOF
 
 $Lang{CfgEdit_Button_Save}     = "Salvar";
@@ -1434,6 +1435,8 @@ $Lang{CfgEdit_Button_Add}      = "Adicionar";
 $Lang{CfgEdit_Button_Override} = "Sobrepor";
 $Lang{CfgEdit_Button_New_Key}  = "New Key";
 
+$Lang{CfgEdit_Error_No_Save}
+            = "ENG Error: No save due to errors";
 $Lang{CfgEdit_Error__must_be_an_integer}
             = "Erro: \$var precisa ser um inteiro";
 $Lang{CfgEdit_Error__must_be_real_valued_number}
index 12cb6e1..86a3b3f 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -94,7 +94,7 @@ sub new
 
     my $bpc = bless {
        %$paths,
-        Version => '3.0.0beta1',
+        Version => '3.0.0beta2',
     }, $class;
 
     $bpc->{storage} = BackupPC::Storage->new($paths);
index cd6cf0f..35f83f5 100644 (file)
@@ -56,7 +56,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -438,10 +438,11 @@ sub write
                 push(@{$a->{errors}},
                         "Unable to open $a->{fileName}"
                       . " for writing after link fail\n");
+            } else {
+                $a->filePartialCopy($a->{files}[$i]->{fh}, $a->{fhOut},
+                                    $a->{nWrite});
+                $a->{fhOut}->close;
             }
-            $a->filePartialCopy($a->{files}[$i]->{fh}, $a->{fhOut},
-                                $a->{nWrite});
-            $a->{fhOut}->close;
             last;
         }
         #
index 569ba36..7d270a6 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 72b2fba..8a8b528 100644 (file)
@@ -30,7 +30,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -330,10 +330,7 @@ sub ConfigFileMerge
 {
     my($s, $inFile, $newConf) = @_;
     local(*C);
-    my($contents, $out);
-    my $comment = 1;
-    my $skipVar = 0;
-    my $endLine = undef;
+    my($contents, $skipExpr, $fakeVar);
     my $done = {};
 
     if ( -f $inFile ) {
@@ -345,12 +342,10 @@ sub ConfigFileMerge
         binmode(C);
 
         while ( <C> ) {
-            if ( $comment && /^\s*#/ ) {
-                $out .= $_;
-            } elsif ( /^\s*\$Conf\{([^}]*)\}\s*=/ ) {
+            if ( /^\s*\$Conf\{([^}]*)\}\s*=(.*)/ ) {
                 my $var = $1;
-                if ( exists($newConf->{$var}) ) { 
-                    $contents .= $out;
+                if ( exists($newConf->{$var}) ) {
+                    $skipExpr = "\$fakeVar = $2\n";
                     my $d = Data::Dumper->new([$newConf->{$var}], [*value]);
                     $d->Indent(1);
                     $d->Terse(1);
@@ -359,31 +354,21 @@ sub ConfigFileMerge
                     $contents .= "\$Conf{$var} = " . $value;
                     $done->{$var} = 1;
                 }
-                if ( /^\s*\$Conf\{[^}]*} *= *<<(.*);/
-                        || /^\s*\$Conf\{[^}]*} *= *<<'(.*)';/ ) {
-                    $endLine = $1;
-                    $skipVar = 1;
-                } else {
-                    $endLine = undef;
-                    $skipVar = /^[^#]*;/ ? 0 : 1;
-                }
-                $out = "";
-            } elsif ( $skipVar ) {
-                if ( !defined($endLine) && /^[^#]*;/ ) {
-                    $skipVar = 0;
-                    $comment = 1;
-                }
-                if ( defined($endLine) && /^\Q$endLine\E[\n\r]*$/ ) {
-                    $endLine = undef;
-                    $skipVar = 0;
-                    $comment = 1;
-                }
+            } elsif ( defined($skipExpr) ) {
+                $skipExpr .= $_;
             } else {
-                $out .= $_;
+                $contents .= $_;
+            }
+            if ( defined($skipExpr) ) {
+                #
+                # if we have a complete expression, then we are done
+                # skipping text from the original config file.
+                #
+                eval($skipExpr);
+                $skipExpr = undef if ( $@ eq "" );
             }
         }
         close(C);
-        $contents .= $out;
     }
 
     #
index f550b00..b71eecb 100644 (file)
@@ -31,7 +31,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index cd10031..a9a23ef 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 76fa0be..4f5ac0e 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 074d845..15f08fc 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 2a1611c..b881681 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 1c89ab9..a8b69b9 100644 (file)
@@ -12,7 +12,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 03c983c..3a68d14 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 004808d..856d1b7 100644 (file)
@@ -29,7 +29,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index ed284fd..0c59e72 100644 (file)
@@ -33,7 +33,7 @@
 #
 #========================================================================
 #
-# Version 3.0.0beta1, released 30 Jul 2006.
+# Version 3.0.0beta2, released 11 Nov 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
index 472fb5f..2234b5d 100755 (executable)
--- a/makeDist
+++ b/makeDist
@@ -54,7 +54,7 @@ die("BackupPC::Lib->new failed\n")
 umask(0022);
 
 my $Version     = "3.0.0beta2";
-my $ReleaseDate = "31 Oct 2006";
+my $ReleaseDate = "11 Nov 2006";
 my $DistDir     = "dist/BackupPC-$Version";
 
 my @PerlSrc = qw(
@@ -216,7 +216,8 @@ pod2html("doc/BackupPC.pod",
         "--outfile=doc/BackupPC.html");
 
 foreach my $file ( (@PerlSrc,
-           <images/*>,
+           <images/*.gif>,
+           <images/*.png>,
            qw(
                conf/config.pl
                conf/hosts
@@ -256,7 +257,7 @@ sub InstallFile
     my($file, $dest) = @_;
 
     unlink($dest) if ( -d $dest );
-    if ( $file =~ /\.gif/ ) {
+    if ( $file =~ /\.gif/ || $file =~ /\.png/ ) {
         die("can't copy($file, $dest)\n") unless copy($file, $dest);
     } else {
        open(FILE, $file)   || die("can't open $file for reading\n");