diff options
Diffstat (limited to 'static')
| -rw-r--r-- | static/main.js | 26 | 
1 files changed, 25 insertions, 1 deletions
| diff --git a/static/main.js b/static/main.js index 8687dc1..ad50976 100644 --- a/static/main.js +++ b/static/main.js @@ -1,13 +1,37 @@ -async function btn_send_packet() { +async function btn_add_destination() { +    const template = document.getElementById('destination_template'); + +    let clon = template.content.cloneNode(true); +    document.getElementById('destinations').appendChild(clon); +} + +async function btn_remove_destination(element_clicked) { +    element_clicked.parentElement.remove() +} +async function btn_send_packet() {      let data = {          'comment': null, +        'destinations': [],      };      if (document.getElementById('with_comment').checked) {          data.comment = document.getElementById('whisker_comment').value;      } +    const destinations = document.getElementById('destinations'); +    const destList = destinations.querySelectorAll("p.destination"); +    for (let i = 0; i < destList.length; i++) { +        const dest_callsign = destList[i].querySelector("input.dest_callsign").value; +        const dest_ssid_str = destList[i].querySelector("input.dest_ssid").value; +        const dest_ssid = parseInt(dest_ssid_str, 10); +        if (dest_ssid < 0 || dest_ssid > 255) { +            alert("SSID must be between 0 and 255"); +            return; +        } +        data.destinations.push({'callsign': dest_callsign, 'ssid': dest_ssid}); +    } +      await post('/api/send_packet', data);  } | 
