/**
Implémente la télécommande JOSM
Le HTML géré pourrait ressembler à :
```html
```
Où la valeur `commands` prend la forme d’un objet JSON dont chacune des entrées
représente une commande à enchaîner successivement et où la clef est le chemin
de la commande et la valeur un objet dont chacune des entrées représente les
paramètres de la commande.
Par exemple :
```json
{
"version": {},
"imagery": {
"id": "osmfr",
}
}
```
Avec cette valeur de `commands`, les appels successifs aux endpoints `/version`
puis `imagery?id=osmfr` seront effectués.
Cf
TODO Gérer le cas où il n’y a pas de JOSM en face pourrait être plus user-friendly.
**/
import { Controller } from '@hotwired/stimulus';
export default class extends Controller {
static values = {
commands: String,
}
remoteControl() {
const baseurl = 'http://localhost:8111';
const _this = this, commands = JSON.parse(this.commandsValue);
for (var command in commands) {
var url = baseurl + '/' + command, params = new URLSearchParams();
for (var name in commands[command]) {
params.append(name, commands[command][name]);
}
if (Array.from(params.length > 0)) {
url += '?' + params.toString();
}
fetch(url)
.then(function (response) {
return response.text();
})
.then(function (text) {
});
}
}
}