diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2023-11-18 06:18:23 -0500 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2023-11-18 06:18:23 -0500 |
| commit | c560de266caad6db97e58757ca43e8558c103c01 (patch) | |
| tree | 852deb7079d616042a255c906a9196b135ca0bba /dashboard_website/static/js | |
| parent | 939f7a093dadfa89ac1bbe43b0c9fded404c1ad5 (diff) | |
csv import, manual visiting
Diffstat (limited to 'dashboard_website/static/js')
| -rw-r--r-- | dashboard_website/static/js/controls.js | 42 | ||||
| -rw-r--r-- | dashboard_website/static/js/dashboard.js | 20 |
2 files changed, 60 insertions, 2 deletions
diff --git a/dashboard_website/static/js/controls.js b/dashboard_website/static/js/controls.js new file mode 100644 index 0000000..3d81032 --- /dev/null +++ b/dashboard_website/static/js/controls.js @@ -0,0 +1,42 @@ +// uses functions in utils.js +var host = window.location.protocol + "//" + window.location.host; + +function downloadCurrent(){ + call("downloadSave"); +} + +// load and append dirty file +function loadDirty(){ + call("loadDirty", "dirty"); +} + +// load save file (clean) +function loadSave(){ + call("loadSave", "clean"); +} + +function call(command, formid=""){ + var formData; + if (formid == "") { + formData = new FormData(); + }else { + formData = new FormData(document.getElementById(formid)); + } + + formData.append("command", command); + console.log(formData); + + fetch(host+'/controls', { + method: "POST", + body: formData + }).then( res => res.blob() ) + .then( blob => { + var file = window.URL.createObjectURL(blob); + window.location.assign(file);}); + //.then((response) => response.json()) + //.then((json) => handleCallResponse(json)); +} + +function handleLatestInfo(json){ + if(json['status'] != "OK")alert("Error."); +}
\ No newline at end of file diff --git a/dashboard_website/static/js/dashboard.js b/dashboard_website/static/js/dashboard.js index fba7196..4ce6fac 100644 --- a/dashboard_website/static/js/dashboard.js +++ b/dashboard_website/static/js/dashboard.js @@ -123,13 +123,28 @@ function drawClues(){ for (var i = 0; i < clues.length; i++) { var tempIcon = visitedIcon; if (clues[i]['clue_status'] == "UNVISITED") tempIcon = unvisitedIcon; - var clueMarker = L.marker([clues[i]['latitude'], clues[i]['longitude']], {icon: tempIcon}).bindPopup(clues[i]['clue_name'] + ": " + clues[i]['clue_info']); + var popupdiv = document.createElement('p'); + popupdiv.innerHTML = "<span style='color:black'>" + clues[i]['clue_name'] + ": " + clues[i]['clue_info'] + "</span><button style='margin-left:2px' onclick=\"visitClue('"+clues[i]['clue_name']+"')\">Visit</button>" + var clueMarker = L.marker([clues[i]['latitude'], clues[i]['longitude']], {icon: tempIcon}).bindPopup(popupdiv); clue_rels[clues[i]['clue_name']] = clueMarker; if (clues[i]['clue_status'] == "UNVISITED") unvisited_clues_m.addLayer(clueMarker); else visited_clues_m.addLayer(clueMarker); } } +function visitClue(clue_name){ + console.log("visiting: "+clue_name); + fetch(host+'/visitClueGeneric', { + method: "POST", + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ "clue_name" : clue_name })}) + .then((response) => response.json()) + .then((json) => console.log(json)); +} + function addClue(){ var long = parseFloat(document.getElementById("new_clue_longitude").value); var lat = parseFloat(document.getElementById("new_clue_latitude").value); @@ -252,4 +267,5 @@ window.onload = function() { layerControl.addOverlay(bikes_m, "Bikes"); layerControl.addTo(map); requestLatestInfo(); -}
\ No newline at end of file +} + |
