mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-11 02:13:48 +00:00
feat: allow naming aux timers
Adds custom, persisted names for the three aux timers, editable in the editor settings and surfaced everywhere an aux title is shown. - Persist `auxTimerNames` on the Settings object (default empty, falls back to the stock "Aux N" label when unset). Reuses the existing settings pipeline: validation sanitises to a fixed-length trimmed array, the parser normalises loaded/legacy data, and migrations carry the field forward. - New "Aux timers" settings section to name each timer, plus a shortcut button next to the aux timers in the playback control that jumps straight to it. - Resolve names via a shared getAuxTimerLabel helper in the aux timer control, Studio view, secondary-source selector and preview, and the automation action labels. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WCZejVTzuAY3tHTE6nB3JH
This commit is contained in:
@@ -16,6 +16,21 @@ describe('parseSettings()', () => {
|
||||
operatorKey: null,
|
||||
timeFormat: '24',
|
||||
language: 'en',
|
||||
auxTimerNames: ['', '', ''],
|
||||
});
|
||||
});
|
||||
|
||||
it('carries custom aux timer names through and normalises to a length-3 array', () => {
|
||||
const result = parseSettings({
|
||||
settings: { version: '1', auxTimerNames: ['Speaker'] } as unknown as Settings,
|
||||
});
|
||||
expect(result.auxTimerNames).toStrictEqual(['Speaker', '', '']);
|
||||
});
|
||||
|
||||
it('falls back to defaults when aux timer names are missing or malformed', () => {
|
||||
const result = parseSettings({
|
||||
settings: { version: '1', auxTimerNames: 'not-an-array' } as unknown as Settings,
|
||||
});
|
||||
expect(result.auxTimerNames).toStrictEqual(['', '', '']);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user