- function findEngine(id) {
- return engines.findIndex(function (engine) {
- return engine.id === id;
- });
- }
+ function setEngine(id) {
+ const engines = OSM.Directions.engines;
+ const desired = engines.find(engine => engine.id === id);
+ if (!desired || (chosenEngine && chosenEngine.id === id)) return;
+ chosenEngine = desired;
+
+ const modes = engines
+ .filter(engine => engine.provider === chosenEngine.provider)
+ .map(engine => engine.mode);
+ modeGroup
+ .find("input[id]")
+ .prop("disabled", function () {
+ return !modes.includes(this.id);
+ })
+ .prop("checked", function () {
+ return this.id === chosenEngine.mode;
+ });