Löschen mit Rückfrage

Anregungen & Feature Requests
jpanse
Posts: 39
Joined: April 16th, 2012, 1:10 pm

Löschen mit Rückfrage

Post by jpanse » November 13th, 2018, 6:56 am

Hallo zusammen.

Bei mir läuft die aktuelle Version der IPFire als VM im Hyper-V. ICh denke das wird hier aber keinen einfluss haben. Ich habe erst vor ein paar tagen wieder mal feststellen müssen das im OPENVPN man Clients ohne Rückfrage löscht wenn man auf das Papierkorb Symbol klickt. Bei mir ist es ein wirklich dummer Unfall gewesen. Ich habe mit dem Touchpad an meinem Laptop mit zwei fingern gescrollt und bin exakt auf dem Papierkorb eines meiner Clients gelandet, beim weiterscrollen hat es aber links geklickt statt zu scrollen und der Client war weg. Das ist ziemlich unglücklich, ich kann ihn neu erstellen muss aber nun zu diesem Gerät jemand hinschicken und alles neu einrichten lassen.

Kann man da nicht eine Rückfrage einbauen so im Windows Style: Sind sie sich Sicher? Ja / Nein?

Das hätte mir einiges an Arbeit erspart.

Danke und Grüsse

Jim

5p9
Mentor
Mentor
Posts: 1865
Joined: May 1st, 2011, 3:27 pm

Re: Löschen mit Rückfrage

Post by 5p9 » November 13th, 2018, 8:24 am

Hi,

dies hört sich garnicht so schlecht an. Ist mir bisher noch nicht passiert, aber dies muss nicht so bleiben.
Dazu hätte ich noch ein Zusatz und zwar wäre es cool, wenn man die Möglichkeit hätte alle VPNs zu trennen mit einer zusätzlichen Ausnahmeliste derer die nciht deaktiviert werden sollen.

Grund ist, bei über 100 VPNs diese alle einzeln zu deaktivieren ist immer etwas langweilig aber notwendig wenn ich Wartungsarbeiten habe - vorallem wenn ich von Remote arbeite. Daher ist ein deaktivieren des VPNServers nicht ratsam wenn ich dies von zuhause mache ;)

Vielleicht kann dies jemand in eine "Wunschliste" mit aufnehmen.

Danke.

VG, 5p9
Mail Gateway: mail proxy

Image

Image

Hellfire
Posts: 697
Joined: November 8th, 2015, 8:54 am

Re: Löschen mit Rückfrage

Post by Hellfire » November 13th, 2018, 11:34 am

Gerade was das Löschen betrifft, hier ein analoges Beispiel allerdings im Backup-Bereich, welchen ich ebenfalls gerne angepasst hätte:
viewtopic.php?f=17&t=21372&p=119096&hil ... up#p118610

Michael
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 13th, 2018, 3:51 pm

Hallo zusammen,
das sollte doch eigentlich recht einfach mit "onclick" gehen...

Code: Select all

--- /srv/web/ipfire/cgi-bin/ovpnmain.cgi.core124	2018-11-13 16:04:34.219424642 +0100
+++ /srv/web/ipfire/cgi-bin/ovpnmain.cgi	2018-11-13 16:43:53.083312246 +0100
@@ -5477,7 +5477,7 @@
 	</td></form>
 	<form method='post' name='frm${key}f'><td align='center' $col>
 	    <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
-	    <input type='image'  name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' />
+	    <input type='image'  name='$Lang::tr{'remove'}' src='/images/delete.gif' onclick="return confirm('$Lang::tr{'are you sure'}');" alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' />
 	    <input type='hidden' name='KEY' value='$key' />
 	</td></form>
 	</tr>
wäre dann der Diff. Habe mal in den langs geschaut und da gab es schon den absolut tiefgründigen String "Sind sie sicher?" somit wäre das dann auch für die entsprechenden Sprachsettings übersetzt.

Was da nun noch dranhängt, alles nur in einer CGI ist nun nicht so dolle, von daher wo gibt´s noch überall Mülleimer :) . Wer Patcht das alles und macht einen Merge request O0 ?

