summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <mail2xengineering@protonmail.com>2021-06-11 11:40:46 +0200
committerxengineering <mail2xengineering@protonmail.com>2021-06-11 11:40:46 +0200
commit6df5b35600e6aae6e676e2ba29eeaaf88bf9ff9b (patch)
tree1c415dca51dcb61a06551188232982b29c38c77d
parentd4e1f48ff12db48e9a9bdbd3253c1041328ca66d (diff)
downloadbirdscan-6df5b35600e6aae6e676e2ba29eeaaf88bf9ff9b.tar
birdscan-6df5b35600e6aae6e676e2ba29eeaaf88bf9ff9b.tar.zst
birdscan-6df5b35600e6aae6e676e2ba29eeaaf88bf9ff9b.zip
Implement AJAX Call
-rw-r--r--Makefile1
-rw-r--r--data/html/index.html2
-rw-r--r--data/js/birdscan.js7
-rw-r--r--src/web.go11
4 files changed, 21 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 7531fdb..7e3e517 100644
--- a/Makefile
+++ b/Makefile
@@ -21,4 +21,5 @@ install: all
install -Dm 644 systemd/birdscan.sysusers $(DESTDIR)$(PREFIX)/lib/sysusers.d/birdscan.conf
install -Dm 644 data/html/index.html $(DESTDIR)$(PREFIX)/share/birdscan/html/index.html
install -Dm 644 data/css/birdscan.css $(DESTDIR)$(PREFIX)/share/birdscan/css/birdscan.css
+ install -Dm 644 data/js/birdscan.js $(DESTDIR)$(PREFIX)/share/birdscan/js/birdscan.js
diff --git a/data/html/index.html b/data/html/index.html
index af72c46..eddc2b3 100644
--- a/data/html/index.html
+++ b/data/html/index.html
@@ -25,8 +25,10 @@
<main>
<h1>birdscan</h1>
<p>A software to take beautiful pictures of birds with a Raspberry Pi Camera.</p>
+ <button onclick="singlePicture()">Take single picture</button>
</main>
+ <script src="./js/birdscan.js"></script>
</body>
</html>
diff --git a/data/js/birdscan.js b/data/js/birdscan.js
new file mode 100644
index 0000000..d1bba04
--- /dev/null
+++ b/data/js/birdscan.js
@@ -0,0 +1,7 @@
+
+function singlePicture() {
+ const xhttp = new XMLHttpRequest();
+ xhttp.open("POST", "./api/single_picture");
+ xhttp.send();
+}
+
diff --git a/src/web.go b/src/web.go
index 4306b2c..23bf1ff 100644
--- a/src/web.go
+++ b/src/web.go
@@ -26,6 +26,8 @@ func runServer(cfg *webConfig) {
router.Get("/", indexHandler)
router.Get("/css/birdscan.css", cssHandler)
+ router.Get("/js/birdscan.js", jsHandler)
+ router.Post("/api/single_picture", singlePictureHandler)
log.Println("Binding to 'http://" + cfg.BindAddress + ":" + cfg.BindPort + "'")
log.Fatal(http.ListenAndServe(cfg.BindAddress + ":" + cfg.BindPort, router))
@@ -39,3 +41,12 @@ func cssHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, fmt.Sprintf("%s/css/birdscan.css", APP_DATA))
}
+func jsHandler(w http.ResponseWriter, r *http.Request) {
+ http.ServeFile(w, r, fmt.Sprintf("%s/js/birdscan.js", APP_DATA))
+}
+
+func singlePictureHandler(w http.ResponseWriter, r *http.Request) {
+ log.Println("Received request for a single picture")
+ fmt.Fprintf(w, http.StatusText(http.StatusOK))
+}
+