diff --git a/src/client/src/ts/guild/feeds.ts b/src/client/src/ts/guild/feeds.ts
index 54fcf04..d608a93 100644
--- a/src/client/src/ts/guild/feeds.ts
+++ b/src/client/src/ts/guild/feeds.ts
@@ -1,5 +1,6 @@
import $ from "jquery";
-import DataTable from "datatables.net";
+// import DataTable from "datatables.net";
+import DataTable from "datatables.net-dt"
import HSDropdown from "@preline/dropdown";
import HSOverlay, { IOverlayOptions } from "@preline/overlay";
import HSSelect, { ISelectOptions } from "@preline/select";
@@ -54,7 +55,7 @@ const columnDefs: ConfigColumnDefs[] = [
render: (_data: unknown, _type: unknown, row: prisma.Feed) => { return `
@@ -216,10 +217,15 @@ const ajaxSettings: AjaxSettings = {
}
};
-const tableOptions: IDataTableOptions = {
+const tableOptions: any = {
ajax: ajaxSettings,
serverSide: true,
processing: true,
+ selecting: true,
+ select: {
+ style: "multi",
+ selector: "td:first-child input[type='checkbox']"
+ },
columnDefs: columnDefs,
pagingOptions: { pageBtnClasses: "hidden" },
rowSelectingOptions: { selectAllSelector: "#selectAllBox" },
@@ -239,6 +245,37 @@ const table: HSDataTable = new HSDataTable(
tableOptions
);
+const onTableSelectChange = () => {
+ console.log("table select change")
+ const rows = (table as any).dataTable.rows();
+ debugger;
+ const selectedRowsCount = (table as any).dataTable.rows({ selected: true }).count();
+ // const selectedRowsCount = $("#table tbody input[data-hs-datatable-row-selecting-individual]:checked").length;
+ $("#deleteRowsBtn").prop("disabled", selectedRowsCount === 0);
+ $(".rows-selected-count-js").text(selectedRowsCount);
+
+ const $elem = $(".rows-selected-count-js.zero-empty-js");
+ selectedRowsCount === 0 ? $elem.hide() : $elem.show();
+};
+
+(table as any).dataTable
+ .on("select", onTableSelectChange)
+ .on("deselect", onTableSelectChange)
+ .on("draw", onTableSelectChange);
+
+$("#selectAllBox").on("change", function() {
+ debugger;
+ // TODO: debug why the select and deselect methods don't exist
+ (this as HTMLInputElement).checked
+ ? (table as any).dataTable.rows().select()
+ : (table as any).dataTable.rows().deselect();
+});
+
+$("#deleteRowsBtn").on("click", () => {
+ const rowIds = (table as any).dataTable.rows({ selected: true }).data().toArray().map((row: any) => row.id);
+ alert(JSON.stringify(rowIds, null, 4));
+});
+
// #endregion
// #region Page Size Select
diff --git a/src/client/views/guild/feeds.ejs b/src/client/views/guild/feeds.ejs
index 496be13..be34441 100644
--- a/src/client/views/guild/feeds.ejs
+++ b/src/client/views/guild/feeds.ejs
@@ -22,6 +22,13 @@