summaryrefslogtreecommitdiffstats
path: root/src/usr/local/www/status_services.php
diff options
context:
space:
mode:
authorStephen Beaver <sbeaver@netgate.com>2015-10-05 10:12:01 -0400
committerStephen Beaver <sbeaver@netgate.com>2015-10-05 10:12:01 -0400
commit74b0f23e25caa7f0495be4d4eae152b9bf241d5d (patch)
treeedd76624a95f6f9ff17146763994fbbde31bc9f2 /src/usr/local/www/status_services.php
parentd42b970ed8fb67491bfbbda0bd44e6d3fa0ab95f (diff)
downloadpfsense-74b0f23e25caa7f0495be4d4eae152b9bf241d5d.zip
pfsense-74b0f23e25caa7f0495be4d4eae152b9bf241d5d.tar.gz
Page converted to POST operation
Diffstat (limited to 'src/usr/local/www/status_services.php')
-rwxr-xr-xsrc/usr/local/www/status_services.php186
1 files changed, 157 insertions, 29 deletions
diff --git a/src/usr/local/www/status_services.php b/src/usr/local/www/status_services.php
index 3dcf4cf..49481a5 100755
--- a/src/usr/local/www/status_services.php
+++ b/src/usr/local/www/status_services.php
@@ -1,34 +1,61 @@
<?php
/*
status_services.php
- Copyright (C) 2004, 2005 Scott Ullrich
- Copyright (C) 2013-2015 Electric Sheep Fencing, LP
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INClUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
*/
+/* ====================================================================
+ * Copyright (c) 2004-2015 Electric Sheep Fencing, LLC. All rights reserved.
+ * Copyright (c) 2004, 2005 Scott Ullrich
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgment:
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense software distribution. (http://www.pfsense.org/).
+ *
+ * 4. The names "pfSense" and "pfSense Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * coreteam@pfsense.org.
+ *
+ * 5. Products derived from this software may not be called "pfSense"
+ * nor may "pfSense" appear in their names without prior written
+ * permission of the Electric Sheep Fencing, LLC.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ *
+ * "This product includes software developed by the pfSense Project
+ * for use in the pfSense software distribution (http://www.pfsense.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE pfSense PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE pfSense PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * ====================================================================
+ *
+ */
/*
- pfSense_BUILDER_BINARIES: /usr/local/sbin/openvpn /usr/bin/killall /bin/ps
- pfSense_MODULE: services
+ pfSense_BUILDER_BINARIES: /usr/local/sbin/openvpn /usr/bin/killall /bin/ps
+ pfSense_MODULE: services
*/
##|+PRIV
@@ -42,6 +69,11 @@ require_once("guiconfig.inc");
require_once("service-utils.inc");
require_once("shortcuts.inc");
+// Leave GET enabled in case any other pages use it.
+// ToDo: Check other pages and remove GET completely
+if(!$_GET && $_POST)
+ $_GET = $_POST;
+
$service_name = '';
if (isset($_GET['service'])) {
$service_name = htmlspecialchars($_GET['service']);
@@ -63,6 +95,7 @@ if (!empty($service_name)) {
sleep(5);
}
+
/* batch mode, allow other scripts to call this script */
if ($_GET['batch']) {
exit;
@@ -76,9 +109,18 @@ if ($savemsg)
$services = get_services();
+// $debugsvcs = array('name' => 'captiveportal', 'description' => 'Captive Portal', 'zone' => '14');
+// array_push($services, $debugsvcs);
+
if (count($services) > 0) {
?>
<form action="status_services.php" method="post">
+ <input id="mode" type="hidden" name="mode" value=""/>
+ <input id="vpnmode" type="hidden" name="vpnmode" value=""/>
+ <input id="service" type="hidden" name="service" value=""/>
+ <input id="id" type="hidden" name="id" value=""/>
+ <input id="zone" type="hidden" name="zone" value=""/>
+
<div class="panel-body panel-default">
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed">
@@ -99,8 +141,9 @@ if (count($services) > 0) {
if (empty($service['name']))
continue;
- if (empty($service['description']))
+ if (empty($service['description'])) {
$service['description'] = get_pkg_descr($service['name']);
+ }
?>
<tr>
<td>
@@ -115,8 +158,9 @@ if (count($services) > 0) {
$bgclass = null;
$running = false;
- if (get_service_status($service))
+ if (get_service_status($service)) {
$running = true;
+ }
?>
<td>
<?=$running ? '<font color="green">Running</font>':'<font color="red">Stopped</font>'?>
@@ -147,5 +191,89 @@ if (count($services) > 0) {
} else {
print_info_box(gettext("No services found"), 'danger');
}
+?>
+<script>
+//<![CDATA[
+events.push(function(){
+ // If a restart button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=restartservice-]').click(function(event) {
+ $('#mode').val('restartservice');
+ $('#service').val(this.id.replace("restartservice-", ""));
+ $(this).parents('form').submit();
+ });
+
+ // If a stop button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=stopservice-]').click(function(event) {
+ $('#mode').val('stopservice');
+ $('#service').val(this.id.replace("stopservice-", ""));
+ $(this).parents('form').submit();
+ });
-include("foot.inc"); \ No newline at end of file
+ // If a start button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=startservice-]').click(function(event) {
+ $('#mode').val('startservice');
+ $('#service').val(this.id.replace("startservice-", ""));
+ $(this).parents('form').submit();
+ });
+
+ // If an openvpn start button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=openvpn-startservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('startservice');
+ $('#service').val('openvpn');
+ $('#id').val(args[3]);
+ $('#vpnmode').val(args[2]);
+ $(this).parents('form').submit();
+ });
+
+ // If an openvpn restart button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=openvpn-restartservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('restartservice');
+ $('#service').val('openvpn');
+ $('#id').val(args[3]);
+ $('#vpnmode').val(args[2]);
+ $(this).parents('form').submit();
+ });
+
+ // If an openvpn stop button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=openvpn-stopservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('stopservice');
+ $('#service').val('openvpn');
+ $('#id').val(args[3]);
+ $('#vpnmode').val(args[2]);
+ $(this).parents('form').submit();
+ });
+
+ // If a captiveportal start button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=captiveportal-startservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('startservice');
+ $('#service').val('captiveportal');
+ $('#zone').val(args[2]);
+ $(this).parents('form').submit();
+ });
+
+ // If a captiveportal restart button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=captiveportal-restartservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('restartservice');
+ $('#service').val('captiveportal');
+ $('#zone').val(args[2]);
+ $(this).parents('form').submit();
+ });
+
+ // If a captiveportal stop button is clicked, populate the hidden inputs and submit the form (via POST)
+ $('[id^=captiveportal-stopservice-]').click(function(event) {
+ var args = this.id.split('-');
+ $('#mode').val('stopservice');
+ $('#service').val('captiveportal');
+ $('#zone').val(args[2]);
+ $(this).parents('form').submit();
+ });
+});
+//]]>
+</script>
+<?php
+include("foot.inc");
OpenPOWER on IntegriCloud