]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
shutdown.cgi: Add "reboot with filesystem check" button
authorLeo-Andres Hofmann <hofmann@leo-andres.de>
Tue, 13 Jul 2021 19:06:28 +0000 (21:06 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Thu, 2 Sep 2021 09:11:50 +0000 (09:11 +0000)
ipfirereboot.c is able to force a file system check during reboot.
This patch makes this function available in the shutdown GUI.

Signed-off-by: Leo-Andres Hofmann <hofmann@leo-andres.de>
Signed-off-by: Arne Fitzenreiter <arne_f@ipfire.org>
html/cgi-bin/shutdown.cgi
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl

index e0a2c9da0db7c7439edbafcd17720201a0cf4681..1321e158b74b8e43e0f0396e3aca42f5194cfc88 100644 (file)
@@ -1,11 +1,23 @@
 #!/usr/bin/perl
-#
-# SmoothWall CGIs
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) The SmoothWall Team
-#
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2021  IPFire Development Team                                 #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 use strict;
 
@@ -17,6 +29,27 @@ require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
+###--- HTML HEAD ---###
+my $extraHead = <<END
+<style>
+       table#controls {
+               width: 100%;
+               border: none;
+               table-layout: fixed;
+       }
+       #controls td {
+               text-align: center;
+       }
+       #controls button {
+               font-weight: bold;
+               padding: 0.7em;
+               min-width: 65%;
+       }
+</style>
+END
+;
+###--- END HTML HEAD ---###
+
 my %cgiparams=();
 my $death = 0;
 my $rebirth = 0;
@@ -26,33 +59,39 @@ my $rebirth = 0;
 $cgiparams{'ACTION'} = '';
 &Header::getcgihash(\%cgiparams);
 
-if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) {
+if ($cgiparams{'ACTION'} eq "SHUTDOWN") {
        $death = 1;
        &General::log($Lang::tr{'shutting down ipfire'});
        &General::system('/usr/local/bin/ipfirereboot', 'down');
-} elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) {
+} elsif ($cgiparams{'ACTION'} eq "REBOOT") {
        $rebirth = 1;
        &General::log($Lang::tr{'rebooting ipfire'});
        &General::system('/usr/local/bin/ipfirereboot', 'boot');
+} elsif ($cgiparams{'ACTION'} eq "REBOOT_FSCK") {
+       $rebirth = 1;
+       &General::log($Lang::tr{'rebooting ipfire fsck'});
+       &General::system('/usr/local/bin/ipfirereboot', 'bootfs');
 }
+
 if ($death == 0 && $rebirth == 0) {
 
-       &Header::openpage($Lang::tr{'shutdown control'}, 1, '');
+       &Header::openpage($Lang::tr{'shutdown control'}, 1, $extraHead);
 
        &Header::openbigbox('100%', 'left');
+       &Header::openbox('100%', 'left');
 
-       print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
-
-       &Header::openbox('100%', 'left', );
        print <<END
-<table width='100%'>
-<tr>
-       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' /></td>
-       <td width='50%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'shutdown'}' /></td>
-</tr>
-</table>
+<form method="post" action="$ENV{'SCRIPT_NAME'}">
+       <table id="controls">
+       <tr>
+               <td><button type="submit" name="ACTION" value="SHUTDOWN">$Lang::tr{'shutdown'}</button></td>
+               <td><button type="submit" name="ACTION" value="REBOOT">$Lang::tr{'reboot'}</button></td>
+               <td><button type="submit" name="ACTION" value="REBOOT_FSCK">$Lang::tr{'reboot fsck'}</button></td>
+       </tr>
+       </table>
+</form>
 END
-       ;
+;
        &Header::closebox();
 
 } else {
index 0d2228edec102b515ec4252ca1f256e969d7a97c..76bf0469df8d9b70e3a53671869710d18f0e1ce5 100644 (file)
 'real address' => 'Reale Addresse',
 'reboot' => 'Neustart',
 'reboot ask' => 'Neustart?',
+'reboot fsck' => 'Neustart & Dateisystem-Test',
 'reboot question' => 'Extra Abfrage bei neustart und herunterfahren einschalten',
 'reboot schedule' => 'Zeitsteuerung für IPFire Neustarts',
 'reboot sure' => 'Sind Sie sicher, dass Sie neustarten wollen?',
 'rebooting' => 'Starte neu ...',
 'rebooting ipfire' => 'Starte IPFire neu',
+'rebooting ipfire fsck' => 'Starte IPFire neu, Dateisystem-Test erzwingen',
 'received' => 'Empfangen',
 'reconnect' => 'Neu Verbinden',
 'reconnection' => 'Wiederverbindung',
index 2ba6961f3ae76e1b16c240f428f76be4b4724e3c..181dc80b06a61c34fd28bb7e3edc9d9b00faab70 100644 (file)
 'real address' => 'Real Address',
 'reboot' => 'Reboot',
 'reboot ask' => 'Reboot?',
+'reboot fsck' => 'Reboot & check filesystem',
 'reboot question' => 'Extra query for restart and shutdown',
 'reboot schedule' => 'Schedule IPFire reboots',
 'reboot sure' => 'Are you sure that you want to reboot?',
 'rebooting' => 'Rebooting',
 'rebooting ipfire' => 'Rebooting IPFire',
+'rebooting ipfire fsck' => 'Rebooting IPFire, forcing filesystem check',
 'received' => 'Received',
 'reconnect' => 'Reconnect',
 'reconnection' => 'Reconnection',