Tests und weitere Ideen sind natürlich toll.

Grüssle,

UE
Image
Image

jpanse
Posts: 39
Joined: April 16th, 2012, 1:10 pm

Re: Löschen mit Rückfrage

Post by jpanse » November 13th, 2018, 4:10 pm

Ich werde das mal in meiner Testsipfire testen.
Beim nächsten update? Alles weg?

gruss, Jim

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 13th, 2018, 5:35 pm

Hallo Jim,
wenn die ovpnmain.cgi upgedatet wird sind die Änderungen weg deswegen ja die Frage wer macht die Änderungen im System und den Merge Request.

Grüsse,

UE
Image
Image

jpanse
Posts: 39
Joined: April 16th, 2012, 1:10 pm

Re: Löschen mit Rückfrage

Post by jpanse » November 15th, 2018, 12:40 pm

Hmm

Gute Frage, jemand der sich damit auskennt?

:)

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 17th, 2018, 1:41 pm

Is immer einwenig schade das dann die Arbeit auf einen zurückfallen soll, wobei das meistens dann nichts wird mit solchen Erweiterungen. Ich denke das wenn wirklich interesse and den Änderungen vorhanden ist auch mehr Eigeninitiative angesagt ist (Tests, Konsistenz check/Relevanz für die CGI´s allgemein, Bugzilla, Anfragen auf der Dev Mailingliste, ... <-- eine Idee zur Änderungen im Code ist ja schon da!).

Ich weiss die Zeit ist überall knapp, hier meist auch.

Grüsse,

UE
Image
Image

User avatar
FischerM
Community Developer
Community Developer
Posts: 1025
Joined: November 2nd, 2011, 12:28 pm

Re: Löschen mit Rückfrage

Post by FischerM » November 17th, 2018, 2:01 pm

Hi!

Damit das hier nicht in Frust ausartet... ;-) :

Angeguckt habbich mirs schon. Wäre realisierbar. Ist im Wesentlichen Fleißarbeit.

Wie die Akzeptanz ist, bleibt abzuwarten. Demnächst gibts wieder ein paar freie Tage, wo ich das ev. mal angehen könnte. Momentan nehme ich u.a. einen weiteren Anlauf, um die chaotischen Language-Dateien und das Layout ein bißchen aufzuräumen. Da gabs schon mal ein paar Commits von mir, aber leider 0%-Reaktion. Isshaltso. Einen Versuch mache ich noch.

Ansonsten: Allzu schwer ist es IMHO nicht. Nach 'delete.gif'-Vorkommen in den CGIs suchen und die entsprechenden Zeilen anpassen.

Was ich beim Schnelltesten allerdings nicht auf Anhieb ans Laufen bekam, war das Einfügen einer Abfrage beim Löschen der ISO-Backups in den 'print'-Zeilen unter 'foreach (@backups){' und 'foreach (@backupisos){' => Zeilen 198ff in der 'backup.cgi'. Da würde eine Abfrage IMHO auch Sinn machen.

Leider hagelte es jedesmal eine Fehlermeldung:

Code: Select all

...
Bareword found where operator expected at /srv/web/ipfire/cgi-bin/backup.cgi line 206, near "'$Lang::tr{'are"
	(Missing operator before are?)
syntax error at /srv/web/ipfire/cgi-bin/backup.cgi line 206, near "return"
Bad name after sure' at /srv/web/ipfire/cgi-bin/backup.cgi line 206.
[Tue Nov 13 20:30:24.359278 2018] [cgid:error] [pid 28313:tid 2959027008] [client 192.168.XXX.YYY:49549] End of script output before headers: backup.cgi, referer: https://192.168.YYY.XXX:444/cgi-bin/backup.cgi
...
Wenn jemand dafür vll. eine Idee/Lösung hätte!?

Viele Grüße,
Matthias

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 17th, 2018, 2:28 pm

