Customize Proclamations Admin page

This commit is contained in:
NeilClack
2026-03-16 13:23:25 -05:00
parent 0fd901b01f
commit 52c740b986
15 changed files with 294 additions and 160 deletions
+6 -2
View File
@@ -2,9 +2,8 @@
import { fieldNameToLabel } from '$lib/svelte-admin/introspect';
import type { PrismaScalarType, RelationOptionConfig } from '$lib/svelte-admin/types';
import ComboBox from './ComboBox.svelte';
import TipTap from '$lib/components/tiptap/TipTap.svelte';
type RelationOptionsData = Record<string, { label: string; value: string | number }[]>;
type Props = {
fields: string[];
fieldTypes: Record<string, PrismaScalarType>;
@@ -56,6 +55,11 @@
placeholder="Select {label}"
value={getValue(field) as string | number | undefined}
/>
{:else if type === 'Tiptap'}
<TipTap
name={field}
initialContent={String(getValue(field) ?? '')}
/>
{:else if type === 'Boolean'}
<input
type="checkbox"
+1 -1
View File
@@ -60,7 +60,6 @@
const related = e.relatedTarget as HTMLElement | null;
if (related?.closest(`[data-combobox="${id}"]`)) return;
open = false;
search = '';
highlightIndex = -1;
}
@@ -97,6 +96,7 @@
<div class="relative" data-combobox={id}>
<input type="hidden" {name} value={selectedValue ?? ''} />
<input type="hidden" name={name + 'Label'} value={selectedValue != null && selectedValue !== '' ? selectedLabel() : search} />
{#if selectedValue != null && selectedValue !== ''}
<div
+3 -3
View File
@@ -97,13 +97,13 @@ const models: AdminModelConfig[] = [
displayNameSingular: 'Proclamation',
idType: 'String',
include: { solfeggioFrequency: true, category: { include: { parent: true } } },
listFields: ['name', 'category.name', 'solfeggioFrequency.name', 'price'],
listFields: ['name', 'category.displayName', 'solfeggioFrequency.name', 'price'],
searchFields: ['name', 'content'],
formFields: ['name', 'content', 'solfeggioFrequencyId', 'categoryId', 'price'],
readonlyFields: ['id'],
fieldTypes: {
name: 'String',
content: 'String',
content: 'Tiptap',
solfeggioFrequencyId: 'Int',
categoryId: 'Int',
price: 'Float'
@@ -153,7 +153,7 @@ const models: AdminModelConfig[] = [
displayNameSingular: 'Proclamation Category',
idType: 'Int',
include: { proclamations: true, children: true, parent: true },
listFields: ['name', 'parent.name'],
listFields: ['displayName', 'parent.name'],
searchFields: ['name'],
formFields: ['name', 'parentId'],
readonlyFields: ['id'],
+1 -1
View File
@@ -1,4 +1,4 @@
export type PrismaScalarType = 'String' | 'Int' | 'Float' | 'Boolean' | 'DateTime';
export type PrismaScalarType = 'String' | 'Int' | 'Float' | 'Boolean' | 'DateTime' | 'Tiptap';
export type RelationOptionConfig = {
model: string;