Index: include.js
===================================================================
--- include.js	(revision 568ed4e6b94ea54c27b04a537ac74f78f44fe42c)
+++ include.js	(revision 18b334175a50d4277e8b097d135fa82f13bc86ea)
@@ -443,10 +443,11 @@
 	sorted = orgs.sort(function(a, b) { return a.licExpirationDate - b.licExpirationDate; });
 	$("#meraki_licence_output").html('\
-		<table id="licenceOutputTable">\
+		<table id="merkai_licence_output_table">\
 			<tr>\
-				<td><b>Organisation</b></td>\
-				<td><b>Status</b></td>\
-				<td><b>Expiration Date</b></td>\
-				<td><b>Devices</b></td>\
+				<td class="meraki_output_header_group"><b>Organisation</b></td>\
+				<td class="meraki_output_header_group"><b>Status</b></td>\
+				<td class="meraki_output_header_group"><b>Expiration Date</b></td>\
+				<td class="meraki_output_header_group"><b>Device Type</b></td>\
+				<td class="meraki_output_header_group"><b>Device Count</b></td>\
 			</tr>\
 		</table>\
@@ -455,12 +456,39 @@
 		d = new Date(sorted[data].licExpirationDate);
 		n = d.toDateString();
-		$("#licenceOutputTable").append('\
+		licenced_devices = dump_licenced_devices(sorted[data].licLicensedDeviceCounts);
+		number_of_types=licenced_devices.length;
+		var status_class = '';
+		switch (sorted[data].licStatus) {
+			case "ERROR":
+			case "Expired":
+				status_class = 'meraki_failure';
+				break;
+			case "Warning":
+				status_class = 'meraki_warning';
+				break;
+			case "OK":
+				status_class = 'meraki_success';
+				break;
+			default:
+				break;
+		}
+		
+		$("#merkai_licence_output_table").append('\
 			<tr>\
-				<td>' + sorted[data].name + '</td>\
-				<td>' + sorted[data].licStatus + '</td>\
-				<td>' + n + '</td>\
-				<td>'+ dump_licenced_devices(sorted[data].licLicensedDeviceCounts) + '</td>\
+				<td rowspan="'+number_of_types+'" class="meraki_output_group">' + sorted[data].name + '</td>\
+				<td rowspan="'+number_of_types+'" class="meraki_output_group ' + status_class + '">' + sorted[data].licStatus + '</td>\
+				<td rowspan="'+number_of_types+'" class="meraki_output_group">' + n + '</td>\
+				<td class="meraki_output_group">'+ licenced_devices[0].type + '</td>\
+				<td class="meraki_output_group">'+ licenced_devices[0].count + '</td>\
 			</tr>\
-		');		
+		');	
+		for (i=1; i<number_of_types; i++) {
+			$("#merkai_licence_output_table").append('\
+				<tr>\
+					<td class="meraki_output_group">' + licenced_devices[i].type + '</td>\
+					<td class="meraki_output_group">' + licenced_devices[i].count + '</td>\
+				</tr>\
+			');
+		}
 	});
 	status_update("Done...");
@@ -469,16 +497,13 @@
 function dump_licenced_devices(data) {
 	var i = 0;
-	var list = '';
+	var list = [];
 	if (data != 'ERROR'){
 		for (type in data) {
-			if ( i != 0 ) {
-				list = list + '<br/>';
-			}
-			list = list + type + ' --> ' + data[type];
+			list[i] = { type: type, count: data[type] };
 			i++;
 		}
 	}
 	else {
-		list = 'ERROR';
+		list[i] = {type:'ERROR', count:'ERROR'};
 	}
 	return list;
Index: include.php
===================================================================
--- include.php	(revision 568ed4e6b94ea54c27b04a537ac74f78f44fe42c)
+++ include.php	(revision 18b334175a50d4277e8b097d135fa82f13bc86ea)
@@ -48,18 +48,28 @@
 			$key = $_POST['key'];
 		}
+		
+		$truncated_key = preg_replace ( '/^[0-9a-fA-F]{36}/', '******', $key );
+		
 		switch ($_POST['action']) {
 			case "get_orgs":
+				error_log("Username: " . $_SERVER['REMOTE-USER'] . " Key: " . $truncated_key . " Action: " . $_POST['action'], 0);
 				echo ( get_orgs($key) );
 				break;
 			case "get_org_licences":
+				error_log("Username: " . $_SERVER['REMOTE-USER'] . " Key: " . $truncated_key . " Action: " . $_POST['action'], 0);
 				echo ( get_org_licences($_POST['orgid'], $key) );
 				break;
 			case "get_org_admins":
+				error_log("Username: " . $_SERVER['REMOTE-USER'] . " Key: " . $truncated_key . " Action: " . $_POST['action'], 0);
 				echo ( get_org_admins($_POST['orgid'], $key) );
 				break;
 			case "add_org_admin":
+				error_log("Username: " . $_SERVER['REMOTE-USER'] . " Key: " . $truncated_key . " Action: " . $_POST['action'], 0);
+				error_log("orgid: " . $_POST['orgid'] . " Name: " . $_POST['fname'] . " Email: " . $_POST['email'] . " OrgAccess: " . $_POST['orgaccess'], 0);
 				echo ( add_org_admin($_POST['orgid'], $_POST['fname'], $_POST['email'], $_POST['orgaccess'], $key) );
 				break;
 			case "delete_org_admin":
+				error_log("Username: " . $_SERVER['REMOTE-USER'] . " Key: " . $truncated_key . " Action: " . $_POST['action'], 0);
+				error_log("orgid: " . $_POST['orgid'] . " Adminid: " . $_POST['adminid']);
 				echo ( delete_org_admin($_POST['orgid'], $_POST['adminid'], $key) );
 				break;