Hi Matthias,
schön mal wieder was von dir zu lesen.
FischerM wrote:
November 17th, 2018, 2:01 pm
Damit das hier nicht in Frust ausartet... ;-) :
das wäre ja noch schöner :D .
FischerM wrote:
November 17th, 2018, 2:01 pm
Angeguckt habbich mirs schon. Wäre realisierbar. Ist im Wesentlichen Fleißarbeit.
Das sehe ich auch so und -->
FischerM wrote:
November 17th, 2018, 2:01 pm
Wie die Akzeptanz ist, bleibt abzuwarten. Demnächst gibts wieder ein paar freie Tage, wo ich das ev. mal angehen könnte. Momentan nehme ich u.a. einen weiteren Anlauf, um die chaotischen Language-Dateien und das Layout ein bißchen aufzuräumen. Da gabs schon mal ein paar Commits von mir, aber leider 0%-Reaktion. Isshaltso. Einen Versuch mache ich noch.
Ich fand das Projekt die LANGs mal aufzuräumen/aufzuarbeiten damals sehr sinnvoll (hab die Skripten von damals auch noch --> https://gitlab.com/ummeegge/scripts/blo ... anerGit.sh bzw. https://gitlab.com/ummeegge/scripts/blo ... rAddons.sh sind aber auch schon wieder veraltet) und das würde in so einem Fall auch wieder Sinn machen, event. gibt´s einen String welcher zu mehreren Funktionen Sinn macht (aber das nur nebenbei)...
FischerM wrote:
November 17th, 2018, 2:01 pm
Ansonsten: Allzu schwer ist es IMHO nicht. Nach 'delete.gif'-Vorkommen in den CGIs suchen und die entsprechenden Zeilen anpassen.
Ich glaube das haut nicht hin da schon bei der backup.cgi ein "src='/images/user-trash.png' " zu finden ist.
FischerM wrote:
November 17th, 2018, 2:01 pm
Was ich beim Schnelltesten allerdings nicht auf Anhieb ans Laufen bekam, war das Einfügen einer Abfrage beim Löschen der ISO-Backups in den 'print'-Zeilen unter 'foreach (@backups){' und 'foreach (@backupisos){' => Zeilen 198ff in der 'backup.cgi'. Da würde eine Abfrage IMHO auch Sinn machen.
Die backup.cgi mag 'onclick nicht leiden oder ? Hast du da mal einen Diff ?

Liebe Grüsse,

UE'
Image
Image

User avatar
FischerM
Community Developer
Community Developer
Posts: 1025
Joined: November 2nd, 2011, 12:28 pm

Re: Löschen mit Rückfrage

Post by FischerM » November 17th, 2018, 5:08 pm

Ahmt,
...schön mal wieder was von dir zu lesen.
Unkraut vergeht nicht... ;)
Ich fand das Projekt die LANGs mal aufzuräumen/aufzuarbeiten damals sehr sinnvoll
Ich eben auch, ich bin deshalb auch drangeblieben und habe vor/nach jedem Core Update, das seitdem rauskam, die betroffenen LANGs und CGIs aktualisiert. Heute z.B. die französischen Aktualisierungen, die mit Core 125 rauskommen. Doppelte und "konsolidierbare" Strings habe ich bei der Gelegenheit auch bearbeitet - ;) - soweit sie mir auffielen. Wäre zu committen und zu testen. Da werde ich jetzt anfangen, das Ganze nochmal zu überarbeiten.
... da schon bei der backup.cgi ein "src='/images/user-trash.png' " zu finden ist.
Hier nicht mehr => https://git.ipfire.org/?p=people/mfisch ... b6629182ec
An dem habe ich aber seitdem auch noch ein bißchen gefeilt.
Die backup.cgi mag 'onclick nicht leiden oder ? Hast du da mal einen Diff ?
Schick ich morgen, heute wird das nichts mehr. Ich habe zum Schnelltesten den 'onclick'-Teil hinter *meine* Zeile 206 kopiert und das wurde leider auf Anhieb *nicht* goutiert. Etwa so:

Code: Select all

...
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/delete.gif' onclick="return confirm('$Lang::tr{'are you sure'}')" alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' /></form></td></tr>";
...
Morgen teste ich das nochmal und bau ein Diff.

