From 608247157bdb4ec7e878e082d95d934bd864490b Mon Sep 17 00:00:00 2001 From: Carlos Valente Date: Sun, 2 Aug 2026 12:24:20 +0200 Subject: [PATCH] refactor(rundown): cap rundown names to 64 characters --- .../panel/manage-panel/ManageRundownForm.tsx | 2 +- .../manage-panel/composite/RundownRenameForm.tsx | 1 + .../src/api-data/rundown/rundown.validation.ts | 15 ++++++++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/client/src/features/app-settings/panel/manage-panel/ManageRundownForm.tsx b/apps/client/src/features/app-settings/panel/manage-panel/ManageRundownForm.tsx index f941a2224..6539353cb 100644 --- a/apps/client/src/features/app-settings/panel/manage-panel/ManageRundownForm.tsx +++ b/apps/client/src/features/app-settings/panel/manage-panel/ManageRundownForm.tsx @@ -46,7 +46,7 @@ export function ManageRundownForm({ onClose }: ManageRundownForm) { diff --git a/apps/client/src/features/app-settings/panel/manage-panel/composite/RundownRenameForm.tsx b/apps/client/src/features/app-settings/panel/manage-panel/composite/RundownRenameForm.tsx index be37c9a5e..87cb948ad 100644 --- a/apps/client/src/features/app-settings/panel/manage-panel/composite/RundownRenameForm.tsx +++ b/apps/client/src/features/app-settings/panel/manage-panel/composite/RundownRenameForm.tsx @@ -59,6 +59,7 @@ export default function RundownRenameForm({ onSubmit, onCancel, initialTitle }: return true; }, })} + maxLength={64} fluid /> {errors.title && {errors.title.message}} diff --git a/apps/server/src/api-data/rundown/rundown.validation.ts b/apps/server/src/api-data/rundown/rundown.validation.ts index a6014f7d3..e1bdade4b 100644 --- a/apps/server/src/api-data/rundown/rundown.validation.ts +++ b/apps/server/src/api-data/rundown/rundown.validation.ts @@ -1,14 +1,23 @@ import { body, param } from 'express-validator'; -import type { EntryId, InsertOptions, OntimeGroup, Rundown } from 'ontime-types'; +import { type EntryId, type InsertOptions, type OntimeGroup, type Rundown } from 'ontime-types'; import { requestValidationFunction } from '../validation-utils/validationFunction.js'; // #region operations on project rundowns ========================= -export const rundownPostValidator = [body('title').isString().trim().notEmpty(), requestValidationFunction]; +const rundownTitleValidator = body('title') + .isString() + .trim() + .notEmpty() + .withMessage('No title provided') + .bail() + .isLength({ max: 64 }) + .withMessage('Title must be 64 characters or fewer'); + +export const rundownPostValidator = [rundownTitleValidator, requestValidationFunction]; export const rundownPatchValidator = [ param('id').isString().trim().notEmpty(), - body('title').isString().trim().notEmpty().withMessage('No title provided'), + rundownTitleValidator, requestValidationFunction, ];