chore: rename blocks to groups

This commit is contained in:
Carlos Valente
2025-08-09 06:47:13 +02:00
committed by Carlos Valente
parent 486d89ecf4
commit e5d2457717
83 changed files with 987 additions and 981 deletions
@@ -156,10 +156,10 @@ describe('parseExcel()', () => {
expect((firstEvent as OntimeEvent).title).toBe('A song from the hearth');
});
it('imports blocks', () => {
it('imports groups', () => {
const testdata = [
['Title', 'Timer type'],
['a block', 'block'],
['a group', 'group'],
['an event', 'clock'],
];
@@ -171,7 +171,7 @@ describe('parseExcel()', () => {
const firstEvent = result.rundown.entries[result.rundown.order[0]];
expect(result.rundown.order.length).toBe(2);
expect((firstEvent as OntimeEvent).type).toBe(SupportedEntry.Block);
expect((firstEvent as OntimeEvent).type).toBe(SupportedEntry.Group);
});
it('imports as events if there is no timer type column', () => {
@@ -301,8 +301,8 @@ describe('parseExcel()', () => {
['9:45:00', '10:56:00', 'B', 'x', 'count-down'],
['10:00:00', '16:36:00', 'C', 'x', 'count-down'],
['21:45:00', '22:56:00', 'D', '', 'count-down'],
['', '', 'BLOCK', 'x', 'block'], // <-- block with link
['00:0:00', '23:56:00', 'E', 'x', 'count-down'], // <-- link past blocks
['', '', 'GROUP', 'x', 'group'], // <-- group with link
['00:0:00', '23:56:00', 'E', 'x', 'count-down'], // <-- must link past previous group
];
const importMap = {
@@ -315,7 +315,7 @@ describe('parseExcel()', () => {
const result = parseExcel(testData, {}, 'testSheet', importMap);
expect(result.rundown.order.length).toBe(6);
expect(result.rundown.order).toMatchObject(['A', 'B', 'C', 'D', 'BLOCK', 'E']);
expect(result.rundown.order).toMatchObject(['A', 'B', 'C', 'D', 'GROUP', 'E']);
expect(result.rundown.entries).toMatchObject({
A: {
@@ -330,8 +330,8 @@ describe('parseExcel()', () => {
D: {
linkStart: false,
},
BLOCK: {
type: SupportedEntry.Block,
GROUP: {
type: SupportedEntry.Group,
},
E: {
linkStart: true,
+11 -10
View File
@@ -2,10 +2,10 @@ import {
CustomFields,
Rundown,
OntimeEvent,
OntimeBlock,
OntimeGroup,
EntryCustomFields,
SupportedEntry,
isOntimeBlock,
isOntimeGroup,
TimerType,
CustomFieldKey,
} from 'ontime-types';
@@ -31,6 +31,7 @@ import { parseExcelDate } from '../../utils/time.js';
* @param {array} excelData - array with excel sheet
* @param {ImportOptions} options - an object that contains the import map
* @returns {object} - parsed object
* TODO: import milestones
*/
export const parseExcel = (
excelData: unknown[][],
@@ -170,7 +171,7 @@ export const parseExcel = (
},
} as const;
const entry: Partial<Merge<OntimeEvent, OntimeBlock>> = {};
const entry: Partial<Merge<OntimeEvent, OntimeGroup>> = {};
const entryCustomFields: EntryCustomFields = {};
for (let j = 0; j < row.length; j++) {
@@ -178,16 +179,16 @@ export const parseExcel = (
// 1. we check if we have set a flag for a known field
if (j === timerTypeIndex) {
const maybeTimeType = makeString(column, '');
if (maybeTimeType === 'block') {
if (maybeTimeType === 'group') {
// we leave this as a clue for the object filtering later on
entry.type = SupportedEntry.Block;
entry.type = SupportedEntry.Group;
entry.entries = [];
} else if (maybeTimeType === '' || maybeTimeType === 'event' || isKnownTimerType(maybeTimeType)) {
// @ts-expect-error -- we leave this as a clue for the object filtering later on
entry.type = SupportedEntry.Event;
entry.timerType = validateTimerType(maybeTimeType);
} else {
// if it is not a block or a known type, we dont import it
// if it is not a group or a known type, we dont import it
return;
}
} else if (j === titleIndex) {
@@ -258,11 +259,11 @@ export const parseExcel = (
}
const id = entry.id || generateId();
// from excel, we can only get blocks and events
if (isOntimeBlock(entry)) {
const block: OntimeBlock = { ...entry, custom: { ...entryCustomFields } };
// from excel, we can only get groups, milestones and events
if (isOntimeGroup(entry)) {
const group: OntimeGroup = { ...entry, custom: { ...entryCustomFields } };
rundown.order.push(id);
rundown.entries[id] = block;
rundown.entries[id] = group;
return;
}