diff --git a/html/images/icons/apache.png b/html/images/icons/apache.png
new file mode 100644
index 000000000..1d65f1bbe
Binary files /dev/null and b/html/images/icons/apache.png differ
diff --git a/html/images/icons/bind.png b/html/images/icons/bind.png
new file mode 100644
index 000000000..785f66c83
Binary files /dev/null and b/html/images/icons/bind.png differ
diff --git a/html/images/icons/device.png b/html/images/icons/device.png
new file mode 100755
index 000000000..720a237c7
Binary files /dev/null and b/html/images/icons/device.png differ
diff --git a/html/images/icons/greyscale/apache.png b/html/images/icons/greyscale/apache.png
new file mode 100644
index 000000000..d7d849a19
Binary files /dev/null and b/html/images/icons/greyscale/apache.png differ
diff --git a/html/images/icons/greyscale/apps.png b/html/images/icons/greyscale/apps.png
new file mode 100644
index 000000000..76d43a655
Binary files /dev/null and b/html/images/icons/greyscale/apps.png differ
diff --git a/html/images/icons/greyscale/bind.png b/html/images/icons/greyscale/bind.png
new file mode 100644
index 000000000..8da97cba7
Binary files /dev/null and b/html/images/icons/greyscale/bind.png differ
diff --git a/html/images/icons/greyscale/device.png b/html/images/icons/greyscale/device.png
new file mode 100755
index 000000000..720a237c7
Binary files /dev/null and b/html/images/icons/greyscale/device.png differ
diff --git a/html/images/icons/greyscale/mysql.png b/html/images/icons/greyscale/mysql.png
new file mode 100644
index 000000000..fb67f49fd
Binary files /dev/null and b/html/images/icons/greyscale/mysql.png differ
diff --git a/html/images/icons/greyscale/postfix.png b/html/images/icons/greyscale/postfix.png
new file mode 100644
index 000000000..f3cccf7af
Binary files /dev/null and b/html/images/icons/greyscale/postfix.png differ
diff --git a/html/images/icons/greyscale/services.png b/html/images/icons/greyscale/services.png
new file mode 100644
index 000000000..0f5220726
Binary files /dev/null and b/html/images/icons/greyscale/services.png differ
diff --git a/html/images/icons/mysql.png b/html/images/icons/mysql.png
new file mode 100644
index 000000000..506c740ff
Binary files /dev/null and b/html/images/icons/mysql.png differ
diff --git a/html/images/icons/postfix.png b/html/images/icons/postfix.png
new file mode 100644
index 000000000..1c94e9a45
Binary files /dev/null and b/html/images/icons/postfix.png differ
diff --git a/html/images/icons/services.png b/html/images/icons/services.png
new file mode 100644
index 000000000..e95382eb3
Binary files /dev/null and b/html/images/icons/services.png differ
diff --git a/html/includes/graphs/generic_simplex.inc.php b/html/includes/graphs/generic_simplex.inc.php
index 549dc4639..b72bdbc0c 100644
--- a/html/includes/graphs/generic_simplex.inc.php
+++ b/html/includes/graphs/generic_simplex.inc.php
@@ -1,12 +1,13 @@
'0') {
echo('
-
Services
+
Services
');
diff --git a/html/pages/device/applications.inc.php b/html/pages/device/applications.inc.php
deleted file mode 100644
index 267643b7f..000000000
--- a/html/pages/device/applications.inc.php
+++ /dev/null
@@ -1,73 +0,0 @@
-");
- echo('
');
- } else {
- echo('
');
- }
- echo(" " . $type_text[$type] ."\n");
- if ($_GET['opta'] == $type) { echo(""); }
- $sep = " | ";
-}
-
-print_optionbar_end();
-
-if (is_file("pages/device/health/".mres($_GET['opta']).".inc.php"))
-{
- include("pages/device/health/".mres($_GET['opta']).".inc.php");
-} else {
- foreach ($datas as $type) {
- if($type != "overview") {
- $graph_title = $type_text[$type];
- $graph_type = "device_".$type;
- include ("includes/print-device-graph.php");
- }
- }
-}
-
-
-?>
diff --git a/html/pages/device/apps.inc.php b/html/pages/device/apps.inc.php
new file mode 100644
index 000000000..a31dede3e
--- /dev/null
+++ b/html/pages/device/apps.inc.php
@@ -0,0 +1,34 @@
+");
+ echo('
');
+ } else {
+ echo('
');
+ }
+ echo(" " . $app['app_type'] ."\n");
+ if ($_GET['opta'] == $app['app_type']) { echo(""); }
+ $sep = " | ";
+}
+
+print_optionbar_end();
+
+$app = mysql_fetch_array(mysql_query("SELECT * FROM `applications` WHERE `device_id` = '".$device['device_id']."' AND `app_type` = '".$_GET['opta']."'"));
+
+if (is_file("pages/device/apps/".mres($_GET['opta']).".inc.php"))
+{
+ include("pages/device/apps/".mres($_GET['opta']).".inc.php");
+}
+
+?>
diff --git a/html/pages/device/edit.inc.php b/html/pages/device/edit.inc.php
index 0af229efd..7e0f0def5 100644
--- a/html/pages/device/edit.inc.php
+++ b/html/pages/device/edit.inc.php
@@ -4,96 +4,37 @@ if($_SESSION['userlevel'] < '7') {
print_error("Insufficient Privileges");
} else {
-if($_POST['editing']) {
- if($_SESSION['userlevel'] > "7") {
- include("includes/device-edit.inc.php");
+
+$panes = array('device' => 'Device Settings',
+ 'apps' => 'Applications',
+ 'services' => 'Services');
+
+print_optionbar_start();
+
+unset($sep);
+foreach($panes as $type => $text) {
+
+ if(!isset($_GET['opta'])) { $_GET['opta'] = $type; }
+ echo($sep);
+ if ($_GET['opta'] == $type)
+ {
+ echo("");
+ echo('
');
+ } else {
+ echo('
');
}
+ echo(" " . $text ."\n");
+ if ($_GET['opta'] == $type) { echo(""); }
+ $sep = " | ";
}
-$device = mysql_fetch_array(mysql_query("SELECT * FROM `devices` WHERE `device_id` = '$_GET[id]'"));
-$descr = $device['purpose'];
+print_optionbar_end();
-if($updated && $update_message) {
- print_message($update_message);
-} elseif ($update_message) {
- print_error($update_message);
-}
-
-$device_types = array('server','network','firewall','workstation','printer','power');
-
-echo("
-
-Edit Device
-
-
-
-
-
- |
- | |
');
}
diff --git a/html/pages/device/edit/apps.inc.php b/html/pages/device/edit/apps.inc.php
new file mode 100644
index 000000000..00fc4a268
--- /dev/null
+++ b/html/pages/device/edit/apps.inc.php
@@ -0,0 +1,17 @@
+$file";
+ }
+ }
+ closedir($handle);
+}
+
+echo("$servicesform");
+
+
+
+?>
diff --git a/html/pages/device/edit/device.inc.php b/html/pages/device/edit/device.inc.php
new file mode 100644
index 000000000..6140f73e6
--- /dev/null
+++ b/html/pages/device/edit/device.inc.php
@@ -0,0 +1,93 @@
+ "7") {
+ include("includes/device-edit.inc.php");
+ }
+}
+
+$device = mysql_fetch_array(mysql_query("SELECT * FROM `devices` WHERE `device_id` = '".$device['device_id']."'"));
+$descr = $device['purpose'];
+
+if($updated && $update_message) {
+ print_message($update_message);
+} elseif ($update_message) {
+ print_error($update_message);
+}
+
+$device_types = array('server','network','firewall','workstation','printer','power');
+
+echo("');
+
+
+?>
diff --git a/html/pages/device/edit/services.inc.php b/html/pages/device/edit/services.inc.php
new file mode 100644
index 000000000..47b77c3b4
--- /dev/null
+++ b/html/pages/device/edit/services.inc.php
@@ -0,0 +1,91 @@
+');
+
+if($_POST['addsrv']) {
+ if($_SESSION['userlevel'] == '10') {
+ include("includes/service-add.inc.php");
+ }
+}
+
+if ($handle = opendir($config['install_dir'] . "/includes/services/")) {
+ while (false !== ($file = readdir($handle))) {
+ if ($file != "." && $file != ".." && !strstr($file, ".")) {
+ $servicesform .= "";
+ }
+ }
+ closedir($handle);
+}
+
+$query = mysql_query("SELECT * FROM `devices` ORDER BY `hostname`");
+while($device = mysql_fetch_array($query)) {
+ $devicesform .= "";
+}
+
+if($updated) { print_message("Device Settings Saved"); }
+
+
+echo('');
+
+if(mysql_result(mysql_query("SELECT COUNT(*) from `services` WHERE `device_id` = '".$device['device_id']."'"), 0) > '0') {
+ $i = "1";
+ $service_query = mysql_query("select * from services WHERE device_id = '".$device['device_id']."' ORDER BY service_type");
+ while($service = mysql_fetch_array($service_query)) {
+ $existform .= "
";
+
+ }
+
+}
+
+echo("
+
");
+
+
+echo('
');
+
+echo('');
+
+echo("
+
");
+
+echo('
');
+
+echo('');
+
+?>
diff --git a/html/pages/device/srv.inc.php b/html/pages/device/srv.inc.php
index b9d1db15e..1e0d2e5c1 100644
--- a/html/pages/device/srv.inc.php
+++ b/html/pages/device/srv.inc.php
@@ -1,12 +1,10 @@
'0') {
+if(mysql_result(mysql_query("select count(service_id) from services WHERE device_id = '".$device['device_id']."'"), 0) > '0') {
echo("");
$i = "1";
- $service_query = mysql_query("select * from services WHERE device_id = '$_GET[id]' ORDER BY service_type");
+ $service_query = mysql_query("select * from services WHERE device_id = '".$device['device_id']."' ORDER BY service_type");
while($service = mysql_fetch_array($service_query)) {
include("includes/print-service.inc");
diff --git a/poll-device.php b/poll-device.php
index f5908ed1e..f299d285e 100755
--- a/poll-device.php
+++ b/poll-device.php
@@ -180,6 +180,7 @@ while ($device = mysql_fetch_array($device_query)) {
include("includes/polling/bgpPeer.inc.php");
include("includes/polling/toner.inc.php");
include("includes/polling/ucd-diskio.inc.php");
+ include("includes/polling/applications.inc.php");
unset( $update ) ;
unset( $seperator) ;
diff --git a/scripts/posfix-queues b/scripts/postfix-queues
similarity index 100%
rename from scripts/posfix-queues
rename to scripts/postfix-queues