diff --git a/pages/day.html b/pages/day.html new file mode 100644 index 0000000..a6c403e --- /dev/null +++ b/pages/day.html @@ -0,0 +1,33 @@ + + + + + + + + + + + Hibiscus.txt + + +
+

🌺 Hibiscus.txt

+

Today is a place

+
+
+

| Go back

+ +
+ + + + + \ No newline at end of file diff --git a/pages/error/404.html b/pages/error/404.html index 1c876dd..bbde5d1 100644 --- a/pages/error/404.html +++ b/pages/error/404.html @@ -3,9 +3,9 @@ - - - Error 404 - Hibiscus + + + Error 404
diff --git a/public/date.js b/public/date.js index e800266..6f905db 100644 --- a/public/date.js +++ b/public/date.js @@ -1,8 +1,17 @@ +function formatDate(date) { + let dateFormat = new Intl.DateTimeFormat('en', { + year: 'numeric', + month: 'short', + day: 'numeric' + }) + return dateFormat.format(Date.parse(date)) +} + // Set today's date function updateDate() { let todayDate = new Date() let timeField = document.getElementById("today-date") - timeField.innerText = todayDate.toISOString().split('T')[0] + timeField.innerText = formatDate(todayDate.toISOString().split('T')[0]) } diff --git a/public/requests.js b/public/requests.js index c3fc7e7..5605632 100644 --- a/public/requests.js +++ b/public/requests.js @@ -9,11 +9,7 @@ async function postData(url = "", data = "") { referrerPolicy: "no-referrer", body: data, }); - if (response.ok) { - return response.text(); - } else { - return response.status - } + return response } async function getData(url = "", data = "") { @@ -35,7 +31,7 @@ async function getData(url = "", data = "") { function saveLog() { let logField = document.getElementById("log") postData("/api/log", logField.value).then((data) => { - if (data !== 500) { + if (data.ok) { logField.value = "" } }); @@ -44,7 +40,9 @@ function saveLog() { function saveToday() { let logField = document.getElementById("day") postData("/api/today", logField.value).then((data) => { - console.log(data); + if (!data.ok) { + alert(`Error saving: ${data.text()}`) + } }); } function loadToday() { @@ -53,10 +51,10 @@ function loadToday() { if (data === 404) { dayField.value = "" } else if (data === 401) { - dayField.enabled = false + dayField.readOnly = true dayField.value = "Unauthorized" } else if (data === 500) { - dayField.enabled = false + dayField.readOnly = true dayField.value = "Internal server error" } else { dayField.value = data @@ -76,9 +74,31 @@ function loadPrevious() { data = JSON.parse(data).reverse() // Reverse: latest days first for (let i in data) { let li = document.createElement("li"); - li.innerHTML = `${data[i]}` + li.innerHTML = `${formatDate(data[i])}` // Parse to human-readable daysField.appendChild(li); } } }); +} + +function loadDay() { + const urlParams = new URLSearchParams(window.location.search); + const day = urlParams.get('d'); + + let dayTag = document.getElementById("daytag") + dayTag.innerText = formatDate(day) + + let dayField = document.getElementById("day") + getData("/api/day/" + day, "").then((data) => { + if (data === 404) { + dayField.value = "" + } else if (data === 401) { + dayField.value = "Unauthorized" + } else if (data === 500) { + dayField.value = "Internal server error" + } else { + dayField.value = data + } + }); + dayField.readOnly = true } \ No newline at end of file diff --git a/serve.go b/serve.go index 00ccd82..bc21735 100644 --- a/serve.go +++ b/serve.go @@ -25,6 +25,9 @@ func Serve() { r.Get("/days", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./pages/days.html") }) + r.Get("/day", func(w http.ResponseWriter, r *http.Request) { + http.ServeFile(w, r, "./pages/day.html") + }) // API ============= apiRouter := chi.NewRouter()