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
+
+
+
+
+
+
+
+
+
+
\ 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()