fix scancollector with wifi and ibeacon
This commit is contained in:
parent
f97b57fbc8
commit
7532fc39ed
4 changed files with 27 additions and 14 deletions
|
@ -407,24 +407,32 @@ body > .scancollector {
|
||||||
.scancollector:not(.running) .btn.stop,
|
.scancollector:not(.running) .btn.stop,
|
||||||
.scancollector:not(.done) .btn.reset,
|
.scancollector:not(.done) .btn.reset,
|
||||||
.scancollector.empty .count-line,
|
.scancollector.empty .count-line,
|
||||||
|
.scancollector.empty table,
|
||||||
|
.abcdefg,
|
||||||
body:not(.mobileclient) .scancollector .btn {
|
body:not(.mobileclient) .scancollector .btn {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
.scancollector .count-line {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
.scancollector .btn {
|
.scancollector .btn {
|
||||||
margin: 0 5px 0 0;
|
margin: 0 5px 0 0;
|
||||||
}
|
}
|
||||||
.scancollector p:first-child {
|
.scancollector p:first-child {
|
||||||
height: 26px;
|
height: 26px;
|
||||||
margin: 0;
|
|
||||||
}
|
}
|
||||||
.scancollector table {
|
.scancollector table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-style: solid;
|
margin-top: -8px;
|
||||||
border-width: 0 0 1px;
|
&:not(:last-child) {
|
||||||
border-color: #666666;
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.scancollector table {
|
||||||
|
|
||||||
}
|
}
|
||||||
.scancollector table td {
|
.scancollector table td {
|
||||||
padding: 5px 5px 0 0;
|
padding: 2px 2px 0 0;
|
||||||
}
|
}
|
||||||
.scancollector table td:last-child {
|
.scancollector table td:last-child {
|
||||||
padding-right: 0;
|
padding-right: 0;
|
||||||
|
|
|
@ -1341,7 +1341,7 @@ editor = {
|
||||||
},
|
},
|
||||||
_scancollector_reset: function () {
|
_scancollector_reset: function () {
|
||||||
var $collector = $('#sidebar').find('.scancollector');
|
var $collector = $('#sidebar').find('.scancollector');
|
||||||
$collector.removeClass('done').removeClass('running').addClass('empty').find('table').forEach(function(elem) {elem.html('');});
|
$collector.removeClass('done').removeClass('running').addClass('empty').find('table tbody').each(function(elem) {elem.html('');});
|
||||||
$collector.siblings('[name=data]').val('');
|
$collector.siblings('[name=data]').val('');
|
||||||
$collector.closest('form').addClass('scan-lock');
|
$collector.closest('form').addClass('scan-lock');
|
||||||
},
|
},
|
||||||
|
@ -1349,7 +1349,7 @@ editor = {
|
||||||
_scancollector_wifi_last_result: 0,
|
_scancollector_wifi_last_result: 0,
|
||||||
_scancollector_wifi_result: function(data) {
|
_scancollector_wifi_result: function(data) {
|
||||||
var $collector = $('#sidebar').find('.scancollector.running'),
|
var $collector = $('#sidebar').find('.scancollector.running'),
|
||||||
$table = $collector.find('.wifi-table'),
|
$table = $collector.find('.wifi-table tbody'),
|
||||||
item, i, line, apid, color, max_last = 0, now = Date.now();
|
item, i, line, apid, color, max_last = 0, now = Date.now();
|
||||||
editor._wifi_scan_waits = false;
|
editor._wifi_scan_waits = false;
|
||||||
|
|
||||||
|
@ -1402,7 +1402,7 @@ editor = {
|
||||||
},
|
},
|
||||||
_scancollector_ibeacon_result: function(data) {
|
_scancollector_ibeacon_result: function(data) {
|
||||||
var $collector = $('#sidebar').find('.scancollector.running'),
|
var $collector = $('#sidebar').find('.scancollector.running'),
|
||||||
$table = $collector.find('.ibeacon-table'),
|
$table = $collector.find('.ibeacon-table tbody'),
|
||||||
item, i, line, beaconid, color = Date.now();
|
item, i, line, beaconid, color = Date.now();
|
||||||
|
|
||||||
if (!data.length) return;
|
if (!data.length) return;
|
||||||
|
@ -1410,8 +1410,7 @@ editor = {
|
||||||
$table.find('tr').addClass('old');
|
$table.find('tr').addClass('old');
|
||||||
for (i=0; i < data.length; i++) {
|
for (i=0; i < data.length; i++) {
|
||||||
item = data[i];
|
item = data[i];
|
||||||
|
beaconid = 'beacon-'+item.uuid+'-'+item.major+'-'+item.minor;
|
||||||
beaconid = 'beacon-'+item.uuid+'-'+item.major+'-'+item-minor;
|
|
||||||
line = $table.find('tr.'+beaconid);
|
line = $table.find('tr.'+beaconid);
|
||||||
color = Math.max(0, Math.min(50, item.distance));
|
color = Math.max(0, Math.min(50, item.distance));
|
||||||
color = 'rgb('+String(color*5)+', '+String(200-color*4)+', 0)';
|
color = 'rgb('+String(color*5)+', '+String(200-color*4)+', 0)';
|
||||||
|
@ -1443,7 +1442,7 @@ function nearby_stations_available() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function ibeacon_results_available() {
|
function ibeacon_results_available() {
|
||||||
c3nav._scancollector_ibeacon_result(mobileclient.getNearbyBeacons());
|
editor._scancollector_ibeacon_result(JSON.parse(mobileclient.getNearbyBeacons()));
|
||||||
}
|
}
|
||||||
|
|
||||||
LevelControl = L.Control.extend({
|
LevelControl = L.Control.extend({
|
||||||
|
|
|
@ -79,9 +79,15 @@
|
||||||
{% trans 'mobileclient not found. Please install the c3nav app for wifi scanning support.' %}
|
{% trans 'mobileclient not found. Please install the c3nav app for wifi scanning support.' %}
|
||||||
</em></p>
|
</em></p>
|
||||||
<p><span class="count-line"><span class="wifi-count">0</span> WiFi scans</span></p>
|
<p><span class="count-line"><span class="wifi-count">0</span> WiFi scans</span></p>
|
||||||
<table class="wifi-table"></table>
|
<table class="wifi-table">
|
||||||
|
<thead><tr><th>BSSID</th><th>SSID</th><th>RSSI</th></tr></thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
<p><span class="count-line"><span class="ibeacon-count">0</span> iBeacon scans</span></p>
|
<p><span class="count-line"><span class="ibeacon-count">0</span> iBeacon scans</span></p>
|
||||||
<table class="ibeacon-table"></table>
|
<table class="ibeacon-table">
|
||||||
|
<thead><tr><th>Major</th><th>Minor</th><th>Dist</th></tr></thead>
|
||||||
|
<tbody></tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="theme-editor-filter">
|
<div class="theme-editor-filter">
|
||||||
|
|
|
@ -461,7 +461,7 @@ class BeaconMeasurement(SpaceGeometryMixin, models.Model):
|
||||||
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True,
|
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True,
|
||||||
verbose_name=_('author'))
|
verbose_name=_('author'))
|
||||||
comment = models.TextField(null=True, blank=True, verbose_name=_('comment'))
|
comment = models.TextField(null=True, blank=True, verbose_name=_('comment'))
|
||||||
data = models.JSONField(_('Measurement list'), default=list) # would be nice if this used pydantic
|
data = models.JSONField(_('Measurement list'), default=dict) # would be nice if this used pydantic
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _('Beacon Measurement')
|
verbose_name = _('Beacon Measurement')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue