feat: timeline multi-select, demand popover, resource hover card, merged tooltips, dark mode fixes
Major timeline enhancements: - Right-click drag multi-selection with floating action bar (batch delete/assign) - DemandPopover for demand strip details (replaces broken "Loading" modal) - ResourceHoverCard on name hover showing skills, rates, role, chapter - Merged heatmap+vacation tooltips into unified TimelineTooltip component - Fixed overbooking blink animation (date normalization, z-index ordering) - Fixed dark mode sticky column bleed-through in project view - System roles admin page, notification task management, performance review docs Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -48,6 +48,8 @@ export const settingsRouter = createTRPCRouter({
|
||||
hasDalleApiKey: !!settings?.azureDalleApiKey,
|
||||
// Vacation defaults
|
||||
vacationDefaultDays: settings?.vacationDefaultDays ?? 28,
|
||||
// Timeline
|
||||
timelineUndoMaxSteps: settings?.timelineUndoMaxSteps ?? 50,
|
||||
};
|
||||
}),
|
||||
|
||||
@@ -94,6 +96,8 @@ export const settingsRouter = createTRPCRouter({
|
||||
azureDalleApiKey: z.string().optional(),
|
||||
// Vacation
|
||||
vacationDefaultDays: z.number().int().min(0).max(365).optional(),
|
||||
// Timeline
|
||||
timelineUndoMaxSteps: z.number().int().min(1).max(200).optional(),
|
||||
}),
|
||||
)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
@@ -144,6 +148,8 @@ export const settingsRouter = createTRPCRouter({
|
||||
data.azureDalleApiKey = input.azureDalleApiKey || null;
|
||||
// Vacation
|
||||
if (input.vacationDefaultDays !== undefined) data.vacationDefaultDays = input.vacationDefaultDays;
|
||||
// Timeline
|
||||
if (input.timelineUndoMaxSteps !== undefined) data.timelineUndoMaxSteps = input.timelineUndoMaxSteps;
|
||||
|
||||
await ctx.db.systemSettings.upsert({
|
||||
where: { id: "singleton" },
|
||||
|
||||
Reference in New Issue
Block a user