diff --git a/src/client/public/js/guild/subscriptions.js b/src/client/public/js/guild/subscriptions.js index a3ec25f..6d8b4d4 100644 --- a/src/client/public/js/guild/subscriptions.js +++ b/src/client/public/js/guild/subscriptions.js @@ -17,6 +17,8 @@ const formatTimestamp = timestamp => { : `${d.getDate()} ${d.toLocaleString("en-GB", { month: "short" })} ${d.getFullYear()}`; } +//#region Table + const emptyTableHtml = `
@@ -196,7 +198,12 @@ const defineTable = () => { searchable: false, render: (data, type, row) => { return ` - + +
+
+
+
+ `; } }, @@ -225,28 +232,52 @@ const defineTable = () => { orderable: true, searchable: true, render: (data, type, row) => { - if (!row.active) { - return ` -
- - - - - Inactive - -
- `; + + // TODO: + // fix the badge icon not showing, + // its probvably because of jquery adding a closing tag ? + + wrapper = $("
").addClass("px-6 py-4"); + badge = $("").addClass("py-1 px-1.5 inline-flex items-center gap-x-1 text-xs font-medium rounded-full"); + icon = $(''); + label = $(""); + + if (row.active) { + badge.addClass("bg-teal-100 text-teal-800 dark:bg-teal-500/10 dark:text-teal-500"); + icon.append($('')); + badge.append(icon).append(label.text("Active")); } - return ` -
- - - - - Active - -
- `; + else { + badge.addClass("bg-red-100 text-red-800 dark:bg-red-500/10 dark:text-red-500"); + icon.append(''); + badge.append(icon).append(label.text("Inactive")); + } + + wrapper.append(badge); + return wrapper.get(0); + + // if (!row.active) { + // return ` + //
+ // + // + // + // + // Inactive + // + //
+ // `; + // } + // return ` + //
+ // + // + // + // + // Active + // + //
+ // `; } } ] @@ -258,6 +289,8 @@ const defineTable = () => { .on("draw", onTableSelectChange); } +//#endregion Table + // Ensure the datatable recognises when all rows are selected, otherwise rows are only visually selected $("#selectAllBox").on("change", function() { this.checked ? table.dataTable.rows().select() : table.dataTable.rows().deselect(); @@ -300,8 +333,20 @@ $("input[name='filterActive']").on("change", () => { const openSubForm = () => { $("#subForm").removeClass("submitted"); + + // Clear the form values + $("#formName").val(""); + $("#formUrl").val(""); $("#formPublishedThreshold").val(new Date().toISOString().slice(0, 16)); + + HSSelect.getInstance("#formStyle", true).element.setValue([]); + HSSelect.getInstance("#formChannels", true).element.setValue([]); + HSSelect.getInstance("#formFilters", true).element.setValue([]); + $("#formChannelsInput").css("width", ""); + $("#formFiltersInput").css("width", ""); + $("#formActive").prop("checked", true); + HSOverlay.open($("#subModal").get(0)); } diff --git a/src/client/views/guild/subscriptions.ejs b/src/client/views/guild/subscriptions.ejs index 5d2ecdd..1475554 100644 --- a/src/client/views/guild/subscriptions.ejs +++ b/src/client/views/guild/subscriptions.ejs @@ -106,39 +106,31 @@
- +
Channels -
- +
Filters -
-
+
Style - +
@@ -332,10 +324,10 @@ "dropdownScope": "window", "optionClasses": "py-2 px-4 w-full text-sm text-gray-800 cursor-pointer hover:bg-gray-100 rounded-lg focus:outline-none focus:bg-gray-100 hs-select-disabled:pointer-events-none hs-select-disabled:opacity-50 dark:bg-neutral-900 dark:hover:bg-neutral-800 dark:text-neutral-200 dark:focus:bg-neutral-800", "mode": "tags", - "tagsInputId": "formChannelsInput", + "tagsInputId": "formFiltersInput", "wrapperClasses": "relative ps-0.5 pe-9 min-h-[46px] flex items-center flex-wrap text-nowrap w-full border border-gray-200 rounded-lg text-start text-sm focus:border-blue-500 focus:ring-blue-500 dark:bg-neutral-900 dark:border-neutral-700 dark:text-neutral-400", "tagsItemTemplate": "
", - "tagsInputClasses": "py-3 px-2 rounded-sm order-1 text-sm outline-none dark:bg-neutral-900 dark:placeholder-neutral-500 dark:text-neutral-400", + "tagsInputClasses": "py-3 px-2 rounded-lg order-1 text-sm outline-none dark:bg-neutral-900 dark:placeholder-neutral-500 dark:text-neutral-400", "optionTemplate": "
", "extraMarkup": "
" }' class="hidden">