diff --git a/src/client/src/css/main.css b/src/client/src/css/main.css index 04d702e..54e1280 100644 --- a/src/client/src/css/main.css +++ b/src/client/src/css/main.css @@ -243,7 +243,7 @@ @apply z-80 w-full - min-h-[100px] + min-h-fit max-h-72 p-1.5 space-y-0.5 diff --git a/src/client/src/ts/guild/feeds.ts b/src/client/src/ts/guild/feeds.ts index d9103fb..2304fff 100644 --- a/src/client/src/ts/guild/feeds.ts +++ b/src/client/src/ts/guild/feeds.ts @@ -177,17 +177,23 @@ const columnDefs: ConfigColumnDefs[] = [ }, { target: 5, - data: "message_style", - orderable: false, // both should be true, but message_style doesnt exist yet + data: null, // "message_style_id" + orderable: false, searchable: false, className: "size-px whitespace-nowrap", - render: (data: string) => { return ` -
- - ${data} - -
- `} + render: (_data: unknown, type: string, row: any) => { + if (!row.message_style || type !== "display") return null; + + const wrapper = $("
").addClass("flex px-6 py-4"); + const badge = $("").addClass("inline-flex items-center whitespace-nowrap border rounded-md bg-white dark:bg-neutral-800 border-gray-200 dark:border-neutral-700 overflow-hidden"); + const colour = $("").addClass("size-6 shrink-0").css("background-color", row.message_style.colour); + const label = $("").addClass("py-1 px-2.5 text-xs text-gray-800 dark:text-neutral-200"); + label.text(row.message_style.name); + + badge.append(colour).append(label); + wrapper.append(badge); + return wrapper.get(0); + } }, { target: 6, @@ -381,6 +387,7 @@ const clearEditModalData = () => { $("#formActive").prop("checked", true); channelSelect.setValue([]); filterSelect.setValue([]); + styleSelect.setValue(""); }; const loadEditModalData = async (id: number) => { @@ -397,6 +404,7 @@ const loadEditModalData = async (id: number) => { channelSelect.setValue(feed.channels.map(channel => channel.channel_id)); filterSelect.setValue(feed.filters.map(filter => `${filter.id}`)); + styleSelect.setValue(`${feed.message_style_id}`); } const openEditModal = async (id: number | undefined) => { @@ -525,6 +533,45 @@ const filterSelect = new HSSelect( filterSelectOptions ); +const styleSelectOptions: ISelectOptions = { + placeholder: "Select option...", + + toggleTag: '', + optionTemplate: ` +
+ + +
`, + toggleClasses: "cj-select-toggle select-input", + optionClasses: "cj-select-option", + dropdownClasses: "cj-select-dropdown", + wrapperClasses: "peer", + dropdownSpace: 10, + dropdownScope: "parent", + dropdownPlacement: "top", + dropdownVerticalFixedPlacement: null, + + apiUrl: `/guild/${guildId}/styles/api/select`, + // apiQuery: "limit=15", + apiFieldsMap: { + id: "id", + val: "id", + title: "name", + description: "value", + name: "title" + }, + apiSearchQueryKey: "search", + hasSearch: false, + optionAllowEmptyOption: true +}; + +const styleSelect = new HSSelect( + $("#formMessageStyle").get(0), + styleSelectOptions +); + $("#editForm").on("submit", async event => { event.preventDefault(); diff --git a/src/client/views/guild/feeds.ejs b/src/client/views/guild/feeds.ejs index 171648f..eb6e42e 100644 --- a/src/client/views/guild/feeds.ejs +++ b/src/client/views/guild/feeds.ejs @@ -51,7 +51,7 @@ Checkbox - +
Name @@ -59,7 +59,7 @@
- +
URL @@ -67,25 +67,22 @@
- +
Channels
- +
Filters
- +
Style - - -
- +
Created at @@ -93,7 +90,7 @@
- +
Status @@ -210,8 +207,18 @@ Filter out unwanted content from this feed.

-
-
+
+ + +

+ placeholder. +

+
+
+ placeholder for publish threshold +