mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
separate connected from known from nearby wifi stations in ui
This commit is contained in:
parent
a4d5cc1af6
commit
9dc1f14ccb
@ -15,4 +15,8 @@ nearbyWifiStations($networks, !isset($_REQUEST["refresh"]));
|
||||
connectedWifiStations($networks);
|
||||
sortNetworksByRSSI($networks);
|
||||
|
||||
echo renderTemplate('wifi_stations', compact('networks'), true);
|
||||
$connected = array_filter($networks, function($n) { return $n['connected']; } );
|
||||
$known = array_filter($networks, function($n) { return !$n['connected'] && $n['configured']; } );
|
||||
$nearby = array_filter($networks, function($n) { return !$n['configured']; } );
|
||||
|
||||
echo renderTemplate('wifi_stations', compact('networks', 'connected', 'known', 'nearby'), true);
|
||||
|
@ -16,6 +16,10 @@ body {
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
.h-underlined {
|
||||
border-bottom: 1px solid #343434;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
margin: 20px 0 20px;
|
||||
}
|
||||
@ -193,6 +197,13 @@ pre.unstyled {
|
||||
.js-reload-wifi-stations {
|
||||
min-width: 10rem;
|
||||
}
|
||||
.card-deck--wifi-stations {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.card-deck--wifi-stations .card {
|
||||
flex: 0 46%;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
.sidebar.toggled .nav-item .nav-link span {
|
||||
display: none;
|
||||
|
@ -8,7 +8,6 @@ License: GNU General Public License v3.0
|
||||
|
||||
html * {
|
||||
font-family: Verdana, Geneva, sans-serif;
|
||||
font-size: 0.9rem;
|
||||
color: #828282;
|
||||
}
|
||||
|
||||
@ -34,6 +33,10 @@ h5.card-title {
|
||||
color: #212529;
|
||||
}
|
||||
|
||||
.h-underlined {
|
||||
border-bottom: 1px solid #343434;
|
||||
}
|
||||
|
||||
.card, .modal-dialog {
|
||||
border-radius: 1px;
|
||||
border-color: #ff6600;
|
||||
@ -226,6 +229,13 @@ pre.unstyled {
|
||||
.js-reload-wifi-stations {
|
||||
min-width: 10rem;
|
||||
}
|
||||
.card-deck--wifi-stations {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.card-deck--wifi-stations .card {
|
||||
flex: 0 46%;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
.sidebar.toggled .nav-item .nav-link {
|
||||
text-align: center;
|
||||
|
@ -8,7 +8,6 @@ License: GNU General Public License v3.0
|
||||
|
||||
html * {
|
||||
font-family: Helvetica,Arial,sans-serif;
|
||||
font-size: 1.0rem;
|
||||
color: #afafaf;
|
||||
}
|
||||
|
||||
@ -24,6 +23,10 @@ h5.card-title {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.h-underlined {
|
||||
border-bottom: 1px solid #343434;
|
||||
}
|
||||
|
||||
.page-header {
|
||||
padding: 0 20px;
|
||||
border-left: .01rem solid #d2d2d2;
|
||||
@ -427,6 +430,14 @@ pre {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.card-deck--wifi-stations {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.card-deck--wifi-stations .card {
|
||||
flex: 0 46%;
|
||||
margin-bottom: .75rem;
|
||||
}
|
||||
|
||||
.toggle-off.btn {
|
||||
padding-left: 1.2rem;
|
||||
font-size: 0.9rem!important;
|
||||
|
@ -18,6 +18,7 @@ function knownWifiStations(&$networks)
|
||||
switch (strtolower($lineArr[0])) {
|
||||
case 'ssid':
|
||||
$ssid = trim($lineArr[1], '"');
|
||||
$network['ssid'] = $ssid;
|
||||
break;
|
||||
case 'psk':
|
||||
if (array_key_exists('passphrase', $network)) {
|
||||
@ -83,6 +84,8 @@ function nearbyWifiStations(&$networks, $cached = true)
|
||||
continue;
|
||||
}
|
||||
|
||||
$networks[$ssid]['ssid'] = $ssid;
|
||||
|
||||
// If network is saved
|
||||
if (array_key_exists($ssid, $networks)) {
|
||||
$networks[$ssid]['visible'] = true;
|
||||
|
@ -24,10 +24,10 @@
|
||||
<button type="button" class="btn btn-info btn-block float-right js-reload-wifi-stations"><?php echo _("Rescan"); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
<form method="POST" action="wpa_conf" name="wpa_conf_form" class="row">
|
||||
<form method="POST" action="wpa_conf" name="wpa_conf_form">
|
||||
<?php echo CSRFTokenFieldTag() ?>
|
||||
<input type="hidden" name="client_settings" ?>
|
||||
<div class="row js-wifi-stations w-100 loading-spinner"></div>
|
||||
<div class="js-wifi-stations w-100 loading-spinner"></div>
|
||||
</form>
|
||||
</div><!-- ./ card-body -->
|
||||
<div class="card-footer"><?php echo _("<strong>Note:</strong> WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP"); ?></div>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php if (empty($networks)) { ?>
|
||||
<?php if (empty($networks)): ?>
|
||||
<div class="col-md-6 ml-6">
|
||||
<p class="lead text-center"><?php echo _('No Wifi stations found') ?></p>
|
||||
<p class="text-center"><?php echo _("Click 'Rescan' to search for nearby Wifi stations.") ?></p>
|
||||
@ -12,103 +12,36 @@
|
||||
</form>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php } elseif (count($networks) == 1) {
|
||||
$prop_col = "col-sm-12";
|
||||
$prop_w = "w-50";
|
||||
} else {
|
||||
$prop_col = "col-sm-6";
|
||||
$prop_w = "w-100";
|
||||
}
|
||||
?>
|
||||
<?php endif ?>
|
||||
|
||||
<?php $index = 0; ?>
|
||||
<div class="row ml-1 mr-1 w-100">
|
||||
<?php foreach ($networks as $ssid => $network) : ?>
|
||||
<div class="<?php echo $prop_col; ?> align-items-stretch mb-3">
|
||||
<div class="card h-100 <?php echo $prop_w; ?>">
|
||||
<div class="card-body">
|
||||
<input type="hidden" name="ssid<?php echo $index ?>" value="<?php echo htmlentities($ssid, ENT_QUOTES) ?>" />
|
||||
<?php if (strlen($ssid) == 0) {
|
||||
$ssid = "(unknown)";
|
||||
} ?>
|
||||
<h5 class="card-title"><?php echo htmlspecialchars($ssid, ENT_QUOTES); ?></h5>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Status"); ?></div>
|
||||
<div>
|
||||
<?php if ($network['configured']) { ?>
|
||||
<i class="fas fa-check-circle"></i>
|
||||
<?php } ?>
|
||||
<?php if ($network['connected']) { ?>
|
||||
<i class="fas fa-exchange-alt"></i>
|
||||
<?php } ?>
|
||||
<?php if (!$network['configured'] && !$network['connected']) {
|
||||
echo _("Not configured");
|
||||
} ?>
|
||||
</div>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Channel"); ?></div>
|
||||
<div>
|
||||
<?php if ($network['visible']) { ?>
|
||||
<?php echo htmlspecialchars($network['channel'], ENT_QUOTES) ?>
|
||||
<?php } else { ?>
|
||||
<span class="label label-warning"> X </span>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("RSSI"); ?></div>
|
||||
<div>
|
||||
<?php
|
||||
if (isset($network['RSSI']) && $network['RSSI'] >= -200) {
|
||||
echo htmlspecialchars($network['RSSI'], ENT_QUOTES);
|
||||
echo "dB (";
|
||||
if ($network['RSSI'] >= -50) {
|
||||
echo 100;
|
||||
} elseif ($network['RSSI'] <= -100) {
|
||||
echo 0;
|
||||
} else {
|
||||
echo 2*($network['RSSI'] + 100);
|
||||
}
|
||||
echo "%)";
|
||||
} else {
|
||||
echo " not found ";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php if (array_key_exists('priority', $network)) { ?>
|
||||
<input type="hidden" name="priority<?php echo $index ?>" value="<?php echo htmlspecialchars($network['priority'], ENT_QUOTES); ?>" />
|
||||
<?php } ?>
|
||||
<input type="hidden" name="protocol<?php echo $index ?>" value="<?php echo htmlspecialchars($network['protocol'], ENT_QUOTES); ?>" />
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Security"); ?></div>
|
||||
<div><?php echo $network['protocol'] ?></div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="info-item-wifi"><?php echo _("Passphrase"); ?></div>
|
||||
<div class="input-group">
|
||||
<?php if ($network['protocol'] === 'Open') { ?>
|
||||
<input type="password" disabled class="form-control" aria-describedby="passphrase" name="passphrase<?php echo $index ?>" value="" />
|
||||
<?php } else { ?>
|
||||
<input type="password" class="form-control js-validate-psk" aria-describedby="passphrase" name="passphrase<?php echo $index ?>" value="<?php echo $network['passphrase'] ?>" data-target="#update<?php echo $index ?>" data-colors="#ffd0d0,#d0ffd0">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-secondary js-toggle-password" type="button" data-target="[name=passphrase<?php echo $index ?>]" data-toggle-with="<?php echo _("Hide") ?>">Show</button>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group btn-block ">
|
||||
<?php if ($network['configured']) { ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-warning" value="<?php echo _("Update"); ?>" id="update<?php echo $index ?>" name="update<?php echo $index ?>"<?php echo ($network['protocol'] === 'Open' ? ' disabled' : '')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
<button type="submit" class="col-xs-4 col-md-4 btn btn-info" value="<?php echo $index?>" name="connect"><?php echo _("Connect"); ?></button>
|
||||
<?php } else { ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-info" value="<?php echo _("Add"); ?>" id="update<?php echo $index ?>" name="update<?php echo $index ?>" <?php echo ($network['protocol'] === 'Open' ? '' : ' disabled')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
<?php } ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-danger" value="<?php echo _("Delete"); ?>" name="delete<?php echo $index ?>"<?php echo ($network['configured'] ? '' : ' disabled')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
</div><!-- /.btn-group -->
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
||||
</div><!-- /.col-sm -->
|
||||
<?php $index += 1; ?>
|
||||
<?php if (!empty($connected)): ?>
|
||||
<h4 class="h-underlined my-3"><?php echo _("Connected") ?></h4>
|
||||
<div class="card-deck card-deck--wifi-stations">
|
||||
<?php foreach ($connected as $network) : ?>
|
||||
<?php echo renderTemplate("wifi_stations/network", compact('network', 'index')) ?>
|
||||
<?php $index++; ?>
|
||||
<?php endforeach ?>
|
||||
</div><!-- /.row -->
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (!empty($known)): ?>
|
||||
<h4 class="h-underlined my-3"><?php echo _("Known") ?></h4>
|
||||
<div class="card-deck card-deck--wifi-stations">
|
||||
<?php foreach ($known as $network) : ?>
|
||||
<?php echo renderTemplate("wifi_stations/network", compact('network', 'index')) ?>
|
||||
<?php $index++; ?>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if (!empty($nearby)): ?>
|
||||
<h4 class="h-underlined my-3"><?php echo _("Nearby") ?></h4>
|
||||
<div class="card-deck card-deck--wifi-stations">
|
||||
<?php foreach ($nearby as $network) : ?>
|
||||
<?php echo renderTemplate("wifi_stations/network", compact('network', 'index')) ?>
|
||||
<?php $index++; ?>
|
||||
<?php endforeach ?>
|
||||
</div>
|
||||
<?php endif ?>
|
||||
|
83
templates/wifi_stations/network.php
Normal file
83
templates/wifi_stations/network.php
Normal file
@ -0,0 +1,83 @@
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<input type="hidden" name="ssid<?php echo $index ?>" value="<?php echo htmlentities($network['ssid'], ENT_QUOTES) ?>" />
|
||||
<?php if (strlen($network['ssid']) == 0) {
|
||||
$network['ssid'] = "(unknown)";
|
||||
} ?>
|
||||
<h5 class="card-title"><?php echo htmlspecialchars($network['ssid'], ENT_QUOTES); ?></h5>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Status"); ?></div>
|
||||
<div>
|
||||
<?php if ($network['configured']) { ?>
|
||||
<i class="fas fa-check-circle"></i>
|
||||
<?php } ?>
|
||||
<?php if ($network['connected']) { ?>
|
||||
<i class="fas fa-exchange-alt"></i>
|
||||
<?php } ?>
|
||||
<?php if (!$network['configured'] && !$network['connected']) {
|
||||
echo _("Not configured");
|
||||
} ?>
|
||||
</div>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Channel"); ?></div>
|
||||
<div>
|
||||
<?php if ($network['visible']) { ?>
|
||||
<?php echo htmlspecialchars($network['channel'], ENT_QUOTES) ?>
|
||||
<?php } else { ?>
|
||||
<span class="label label-warning"> X </span>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("RSSI"); ?></div>
|
||||
<div>
|
||||
<?php
|
||||
if (isset($network['RSSI']) && $network['RSSI'] >= -200) {
|
||||
echo htmlspecialchars($network['RSSI'], ENT_QUOTES);
|
||||
echo "dB (";
|
||||
if ($network['RSSI'] >= -50) {
|
||||
echo 100;
|
||||
} elseif ($network['RSSI'] <= -100) {
|
||||
echo 0;
|
||||
} else {
|
||||
echo 2*($network['RSSI'] + 100);
|
||||
}
|
||||
echo "%)";
|
||||
} else {
|
||||
echo " not found ";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
<?php if (array_key_exists('priority', $network)) { ?>
|
||||
<input type="hidden" name="priority<?php echo $index ?>" value="<?php echo htmlspecialchars($network['priority'], ENT_QUOTES); ?>" />
|
||||
<?php } ?>
|
||||
<input type="hidden" name="protocol<?php echo $index ?>" value="<?php echo htmlspecialchars($network['protocol'], ENT_QUOTES); ?>" />
|
||||
|
||||
<div class="info-item-wifi"><?php echo _("Security"); ?></div>
|
||||
<div><?php echo empty($network['protocol']) ? "-" : $network['protocol'] ?></div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="info-item-wifi"><?php echo _("Passphrase"); ?></div>
|
||||
<div class="input-group">
|
||||
<?php if ($network['protocol'] === 'Open') { ?>
|
||||
<input type="password" disabled class="form-control" aria-describedby="passphrase" name="passphrase<?php echo $index ?>" value="" />
|
||||
<?php } else { ?>
|
||||
<input type="password" class="form-control js-validate-psk" aria-describedby="passphrase" name="passphrase<?php echo $index ?>" value="<?php echo $network['passphrase'] ?>" data-target="#update<?php echo $index ?>" data-colors="#ffd0d0,#d0ffd0">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-outline-secondary js-toggle-password" type="button" data-target="[name=passphrase<?php echo $index ?>]" data-toggle-with="<?php echo _("Hide") ?>">Show</button>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="btn-group btn-block ">
|
||||
<?php if ($network['configured']) { ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-warning" value="<?php echo _("Update"); ?>" id="update<?php echo $index ?>" name="update<?php echo $index ?>"<?php echo ($network['protocol'] === 'Open' ? ' disabled' : '')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
<button type="submit" class="col-xs-4 col-md-4 btn btn-info" value="<?php echo $index?>" name="connect"><?php echo _("Connect"); ?></button>
|
||||
<?php } else { ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-info" value="<?php echo _("Add"); ?>" id="update<?php echo $index ?>" name="update<?php echo $index ?>" <?php echo ($network['protocol'] === 'Open' ? '' : ' disabled')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
<?php } ?>
|
||||
<input type="submit" class="col-xs-4 col-md-4 btn btn-danger" value="<?php echo _("Delete"); ?>" name="delete<?php echo $index ?>"<?php echo ($network['configured'] ? '' : ' disabled')?> data-toggle="modal" data-target="#configureClientModal" />
|
||||
</div><!-- /.btn-group -->
|
||||
</div><!-- /.card-body -->
|
||||
</div><!-- /.card -->
|
Loading…
Reference in New Issue
Block a user