Repair sort and get value wifi connection

This commit is contained in:
Haitem 2020-09-15 16:38:11 +02:00
parent 20469c65db
commit c75c67d420
3 changed files with 63 additions and 37 deletions

View File

@ -3,7 +3,8 @@ class DeviceManager{
public static $devices; public static $devices;
static function getAllDevices () { static function getAllDevices () {
return Db::loadAll ("SELECT * FROM devices WHERE approved != ?", Array(2)); return Db::loadAll ("SELECT devices.* FROM devices
WHERE approved != ?", Array(2));
} }
static function getAllDevicesInRoom ($roomId = "") { static function getAllDevicesInRoom ($roomId = "") {
@ -27,7 +28,9 @@ class DeviceManager{
} }
static function getAllDevicesSorted ($sort, $sortType = "ASC") { static function getAllDevicesSorted ($sort, $sortType = "ASC") {
return Db::loadAll ("SELECT devices.* FROM devices LEFT JOIN rooms ON devices.room_id = rooms.room_id WHERE devices.approved != ? ORDER BY $sort $sortType", Array(2)); return Db::loadAll ("SELECT devices.* FROM devices
LEFT JOIN rooms ON (devices.room_id = rooms.room_id)
WHERE devices.approved != ? ORDER BY $sort $sortType", Array(2));
} }
public static function create ($name, $token) { public static function create ($name, $token) {

View File

@ -6,6 +6,8 @@ class Device extends Template
function __construct () { function __construct () {
$userManager = new UserManager (); $userManager = new UserManager ();
$deviceManager = new DeviceManager (); $deviceManager = new DeviceManager ();
$subDeviceManager = new SubDeviceManager ();
$recordManager = new RecordManager ();
$roomManager = new RoomManager (); $roomManager = new RoomManager ();
$langMng = new LanguageManager ('en'); $langMng = new LanguageManager ('en');
@ -73,6 +75,16 @@ class Device extends Template
} }
foreach ($devices as $key => $device) { foreach ($devices as $key => $device) {
$subdevice = $subDeviceManager->getSubDeviceByMasterAndType ($device['device_id'], "wifi");
if (!empty ($subdevice['subdevice_id'])) {
$record = $recordManager->getLastRecord($subdevice['subdevice_id']);
if (!empty ($record)) {
$devices[$key]['signal'] = $record['value'] . " " . $subdevice['unit'];
}
}
if (empty ($devices[$key]['signal'])) {
$devices[$key]['signal'] = "";
}
$localBinary = "../updater/" . str_replace (':', '', $device['mac']) . ".bin"; $localBinary = "../updater/" . str_replace (':', '', $device['mac']) . ".bin";
if (file_exists ($localBinary)) { if (file_exists ($localBinary)) {
$hash = md5_file ($localBinary); $hash = md5_file ($localBinary);
@ -99,6 +111,16 @@ class Device extends Template
return $b['firmware_hash'] <=> $a['firmware_hash']; return $b['firmware_hash'] <=> $a['firmware_hash'];
}); });
} }
} else if (!empty ($_GET['sort']) && !empty ($_GET['sortType']) && $_GET['sort'] == "signal") {
if ($_GET['sortType'] == "DESC") {
usort($devices, function($a, $b) {
return $a['signal'] <=> $b['signal'];
});
} else if ($_GET['sortType'] == "ASC") {
usort($devices, function($a, $b) {
return $b['signal'] <=> $a['signal'];
});
}
} }
$rooms = $roomManager->getAllRooms(); $rooms = $roomManager->getAllRooms();

View File

@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<?php <?php
$partial = new Partial('head'); $partial = new Partial('head');
@ -8,6 +9,7 @@
?> ?>
<title><?php echo $TITLE ?></title> <title><?php echo $TITLE ?></title>
</head> </head>
<body class="no-transitions"> <body class="no-transitions">
<div class="row no-gutters main"> <div class="row no-gutters main">
<div class="col-md-3 d-sm-none"></div> <div class="col-md-3 d-sm-none"></div>
@ -27,7 +29,6 @@
<th><a href="device?sort=name&sortType=<?php echo $SORTTYPE; ?>">Name</a><i class="fa"><?php echo (!empty($SORTICON['name']) ? $SORTICON['name'] : ""); ?></i></th> <th><a href="device?sort=name&sortType=<?php echo $SORTTYPE; ?>">Name</a><i class="fa"><?php echo (!empty($SORTICON['name']) ? $SORTICON['name'] : ""); ?></i></th>
<th><a href="device?sort=room&sortType=<?php echo $SORTTYPE; ?>">Room</a><i class="fa"><?php echo (!empty($SORTICON['room']) ? $SORTICON['room'] : ""); ?></i></th> <th><a href="device?sort=room&sortType=<?php echo $SORTTYPE; ?>">Room</a><i class="fa"><?php echo (!empty($SORTICON['room']) ? $SORTICON['room'] : ""); ?></i></th>
<th><a href="device?sort=signal&sortType=<?php echo $SORTTYPE; ?>">Signal</a><i class="fa"><?php echo (!empty($SORTICON['signal']) ? $SORTICON['signal'] : ""); ?></i></th> <th><a href="device?sort=signal&sortType=<?php echo $SORTTYPE; ?>">Signal</a><i class="fa"><?php echo (!empty($SORTICON['signal']) ? $SORTICON['signal'] : ""); ?></i></th>
<th><a href="device?sort=firmware&sortType=<?php echo $SORTTYPE; ?>">Firmware</a><i class="fa"><?php echo (!empty($SORTICON['firmware']) ? $SORTICON['firmware'] : ""); ?></i></th> <th><a href="device?sort=firmware&sortType=<?php echo $SORTTYPE; ?>">Firmware</a><i class="fa"><?php echo (!empty($SORTICON['firmware']) ? $SORTICON['firmware'] : ""); ?></i></th>
<th> <th>
<a href="device?sort=ip&sortType=<?php echo $SORTTYPE; ?>">IP Address</a><i class="fa"><?php echo (!empty($SORTICON['ip']) ? $SORTICON['ip'] : ""); ?></i><br> <a href="device?sort=ip&sortType=<?php echo $SORTTYPE; ?>">IP Address</a><i class="fa"><?php echo (!empty($SORTICON['ip']) ? $SORTICON['ip'] : ""); ?></i><br>
@ -51,53 +52,53 @@
<input class="input" type="text" onchange="this.form.submit();" name="deviceName" value="<?php echo (!empty($device['name']) ? $device['name'] : ""); ?>"> <input class="input" type="text" onchange="this.form.submit();" name="deviceName" value="<?php echo (!empty($device['name']) ? $device['name'] : ""); ?>">
</form> </form>
</td> </td>
<td><?php echo (!empty($device['signal']) ? $device['signal'] : ""); ?></td>
<td> <td>
<form method="post" action=""> <form method="post" action="">
<input type="hidden" name="deviceId" value="<?php echo (!empty($device['device_id']) ? $device['device_id'] : ""); ?>"> <input type="hidden" name="deviceId" value="<?php echo (!empty($device['device_id']) ? $device['device_id'] : ""); ?>">
<select class="input" name="deviceRoomId" onchange="this.form.submit();"> <select class="input" name="deviceRoomId" onchange="this.form.submit();">
<?php <?php
if (!empty ($ROOMS)) { if (!empty($ROOMS)) {
foreach ($ROOMS as $key => $room) { foreach ($ROOMS as $key => $room) {
echo '<option value="' . $room['room_id'] . '" ' . ($device['room_id'] == $room['room_id'] ? 'selected' : '') . '>' . $room['name'] . '</option>'; echo '<option value="' . $room['room_id'] . '" ' . ($device['room_id'] == $room['room_id'] ? 'selected' : '') . '>' . $room['name'] . '</option>';
}
} }
} ?>
?> </select>
</select> </form>
</form>
</td> </td>
<td><?php echo (!empty($device['signal']) ? $device['signal'] : ""); ?></td>
<td> <td>
<?php if (!empty($device['mac'])) : ?> <?php if (!empty($device['mac'])) : ?>
<?php <?php
$icon = "fa-circle"; $icon = "fa-circle";
$color = "yellow"; $color = "yellow";
if (!empty($device['firmware_hash'])) { if (!empty($device['firmware_hash'])) {
if ($device['firmware_hash'] == "true") { if ($device['firmware_hash'] == "true") {
$icon = "fa-check-circle"; $icon = "fa-check-circle";
$color = "green"; $color = "green";
} else if ($device['firmware_hash'] == "need") { } else if ($device['firmware_hash'] == "need") {
$icon = "fa-arrow-circle-up"; $icon = "fa-arrow-circle-up";
$color = "#6495ED"; $color = "#6495ED";
} else { } else {
$icon = "fa-times-circle"; $icon = "fa-times-circle";
$color = "red"; $color = "red";
}
} }
}
?> ?>
<i class="fa <?php echo $icon; ?>" style="color: <?php echo $color; ?>;"></i> <i class="fa <?php echo $icon; ?>" style="color: <?php echo $color; ?>;"></i>
<?php echo $device['firmware_hash'] ?> <?php echo $device['firmware_hash'] ?>
<button class="fa custom-file-input" type="button" onclick="document.getElementById('deviceFirmware-<?php echo $device['device_id']?>').click();">&#xf0ee;</button> <button class="fa custom-file-input" type="button" onclick="document.getElementById('deviceFirmware-<?php echo $device['device_id'] ?>').click();">&#xf0ee;</button>
<form style="display: none;" method="post" action="" enctype="multipart/form-data"> <form style="display: none;" method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="deviceId" value="<?php echo (!empty($device['device_id']) ? $device['device_id'] : ""); ?>"> <input type="hidden" name="deviceId" value="<?php echo (!empty($device['device_id']) ? $device['device_id'] : ""); ?>">
<input type="file" onchange="this.form.submit();" name="deviceFirmware" id="deviceFirmware-<?php echo $device['device_id']?>" value=""> <input type="file" onchange="this.form.submit();" name="deviceFirmware" id="deviceFirmware-<?php echo $device['device_id'] ?>" value="">
</form> </form>
<?php endif; ?> <?php endif; ?>
<div type="float: clear;"></div> <div type="float: clear;"></div>
</td> </td>
<td><?php echo (!empty($device['mac']) ? $device['mac'] : ""); ?><br> <td><?php echo (!empty($device['mac']) ? $device['mac'] : ""); ?><br>
<?php echo (!empty($device['ip_address']) ? $device['ip_address'] : ""); ?><br> <?php echo (!empty($device['ip_address']) ? $device['ip_address'] : ""); ?><br>
<?php echo (!empty($device['token']) ? $device['token'] : ""); ?></td> <?php echo (!empty($device['token']) ? $device['token'] : ""); ?></td>
<td> <td>
<?php if (!empty($device['mac'])) : ?> <?php if (!empty($device['mac'])) : ?>
<form method="post" action=""> <form method="post" action="">
@ -121,11 +122,11 @@
//TODO js do main.js //TODO js do main.js
?> ?>
<script> <script>
$( function() { $(function() {
$( "#sortable" ).sortable(); $("#sortable").sortable();
$( "#sortable" ).disableSelection(); $("#sortable").disableSelection();
} ); });
</script> </script>
</body> </body>
</html> </html>