build profile option list dynamically from config.js

This commit is contained in:
Norbert Renner 2014-05-30 11:55:25 +02:00
parent 9279913d36
commit 0e77fc6c6e
4 changed files with 37 additions and 18 deletions

13
config.js Normal file
View file

@ -0,0 +1,13 @@
BR.conf = {
profiles: [
'trekking',
'fastbike',
'shortest',
'all',
/* "does not contain expressions for context node" (?)
'softaccess',
*/
'moped',
'car-test'
]
};

View file

@ -34,18 +34,8 @@
<table>
<tr><td>Profile:</td>
<td><select id="profile">
<!-- sample profiles -->
<option value="" disabled>&lt;custom&gt;</custom></option>
<option value="trekking">trekking</option>
<option value="fastbike">fastbike</option>
<option value="safety">safety</option>
<option value="shortest">shortest</option>
<option value="trekking-ignore-cr">trekking-ignore-cr</option>
<option value="trekking-steep">trekking-steep</option>
<option value="trekking-noferries">trekking-noferries</option>
<option value="trekking-nosteps">trekking-nosteps</option>
<option value="moped">moped</option>
<option value="car-test">car-test</option>
<option value="" disabled>&lt;custom&gt;</option>
<!-- profile option list built dynamically from config -->
</select></td></tr>
<tr><td>Alternative:</td>
<td><select id="alternative">
@ -95,6 +85,7 @@
// global package prefix for BRouter web application
BR = {};
</script>
<script src="config.js"></script>
<script src="js/router/BRouter.js"></script>
<!-- <script src="js/router/brouterCgi.js"></script> -->
<script src="js/control/Control.js"></script>

View file

@ -5,9 +5,24 @@ BR.RoutingOptions = BR.Control.extend({
},
onAdd: function (map) {
L.DomUtil.get('profile').onchange = this._getChangeHandler();
var select = L.DomUtil.get('profile'),
i,
option;
select.onchange = this._getChangeHandler();
L.DomUtil.get('alternative').onchange = this._getChangeHandler();
// build option list from config
var profiles = BR.conf.profiles;
for (i = 0; i < profiles.length; i++) {
option = document.createElement("option");
option.value = profiles[i];
option.text = profiles[i];
select.add(option, null);
}
// <custom> option disabled, select next
select.options[1].selected = true;
return BR.Control.prototype.onAdd.call(this, map);
},

View file

@ -106,10 +106,6 @@
nogos = new BR.NogoAreas();
nogos.on('update', updateRoute);
// initial option settings
router.setOptions(nogos.getOptions());
router.setOptions(routingOptions.getOptions());
stats = new BR.TrackStats();
download = new BR.Download();
elevation = new BR.Elevation();
@ -174,6 +170,10 @@
nogos.addTo(map);
routing.addTo(map);
// initial option settings (after controls are added and initialized with onAdd, before permalink)
router.setOptions(nogos.getOptions());
router.setOptions(routingOptions.getOptions());
map.addControl(new L.Control.Permalink({
text: 'Permalink',
position: 'bottomright',