make it possible to search tracks by file name

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
This commit is contained in:
Julien Veyssier 2019-06-26 10:48:56 +02:00
Родитель ec25841d9b
Коммит 7c744e5c3b
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4141FEE162030638
2 изменённых файлов: 39 добавлений и 0 удалений

Просмотреть файл

@ -1275,6 +1275,9 @@
// get contacts
var contactData = contactsController.getAutocompData();
data.push(...contactData);
// get tracks
var trackData = tracksController.getAutocompData();
data.push(...trackData);
// get devices
var devData = devicesController.getAutocompData();
data.push(...devData);
@ -1290,6 +1293,15 @@
else if (it.type === 'contact') {
that.map.setView([it.lat, it.lng], 15);
}
else if (it.type === 'track') {
if (tracksController.isTrackEnabled(it.id)) {
tracksController.zoomOnTrack(it.id);
tracksController.showTrackElevation(it.id);
}
else {
tracksController.toggleTrack(it.id, true, false, true);
}
}
else if (it.type === 'device') {
devicesController.zoomOnDevice(it.id);
}
@ -1343,6 +1355,9 @@
if (item.type === 'favorite') {
iconClass = 'icon-favorite';
}
else if (item.type === 'track') {
iconClass = 'icon-category-monitoring';
}
else if (item.type === 'contact') {
iconClass = 'icon-group';
}

Просмотреть файл

@ -530,6 +530,11 @@ TracksController.prototype = {
});
},
isTrackEnabled: function(id) {
var mapTrackLayer = this.mapTrackLayers[id];
return (this.mainLayer.hasLayer(mapTrackLayer));
},
toggleTrack: function(id, save=false, pageLoad=false, zoom=false) {
var trackLayer = this.trackLayers[id];
if (!trackLayer.loaded) {
@ -1177,4 +1182,23 @@ TracksController.prototype = {
}
},
getAutocompData: function() {
var that = this;
var marker, devid;
var data = [];
if (this.map.hasLayer(this.mainLayer)) {
for (trackid in this.tracks) {
// no need for lat/lng here, track will just be enabled or zoomed
track = this.tracks[trackid];
data.push({
type: 'track',
id: trackid,
label: track.file_name,
value: track.file_name
});
}
}
return data;
},
}