diff --git a/src/client/typescript/guild/feeds.ts b/src/client/typescript/guild/feeds.ts new file mode 100644 index 0000000..93c6edb --- /dev/null +++ b/src/client/typescript/guild/feeds.ts @@ -0,0 +1,62 @@ +import $ from "jquery"; +import HSDropdown from "@preline/dropdown"; +import HSDataTable, { IDataTableOptions } from "@preline/datatable"; +import { ConfigColumnDefs, AjaxSettings } from "datatables.net-dt"; + +const emptyTableHtml: string = ` +
+
+ +
+

+ No results found +

+

+ Create a subscription and it will appear here. +

+ +
+ + +
+
+`; + +const columnDefs: ConfigColumnDefs[] = []; + +const ajaxSettings: AjaxSettings = { + url: ``, + dataSrc: "data", + data: (data: unknown) => { + if (data === undefined) return; + // TODO + } +}; + +const tableOptions: IDataTableOptions = { + ajax: ajaxSettings, + serverSide: true, + processing: true, + columnDefs: columnDefs, + pagingOptions: { pageBtnClasses: "hidden" }, + rowSelectingOptions: { selectAllSelector: "#selectAllBox" }, + language: { + zeroRecords: emptyTableHtml, + emptyTable: emptyTableHtml, + loadingRecords: "Placeholder loading message..." + }, + drawCallback: () => HSDropdown.autoInit(), + rowCallback: (row: HTMLTableRowElement) => { + $(row).addClass("bg-white dark:bg-neutral-900"); + } +}; + +const table: HSDataTable = new HSDataTable( + $("#table").get(0), + tableOptions +); \ No newline at end of file diff --git a/src/client/typescript/main.ts b/src/client/typescript/main.ts index fd9804d..f1376fd 100644 --- a/src/client/typescript/main.ts +++ b/src/client/typescript/main.ts @@ -1,3 +1,4 @@ +import $ from "jquery"; $(document).ready(() => { console.log("ready!"); }); \ No newline at end of file diff --git a/src/client/views/guild/feeds.ejs b/src/client/views/guild/feeds.ejs index 78b8ea8..f7c0e89 100644 --- a/src/client/views/guild/feeds.ejs +++ b/src/client/views/guild/feeds.ejs @@ -2,4 +2,109 @@ <%- include("header") -%> -Feeds page placeholder \ No newline at end of file +
+
+
+
+
+ + +
+ +
+ + +
+ + + + + + + + + + + + + + + + +
+ + +
+ + Name + + + + + +
+
+
+ + URL + + + + + +
+
+
+ + Channels + +
+
+
+ + Filters + +
+
+
+ + Style + + + + + +
+
+
+ + Created at + + + + + +
+
+
+ + Status + + + + + +
+
+
+ +
+
+
+
+
+ +<% block("scripts").append(''); %> \ No newline at end of file