added searching and sorting system

This commit is contained in:
2025-11-22 11:32:51 -05:00
parent 9f2948ac18
commit 712941458a
16 changed files with 452 additions and 16 deletions

View File

@@ -107,7 +107,18 @@ export async function insertCourseEvent(event: CourseEventDetails): Promise<numb
}
}
export async function getCourseEvents(): Promise<CourseEventSummary[]> {
export async function getCourseEvents(sortDir: string, search: string = ""): Promise<CourseEventSummary[]> {
let params = [];
let searchString = "";
if (search !== "") {
searchString = `WHERE (C.name LIKE ? OR
C.short_name LIKE ? OR
M.name LIKE ?) `;
const p = `%${search}%`;
params.push(p, p, p);
}
const sql = `SELECT
E.id AS event_id,
E.course_id,
@@ -120,8 +131,12 @@ export async function getCourseEvents(): Promise<CourseEventSummary[]> {
LEFT JOIN courses AS C
ON E.course_id = C.id
LEFT JOIN members AS M
ON E.created_by = M.id;`;
let events: CourseEventSummary[] = await pool.query(sql);
ON E.created_by = M.id
${searchString}
ORDER BY E.event_date ${sortDir};`;
console.log(sql)
console.log(params)
let events: CourseEventSummary[] = await pool.query(sql, params);
return events;
}