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
-
-
-
-
-
-
-