From c2e1a29c3d96426b5e8bed48f59c966b6c2371cf Mon Sep 17 00:00:00 2001 From: BroodjeAap Date: Mon, 23 Jan 2023 17:55:57 +0000 Subject: [PATCH] added upload option to create watch page --- main.go | 14 ++++++++++++++ static/create.js | 21 +++++++++++++++++++++ static/create.ts | 25 +++++++++++++++++++++++++ templates/watch/create.html | 26 +++++++++++++++++++------- 4 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 static/create.js create mode 100644 static/create.ts diff --git a/main.go b/main.go index b06c179..2ef3ace 100644 --- a/main.go +++ b/main.go @@ -489,6 +489,20 @@ func (web *Web) watchCreatePost(c *gin.Context) { return } jsn = body + } else if templateID == -2 { // watch from file upload + file, err := c.FormFile("file") + + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + return + } + + openedFile, err := file.Open() + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + return + } + jsn, _ = ioutil.ReadAll(openedFile) } else { // selected one of the templates templateFiles, err := EMBED_FS.ReadDir("watchTemplates") if err != nil { diff --git a/static/create.js b/static/create.js new file mode 100644 index 0000000..373d17e --- /dev/null +++ b/static/create.js @@ -0,0 +1,21 @@ +function urlOnChange() { + var urlInput = document.getElementById("url"); + if (urlInput.value.length > 0) { + var urlInputRadio = document.getElementById("urlRadio"); + urlInputRadio.checked = true; + } +} +function fileOnChange() { + var fileInput = document.getElementById("file"); + if (fileInput.files !== null) { + var fileInputRadio = document.getElementById("fileRadio"); + fileInputRadio.checked = true; + } +} +function initOnChange() { + var urlInput = document.getElementById("url"); + urlInput.onchange = urlOnChange; + var fileInput = document.getElementById("file"); + fileInput.onchange = fileOnChange; +} +document.addEventListener('DOMContentLoaded', initOnChange, false); diff --git a/static/create.ts b/static/create.ts new file mode 100644 index 0000000..ec255a7 --- /dev/null +++ b/static/create.ts @@ -0,0 +1,25 @@ +function urlOnChange(){ + let urlInput = document.getElementById("url") as HTMLInputElement; + if (urlInput.value.length > 0){ + let urlInputRadio = document.getElementById("urlRadio") as HTMLInputElement; + urlInputRadio.checked = true; + } +} + +function fileOnChange(){ + let fileInput = document.getElementById("file") as HTMLInputElement; + if (fileInput.files !== null){ + let fileInputRadio = document.getElementById("fileRadio") as HTMLInputElement; + fileInputRadio.checked = true; + } +} + +function initOnChange(){ + let urlInput = document.getElementById("url") as HTMLInputElement; + urlInput.onchange = urlOnChange; + + let fileInput = document.getElementById("file") as HTMLInputElement; + fileInput.onchange = fileOnChange; +} + +document.addEventListener('DOMContentLoaded', initOnChange, false); \ No newline at end of file diff --git a/templates/watch/create.html b/templates/watch/create.html index 385f0c4..3ad6451 100644 --- a/templates/watch/create.html +++ b/templates/watch/create.html @@ -1,10 +1,14 @@ {{define "title"}} -GoWatch {{ .Watch.Name }} +GoWatch Create {{end}} +{{define "head"}} + +{{ end }} + {{define "content"}} -
+
@@ -22,7 +26,7 @@ GoWatch {{ .Watch.Name }}
With Watch Template:
-
+
{{ range $i, $name := .templates }}
{{ if eq $i 0 }} @@ -30,17 +34,25 @@ GoWatch {{ .Watch.Name }} {{ else }} {{ end }} -
{{ end }}
- +
-
- +
+ +
+
+
+
+ +
+
+