From f8724162ad167e53bf38cb5d1957d8905c59ab17 Mon Sep 17 00:00:00 2001 From: Corban-Lee Jones Date: Sat, 26 Apr 2025 22:52:03 +0100 Subject: [PATCH] feat: basic search functionality for feed table --- src/app.ts | 1 + src/client/public/css/main.css | 3 +- src/client/typescript/guild/feeds.ts | 12 ++-- src/client/views/guild/feeds.ejs | 26 +++++++- .../controllers/guild/api/feed.controller.ts | 65 +++++++------------ src/server/routers/guild.router.ts | 2 +- 6 files changed, 57 insertions(+), 52 deletions(-) diff --git a/src/app.ts b/src/app.ts index d6200a8..7fa50d4 100644 --- a/src/app.ts +++ b/src/app.ts @@ -17,6 +17,7 @@ app.engine("ejs", engine); app.set("view engine", "ejs"); app.set("views", path.resolve(__dirname, "client/views")); app.use(express.urlencoded({ extended: true })); +app.use(express.json()); app.use("/static", express.static(path.resolve(__dirname, "client/public"))); diff --git a/src/client/public/css/main.css b/src/client/public/css/main.css index fb965e5..ee0b25a 100644 --- a/src/client/public/css/main.css +++ b/src/client/public/css/main.css @@ -46,8 +46,7 @@ } .cj-table-footer { - @apply px-6 py-4 gap-3 flex justify-between items-center border-t - border-gray-200 dark:border-neutral-700; + @apply px-6 py-4 gap-3 flex justify-between items-center; } .cj-table-paging-btn { diff --git a/src/client/typescript/guild/feeds.ts b/src/client/typescript/guild/feeds.ts index 1f23b1b..623e106 100644 --- a/src/client/typescript/guild/feeds.ts +++ b/src/client/typescript/guild/feeds.ts @@ -23,7 +23,8 @@ const emptyTableHtml: string = ` No results found

- Create a feed and it will appear here. + Refine your search or create a new feed. + Alternatively, use a template to deploy a ready-made feed.

@@ -108,8 +109,8 @@ const columnDefs: ConfigColumnDefs[] = [ { target: 5, data: "message_style", - orderable: true, - searchable: true, + orderable: false, // both should be true, but message_style doesnt exist yet + searchable: false, render(data: string) { return `
@@ -154,10 +155,13 @@ const columnDefs: ConfigColumnDefs[] = [ const ajaxSettings: AjaxSettings = { url: `/guild/${1204426362794811453}/feeds/api/datatable`, + type: "POST", + contentType: "application/json", dataSrc: "data", data: (data: unknown) => { if (data === undefined) return; - // TODO + // TODO, + return JSON.stringify(data); } }; diff --git a/src/client/views/guild/feeds.ejs b/src/client/views/guild/feeds.ejs index 3146909..ca95d5c 100644 --- a/src/client/views/guild/feeds.ejs +++ b/src/client/views/guild/feeds.ejs @@ -9,8 +9,28 @@
-
- placeholder header content +
+ + + +
+ +
+
@@ -125,7 +145,7 @@ Prev -
+