Viele Grüße,
Matthias

User avatar
FischerM
Community Developer
Community Developer
Posts: 1025
Joined: November 2nd, 2011, 12:28 pm

Re: Löschen mit Rückfrage

Post by FischerM » November 17th, 2018, 9:05 pm

Ahmt,

So, klappt doch noch heute...sowas hatte ich gebaut (hier nur Zeile 206, in Zeile 216 kommt dasselbe nochmal):

Code: Select all

--- a/backup.cgi	Sun Sep 30 07:42:20 2018
+++ b/backup.cgi	Sat Nov 17 21:32:08 2018
@@ -203,7 +203,7 @@
 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/download.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/delete.gif' /></form></td></tr>";
+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/delete.gif' onclick="return confirm('$Lang::tr{'are you sure'}');" alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' /></form></td></tr>";
 }
 foreach (@backupisos){
 if ( $_ !~ /iso$/){next;}
Ich habe im o.a. Commit schon an den Icon-Dateien geschraubt, deshalb steht da ein Verweis auf "src='/images/delete.gif'". Ansonsten müssten die Zeilen 206 und 216 identisch mit Core 125 sein.
Wenn ich in diesen Zeilen onclick="return confirm('$Lang::tr{'are you sure'}');" alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' einbaue, wird gemeckert. Die sind zuständig für das Löschen der erstellten ISO-Images. Baue ich das gleiche Codestück in die Zeile ein, die das Löschen ev. erstellter Addon-Backups erledigen soll...:

Code: Select all

<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' onclick="return confirm ... usw./>
..dann funktionieren Abfrage und Löschen.

Gruß,
Matthias

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 18th, 2018, 6:50 am

Guten Morgen zusammen,
so hab mal den 206er bzw. 216er umgebaut. Das HTML ist da irgendwie nicht so hübsch/übersichtlich. Hab das mal an den Rest angepasst einpaar Zeilen Umbrüche mehr (bessere Übersichtlichkeit) und hab ihm dabei auch mal einpaar '<<END's miteingebaut. Dabei ist mir aufgefallen das vor jedem <tr> Tag Anführungsstriche waren weswegen er mit oncklick (gibts ja auch welche) u.a. Probleme hatte.

Der Diff vereint nun deine Änderungen in den Addons, Icons, meine Änderungen in der Formatierung + oncklick integration für die BackUPs:

Code: Select all

--- /srv/web/ipfire/cgi-bin/backup.cgi.core124	2018-11-13 17:16:17.906109570 +0100
+++ /srv/web/ipfire/cgi-bin/backup.cgi	2018-11-18 07:37:40.954153266 +0100
@@ -202,8 +202,23 @@
 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 <<END
+	<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>
+	<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/delete.gif' onclick="return confirm('$Lang::tr{'are you sure'}');" />
+		</form>
+	</td></tr>
+END
+;
 }
 foreach (@backupisos){
 if ( $_ !~ /iso$/){next;}
@@ -212,8 +227,25 @@
 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 <<END
+	<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>
+		<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/delete.gif' onclick="return confirm('$Lang::tr{'are you sure'}');" />
+		</form>
+		</td>
+	</tr>
+END
+;
 }
 print <<END
 </table>
@@ -265,7 +297,7 @@
 		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
 		<input type='hidden' name='ACTION' value='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{'are you sure'}');" />
 		</form>
 	</td>
 END
. Funktioniert hier soweit. Allerdings muss ich da schon auch sagen das dass mal schnelle Löschen nicht mehr soleicht von der Hand geht wie der 5p9 das oben schon angemerkt hat wäre eine Checkbox (speziell beim OpenVPN und vielen Clients) für die Vorauswahl auch ganz nett (das mal nebenbei).

Grüssle,

UE

