Gitlab@Informatics

Skip to content
Snippets Groups Projects
Commit f6977970 authored by 65160258's avatar 65160258
Browse files

act

parent 0871f82d
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@ const cors = require("cors");
const bodyParser = require('body-parser');
const db = require('./db');
const authRoutes = require('./routes/auth');
const activityRoutes = require("./routes/activityRoutes");
const app = express();
......@@ -45,7 +46,15 @@ app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
// ใช้เส้นทางจาก authRoutes
app.use((req, res, next) => {
req.user = req.session.user;
res.locals.user = req.session.user;
next();
});
// ใช้งาน route
app.use('/auth', authRoutes);
app.use("/activities", activityRoutes);
// ---------------------- เส้นทางหลัก ----------------------
app.get('/', (req, res) => {
......
const express = require("express");
const router = express.Router();
const db = require('../db');
// 🟢 [เพิ่มกิจกรรม] GET ฟอร์มเพิ่มกิจกรรม
router.get("/new", (req, res) => {
if (!req.session.user || req.session.user.role !== "admin") {
return res.status(403).send("คุณไม่มีสิทธิ์เข้าถึงหน้านี้");
}
res.render("activities/new"); // แสดงฟอร์ม
});
// 🟢 [เพิ่มกิจกรรม] POST บันทึกข้อมูล
router.post("/new", (req, res) => {
if (!req.user || req.user.role !== "admin") {
return res.status(403).send("คุณไม่มีสิทธิ์เพิ่มกิจกรรม");
}
const { act_name, detail, start_date, end_date, start_time, end_time, place_id } = req.body;
const sql = `INSERT INTO activity (act_name, detail, start_date, end_date, start_time, end_time, place_id)
VALUES (?, ?, ?, ?, ?, ?, ?)`;
db.query(sql, [act_name, detail, start_date, end_date, start_time, end_time, place_id], (err, result) => {
if (err) {
console.error(err);
return res.status(500).send("เกิดข้อผิดพลาด");
}
res.redirect("/");
});
});
// 🟡 [แก้ไขกิจกรรม] GET ฟอร์มแก้ไข
router.get("/edit/:id", (req, res) => {
if (!req.user || req.user.role !== "admin") {
return res.status(403).send("คุณไม่มีสิทธิ์แก้ไขกิจกรรม");
}
const activity_id = req.params.id;
db.query("SELECT * FROM activity WHERE activity_id = ?", [activity_id], (err, results) => {
if (err || results.length === 0) {
return res.status(404).send("ไม่พบกิจกรรม");
}
res.render("activities/edit", { activity: results[0] });
});
});
// 🟡 [แก้ไขกิจกรรม] POST อัปเดตข้อมูล
router.post("/edit/:id", (req, res) => {
if (!req.user || req.user.role !== "admin") {
return res.status(403).send("คุณไม่มีสิทธิ์แก้ไขกิจกรรม");
}
const activity_id = req.params.id;
const { act_name, detail, start_date, end_date, start_time, end_time, place_id } = req.body;
const sql = `UPDATE activity SET act_name = ?, detail = ?, start_date = ?, end_date = ?, start_time = ?, end_time = ?, place_id = ?
WHERE activity_id = ?`;
db.query(sql, [act_name, detail, start_date, end_date, start_time, end_time, place_id, activity_id], (err, result) => {
if (err) {
console.error(err);
return res.status(500).send("เกิดข้อผิดพลาดในการอัปเดตข้อมูล");
}
res.redirect("/");
});
});
// 🔴 [ลบกิจกรรม]
router.post("/delete/:id", (req, res) => {
if (!req.user || req.user.role !== "admin") {
return res.status(403).send("คุณไม่มีสิทธิ์ลบกิจกรรม");
}
const activity_id = req.params.id;
db.query("DELETE FROM activity WHERE activity_id = ?", [activity_id], (err, result) => {
if (err) {
console.error(err);
return res.status(500).send("เกิดข้อผิดพลาดในการลบ");
}
res.redirect("/");
});
});
module.exports = router;
<%- include('../partials/header') %>
<link rel="stylesheet" href="/css/main.css">
<div class="main-content">
<h2>แก้ไขกิจกรรม</h2>
<form action="/activities/edit/<%= activity.activity_id %>" method="POST">
<label>ชื่อกิจกรรม:</label>
<input type="text" name="act_name" value="<%= activity.act_name %>" required>
<label>รายละเอียด:</label>
<textarea name="detail"><%= activity.detail %></textarea>
<label>วันที่เริ่ม:</label>
<input type="date" name="start_date" value="<%= activity.start_date.toISOString().split('T')[0] %>" required>
<label>วันที่สิ้นสุด:</label>
<input type="date" name="end_date" value="<%= activity.end_date.toISOString().split('T')[0] %>" required>
<label>เวลาเริ่ม:</label>
<input type="time" name="start_time" value="<%= activity.start_time %>" required>
<label>เวลาสิ้นสุด:</label>
<input type="time" name="end_time" value="<%= activity.end_time %>" required>
<label>สถานที่:</label>
<input type="number" name="place_id" value="<%= activity.place_id %>">
<button type="submit">บันทึก</button>
</form>
</div>
\ No newline at end of file
<%- include('../partials/header') %>
<link rel="stylesheet" href="/css/main.css">
<div class="main-content">
<h2>เพิ่มกิจกรรมใหม่</h2>
<form action="/activities/new" method="POST">
<label>ชื่อกิจกรรม:</label>
<input type="text" name="act_name" required>
<label>รายละเอียด:</label>
<textarea name="detail"></textarea>
<label>วันที่เริ่ม:</label>
<input type="date" name="start_date" required>
<label>วันที่สิ้นสุด:</label>
<input type="date" name="end_date" required>
<label>เวลาเริ่ม:</label>
<input type="time" name="start_time" required>
<label>เวลาสิ้นสุด:</label>
<input type="time" name="end_time" required>
<label>สถานที่:</label>
<input type="number" name="place_id">
<button type="submit">บันทึก</button>
</form>
</div>
\ No newline at end of file
......@@ -7,9 +7,13 @@
<h1>ชมรม</h1>
<!-- แสดงจำนวนกิจกรรม -->
<h2>จำนวนกิจกรรมทั้งหมด: <%= activities.length %></h2>
<div class="activity-content">
<!-- แสดงรายละเอียดของแต่ละกิจกรรม -->
<!-- ถ้าเป็น admin ให้แสดงปุ่มเพิ่มกิจกรรม -->
<% if (user && user.role === 'admin') { %>
<a href="/activities/new" class="btn btn-primary">เพิ่มกิจกรรม</a>
<% } %>
<div class="activity-content">
<div class="activities-list">
<ul>
<% activities.forEach(function(activity) { %>
......@@ -21,9 +25,9 @@
<p><strong>รายละเอียด:</strong> <%= activity.detail %></p>
<!-- วันที่เริ่มกิจกรรม -->
<% if (activity.date) { %>
<% if (activity.start_date) { %>
<p><strong>วันที่เริ่ม:</strong>
<%= new Date(activity.date).toLocaleDateString() %>
<%= new Date(activity.start_date).toLocaleDateString() %>
</p>
<% } %>
......@@ -39,6 +43,16 @@
</p>
<% } %>
<!-- ถ้าเป็น admin ให้แสดงปุ่มแก้ไขและลบ -->
<% if (user && user.role === 'admin') { %>
<div class="admin-actions">
<a href="/activities/edit/<%= activity.activity_id %>" class="btn btn-warning">แก้ไข</a>
<form action="/activities/delete/<%= activity.activity_id %>" method="POST" style="display:inline;">
<button type="submit" class="btn btn-danger" onclick="return confirm('ยืนยันการลบกิจกรรมนี้?')">ลบ</button>
</form>
</div>
<% } %>
</li>
<% }); %>
</ul>
......
......@@ -48,12 +48,6 @@
Chat
</a>
</li>
<li class="nav-item">
<a href="/chatAI" class="nav-link" id="chatAI">
<i class="bi bi-robot"></i>
ผู้ช่วย AI
</a>
</li>
<li class="nav-item">
<a href="/settings" class="nav-link" id="settings">
<i class="bi bi-gear"></i>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment