mirror of
https://github.com/cpvalente/ontime.git
synced 2026-09-02 04:49:05 +00:00
major: event block redesign
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import DelayBlock from './DelayBlock';
|
||||
import BlockBlock from './BlockBlock';
|
||||
import EventBlock from './EventBlock';
|
||||
import { showErrorToast } from '../../../common/helpers/toastManager';
|
||||
|
||||
export default function EventListItem(props) {
|
||||
const {
|
||||
@@ -14,6 +15,46 @@ export default function EventListItem(props) {
|
||||
...rest
|
||||
} = props;
|
||||
|
||||
// Create / delete new events
|
||||
const actionHandler = (action, payload) => {
|
||||
switch (action) {
|
||||
case 'event':
|
||||
eventsHandler('add', { type: 'event', order: index + 1 });
|
||||
break;
|
||||
case 'delay':
|
||||
eventsHandler('add', { type: 'delay', order: index + 1 });
|
||||
break;
|
||||
case 'block':
|
||||
eventsHandler('add', { type: 'block', order: index + 1 });
|
||||
break;
|
||||
case 'delete':
|
||||
eventsHandler('delete', data.id);
|
||||
break;
|
||||
case 'update':
|
||||
// Handles and filters update requests
|
||||
const { field, value } = payload;
|
||||
if (field === 'durationOverride') {
|
||||
// duration defines timeEnd
|
||||
let end = (data.timeStart += value);
|
||||
const newData = { id: data.id, timeEnd: end };
|
||||
|
||||
// request update in parent
|
||||
eventsHandler('patch', newData);
|
||||
} else if (field in data) {
|
||||
// create object with new field
|
||||
const newData = { id: data.id, [field]: value };
|
||||
|
||||
// request update in parent
|
||||
eventsHandler('patch', newData);
|
||||
} else {
|
||||
showErrorToast('Field Error: ' + field);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
switch (type) {
|
||||
case 'event':
|
||||
return (
|
||||
@@ -22,17 +63,22 @@ export default function EventListItem(props) {
|
||||
data={data}
|
||||
selected={selected}
|
||||
next={next}
|
||||
eventsHandler={eventsHandler}
|
||||
actionHandler={actionHandler}
|
||||
delay={delay}
|
||||
/>
|
||||
);
|
||||
case 'block':
|
||||
return (
|
||||
<BlockBlock index={index} data={data} eventsHandler={eventsHandler} />
|
||||
<BlockBlock index={index} data={data} actionHandler={actionHandler} />
|
||||
);
|
||||
case 'delay':
|
||||
return (
|
||||
<DelayBlock index={index} data={data} eventsHandler={eventsHandler} />
|
||||
<DelayBlock
|
||||
index={index}
|
||||
data={data}
|
||||
eventsHandler={eventsHandler}
|
||||
actionHandler={actionHandler}
|
||||
/>
|
||||
);
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user