EDIT sagt:
Hier nochmal eine Liste von $Lang::tr{delete'}' in den CGIs:

Code: Select all

html/cgi-bin/backup.cgi:206: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>";
html/cgi-bin/backup.cgi:216: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>";
html/cgi-bin/backup.cgi:268:		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
html/cgi-bin/backup.cgi:307:		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
html/cgi-bin/captive.cgi:524:				<th align='center' width='5%'>$Lang::tr{'delete'}</th>
html/cgi-bin/captive.cgi:553:						<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' />
html/cgi-bin/captive.cgi:594:				<th align='center' width='5%'>$Lang::tr{'delete'}</th>
html/cgi-bin/captive.cgi:628:						<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' />
html/cgi-bin/dns.cgi:73:if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) {
html/cgi-bin/dns.cgi:103:if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) {
html/cgi-bin/dns.cgi:120:if ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) {
html/cgi-bin/dns.cgi:144:        <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
html/cgi-bin/dns.cgi:149:} elsif ($dnssettings{'ACTION'} eq $Lang::tr{'delete'}) {
html/cgi-bin/dns.cgi:165:        <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
html/cgi-bin/extrahd.cgi:104:elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'}) 
html/cgi-bin/extrahd.cgi:159:						<input type='hidden' name='ACTION' value=$Lang::tr{'delete'} />
html/cgi-bin/extrahd.cgi:160:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/firewall.cgi:2754:						<input type='image' img src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'fwdfw delete'}' style='padding-top: 0px; padding-left: 0px; padding-bottom: 0px ;padding-right: 0px ;display: block;'   />
html/cgi-bin/fwhosts.cgi:1892:				print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delnet' /><input type='hidden' name='key' value='$customnetwork{$key}[0]' /></td></form></tr>";
html/cgi-bin/fwhosts.cgi:2036:				print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delhost' /><input type='hidden' name='key' value='$customhost{$key}[0]' /></td></form></tr>";
html/cgi-bin/fwhosts.cgi:2103:					print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='ACTION' value='delgrp'></form>";
html/cgi-bin/fwhosts.cgi:2139:				print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' />";
html/cgi-bin/fwhosts.cgi:2243:				print"<input type='image' src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' align='right' />\n";
html/cgi-bin/fwhosts.cgi:2321:				print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}'/>\n";
html/cgi-bin/fwhosts.cgi:2393:				print"<td width='1%' $col><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' /><input type='hidden' name='ACTION' value='delservice' /><input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]'></td></tr></form>";
html/cgi-bin/fwhosts.cgi:2459:					print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='ACTION' value='delservicegrp'></form>";
html/cgi-bin/fwhosts.cgi:2500:					print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title=$Lang::tr{'delete'} />";
html/cgi-bin/logs.cgi/calamaris.dat:191:if ($reportsettings{'ACTION'} eq $Lang::tr{'delete'}) {	unlink("$reportdir/$reportsettings{'REPORT'}"); }
html/cgi-bin/logs.cgi/calamaris.dat:605:<td><input type='submit' name='ACTION' value='$Lang::tr{'delete'}' /></td>
html/cgi-bin/mac.cgi:102:if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
html/cgi-bin/mac.cgi:140:if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
html/cgi-bin/mac.cgi:160:if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
html/cgi-bin/mac.cgi:180:if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
html/cgi-bin/mac.cgi:202:if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
html/cgi-bin/mac.cgi:206:      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
html/cgi-bin/mac.cgi:215:      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
html/cgi-bin/mac.cgi:229:      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
html/cgi-bin/pppsetup.cgi:254:elsif ($pppsettings{'ACTION'} eq $Lang::tr{'delete'})
html/cgi-bin/pppsetup.cgi:512:        <td align='left'><input type='submit' name='ACTION' value='$Lang::tr{'delete'}' /></td>
html/cgi-bin/qos.cgi:182:elsif ($qossettings{'DOCLASS'} eq $Lang::tr{'delete'})
html/cgi-bin/qos.cgi:230:} elsif ($qossettings{'DOSCLASS'} eq $Lang::tr{'delete'})
html/cgi-bin/qos.cgi:284:} elsif ($qossettings{'DOLEVEL7'} eq $Lang::tr{'delete'})
html/cgi-bin/qos.cgi:359:} elsif ($qossettings{'DOPORT'} eq $Lang::tr{'delete'})
html/cgi-bin/qos.cgi:1223:						<input type='hidden' name='DOCLASS' value='$Lang::tr{'delete'}' />
html/cgi-bin/qos.cgi:1224:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/qos.cgi:1254:						<input type='hidden' name='DOLEVEL7' value='$Lang::tr{'delete'}' />
html/cgi-bin/qos.cgi:1255:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/qos.cgi:1323:						<input type='hidden' name='DOPORT' value='$Lang::tr{'delete'}' />
html/cgi-bin/qos.cgi:1324:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/qos.cgi:1378:								<input type='hidden' name='DOTOS' value='$Lang::tr{'delete'}' />
html/cgi-bin/qos.cgi:1379:								<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/qos.cgi:1416:							<input type='hidden' name='DOSCLASS' value='$Lang::tr{'delete'}' />
html/cgi-bin/qos.cgi:1417:							<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif' />
html/cgi-bin/samba.cgi:754:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/network-error.png' />
html/cgi-bin/samba.cgi:765:						<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-option-remove.png' />
html/cgi-bin/samba.cgi:976:			<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
html/cgi-bin/samba.cgi:1119:			<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
dachte mir das ist erstmal übersichtlicher wie nach 'delete.gif's zuschauen.

