Phase 7: Search, filters, templates, and archive UI
Add full-text card search (PostgreSQL tsvector + GIN index) with navbar SearchBar, client-side board filters (label/assignee/due date), board templates (3 system templates + save-as-template API), and archive toggle for both board listing and board view. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,59 @@ async function main() {
|
||||
}
|
||||
});
|
||||
|
||||
// Seed system templates (tenantId: null)
|
||||
const systemTemplates = [
|
||||
{
|
||||
name: 'Basic Kanban',
|
||||
description: 'Simple three-column workflow',
|
||||
template: { columns: [{ title: 'To Do' }, { title: 'In Progress' }, { title: 'Done' }] }
|
||||
},
|
||||
{
|
||||
name: 'Scrum Sprint',
|
||||
description: 'Sprint-based agile workflow',
|
||||
template: {
|
||||
columns: [
|
||||
{ title: 'Backlog' },
|
||||
{ title: 'Sprint' },
|
||||
{ title: 'In Review' },
|
||||
{ title: 'Done' }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Bug Tracker',
|
||||
description: 'Issue lifecycle tracking',
|
||||
template: {
|
||||
columns: [
|
||||
{ title: 'New' },
|
||||
{ title: 'Confirmed' },
|
||||
{ title: 'In Progress' },
|
||||
{ title: 'Resolved' },
|
||||
{ title: 'Closed' }
|
||||
]
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
for (const tpl of systemTemplates) {
|
||||
const existing = await prisma.boardTemplate.findFirst({
|
||||
where: { tenantId: null, name: tpl.name }
|
||||
});
|
||||
if (!existing) {
|
||||
await prisma.boardTemplate.create({
|
||||
data: {
|
||||
tenantId: null,
|
||||
name: tpl.name,
|
||||
description: tpl.description,
|
||||
template: tpl.template
|
||||
}
|
||||
});
|
||||
console.log(` Created system template: ${tpl.name}`);
|
||||
} else {
|
||||
console.log(` System template exists: ${tpl.name}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Seed complete.');
|
||||
console.log(' Admin: admin@example.com / admin123');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user