feat(spotlight): add support for custom search-engines (#1200)

* feat(spotlight): add search settings link

* feat(search-engine): add to manage pages

* feat(spotlight): add children option for external search engines

* chore: revert search settings

* fix: deepsource issue

* fix: inconsistent breadcrum placement

* chore: address pull request feedback
This commit is contained in:
Meier Lukas
2024-10-04 15:59:08 +02:00
committed by GitHub
parent 8ea8b2ded5
commit 4c9471e608
34 changed files with 3620 additions and 109 deletions
@@ -0,0 +1,9 @@
CREATE TABLE `search_engine` (
`id` varchar(64) NOT NULL,
`icon_url` text NOT NULL,
`name` varchar(64) NOT NULL,
`short` varchar(8) NOT NULL,
`description` text,
`url_template` text NOT NULL,
CONSTRAINT `search_engine_id` PRIMARY KEY(`id`)
);
File diff suppressed because it is too large Load Diff
@@ -57,6 +57,13 @@
"when": 1723749320706,
"tag": "0007_boring_nocturne",
"breakpoints": true
},
{
"idx": 8,
"version": "5",
"when": 1727532165317,
"tag": "0008_far_lifeguard",
"breakpoints": true
}
]
}
@@ -0,0 +1,8 @@
CREATE TABLE `search_engine` (
`id` text PRIMARY KEY NOT NULL,
`icon_url` text NOT NULL,
`name` text NOT NULL,
`short` text NOT NULL,
`description` text,
`url_template` text NOT NULL
);
File diff suppressed because it is too large Load Diff
@@ -57,6 +57,13 @@
"when": 1723746828385,
"tag": "0007_known_ultragirl",
"breakpoints": true
},
{
"idx": 8,
"version": "6",
"when": 1727526190343,
"tag": "0008_third_thor",
"breakpoints": true
}
]
}
+9
View File
@@ -341,6 +341,15 @@ export const serverSettings = mysqlTable("serverSetting", {
value: text("value").default('{"json": {}}').notNull(), // empty superjson object
});
export const searchEngines = mysqlTable("search_engine", {
id: varchar("id", { length: 64 }).notNull().primaryKey(),
iconUrl: text("icon_url").notNull(),
name: varchar("name", { length: 64 }).notNull(),
short: varchar("short", { length: 8 }).notNull(),
description: text("description"),
urlTemplate: text("url_template").notNull(),
});
export const accountRelations = relations(accounts, ({ one }) => ({
user: one(users, {
fields: [accounts.userId],
+9
View File
@@ -343,6 +343,15 @@ export const serverSettings = sqliteTable("serverSetting", {
value: text("value").default('{"json": {}}').notNull(), // empty superjson object
});
export const searchEngines = sqliteTable("search_engine", {
id: text("id").notNull().primaryKey(),
iconUrl: text("icon_url").notNull(),
name: text("name").notNull(),
short: text("short").notNull(),
description: text("description"),
urlTemplate: text("url_template").notNull(),
});
export const accountRelations = relations(accounts, ({ one }) => ({
user: one(users, {
fields: [accounts.userId],