So Kaffee/Frühstück angesagt :P

davor aber nochmal die '$Lang::tr{'remove'}' lines

Code: Select all

html/cgi-bin/aliases.cgi:245:if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/aliases.cgi:431:<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/aliases.cgi:432:<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/aliases.cgi:458:    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/aliases.cgi:459:    <td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/connscheduler.cgi:452:  <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/ddns.cgi:246:if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/ddns.cgi:571:		<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/ddns.cgi:572:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/ddns.cgi:593:		<td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/ddns.cgi:594:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/dhcp.cgi:376:if ($dhcpsettings{'ACTION'} eq $Lang::tr{'remove'}.'1') {
html/cgi-bin/dhcp.cgi:497:if ($dhcpsettings{'ACTION'} eq $Lang::tr{'remove'}.'2') {
html/cgi-bin/dhcp.cgi:859:<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}1' />
html/cgi-bin/dhcp.cgi:860:<input $disabledEditRemove type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/dhcp.cgi:887:	<td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/dhcp.cgi:888:	<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/dhcp.cgi:1081:<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}2' />
html/cgi-bin/dhcp.cgi:1082:<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/dhcp.cgi:1109:	<td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/dhcp.cgi:1110:	<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/dnsforward.cgi:116:if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'})
html/cgi-bin/dnsforward.cgi:325:			<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />
html/cgi-bin/dnsforward.cgi:327:			<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/dnsforward.cgi:351:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/dnsforward.cgi:352:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/guardian.cgi:249:} elsif ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/guardian.cgi:702:								<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}'>
html/cgi-bin/guardian.cgi:704:								<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}'>
html/cgi-bin/hosts.cgi:155:if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/hosts.cgi:350:<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/hosts.cgi:351:<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/hosts.cgi:377:    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/hosts.cgi:378:    <td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/ovpnmain.cgi:2452:} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/ovpnmain.cgi:2997:		<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' /></form></td></tr>
html/cgi-bin/ovpnmain.cgi:5479:	    <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/ovpnmain.cgi:5480:	    <input type='image'  name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' width='20' height='20' border='0' />
html/cgi-bin/ovpnmain.cgi:5504:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/ovpnmain.cgi:5505:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/pakfire.cgi:276:			<input type='image' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' src='/images/list-remove.png' />
html/cgi-bin/proxy.cgi:328:if ($proxysettings{'ACTION'} eq $Lang::tr{'remove'})
html/cgi-bin/proxy.cgi:2405:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />
html/cgi-bin/proxy.cgi:2407:		<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/proxy.cgi:2423:	<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/proxy.cgi:2424:	<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/routing.cgi:191:if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/routing.cgi:350:<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/routing.cgi:351:<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/routing.cgi:377:    <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/routing.cgi:378:    <td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/urlfilter.cgi:463:if (($tcsettings{'MODE'} eq 'TIMECONSTRAINT') && ($tcsettings{'ACTION'} eq $Lang::tr{'remove'}))
html/cgi-bin/urlfilter.cgi:620:if (($uqsettings{'MODE'} eq 'USERQUOTA') && ($uqsettings{'ACTION'} eq $Lang::tr{'remove'}))
html/cgi-bin/urlfilter.cgi:1737:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />
html/cgi-bin/urlfilter.cgi:1757:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/urlfilter.cgi:1758:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/urlfilter.cgi:2086:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />
html/cgi-bin/urlfilter.cgi:2089:		<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/urlfilter.cgi:2133:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/urlfilter.cgi:2134:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/urlfilter.cgi:2314:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' title='$Lang::tr{'remove'}' alt='$Lang::tr{'remove'}' />
html/cgi-bin/urlfilter.cgi:2317:		<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/urlfilter.cgi:2341:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/urlfilter.cgi:2342:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/vpnmain.cgi:1218:} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/vpnmain.cgi:2938:		<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/vpnmain.cgi:2939:		<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/vpnmain.cgi:2962:		<td>&nbsp; &nbsp; <img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/vpnmain.cgi:2963:		<td class='base'>$Lang::tr{'remove'}</td>
html/cgi-bin/wakeonlan.cgi:364:  <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/wireless.cgi:372:	<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/wirelessclient.cgi:224:if ($settings{'ACTION'} eq $Lang::tr{'remove'}) {
html/cgi-bin/wirelessclient.cgi:397:						<input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
html/cgi-bin/wirelessclient.cgi:398:						<input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
html/cgi-bin/wirelessclient.cgi:423:					<td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
html/cgi-bin/wirelessclient.cgi:424:					<td class='base'>$Lang::tr{'remove'}</td>
Zeilennummer ist da auch mitdrinne. 'delete' und 'remove' wären dann auch Doubletten und 'Löschen' dann sogar eine Triplette.

Code: Select all

...
'delete' => 'Löschen',
...
'remove' => 'Löschen',
... # und
'fwdfw delete' => 'Löschen',
..
- Finde ausserdem 'Sind sie sicher?' als Abfrage bei multiplen Möglichkeiten nicht so dolle, ist aber zum Testen vielleicht erstmal netter da wir die language files dann nicht updaten müssen... Ein netter Text wäre aber schon noch eine Überlegung wert.

- Um die Box generell umzugestalten (anderer Text) ist sowas hier --> https://www.w3schools.com/js/tryit.asp? ... js_confirm event. auch eine Idee aber mehr Arbeit. <-- Vielleicht noch andere Vorschläge ? ::)
Image
Image

ummeegge
Community Developer
Community Developer
Posts: 5001
Joined: October 9th, 2010, 10:00 am

Re: Löschen mit Rückfrage

Post by ummeegge » November 18th, 2018, 9:24 am

Mal wegen 5p9´s Idee.
5p9 wrote:
November 13th, 2018, 8:24 am
Dazu hätte ich noch ein Zusatz und zwar wäre es cool, wenn man die Möglichkeit hätte alle VPNs zu trennen mit einer zusätzlichen Ausnahmeliste derer die nciht deaktiviert werden sollen.

Grund ist, bei über 100 VPNs diese alle einzeln zu deaktivieren ist immer etwas langweilig aber notwendig wenn ich Wartungsarbeiten habe - vorallem wenn ich von Remote arbeite. Daher ist ein deaktivieren des VPNServers nicht ratsam wenn ich dies von zuhause mache ;)

