public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Adolf Belka <adolf.belka@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH] backup.cgi: Table layout - onclick confirm
Date: Wed, 16 Jun 2021 15:16:24 +0200	[thread overview]
Message-ID: <ddf745b5-0373-2809-0201-cf4a45dcec6b@ipfire.org> (raw)
In-Reply-To: <c41daf26-3234-b870-62c3-6df7700d7a75@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 29906 bytes --]

Hi Matthias,

Sorry for slowness in coming back on the testing but I had to deal with some other things.


I had a go at testing out the patch.

First I separated the patch into individual diffs and then applied them individually on a Core Update 156 VM in my testbed. When I selected the backup menu page then I got the Internal Server Error message and in /var/log/httpd/error_log I got the following message:-

Can't use an undefined value as a symbol reference at /srv/web/ipfire/cgi-bin/backup.cgi line 85.

I then tried the same thing with a Core Update 157 VM and got the same message.

Line 85 in backup.cgi is not one of the lines modified by the diff and is the line highlighted by ** at the start of the line in the following excerpt.

--------------------------

elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restoreaddon'}" )
{
     chomp($cgiparams{'UPLOAD'});
     # we need to fix cause IE7 gives the full path and FF only the filename
     my @temp = split(/\\/,$cgiparams{'UPLOAD'});
                 my $upload = $a->param("UPLOAD");
                 open UPLOADFILE, ">/tmp/".$temp[$#temp];
**                binmode $upload;
                 while ( <$upload> ) {
                 print UPLOADFILE;
                 }
                 close UPLOADFILE;
                 system("/usr/local/bin/backupctrl restoreaddon ".$temp[$#temp]." >/dev/null 2>>
}

--------------------------

I then used the combined patch diff on a Core Update 157 build branch, did a clean build and then installed the generated iso into a VM. This time I was able to get the backup page to show. Not sure what was wrong with trying it on a existing VM.


I then created a backup and I got the following truncated page:-


If I selected the backup page again I could see the whole page with tables and showing the created backup. I tried this several times, also with logs and with iso and I got the same effect. There is no message in the error_log file with the above truncated page display.

Looking at the titles for each table the use of capitals for the IPF and ISO seems a bit to "loud". How about changing it to lower case and making it .ipf and .iso - then referring to the file types being saved.

I still have to have a go at the coding to change the tables into alternate row colours. Will come back separately with how I get on with that.

Regards,

Adolf.

On 28/05/2021 17:41, Matthias Fischer wrote:
> Hi,
>
> On 26.05.2021 17:39, Matthias Fischer wrote:
>> This is just a diff for testing people... ;-)
> For clarification:
> It looks as if I will not have very much time during the next days to
> get a grip on rewriting this with alternate rows. And I agree to Michael
> - rows would fit in with the rest of the layout. ;-)
>
> @Adolf and ALL:
> If you have any hints, please feel free to participate. :-)
>
> Best,
> Matthias
>
>> Changelog in short:
>>
>> - Added tables
>>
>> - Cleaned up the code a bit, some if-queries were unnessecary (if
>> ($cgiparams{'ACTION'} eq...)
>>
>> - Deleted unused lang strings (downloadiso, downloadaddon, logs)
>>
>> - Separated the ISO files from the IPF files for better overview.
>>
>> - Added query for deleting a backup file (onclick=\"return confirm...)
>>
>> ToDo:
>> Change table layout to alternating rows. If "someone" has some hints
>> how to do this, I'll be grateful.
>>
>> Signed-off-by: Matthias Fischer <matthias.fischer(a)ipfire.org>
>> ---
>>   html/cgi-bin/backup.cgi | 218 +++++++++++++++++++++++++++++-----------
>>   langs/de/cgi-bin/de.pl  |   8 +-
>>   langs/en/cgi-bin/en.pl  |   8 +-
>>   langs/es/cgi-bin/es.pl  |   1 -
>>   langs/fr/cgi-bin/fr.pl  |   1 -
>>   langs/it/cgi-bin/it.pl  |   1 -
>>   langs/nl/cgi-bin/nl.pl  |   1 -
>>   langs/pl/cgi-bin/pl.pl  |   1 -
>>   langs/ru/cgi-bin/ru.pl  |   1 -
>>   langs/tr/cgi-bin/tr.pl  |   1 -
>>   10 files changed, 174 insertions(+), 67 deletions(-)
>>
>> diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi
>> index 683f8add4..04473428c 100644
>> --- a/html/cgi-bin/backup.cgi
>> +++ b/html/cgi-bin/backup.cgi
>> @@ -32,7 +32,7 @@ require "${General::swroot}/header.pl";
>>   
>>   my %color = ();
>>   my %mainsettings = ();
>> -my %cgiparams=();
>> +my %cgiparams = ();
>>   my %checked = ();
>>   my $message = "";
>>   my $errormessage = "";
>> @@ -59,25 +59,13 @@ system("/usr/local/bin/backupctrl makedirs >/dev/null 2>&1 ") unless ( -e '/var/
>>   ############################################################################################################################
>>   ############################################## System calls ohne Http Header ###############################################
>>   
>> -if ($cgiparams{'ACTION'} eq "download") {
>> +if ($cgiparams{'ACTION'} eq "$Lang::tr{'download'}") {
>>   		my $file = &sanitise_file($cgiparams{'FILE'});
>>   		exit(1) unless defined($file);
>>   
>>   		&deliver_file($file);
>>   		exit(0);
>> -} elsif ($cgiparams{'ACTION'} eq "downloadiso") {
>> -		my $file = &sanitise_file($cgiparams{'FILE'});
>> -		exit(1) unless defined($file);
>> -
>> -		&deliver_file($file);
>> -		exit(0);
>> -} elsif ($cgiparams{'ACTION'} eq "downloadaddon") {
>> -		my $file = &sanitise_file($cgiparams{'FILE'});
>> -		exit(1) unless defined($file);
>> -
>> -		&deliver_file($file);
>> -		exit(0);
>> -} elsif ( $cgiparams{'ACTION'} eq "restore") {
>> +} elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restore'}") {
>>   		my $upload = $a->param("UPLOAD");
>>   		open UPLOADFILE, ">/tmp/restore.ipf";
>>   		binmode $upload;
>> @@ -87,7 +75,7 @@ if ($cgiparams{'ACTION'} eq "download") {
>>   		close UPLOADFILE;
>>   		system("/usr/local/bin/backupctrl restore >/dev/null 2>&1");
>>   }
>> -elsif ( $cgiparams{'ACTION'} eq "restoreaddon" )
>> +elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restoreaddon'}" )
>>   {
>>       chomp($cgiparams{'UPLOAD'});
>>       # we need to fix cause IE7 gives the full path and FF only the filename
>> @@ -112,7 +100,7 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' cont
>>   ############################################################################################################################
>>   ################################################### Default System calls ###################################################
>>   
>> -if ( $cgiparams{'ACTION'} eq "backup" )
>> +if ( $cgiparams{'ACTION'} eq "$Lang::tr{'backup'}" )
>>   {
>>   	if ( $cgiparams{'BACKUPLOGS'} eq "include" ) {
>>   		system("/usr/local/bin/backupctrl include >/dev/null 2>&1");
>> @@ -122,7 +110,7 @@ if ( $cgiparams{'ACTION'} eq "backup" )
>>   		system("/usr/local/bin/backupctrl iso >/dev/null 2>&1");
>>   	}
>>   }
>> -if ( $cgiparams{'ACTION'} eq "addonbackup" )
>> +if ( $cgiparams{'ACTION'} eq "$Lang::tr{'addonbackup'}" )
>>   {
>>   	# Exit if there is any dots or slashes in the addon name
>>   	exit(1) if ($cgiparams{'ADDON'} =~ /(\.|\/)/);
>> @@ -132,7 +120,7 @@ if ( $cgiparams{'ACTION'} eq "addonbackup" )
>>   
>>   	system("/usr/local/bin/backupctrl addonbackup $cgiparams{'ADDON'} >/dev/null 2>&1");
>>   }
>> -elsif ( $cgiparams{'ACTION'} eq "delete" )
>> +elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'delete'}" )
>>   {
>>   	my $file = &sanitise_file($cgiparams{'FILE'});
>>   	exit(1) unless defined($file);
>> @@ -157,13 +145,13 @@ if ( -e "/var/tmp/backupiso/" ){
>>   	@backupisos = `cd /var/tmp/backupiso/ && ls *.iso 2>/dev/null`;
>>   }
>>   
>> -&Header::openbox('100%', 'center', );
>> +&Header::openbox('100%', 'center', $Lang::tr{'backup config'});
>>   
>>   print <<END
>>   <form method='post' action='$ENV{'SCRIPT_NAME'}'>
>>   <table width='95%' cellspacing='0'>
>>   <tr>
>> -	<td align='left' width='40%'>$Lang::tr{'logs'}</td>
>> +	<td align='center' width='45%'></td>
>>   	<td align='left'>
>>   		<input type='radio' name='BACKUPLOGS' value='include'/> $Lang::tr{'include logfiles'}<br/>
>>   		<input type='radio' name='BACKUPLOGS' value='exclude' checked='checked'/> $Lang::tr{'exclude logfiles'}<br/>
>> @@ -177,8 +165,8 @@ print <<END
>>   	</td>
>>   </tr>
>>   <tr><td align='center' colspan='2'>
>> -	<input type='hidden' name='ACTION' value='backup' />
>> -	<input type='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/document-save.png' />
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'backup'}' />
>> +	<input type='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/floppy.gif' />
>>   </td></tr>
>>   </table>
>>   </form>
>> @@ -189,10 +177,17 @@ END
>>   ############################################################################################################################
>>   ############################################ Backups des Systems downloaden ################################################
>>   
>> -&Header::openbox('100%', 'center', $Lang::tr{'backups'});
>> +&Header::openbox('100%', 'center', $Lang::tr{'backups data'});
>>   
>>   print <<END
>> -<table width='95%' cellspacing='0'>
>> +<table width='95%' cellspacing='0' border='1'>
>> +
>> +<tr>
>> +<th width='40%'>$Lang::tr{'filename'}</th>
>> +<th>$Lang::tr{'size'}</th>
>> +<th colspan='2'>$Lang::tr{'action'}</th>
>> +</tr>
>> +
>>   END
>>   ;
>>   foreach (@backups){
>> @@ -202,9 +197,44 @@ my $Datei = "/var/ipfire/backup/".$_;
>>   my @Info = stat($Datei);
>>   my $Size = $Info[7] / 1024 / 1024;
>>   $Size = sprintf("%0.2f", $Size);
>> -print "<tr><td align='center'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size MB</td><td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='download' /><input type='hidden' name='FILE' value='$_' /><input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/package-x-generic.png' /></form></td>";
>> -print "<td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='delete' /><input type='hidden' name='FILE' value='$_' /><input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /></form></td></tr>";
>> +
>> +print "<tr>
>> +<td align='center'>$_</td>
>> +<td align='center'>$Size MB</td>
>> +<td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'download'}' />
>> +	<input type='hidden' name='FILE' value='$_' />
>> +	<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/go-bottom.png' />
>> +	</form></td>";
>> +
>> +print "<td width='5'>
>> +<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' />
>> +	<input type='hidden' name='FILE' value='$_' />
>> +	<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' onclick=\"return confirm('$Lang::tr{'delete file'}');\" />
>> +	</form></td></tr>";
>>   }
>> +
>> +print <<END
>> +</table>
>> +END
>> +;
>> +&Header::closebox();
>> +
>> +&Header::openbox('100%', 'center', $Lang::tr{'backups iso'});
>> +
>> +print <<END
>> +<table width='95%' cellspacing='0' border='1'>
>> +
>> +<tr>
>> +<th width='40%'>$Lang::tr{'filename'}</th>
>> +<th>$Lang::tr{'size'}</th>
>> +<th colspan='2'>$Lang::tr{'action'}</th>
>> +</tr>
>> +
>> +END
>> +;
>> +
>>   foreach (@backupisos){
>>   if ( $_ !~ /iso$/){next;}
>>   chomp($_);
>> @@ -212,8 +242,22 @@ my $Datei = "/var/tmp/backupiso/".$_;
>>   my @Info = stat($Datei);
>>   my $Size = $Info[7] / 1024 / 1024;
>>   $Size = sprintf("%0.2f", $Size);
>> -print "<tr><td align='center'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size MB</td><td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='downloadiso' /><input type='hidden' name='FILE' value='$_' /><input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/package-x-generic.png' /></form></td>";
>> -print "<td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='delete' /><input type='hidden' name='FILE' value='$_' /><input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' /></form></td></tr>";
>> +
>> +print "<tr>
>> +<td align='center' width='40%'>$_</td>
>> +<td align='center'>$Size MB</td>
>> +<td width='5'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'download'}' />
>> +	<input type='hidden' name='FILE' value='$_' />
>> +	<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/go-bottom.png' />
>> +	</form></td>";
>> +
>> +print "<td width='5'>
>> +<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' />
>> +	<input type='hidden' name='FILE' value='$_' />
>> +	<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' onclick=\"return confirm('$Lang::tr{'delete file'}');\" />
>> +	</form></td></tr>";
>>   }
>>   print <<END
>>   </table>
>> @@ -235,7 +279,19 @@ foreach (@addons){
>>   	$addons{$addon}='';
>>   }
>>   
>> -print "<table width='95%' cellspacing='0'>";
>> +print <<END
>> +
>> +<table width='95%' cellspacing='0' border='1'>
>> +
>> +<tr>
>> +<th width='20%'>$Lang::tr{'name'}</th>
>> +<th width='20%'>$Lang::tr{'date'}</th>
>> +<th>$Lang::tr{'size'}</th>
>> +<th align='center' colspan='3'>$Lang::tr{'action'}</th>
>> +</tr>
>> +END
>> +;
>> +
>>   foreach (@addonincluds){
>>   chomp($_);
>>   delete $addons{$_};
>> @@ -245,69 +301,93 @@ my $Size = $Info[7] / 1024;
>>   
>>   if ( -e $Datei ){
>>   	if ($Size < 1) {
>> -			$Size = sprintf("%.2f", $Size);
>> -			print "<tr><td align='center'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])."</td>";
>> -	} else {
>> -			$Size = sprintf("%2d", $Size);
>> -			print "<tr><td align='center'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])."</td>";
>> +		$Size = sprintf("%.2f", $Size);
>> +print "<tr>
>> +	<td align='center'>$_</td>
>> +	<td align='center'>".localtime($Info[9])."</td>
>> +	<td align='center'>$Size KB</td>";
>> +	</tr>
>>   
>> -	}
>> +	} else {
>> +		$Size = sprintf("%2d", $Size);
>> +print "<tr>
>> +	<td align='center'>$_</td>
>> +	<td align='center'>".localtime($Info[9])."</td>
>> +	<td align='center'>$Size KB</td>";
>> +	</tr>
>> +   }
>>   
>>   print <<END
>> -	<td align='right' width='5'>
>> +
>> +	<td align='center' width='5'>
>>   		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> -		<input type='hidden' name='ACTION' value='downloadaddon' />
>> +		<input type='hidden' name='ACTION' value='$Lang::tr{'download'}' />
>>   		<input type='hidden' name='FILE' value='$_.ipf' />
>> -		<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/package-x-generic.png' />
>> +		<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/go-bottom.png' />
>>   		</form>
>>   	</td>
>> -	<td align='right' width='5'>
>> +	<td align='center' width='5'>
>>   		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> -		<input type='hidden' name='ACTION' value='delete' />
>> +		<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' />
>>   		<input type='hidden' name='FILE' value='$_.ipf' />
>> -		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
>> +		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' onclick=\"return confirm('$Lang::tr{'delete file'}');\" />
>>   		</form>
>>   	</td>
>>   END
>>   ;
>>   }
>> -else{
>> -  print "<tr><td align='center'>$Lang::tr{'backup from'} $_ </td><td width='5' align='right'></td><td width='5' align='right'></td>";
>> +
>> +else {
>> +
>> +	print "<tr>
>> +	<td align='center'>$_</td>
>> +	<td align='center'> - </td>
>> +	<td align='center' width='50%'> - </td>
>> +	<td align='center' colspan='2'> - </td>";
>>   }
>> +
>>   print <<END
>>   	<td align='right' width='5'>
>>   		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> -		<input type='hidden' name='ACTION' value='addonbackup' />
>> +		<input type='hidden' name='ACTION' value='$Lang::tr{'addonbackup'}' />
>>   		<input type='hidden' name='ADDON' value='$_' />
>> -		<input type='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/document-save.png' />
>> +		<input type='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/floppy.gif' />
>>   		</form>
>> -	</td></tr>
>> +	</td>
>> +</tr>
>>   END
>>   ;
>> +
>>   }
>> +
>>   foreach (keys(%addons)){
>>   chomp($_);
>>   my $Datei = "/var/ipfire/backup/addons/backup/".$_.".ipf";
>>   my @Info = stat($Datei);
>>   my $Size = $Info[7] / 1024;
>>   $Size = sprintf("%2d", $Size);
>> -print "<tr><td align='center'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])."</td>";
>> +
>> +print "<tr>
>> +	<td align='center'>$_</td>
>> +	<td align='center'>".localtime($Info[9])."</td>
>> +	<td align='center'>$Size KB</td>";
>> +
>>   print <<END
>> -	<td align='right' width='5'>
>> +	<td align='center' width='5'>
>>   		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> -		<input type='hidden' name='ACTION' value='downloadaddon' />
>> +		<input type='hidden' name='ACTION' value='$Lang::tr{'download'}' />
>>   		<input type='hidden' name='FILE' value='$_.ipf' />
>> -		<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/package-x-generic.png' />
>> +		<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/go-bottom.png' />
>>   		</form>
>>   	</td>
>> -	<td align='right' width='5'>
>> +	<td align='center' width='5'>
>>   		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
>> -		<input type='hidden' name='ACTION' value='delete' />
>> +		<input type='hidden' name='ACTION' value='$Lang::tr{'delete'}' />
>>   		<input type='hidden' name='FILE' value='$_.ipf' />
>> -		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
>> +		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' onclick=\"return confirm('$Lang::tr{'delete file'}');\" />
>>   		</form>
>>   	</td>
>> -	<td align='right' width='5'></td></tr>
>> +	</tr>
>>   END
>>   ;
>>   }
>> @@ -322,9 +402,31 @@ print "</table>";
>>   
>>   print <<END
>>   <table width='95%' cellspacing='0'>
>> -<tr><td align='center' colspan='2'><font color='red'><br />$Lang::tr{'backupwarning'}</font><br /><br /></td></tr>
>> -<tr><td align='left'>$Lang::tr{'backup'}</td><td align='left'><form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'><input type="file" size='50' name="UPLOAD" /><input type='hidden' name='ACTION' value='restore' /><input type='hidden' name='FILE' /><input type='image' alt='$Lang::tr{'restore'}' title='$Lang::tr{'restore'}' src='/images/media-floppy.png' /></form></td></tr>
>> -<tr><td align='left'>$Lang::tr{'backupaddon'}</td><td align='left'><form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'><input type="file" size='50' name="UPLOAD" /><input type='hidden' name='ACTION' value='restoreaddon' /><input type='hidden' name='FILE' /><input type='image' alt='$Lang::tr{'restore'}' title='$Lang::tr{'restore'}' src='/images/media-floppy.png' /></form></td></tr>
>> +<tr>
>> +	<td align='center' colspan='2'><font color='red'><br />$Lang::tr{'backupwarning'}</font><br /><br /></td>
>> +</tr>
>> +
>> +<tr>
>> +	<td align='center'>$Lang::tr{'backup'}</td>
>> +	<td align='left'>
>> +	<form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type="file" size='50' name="UPLOAD" />
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'restore'}' />
>> +	<input type='hidden' name='FILE' />
>> +	<input type='image' alt='$Lang::tr{'restore'}' title='$Lang::tr{'restore'}' src='/images/go-top.png' />
>> +	</form></td>
>> +</tr>
>> +
>> +<tr>
>> +	<td align='center'>$Lang::tr{'backupaddon'}</td>
>> +	<td align='left'><form method='post' enctype='multipart/form-data' action='$ENV{'SCRIPT_NAME'}'>
>> +	<input type="file" size='50' name="UPLOAD" />
>> +	<input type='hidden' name='ACTION' value='$Lang::tr{'restoreaddon'}' />
>> +	<input type='hidden' name='FILE' />
>> +	<input type='image' alt='$Lang::tr{'restoreaddon'}' title='$Lang::tr{'restoreaddon'}' src='/images/go-top.png' />
>> +	</form></td>
>> +</tr>
>> +
>>   </table>
>>   END
>>   ;
>> diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
>> index 95af3155b..37f0cab8a 100644
>> --- a/langs/de/cgi-bin/de.pl
>> +++ b/langs/de/cgi-bin/de.pl
>> @@ -158,6 +158,7 @@
>>   'add-route' => 'Zusätzlich zu propagierende Route',
>>   'added from dhcp lease list' => 'hinzugefügt von der DHCP-Zuordnungsliste',
>>   'addon' => 'Add-Ons',
>> +'addonbackup' => 'Sichern',
>>   'addons' => 'Add-Ons',
>>   'admin user password has been changed' => 'Passwort für Benutzer admin wurde geändert.',
>>   'admin users' => 'Liste der Benutzer mit Super User Rechten',
>> @@ -470,8 +471,11 @@
>>   'backup sets' => 'Datensicherungssätze',
>>   'backup to floppy' => 'Datensicherung auf Diskette',
>>   'backupaddon' => 'Add-On-Sicherung',
>> +'backup config' => 'Konfiguration',
>>   'backupprofile' => 'Falls die Wiederverbindung scheitert, auf dieses Profil umschalten',
>>   'backups' => 'Sicherungen',
>> +'backups data' => 'IPF-Dateien',
>> +'backups iso' => 'ISO-Dateien',
>>   'backupwarning' => 'Spielen Sie zuerst Ihre Hauptsicherung und anschließend die Sicherung(en) der Addon-Konfiguration(en) ein.<br />Es werden lediglich die gesicherten Konfigurationsdatei(en) der Addons, nicht die installierten Addons wiederhergestellt!<br />Achten Sie außerdem darauf, dass die Sicherungen ihre originalen Dateinamen behalten.',
>>   'bad characters in' => 'Ungültige Zeichen in ',
>>   'bad characters in script field' => 'Nicht erlaubte Zeichen im Skriptnamen',
>> @@ -735,6 +739,8 @@
>>   'defaultwarning' => 'ACHTUNG - Ihre Einstellungen gehen hiermit verloren und werden durch die Standarteinstellungen ersetzt.',
>>   'delete' => 'Löschen',
>>   'delete cron' => 'Cronjob löschen',
>> +'delete file' => 'Möchten Sie diese Datei wirklich löschen?',
>> +'delete item' => 'Möchten Sie diesen Eintrag wirklich löschen?',
>>   'delete pc' => 'PC löschen',
>>   'delete share' => 'Freigabe löschen',
>>   'delete user' => 'Benutzer löschen',
>> @@ -1600,7 +1606,6 @@
>>   'logging' => 'Protokollierung',
>>   'logging server' => 'Protokollierungsserver',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'Protokolldateien',
>>   'loosedirectorychecking' => 'Loose directorychecking',
>>   'low' => 'Niedrig',
>>   'ls_dhcpd' => 'DHCP-Server:',
>> @@ -2136,6 +2141,7 @@
>>   'restart' => 'Neustart',
>>   'restart ovpn server' => 'OpenVPN-Server neu starten',
>>   'restore' => 'Wiederherstellen',
>> +'restoreaddon' => 'Wiederherstellen (Addon)',
>>   'restore defaults' => 'Voreinstellungen wiederherstellen',
>>   'restore hardware settings' => 'Hardwareeinstellungen wiederherstellen',
>>   'restore settings' => 'Einstellungen wiederherstellen',
>> diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
>> index d86705772..a126b11ef 100644
>> --- a/langs/en/cgi-bin/en.pl
>> +++ b/langs/en/cgi-bin/en.pl
>> @@ -155,6 +155,7 @@
>>   'add xtaccess' => 'Add External Access',
>>   'add-route' => 'Additional push route',
>>   'added from dhcp lease list' => 'Added from DHCP lease list',
>> +'addonbackup' => 'Backup',
>>   'addons' => 'Addons',
>>   'admin user password has been changed' => 'Admin user password has been changed.',
>>   'admin users' => 'User with superuser rights',
>> @@ -459,6 +460,7 @@
>>   'backup' => 'Backup',
>>   'backup archive' => 'Backup File (.dat)',
>>   'backup clear archive' => 'Clear Backup File (.gz)',
>> +'backup config' => 'Configuration',
>>   'backup config floppy' => 'Backup Configuration - Floppy Disk',
>>   'backup configuration' => 'Backup Configuration:',
>>   'backup erase key' => 'Erase key',
>> @@ -486,6 +488,8 @@
>>   'backupaddon' => 'Addon Backup',
>>   'backupprofile' => 'In case reconnection fails, switch to profile',
>>   'backups' => 'backups',
>> +'backups data' => 'IPF-Files',
>> +'backups iso' => 'ISO-Files',
>>   'backupwarning' => 'Import your main backup first and then the backup(s) of the addon configuration(s).<br />Only the backed up addon configuration file(s) will be restored, not the installed addons!<br />Also make sure that the backups keep their original file names.',
>>   'bad characters in' => 'Bad characters in ',
>>   'bad characters in script field' => 'Bad characters in script field',
>> @@ -755,6 +759,8 @@
>>   'delete pc' => 'Delete workstation',
>>   'delete share' => 'Delete share',
>>   'delete user' => 'Delete user',
>> +'delete file' => 'Do you really want to delete this file?',
>> +'delete item' => 'Do you really want to delete this item?',
>>   'demon login script' => 'Demon login script',
>>   'deprecated fs warn' => 'Deprecated filesystem! Newer kernel drop the support. Backup and reformat!',
>>   'description' => 'Description',
>> @@ -1632,7 +1638,6 @@
>>   'logging' => 'Logging',
>>   'logging server' => 'Logging Server',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'logs',
>>   'loosedirectorychecking' => 'Loosedirectorychecking',
>>   'low' => 'Low',
>>   'ls_dhcpd' => 'DHCP Server:',
>> @@ -2172,6 +2177,7 @@
>>   'restart' => 'Restart',
>>   'restart ovpn server' => 'Restart OpenVPN server',
>>   'restore' => 'Restore',
>> +'restoreaddon' => 'Restore (Addon)',
>>   'restore defaults' => 'Restore defaults',
>>   'restore hardware settings' => 'Restore hardware settings',
>>   'restore settings' => 'Reset Settings',
>> diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
>> index c9a7496bc..fa346233f 100644
>> --- a/langs/es/cgi-bin/es.pl
>> +++ b/langs/es/cgi-bin/es.pl
>> @@ -1149,7 +1149,6 @@
>>   'logging' => 'Conectando',
>>   'logging server' => 'Servidor de conexión',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'registros',
>>   'loosedirectorychecking' => 'Chequeo de loosedirectory',
>>   'low' => 'Bajo',
>>   'ls_dhcpd' => 'Servidor DHCP:',
>> diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
>> index 301109477..ea5985315 100644
>> --- a/langs/fr/cgi-bin/fr.pl
>> +++ b/langs/fr/cgi-bin/fr.pl
>> @@ -1633,7 +1633,6 @@
>>   'logging' => 'Connexion',
>>   'logging server' => 'Serveur de connexion',
>>   'loginlogout' => 'Connexion/Quitter',
>> -'logs' => 'Journaux',
>>   'loosedirectorychecking' => 'Echec de la vérification du répertoire',
>>   'low' => 'Bas',
>>   'ls_dhcpd' => 'Serveur DHCP :',
>> diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
>> index e82ecfd35..711b4bd4a 100644
>> --- a/langs/it/cgi-bin/it.pl
>> +++ b/langs/it/cgi-bin/it.pl
>> @@ -1408,7 +1408,6 @@
>>   'logging' => 'Logging',
>>   'logging server' => 'Logging Server',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'Gestione Log',
>>   'loosedirectorychecking' => 'Loosedirectorychecking',
>>   'low' => 'Basso',
>>   'ls_dhcpd' => 'DHCP Server:',
>> diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
>> index 55927839e..aea5e81b5 100644
>> --- a/langs/nl/cgi-bin/nl.pl
>> +++ b/langs/nl/cgi-bin/nl.pl
>> @@ -1390,7 +1390,6 @@
>>   'logging' => 'Logging',
>>   'logging server' => 'Loggingserver',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'logs',
>>   'loosedirectorychecking' => 'Loosedirectorychecking',
>>   'low' => 'Laag',
>>   'ls_dhcpd' => 'DHCP Server:',
>> diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
>> index 147db051c..604a834a7 100644
>> --- a/langs/pl/cgi-bin/pl.pl
>> +++ b/langs/pl/cgi-bin/pl.pl
>> @@ -1094,7 +1094,6 @@
>>   'logging' => 'Logowanie',
>>   'logging server' => 'Serwer logowania',
>>   'loginlogout' => 'Zalogowanie/wylogowanie',
>> -'logs' => 'logi',
>>   'loosedirectorychecking' => 'Loosedirectorychecking',
>>   'low' => 'Niski',
>>   'ls_dhcpd' => 'Serwer DHCP:',
>> diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
>> index 0d986135d..26ad6c338 100644
>> --- a/langs/ru/cgi-bin/ru.pl
>> +++ b/langs/ru/cgi-bin/ru.pl
>> @@ -1087,7 +1087,6 @@
>>   'logging' => 'Logging',
>>   'logging server' => 'Сервер Логов',
>>   'loginlogout' => 'Login/Logout',
>> -'logs' => 'Логи',
>>   'loosedirectorychecking' => 'Loosedirectorychecking',
>>   'low' => 'Low',
>>   'ls_dhcpd' => 'DHCP сервер:',
>> diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
>> index 36c4782d6..233de0995 100644
>> --- a/langs/tr/cgi-bin/tr.pl
>> +++ b/langs/tr/cgi-bin/tr.pl
>> @@ -1538,7 +1538,6 @@
>>   'logging' => 'Günlük',
>>   'logging server' => 'Günlük Sunucusu',
>>   'loginlogout' => 'Giriş/Çıkış',
>> -'logs' => 'Günlükler',
>>   'loosedirectorychecking' => 'Serbest Dizin Denetimi',
>>   'low' => 'Düşük',
>>   'ls_dhcpd' => 'DHCP Sunucusu:',
>>

  reply	other threads:[~2021-06-16 13:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-26 15:39 Matthias Fischer
2021-05-28 15:41 ` Matthias Fischer
2021-06-16 13:16   ` Adolf Belka [this message]
2021-06-16 13:20     ` Adolf Belka
2021-06-16 15:34     ` Matthias Fischer
2021-06-16 16:33       ` Matthias Fischer
2021-06-16 17:35       ` Adolf Belka
2021-07-10 12:34   ` Adolf Belka
2021-07-10 12:46     ` Matthias Fischer
     [not found] <192c2a64-3818-337c-18e3-d580e8ffb5f9@ipfire.org>
2021-06-16 17:51 ` Matthias Fischer
2021-06-16 18:52   ` Adolf Belka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ddf745b5-0373-2809-0201-cf4a45dcec6b@ipfire.org \
    --to=adolf.belka@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox