From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka To: development@lists.ipfire.org Subject: Re: [PATCH] backup.cgi: Table layout - onclick confirm Date: Wed, 16 Jun 2021 20:52:14 +0200 Message-ID: <905226da-55be-caee-53ea-64e83986743e@ipfire.org> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7002824549321596159==" List-Id: --===============7002824549321596159== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Matthias, On 16/06/2021 19:51, Matthias Fischer wrote: > Hi, >=20 > On 16.06.2021 19:25, Adolf Belka wrote: >> Hi everyone, >> >> Now attached is the image showing the page displayed after I have clicked = on do a backup. Selecting the backup page on the menu again shows the full pa= ge again with the newly created backup listed. >=20 > Same here - but if I wait some seconds, the whole page comes back. >=20 > How long did you wait before you clicked the backup page on the menu > entry again? I thought I had waited longer than 5 seconds. I tried again on my VM and star= ted a timer. After 1 minute the same page was still showing. So it doesn't co= me back for me. Only when I press the menu page do I get the screen back. And= there is no error message in the error_log file. I will check if there is an= ything in the messages log and let you know if I find anything. Regards, Adolf. >=20 > Here, it takes about 5 seconds and the page shows up again without doing > anything. >=20 > Best, > Matthias >=20 >> >> Regards, >> >> >> Adolf. >> >> >> On 16/06/2021 15:20, Adolf Belka wrote: >>> Hi everyone, >>> >>> On 16/06/2021 15:16, Adolf Belka wrote: >>>> 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 backu= p menu page then I got the Internal Server Error message and in /var/log/http= d/error_log I got the following message:- >>>> >>>> Can't use an undefined value as a symbol reference at /srv/web/ipfire/cg= i-bin/backup.cgi line 85. >>>> >>>> I then tried the same thing with a Core Update 157 VM and got the same m= essage. >>>> >>>> Line 85 in backup.cgi is not one of the lines modified by the diff and i= s the line highlighted by ** at the start of the line in the following excerp= t. >>>> >>>> -------------------------- >>>> >>>> elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restoreaddon'}" ) >>>> { >>>> =C2=A0=C2=A0=C2=A0 chomp($cgiparams{'UPLOAD'}); >>>> =C2=A0=C2=A0=C2=A0 # we need to fix cause IE7 gives the full path and F= F only the filename >>>> =C2=A0=C2=A0=C2=A0 my @temp =3D split(/\\/,$cgiparams{'UPLOAD'}); >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 my $upload =3D $a->param("UPLOAD"); >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 open UPLOADFILE, ">/tmp/".$temp[$#temp]; >>>> ** =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 binmode $upload; >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 while ( <$upload> ) { >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 print UPLOADFILE; >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 } >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 close UPLOADFILE; >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 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, d= id 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:- >>>> >>> I placed an image here but I have realised I can not include an image in = mails to the development list as it is text only. Where can I place an image = so everyone can see it? >>>> >>>> If I selected the backup page again I could see the whole page with tabl= es 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 altern= ate 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=3D\"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 >>>>>> --- >>>>>> =C2=A0 html/cgi-bin/backup.cgi | 218 +++++++++++++++++++++++++++++---= -------- >>>>>> =C2=A0 langs/de/cgi-bin/de.pl=C2=A0 |=C2=A0=C2=A0 8 +- >>>>>> =C2=A0 langs/en/cgi-bin/en.pl=C2=A0 |=C2=A0=C2=A0 8 +- >>>>>> =C2=A0 langs/es/cgi-bin/es.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/fr/cgi-bin/fr.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/it/cgi-bin/it.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/nl/cgi-bin/nl.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/pl/cgi-bin/pl.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/ru/cgi-bin/ru.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 langs/tr/cgi-bin/tr.pl=C2=A0 |=C2=A0=C2=A0 1 - >>>>>> =C2=A0 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"; >>>>>> =C2=A0 =C2=A0 my %color =3D (); >>>>>> =C2=A0 my %mainsettings =3D (); >>>>>> -my %cgiparams=3D(); >>>>>> +my %cgiparams =3D (); >>>>>> =C2=A0 my %checked =3D (); >>>>>> =C2=A0 my $message =3D ""; >>>>>> =C2=A0 my $errormessage =3D ""; >>>>>> @@ -59,25 +59,13 @@ system("/usr/local/bin/backupctrl makedirs >/dev/n= ull 2>&1 ") unless ( -e '/var/ >>>>>> ######################################################################= ###################################################### >>>>>> =C2=A0 ############################################## System calls oh= ne Http Header ############################################### >>>>>> =C2=A0 -if ($cgiparams{'ACTION'} eq "download") { >>>>>> +if ($cgiparams{'ACTION'} eq "$Lang::tr{'download'}") { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 my $file =3D &= sanitise_file($cgiparams{'FILE'}); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(1) unless= defined($file); >>>>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &delive= r_file($file); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(0); >>>>>> -} elsif ($cgiparams{'ACTION'} eq "downloadiso") { >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 my $file =3D &sanitise_fil= e($cgiparams{'FILE'}); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(1) unless defined($fi= le); >>>>>> - >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &deliver_file($file); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(0); >>>>>> -} elsif ($cgiparams{'ACTION'} eq "downloadaddon") { >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 my $file =3D &sanitise_fil= e($cgiparams{'FILE'}); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(1) unless defined($fi= le); >>>>>> - >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 &deliver_file($file); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(0); >>>>>> -} elsif ( $cgiparams{'ACTION'} eq "restore") { >>>>>> +} elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restore'}") { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 my $upload =3D= $a->param("UPLOAD"); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 open UPLOADFIL= E, ">/tmp/restore.ipf"; >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 binmode $uploa= d; >>>>>> @@ -87,7 +75,7 @@ if ($cgiparams{'ACTION'} eq "download") { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 close UPLOADFI= LE; >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 system("/usr/l= ocal/bin/backupctrl restore >/dev/null 2>&1"); >>>>>> =C2=A0 } >>>>>> -elsif ( $cgiparams{'ACTION'} eq "restoreaddon" ) >>>>>> +elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'restoreaddon'}" ) >>>>>> =C2=A0 { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 chomp($cgiparams{'UPLOAD'}); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # we need to fix cause IE7 gives the f= ull path and FF only the filename >>>>>> @@ -112,7 +100,7 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "<= meta http-equiv=3D'refresh' cont >>>>>> ######################################################################= ###################################################### >>>>>> =C2=A0 ################################################### Default Sy= stem calls ################################################### >>>>>> =C2=A0 -if ( $cgiparams{'ACTION'} eq "backup" ) >>>>>> +if ( $cgiparams{'ACTION'} eq "$Lang::tr{'backup'}" ) >>>>>> =C2=A0 { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ( $cgiparams{'BACKUPLOGS'} eq "incl= ude" ) { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 system("/usr/l= ocal/bin/backupctrl include >/dev/null 2>&1"); >>>>>> @@ -122,7 +110,7 @@ if ( $cgiparams{'ACTION'} eq "backup" ) >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 system("/usr/l= ocal/bin/backupctrl iso >/dev/null 2>&1"); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 } >>>>>> =C2=A0 } >>>>>> -if ( $cgiparams{'ACTION'} eq "addonbackup" ) >>>>>> +if ( $cgiparams{'ACTION'} eq "$Lang::tr{'addonbackup'}" ) >>>>>> =C2=A0 { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 # Exit if there is any dots or slashes= in the addon name >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(1) if ($cgiparams{'ADDON'} =3D~ /= (\.|\/)/); >>>>>> @@ -132,7 +120,7 @@ if ( $cgiparams{'ACTION'} eq "addonbackup" ) >>>>>> =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 system("/usr/local/bin/backupct= rl addonbackup $cgiparams{'ADDON'} >/dev/null 2>&1"); >>>>>> =C2=A0 } >>>>>> -elsif ( $cgiparams{'ACTION'} eq "delete" ) >>>>>> +elsif ( $cgiparams{'ACTION'} eq "$Lang::tr{'delete'}" ) >>>>>> =C2=A0 { >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 my $file =3D &sanitise_file($cgiparams= {'FILE'}); >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 exit(1) unless defined($file); >>>>>> @@ -157,13 +145,13 @@ if ( -e "/var/tmp/backupiso/" ){ >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 @backupisos =3D `cd /var/tmp/backupiso= / && ls *.iso 2>/dev/null`; >>>>>> =C2=A0 } >>>>>> =C2=A0 -&Header::openbox('100%', 'center', ); >>>>>> +&Header::openbox('100%', 'center', $Lang::tr{'backup config'}); >>>>>> =C2=A0 =C2=A0 print <>>>>> =C2=A0
>>>>>> =C2=A0 >>>>>> =C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0 >>>>>> =C2=A0 >>>>>> =C2=A0
$Lang::tr{'logs'}= >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $Lang::tr{'include logfiles'}=
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $Lang::tr= {'exclude logfiles'}
>>>>>> @@ -177,8 +165,8 @@ print <>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0
>>>>>> =C2=A0
>>>>>> @@ -189,10 +177,17 @@ END >>>>>> ######################################################################= ###################################################### >>>>>> =C2=A0 ############################################ Backups des Syste= ms downloaden ################################################ >>>>>> =C2=A0 -&Header::openbox('100%', 'center', $Lang::tr{'backups'}); >>>>>> +&Header::openbox('100%', 'center', $Lang::tr{'backups data'}); >>>>>> =C2=A0 =C2=A0 print <>>>>> - >>>>>> +
>>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> =C2=A0 END >>>>>> =C2=A0 ; >>>>>> =C2=A0 foreach (@backups){ >>>>>> @@ -202,9 +197,44 @@ my $Datei =3D "/var/ipfire/backup/".$_; >>>>>> =C2=A0 my @Info =3D stat($Datei); >>>>>> =C2=A0 my $Size =3D $Info[7] / 1024 / 1024; >>>>>> =C2=A0 $Size =3D sprintf("%0.2f", $Size); >>>>>> -print ""; >>>>>> -print ""; >>>>>> + >>>>>> +print " >>>>>> + >>>>>> + >>>>>> +"; >>>>>> + >>>>>> +print ""; >>>>>> =C2=A0 } >>>>>> + >>>>>> +print <>>>>> +
$Lang::tr{'filename'}$Lang::tr{'size'}$Lang::tr{'action'}
$Lang::tr{'backup from'} $_ $Lang::tr= {'size'} $Size MB
=
$_$Size MB
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> +
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> +END >>>>>> +; >>>>>> +&Header::closebox(); >>>>>> + >>>>>> +&Header::openbox('100%', 'center', $Lang::tr{'backups iso'}); >>>>>> + >>>>>> +print <>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> +END >>>>>> +; >>>>>> + >>>>>> =C2=A0 foreach (@backupisos){ >>>>>> =C2=A0 if ( $_ !~ /iso$/){next;} >>>>>> =C2=A0 chomp($_); >>>>>> @@ -212,8 +242,22 @@ my $Datei =3D "/var/tmp/backupiso/".$_; >>>>>> =C2=A0 my @Info =3D stat($Datei); >>>>>> =C2=A0 my $Size =3D $Info[7] / 1024 / 1024; >>>>>> =C2=A0 $Size =3D sprintf("%0.2f", $Size); >>>>>> -print ""; >>>>>> -print ""; >>>>>> + >>>>>> +print " >>>>>> + >>>>>> + >>>>>> +"; >>>>>> + >>>>>> +print ""; >>>>>> =C2=A0 } >>>>>> =C2=A0 print <>>>>> =C2=A0
$Lang::tr{'filename'}$Lang::tr{'size'}$Lang::tr{'action'}
$Lang::tr{'backup from'} $_ $Lang::tr= {'size'} $Size MB
=
=
$_$Size MB
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> +
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> @@ -235,7 +279,19 @@ foreach (@addons){ >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $addons{$addon}=3D''; >>>>>> =C2=A0 } >>>>>> =C2=A0 -print ""; >>>>>> +print <>>>>> + >>>>>> +
>>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> + >>>>>> +END >>>>>> +; >>>>>> + >>>>>> =C2=A0 foreach (@addonincluds){ >>>>>> =C2=A0 chomp($_); >>>>>> =C2=A0 delete $addons{$_}; >>>>>> @@ -245,69 +301,93 @@ my $Size =3D $Info[7] / 1024; >>>>>> =C2=A0 =C2=A0 if ( -e $Datei ){ >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if ($Size < 1) { >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $S= ize =3D sprintf("%.2f", $Size); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pr= int ""; >>>>>> -=C2=A0=C2=A0=C2=A0 } else { >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $S= ize =3D sprintf("%2d", $Size); >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 pr= int ""; >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $Size =3D sprintf("%.2f", = $Size); >>>>>> +print " >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 "; >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0 -=C2=A0=C2=A0=C2=A0 } >>>>>> +=C2=A0=C2=A0=C2=A0 } else { >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 $Size =3D sprintf("%2d", $= Size); >>>>>> +print " >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 "; >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0 } >>>>>> =C2=A0 =C2=A0 print <>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0 END >>>>>> =C2=A0 ; >>>>>> =C2=A0 } >>>>>> -else{ >>>>>> -=C2=A0 print "= "; >>>>>> + >>>>>> +else { >>>>>> + >>>>>> +=C2=A0=C2=A0=C2=A0 print " >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 "; >>>>>> =C2=A0 } >>>>>> + >>>>>> =C2=A0 print <>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> + >>>>>> =C2=A0 END >>>>>> =C2=A0 ; >>>>>> + >>>>>> =C2=A0 } >>>>>> + >>>>>> =C2=A0 foreach (keys(%addons)){ >>>>>> =C2=A0 chomp($_); >>>>>> =C2=A0 my $Datei =3D "/var/ipfire/backup/addons/backup/".$_.".ipf"; >>>>>> =C2=A0 my @Info =3D stat($Datei); >>>>>> =C2=A0 my $Size =3D $Info[7] / 1024; >>>>>> =C2=A0 $Size =3D sprintf("%2d", $Size); >>>>>> -print ""; >>>>>> + >>>>>> +print " >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 "; >>>>>> + >>>>>> =C2=A0 print <>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0 END >>>>>> =C2=A0 ; >>>>>> =C2=A0 } >>>>>> @@ -322,9 +402,31 @@ print "
$Lang::tr{'name'}$Lang::tr{'date'}$Lang::tr{'size'}$Lang::tr{'action'}
$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $= Size KB $Lang::tr{'date'} ".localtime($Info[9])."
$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $= Size KB $Lang::tr{'date'} ".localtime($Info[9])."
$_".localtime($Info[9])."$Size KB
$_".localtime($Info[9])."$Size KB
>>>>>> + >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
$Lang::tr{'backup from'} $_
$_ - - - >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0
$Lang::tr{'backup from'} $_ $Lang::tr= {'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])."
$_".localtime($Info[9])."$Size KB >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 >>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
>>>>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
"; >>>>>> =C2=A0 =C2=A0 print <>>>>> =C2=A0 >>>>>> - >>>>>> - >>>>>> - >>>>>> + >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> + >>>>>> + >>>>>> + >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> + >>>>>> + >>>>>> + >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> + >>>>>> + >>>>>> =C2=A0

$Lan= g::tr{'backupwarning'}


$Lang::tr{'backup'}=
$Lang::tr{'backupaddon'}

$Lang::tr{'backupwarning'}


$Lang::tr{'backup'} >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
$Lang::tr{'backupaddon'}
>>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0 >>>>>> +=C2=A0=C2=A0=C2=A0
>>>>>> =C2=A0 END >>>>>> =C2=A0 ; >>>>>> 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 @@ >>>>>> =C2=A0 'add-route' =3D> 'Zus=C3=A4tzlich zu propagierende Route', >>>>>> =C2=A0 'added from dhcp lease list' =3D> 'hinzugef=C3=BCgt von der DH= CP-Zuordnungsliste', >>>>>> =C2=A0 'addon' =3D> 'Add-Ons', >>>>>> +'addonbackup' =3D> 'Sichern', >>>>>> =C2=A0 'addons' =3D> 'Add-Ons', >>>>>> =C2=A0 'admin user password has been changed' =3D> 'Passwort f=C3=BCr= Benutzer admin wurde ge=C3=A4ndert.', >>>>>> =C2=A0 'admin users' =3D> 'Liste der Benutzer mit Super User Rechten', >>>>>> @@ -470,8 +471,11 @@ >>>>>> =C2=A0 'backup sets' =3D> 'Datensicherungss=C3=A4tze', >>>>>> =C2=A0 'backup to floppy' =3D> 'Datensicherung auf Diskette', >>>>>> =C2=A0 'backupaddon' =3D> 'Add-On-Sicherung', >>>>>> +'backup config' =3D> 'Konfiguration', >>>>>> =C2=A0 'backupprofile' =3D> 'Falls die Wiederverbindung scheitert, au= f dieses Profil umschalten', >>>>>> =C2=A0 'backups' =3D> 'Sicherungen', >>>>>> +'backups data' =3D> 'IPF-Dateien', >>>>>> +'backups iso' =3D> 'ISO-Dateien', >>>>>> =C2=A0 'backupwarning' =3D> 'Spielen Sie zuerst Ihre Hauptsicherung u= nd anschlie=C3=9Fend die Sicherung(en) der Addon-Konfiguration(en) ein.
= Es werden lediglich die gesicherten Konfigurationsdatei(en) der Addons, nicht= die installierten Addons wiederhergestellt!
Achten Sie au=C3=9Ferdem da= rauf, dass die Sicherungen ihre originalen Dateinamen behalten.', >>>>>> =C2=A0 'bad characters in' =3D> 'Ung=C3=BCltige Zeichen in ', >>>>>> =C2=A0 'bad characters in script field' =3D> 'Nicht erlaubte Zeichen = im Skriptnamen', >>>>>> @@ -735,6 +739,8 @@ >>>>>> =C2=A0 'defaultwarning' =3D> 'ACHTUNG - Ihre Einstellungen gehen hier= mit verloren und werden durch die Standarteinstellungen ersetzt.', >>>>>> =C2=A0 'delete' =3D> 'L=C3=B6schen', >>>>>> =C2=A0 'delete cron' =3D> 'Cronjob l=C3=B6schen', >>>>>> +'delete file' =3D> 'M=C3=B6chten Sie diese Datei wirklich l=C3=B6sche= n?', >>>>>> +'delete item' =3D> 'M=C3=B6chten Sie diesen Eintrag wirklich l=C3=B6s= chen?', >>>>>> =C2=A0 'delete pc' =3D> 'PC l=C3=B6schen', >>>>>> =C2=A0 'delete share' =3D> 'Freigabe l=C3=B6schen', >>>>>> =C2=A0 'delete user' =3D> 'Benutzer l=C3=B6schen', >>>>>> @@ -1600,7 +1606,6 @@ >>>>>> =C2=A0 'logging' =3D> 'Protokollierung', >>>>>> =C2=A0 'logging server' =3D> 'Protokollierungsserver', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> 'Protokolldateien', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loose directorychecking', >>>>>> =C2=A0 'low' =3D> 'Niedrig', >>>>>> =C2=A0 'ls_dhcpd' =3D> 'DHCP-Server:', >>>>>> @@ -2136,6 +2141,7 @@ >>>>>> =C2=A0 'restart' =3D> 'Neustart', >>>>>> =C2=A0 'restart ovpn server' =3D> 'OpenVPN-Server neu starten', >>>>>> =C2=A0 'restore' =3D> 'Wiederherstellen', >>>>>> +'restoreaddon' =3D> 'Wiederherstellen (Addon)', >>>>>> =C2=A0 'restore defaults' =3D> 'Voreinstellungen wiederherstellen', >>>>>> =C2=A0 'restore hardware settings' =3D> 'Hardwareeinstellungen wieder= herstellen', >>>>>> =C2=A0 'restore settings' =3D> '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 @@ >>>>>> =C2=A0 'add xtaccess' =3D> 'Add External Access', >>>>>> =C2=A0 'add-route' =3D> 'Additional push route', >>>>>> =C2=A0 'added from dhcp lease list' =3D> 'Added from DHCP lease list', >>>>>> +'addonbackup' =3D> 'Backup', >>>>>> =C2=A0 'addons' =3D> 'Addons', >>>>>> =C2=A0 'admin user password has been changed' =3D> 'Admin user passwo= rd has been changed.', >>>>>> =C2=A0 'admin users' =3D> 'User with superuser rights', >>>>>> @@ -459,6 +460,7 @@ >>>>>> =C2=A0 'backup' =3D> 'Backup', >>>>>> =C2=A0 'backup archive' =3D> 'Backup File (.dat)', >>>>>> =C2=A0 'backup clear archive' =3D> 'Clear Backup File (.gz)', >>>>>> +'backup config' =3D> 'Configuration', >>>>>> =C2=A0 'backup config floppy' =3D> 'Backup Configuration - Floppy Dis= k', >>>>>> =C2=A0 'backup configuration' =3D> 'Backup Configuration:', >>>>>> =C2=A0 'backup erase key' =3D> 'Erase key', >>>>>> @@ -486,6 +488,8 @@ >>>>>> =C2=A0 'backupaddon' =3D> 'Addon Backup', >>>>>> =C2=A0 'backupprofile' =3D> 'In case reconnection fails, switch to pr= ofile', >>>>>> =C2=A0 'backups' =3D> 'backups', >>>>>> +'backups data' =3D> 'IPF-Files', >>>>>> +'backups iso' =3D> 'ISO-Files', >>>>>> =C2=A0 'backupwarning' =3D> 'Import your main backup first and then t= he backup(s) of the addon configuration(s).
Only the backed up addon con= figuration file(s) will be restored, not the installed addons!
Also make= sure that the backups keep their original file names.', >>>>>> =C2=A0 'bad characters in' =3D> 'Bad characters in ', >>>>>> =C2=A0 'bad characters in script field' =3D> 'Bad characters in scrip= t field', >>>>>> @@ -755,6 +759,8 @@ >>>>>> =C2=A0 'delete pc' =3D> 'Delete workstation', >>>>>> =C2=A0 'delete share' =3D> 'Delete share', >>>>>> =C2=A0 'delete user' =3D> 'Delete user', >>>>>> +'delete file' =3D> 'Do you really want to delete this file?', >>>>>> +'delete item' =3D> 'Do you really want to delete this item?', >>>>>> =C2=A0 'demon login script' =3D> 'Demon login script', >>>>>> =C2=A0 'deprecated fs warn' =3D> 'Deprecated filesystem! Newer kernel= drop the support. Backup and reformat!', >>>>>> =C2=A0 'description' =3D> 'Description', >>>>>> @@ -1632,7 +1638,6 @@ >>>>>> =C2=A0 'logging' =3D> 'Logging', >>>>>> =C2=A0 'logging server' =3D> 'Logging Server', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> 'logs', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loosedirectorychecking', >>>>>> =C2=A0 'low' =3D> 'Low', >>>>>> =C2=A0 'ls_dhcpd' =3D> 'DHCP Server:', >>>>>> @@ -2172,6 +2177,7 @@ >>>>>> =C2=A0 'restart' =3D> 'Restart', >>>>>> =C2=A0 'restart ovpn server' =3D> 'Restart OpenVPN server', >>>>>> =C2=A0 'restore' =3D> 'Restore', >>>>>> +'restoreaddon' =3D> 'Restore (Addon)', >>>>>> =C2=A0 'restore defaults' =3D> 'Restore defaults', >>>>>> =C2=A0 'restore hardware settings' =3D> 'Restore hardware settings', >>>>>> =C2=A0 'restore settings' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Conectando', >>>>>> =C2=A0 'logging server' =3D> 'Servidor de conexi=C3=B3n', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> 'registros', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Chequeo de loosedirectory', >>>>>> =C2=A0 'low' =3D> 'Bajo', >>>>>> =C2=A0 'ls_dhcpd' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Connexion', >>>>>> =C2=A0 'logging server' =3D> 'Serveur de connexion', >>>>>> =C2=A0 'loginlogout' =3D> 'Connexion/Quitter', >>>>>> -'logs' =3D> 'Journaux', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Echec de la v=C3=A9rification d= u r=C3=A9pertoire', >>>>>> =C2=A0 'low' =3D> 'Bas', >>>>>> =C2=A0 'ls_dhcpd' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Logging', >>>>>> =C2=A0 'logging server' =3D> 'Logging Server', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> 'Gestione Log', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loosedirectorychecking', >>>>>> =C2=A0 'low' =3D> 'Basso', >>>>>> =C2=A0 'ls_dhcpd' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Logging', >>>>>> =C2=A0 'logging server' =3D> 'Loggingserver', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> 'logs', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loosedirectorychecking', >>>>>> =C2=A0 'low' =3D> 'Laag', >>>>>> =C2=A0 'ls_dhcpd' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Logowanie', >>>>>> =C2=A0 'logging server' =3D> 'Serwer logowania', >>>>>> =C2=A0 'loginlogout' =3D> 'Zalogowanie/wylogowanie', >>>>>> -'logs' =3D> 'logi', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loosedirectorychecking', >>>>>> =C2=A0 'low' =3D> 'Niski', >>>>>> =C2=A0 'ls_dhcpd' =3D> '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 @@ >>>>>> =C2=A0 'logging' =3D> 'Logging', >>>>>> =C2=A0 'logging server' =3D> '=D0=A1=D0=B5=D1=80=D0=B2=D0=B5=D1=80 = =D0=9B=D0=BE=D0=B3=D0=BE=D0=B2', >>>>>> =C2=A0 'loginlogout' =3D> 'Login/Logout', >>>>>> -'logs' =3D> '=D0=9B=D0=BE=D0=B3=D0=B8', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Loosedirectorychecking', >>>>>> =C2=A0 'low' =3D> 'Low', >>>>>> =C2=A0 'ls_dhcpd' =3D> 'DHCP =D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80:', >>>>>> 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 @@ >>>>>> =C2=A0 'logging' =3D> 'G=C3=BCnl=C3=BCk', >>>>>> =C2=A0 'logging server' =3D> 'G=C3=BCnl=C3=BCk Sunucusu', >>>>>> =C2=A0 'loginlogout' =3D> 'Giri=C5=9F/=C3=87=C4=B1k=C4=B1=C5=9F', >>>>>> -'logs' =3D> 'G=C3=BCnl=C3=BCkler', >>>>>> =C2=A0 'loosedirectorychecking' =3D> 'Serbest Dizin Denetimi', >>>>>> =C2=A0 'low' =3D> 'D=C3=BC=C5=9F=C3=BCk', >>>>>> =C2=A0 'ls_dhcpd' =3D> 'DHCP Sunucusu:', >>>>>> >> >=20 --===============7002824549321596159==--