Vielleicht kann dies jemand in eine "Wunschliste" mit aufnehmen.
Mal auf die Schnelle folgende Idee --> http://jsfiddle.net/g8at7cu0/3/ . jQuery gibt´s ja auf dem Fire, generell lässt sich da event. auch eine Funktion/Skript zentral ablegen so in dem Still --> https://github.com/ipfire/ipfire-2.x/se ... ateutility also unter /srv/web/ipfire/html/include ?

Mal als weitere Idee um event. auch eine hübschere Box da zu hinterlegen ? Wenn jQuery schon da ist warum nicht auch nutzen ?

Grüsse und einen schönen Sonntag euch mal.

UE
Image
Image

User avatar
FischerM
Community Developer
Community Developer
Posts: 1025
Joined: November 2nd, 2011, 12:28 pm

Re: Löschen mit Rückfrage

Post by FischerM » November 18th, 2018, 12:46 pm

media-floppy.png
Sicherung
media-floppy.png (774 Bytes) Viewed 2206 times
Hi!
ummeegge wrote:so hab mal den 206er bzw. 216er umgebaut.
Habs ausprobiert. Klasse - danke!
Mit den langen Zeilen hatte ich halt so meine Probleme. Sieht gut aus jetzt.

Ich hatte außerdem immer noch diesen Thread im Kopf und hab die 'backup.cgi', die sich nach Deinem Patch ergab, noch was umgebaut:
  • Neue Icons für Download, Sicherung (Herunterladen) und Wiederherstellung.
  • Das Löschen-Icon wurde zum Mülleimer.
  • Iconreihenfolge geändert, der Mülleimer steht jetzt ganz rechts und nicht mehr in der Mitte.

