don't update table when data tab hidden, update when shown
This commit is contained in:
parent
2ab15561a8
commit
44900f9bd5
3 changed files with 56 additions and 6 deletions
|
|
@ -1,6 +1,12 @@
|
||||||
BR.Tabs = BR.Control.extend({
|
BR.Tabs = BR.Control.extend({
|
||||||
options: {
|
options: {
|
||||||
divId: 'tabs_div'
|
divId: 'tabs_div',
|
||||||
|
// tab a.hash > instance
|
||||||
|
tabs: {}
|
||||||
|
},
|
||||||
|
|
||||||
|
initialize: function (options) {
|
||||||
|
L.setOptions(this, options);
|
||||||
},
|
},
|
||||||
|
|
||||||
onAdd: function (map) {
|
onAdd: function (map) {
|
||||||
|
|
@ -9,6 +15,20 @@ BR.Tabs = BR.Control.extend({
|
||||||
$(this).tab('show');
|
$(this).tab('show');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// e.target = activated tab
|
||||||
|
// e.relatedTarget = previous tab
|
||||||
|
$('#tab a').on('shown.bs.tab', L.bind(function (e) {
|
||||||
|
var tab = this.options.tabs[e.target.hash],
|
||||||
|
prevTab = this.options.tabs[e.relatedTarget.hash];
|
||||||
|
|
||||||
|
if (tab && tab.show) {
|
||||||
|
tab.show();
|
||||||
|
}
|
||||||
|
if (prevTab && prevTab.hide) {
|
||||||
|
prevTab.hide();
|
||||||
|
}
|
||||||
|
}, this));
|
||||||
|
|
||||||
return BR.Control.prototype.onAdd.call(this, map);
|
return BR.Control.prototype.onAdd.call(this, map);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
BR.TrackMessages = L.Class.extend({
|
BR.TrackMessages = L.Class.extend({
|
||||||
|
// true when tab is shown, false when hidden
|
||||||
|
active: false,
|
||||||
|
|
||||||
columnOptions: {
|
columnOptions: {
|
||||||
'Longitude': { visible: false },
|
'Longitude': { visible: false },
|
||||||
|
|
@ -10,7 +12,9 @@ BR.TrackMessages = L.Class.extend({
|
||||||
'TurnCost': { title: 'turncost', className: 'dt-body-right' }
|
'TurnCost': { title: 'turncost', className: 'dt-body-right' }
|
||||||
},
|
},
|
||||||
|
|
||||||
initialize: function () {
|
initialize: function (options) {
|
||||||
|
L.setOptions(this, options);
|
||||||
|
|
||||||
var table = document.getElementById('datatable');
|
var table = document.getElementById('datatable');
|
||||||
this.tableClassName = table.className;
|
this.tableClassName = table.className;
|
||||||
this.tableParent = table.parentElement;
|
this.tableParent = table.parentElement;
|
||||||
|
|
@ -24,6 +28,9 @@ BR.TrackMessages = L.Class.extend({
|
||||||
headings,
|
headings,
|
||||||
table;
|
table;
|
||||||
|
|
||||||
|
if (!this.active)
|
||||||
|
return;
|
||||||
|
|
||||||
for (i = 0; segments && i < segments.length; i++) {
|
for (i = 0; segments && i < segments.length; i++) {
|
||||||
messages = segments[i].feature.properties.messages;
|
messages = segments[i].feature.properties.messages;
|
||||||
data = data.concat(messages.slice(1));
|
data = data.concat(messages.slice(1));
|
||||||
|
|
@ -54,6 +61,15 @@ BR.TrackMessages = L.Class.extend({
|
||||||
console.timeEnd('datatable');
|
console.timeEnd('datatable');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
show: function() {
|
||||||
|
this.active = true;
|
||||||
|
this.options.requestUpdate(this);
|
||||||
|
},
|
||||||
|
|
||||||
|
hide: function() {
|
||||||
|
this.active = false;
|
||||||
|
},
|
||||||
|
|
||||||
_destroyTable: function() {
|
_destroyTable: function() {
|
||||||
var ele;
|
var ele;
|
||||||
|
|
||||||
|
|
|
||||||
18
js/index.js
18
js/index.js
|
|
@ -107,6 +107,13 @@
|
||||||
routing.rerouteAllSegments(onUpdate);
|
routing.rerouteAllSegments(onUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function requestUpdate(updatable) {
|
||||||
|
var track = routing.toPolyline(),
|
||||||
|
segments = routing.getSegments();
|
||||||
|
|
||||||
|
updatable.update(track, segments);
|
||||||
|
}
|
||||||
|
|
||||||
routingOptions = new BR.RoutingOptions();
|
routingOptions = new BR.RoutingOptions();
|
||||||
routingOptions.on('update', updateRoute);
|
routingOptions.on('update', updateRoute);
|
||||||
|
|
||||||
|
|
@ -141,7 +148,9 @@
|
||||||
BR.message.hideError();
|
BR.message.hideError();
|
||||||
routingOptions.setCustomProfile(null);
|
routingOptions.setCustomProfile(null);
|
||||||
});
|
});
|
||||||
trackMessages = new BR.TrackMessages();
|
trackMessages = new BR.TrackMessages({
|
||||||
|
requestUpdate: requestUpdate
|
||||||
|
});
|
||||||
|
|
||||||
routing = new BR.Routing({
|
routing = new BR.Routing({
|
||||||
routing: {
|
routing: {
|
||||||
|
|
@ -199,7 +208,12 @@
|
||||||
stats.addTo(map);
|
stats.addTo(map);
|
||||||
download.addTo(map);
|
download.addTo(map);
|
||||||
elevation.addTo(map);
|
elevation.addTo(map);
|
||||||
map.addControl(new BR.Tabs());
|
map.addControl(new BR.Tabs({
|
||||||
|
tabs: {
|
||||||
|
'#tab_profile': profile,
|
||||||
|
'#tab_data': trackMessages
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
nogos.addTo(map);
|
nogos.addTo(map);
|
||||||
routing.addTo(map);
|
routing.addTo(map);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue