diff --git a/app.lua b/app.lua
index a979837..57bd421 100644
--- a/app.lua
+++ b/app.lua
end
end
+-- opens and checks if file exists
+local function file_exists(file)
+ local f = io.open(file, "rb")
+ if f then f:close() end
+ return f ~= nil
+end
+
+-- returns a table with lines in file
+local function lines_from(file)
+ if not file_exists(file) then return {} end
+ local lines = {}
+ for line in io.lines(file) do
+ lines[#lines + 1] = line
+ end
+ return lines
+end
+
+
+local function readTeamDesc()
+ local lines = lines_from("team-description.txt")
+ if lines then
+ return lines[1]
+ end
+ return nil
+end
+
app:get("index", "/", function(self)
local res = db.query("SELECT * FROM asunnot")
self.asunnot = res
+ self.team_desc = readTeamDesc()
return { render = true }
end)
+app:post("edit-description", "/edit-description", function(self)
+ if not self.session.user then
+ return { redirect_to = "/" }
+ end
+
+ local new_desc = strip(self.params.description)
+ if not file_exists("team-description.txt") then return {} end
+ local f = io.open("team-description.txt", "w")
+
+ if f == nil then
+ return { redirect_to = "/" }
+ end
+
+ f:write(new_desc)
+ f:close()
+ return { redirect_to = "/" }
+end)
+
app:match("kirjaudu", "/kirjaudu", respond_to({
GET = function(self)
self.err = self.params.error
out:write(data)
out:close()
- picture = "http://localhost:8080/static/images/" .. picture_file.filename --öaldsfkölsadkfölakdsfölkasöldfkö
+ picture = "http://localhost:8080/static/images/" .. picture_file.filename
if address == "" or picture == "" or price == "" then
return { redirect_to = "/hallintapaneeli"}
end
}))
+
return app
diff --git a/koivuhaka.sqlite b/koivuhaka.sqlite
index c35ef29..a8af9bc 100644
Binary files a/koivuhaka.sqlite and b/koivuhaka.sqlite differ
diff --git a/koivuhaka.sqlite-journal b/koivuhaka.sqlite-journal
new file mode 100644
index 0000000..b30d24a
Binary files /dev/null and b/koivuhaka.sqlite-journal differ
diff --git a/static/images/4124379_3_600x600_t_g.webp b/static/images/4124379_3_600x600_t_g.webp
new file mode 100644
index 0000000..0685fa0
Binary files /dev/null and b/static/images/4124379_3_600x600_t_g.webp differ
diff --git a/static/images/n02112018_1611.jpg b/static/images/n02112018_1611.jpg
new file mode 100644
index 0000000..ddd4af2
Binary files /dev/null and b/static/images/n02112018_1611.jpg differ
diff --git a/static/pen.svg b/static/pen.svg
new file mode 100644
index 0000000..e7cb2f5
--- /dev/null
+++ b/static/pen.svg
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pencil-icon lucide-pencil"><path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/></svg>
diff --git a/team-description b/team-description
new file mode 100644
index 0000000..45c9412
--- /dev/null
+++ b/team-description
+asdfddsdfdsfsdfdsaf
\ No newline at end of file
diff --git a/team-description.txt b/team-description.txt
new file mode 100644
index 0000000..559ea59
--- /dev/null
+++ b/team-description.txt
+Ota yhteyttä!
\ No newline at end of file
diff --git a/views/index.etlua b/views/index.etlua
index 2247dcc..4034b5b 100644
--- a/views/index.etlua
+++ b/views/index.etlua
-<!doctype html>
-<html lang="fi">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>Koivuhaan asunto</title>
- </head>
- <body>
- <nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
- <div class="container-fluid">
- <a class="navbar-brand" href="#">Koivuhaan Asuntolat</a>
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="collapse navbar-collapse" id="navbarNav">
- <ul class="navbar-nav">
- <li class="nav-item">
- <a class="nav-link" href="#asunnot">Asunnot</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="#tiimi">Tietoa meistä</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="#tiimi">Ota yhteyttä</a>
- </li>
- </ul>
- </div>
- </div>
- </nav>
- <div class="mb-5 container-fluid px-0 position-relative" style="height: 500px; overflow: hidden">
- <img class="w-100" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/2010s_residential_area_near_Peltolantie_and_Tikkurilantie_in_Koivuhaka%2C_Vantaa%2C_Finland%2C_2021_September.jpg/2560px-2010s_residential_area_near_Peltolantie_and_Tikkurilantie_in_Koivuhaka%2C_Vantaa%2C_Finland%2C_2021_September.jpg" class="img-fluid">
- <h1 class="position-absolute top-50 start-50 translate-middle text-white bg-dark px-4 py-2 fw-bold display-6">Koivuhaan Asuntolat</h1>
- </div>
-
- <div class="container">
- <h2 class="mb-4" id="asunnot">Asuntolat</h2>
- <div class="row row-cols-3 g-3 mb-5">
- <% for i, asunto in pairs(asunnot) do %>
- <div class="col">
- <div class="card">
- <img class="card-img-top" src="<%= asunto["kuva"] %>" alt="kuva asunnosta">
- <div class="card-body">
- <h4 class="card-title">
- <%= asunto["osoite"] %>
- </h4>
- <div class="d-inline-flex gap-2">
- <small class="text-body-secondary"><%= asunto["hinta"]%> €</small>
- </div>
- </div>
- </div>
- </div>
- <% end %>
+<nav class="navbar navbar-expand-sm bg-dark navbar-dark fixed-top">
+ <div class="container-fluid">
+ <a class="navbar-brand" href="#">Koivuhaan Asuntolat</a>
+ <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ <div class="collapse navbar-collapse" id="navbarNav">
+ <ul class="navbar-nav">
+ <li class="nav-item">
+ <a class="nav-link" href="#asunnot">Asunnot</a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="#tiimi">Tietoa meistä</a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="#tiimi">Ota yhteyttä</a>
+ </li>
+ </ul>
</div>
- <h2 class="mb-3" id="tiimi">Tietoa meistä</h2>
- <p class="mb-4">Ota rohkeasti yhteyttä!</p>
- <div class="row row-cols-5 g-5 mb-5">
- <% for i=5,1,-1 do %>
+ </div>
+</nav>
+<div class="mb-5 container-fluid px-0 position-relative" style="height: 500px; overflow: hidden">
+ <img class="w-100" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/2010s_residential_area_near_Peltolantie_and_Tikkurilantie_in_Koivuhaka%2C_Vantaa%2C_Finland%2C_2021_September.jpg/2560px-2010s_residential_area_near_Peltolantie_and_Tikkurilantie_in_Koivuhaka%2C_Vantaa%2C_Finland%2C_2021_September.jpg" class="img-fluid">
+ <h1 class="position-absolute top-50 start-50 translate-middle text-white bg-dark px-4 py-2 fw-bold display-6">Koivuhaan Asuntolat</h1>
+</div>
+
+<div class="container">
+ <h2 class="mb-4" id="asunnot">Asuntolat</h2>
+ <div class="row row-cols-3 g-3 mb-5">
+ <% for i, asunto in pairs(asunnot) do %>
<div class="col">
- <div class="card border-0">
- <img class="card-img-top rounded-circle object-fit-cover" style="aspect-ratio: 1 / 1;" src="https://cataas.com/cat/fQCYUQNMnhPBN4jb?position=center" alt="jäsen">
+ <div class="card">
+ <img class="card-img-top" src="<%= asunto["kuva"] %>" alt="kuva asunnosta">
<div class="card-body">
- <h5 class="card-title text-center">
- Matti Meikäläinen
- </h5>
+ <h4 class="card-title">
+ <%= asunto["osoite"] %>
+ </h4>
+ <div class="d-inline-flex gap-2">
+ <small class="text-body-secondary"><%= asunto["hinta"]%> €</small>
+ </div>
</div>
</div>
</div>
+ <% end %>
+ </div>
+ <h2 class="mb-3" id="tiimi">Tietoa meistä</h2>
+ <div class="d-inline-flex align-items-center mb-4 gap-1">
+ <p id="team-desc" style="margin: 0;">
+ <% if team_desc then %>
+ <%= team_desc %>
+ <% else %>
+ Ota rohkeasti yhteyttä!
<% end %>
+ </p>
+ <% if session.user then %>
+ <button style="background: none; border: none;" id="edit-btn" onclick="changeToEditMode()"><img src="/static/pen.svg" /></button>
+ <% end %>
+ <form class="row g-3" id="edit-form" style="display: none" action="/edit-description" method="post">
+ <div class="col-auto">
+ <input type="text" class="form-control" id="edit-input" name="description" placeholder="">
+ </div>
+ <div class="col-auto">
+ <button type="submit" class="btn btn-secondary">Vahvista</button>
+ </div>
+ </form>
+ </div>
+ <div class="row row-cols-5 g-5 mb-5">
+ <% for i=5,1,-1 do %>
+ <div class="col">
+ <div class="card border-0">
+ <img class="card-img-top rounded-circle object-fit-cover" style="aspect-ratio: 1 / 1;" src="https://cataas.com/cat/fQCYUQNMnhPBN4jb?position=center" alt="jäsen">
+ <div class="card-body">
+ <h5 class="card-title text-center">
+ Matti Meikäläinen
+ </h5>
+ </div>
+ </div>
</div>
+ <% end %>
</div>
- </body>
-</html>
+</div>
+<script>
+ const editForm = document.getElementById("edit-form")
+ const editBtn = document.getElementById("edit-btn")
+ const editInput = document.getElementById("edit-input")
+ const teamDesc = document.getElementById("team-desc")
+
+ function changeToEditMode() {
+ editBtn.style = "display: none";
+ editForm.style = "";
+ teamDesc.style = "display: none"
+ editInput.value = teamDesc.innerText.trim()
+ }
+
+
+</script>