Code: Select all

--- backup.cgi_patched_by_ummeegge	Sun Nov 18 10:16:46 2018
+++ backup.cgi_patched_by_fischerm	Sun Nov 18 13:06:40 2018
@@ -178,7 +178,7 @@
 </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='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/media-floppy.png' />
 </td></tr>
 </table>
 </form>
@@ -207,7 +207,7 @@
 		<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' />
+			<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/download.png' />
 		</form>
 	</td>
 	<td width='5'>
@@ -233,7 +233,7 @@
 			<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' />
+				<input type='image' alt='$Lang::tr{'download'}' title='$Lang::tr{'download'}' src='/images/download.png' />
 			</form>
 		</td>
 		<td width='5'>
@@ -286,15 +286,22 @@
 	}
 
 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='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/download.png' />
 		</form>
 	</td>
 	<td align='right' width='5'>
 		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
+		<input type='hidden' name='ACTION' value='addonbackup' />
+		<input type='hidden' name='ADDON' value='$_' />
+		<input type='image' alt='$Lang::tr{'backup'}' title='$Lang::tr{'backup'}' src='/images/media-floppy.png' />
+		</form>
+	</td>
+	<td align='center' width='5'>
+		<form method='post' action='$ENV{'SCRIPT_NAME'}'>
 		<input type='hidden' name='ACTION' value='delete' />
 		<input type='hidden' name='FILE' value='$_.ipf' />
 		<input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/delete.gif'  onclick="return confirm('$Lang::tr{'are you sure'}');" />
@@ -303,19 +310,21 @@
 END
 ;
 }
-else{
+else {
   print "<tr><td align='center'>$Lang::tr{'backup from'} $_ </td><td width='5' align='right'></td><td width='5' align='right'></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='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/media-floppy.png' />
 		</form>
-	</td></tr>
+	</td>
+</tr>
 END
 ;
+	}
 }
 foreach (keys(%addons)){
 chomp($_);
@@ -323,20 +332,20 @@
 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='right'>$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])."</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='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/download.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='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' />
 		</form>
 	</td>
 	<td align='right' width='5'></td></tr>
@@ -355,8 +364,8 @@
 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='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/restore.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/restore.png' /></form></td></tr>
 </table>
 END
 ;
Das Ganze sieht dann so aus:

Image

Ich persönlich finde diese Icons etwas aussagekräftiger und die Reihenfolge vermeidet zusätzlich zur Abfrage etwaige Fehlklicks.

Akzeptanz? Meinungen?

Wie das mit den anderen ~57 'delete'-Treffern aussieht, bleibt abzuwarten. Ist halt fummelig.

Viele Grüße,
Matthias
Attachments
restore.png
Wiederherstellen
restore.png (405 Bytes) Viewed 2209 times
download.png
Download
download.png (1.24 KiB) Viewed 2209 times

Post Reply