mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-13 19:33:46 +00:00
V1 (#118)
* chore: upgrade minor versions * chore: upgrade cypress * chore: upgrade fe dependencies * update readme * update osx images * update readme * upgrade dependencies * upgrade test dependency * feat: add option to input autofill * feat: autofill to the left * chore: update docs * chore: cleanup ci * version bump * style: prevent zero height bar * fix: prevent loosing menu * ux: improve input, no spellcheck or autocomplete * small ux improvements in cuesheets * feat 111/increase maximum number of events * fix: optimistic delete issue with filter * refact: pincode workflow * chore: add versioning to packages
This commit is contained in:
@@ -8,9 +8,15 @@ import {
|
||||
event as eventDef,
|
||||
} from '../models/eventsDefinition.js';
|
||||
import { generateId } from '../utils/generate_id.js';
|
||||
import { MAX_EVENTS } from '../settings.js';
|
||||
|
||||
const MAX_EVENTS = 99;
|
||||
|
||||
/**
|
||||
* Insets an event after a given index
|
||||
* @param entry
|
||||
* @param index
|
||||
* @return {Promise<void>}
|
||||
* @private
|
||||
*/
|
||||
async function _insertAt(entry, index) {
|
||||
// get events
|
||||
const events = data.events;
|
||||
@@ -40,11 +46,25 @@ async function _insertAt(entry, index) {
|
||||
await db.write();
|
||||
}
|
||||
|
||||
async function _insertAfterId(entry, id) {
|
||||
const index = [...data.events].findIndex((event) => event.id === id);
|
||||
await _insertAt(entry, index + 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description deletes an event from the db given its id
|
||||
* @param eventId
|
||||
* @return {Promise<void>}
|
||||
*/
|
||||
async function _removeById(eventId) {
|
||||
data.events = Array.from(data.events).filter((e) => e.id !== eventId);
|
||||
await db.write();
|
||||
}
|
||||
|
||||
/**
|
||||
* @description returns all events of type event
|
||||
* @return {unknown[]}
|
||||
*/
|
||||
function getEventEvents() {
|
||||
// return data.events.filter((e) => e.type === 'event');
|
||||
return Array.from(data.events).filter((e) => e.type === 'event');
|
||||
@@ -97,6 +117,7 @@ export const eventsPost = async (req, res) => {
|
||||
if (data.events.length > MAX_EVENTS) {
|
||||
const error = `ERROR: Reached limit number of ${MAX_EVENTS} events`;
|
||||
res.status(400).send(error);
|
||||
return;
|
||||
}
|
||||
|
||||
// ensure structure
|
||||
@@ -121,10 +142,13 @@ export const eventsPost = async (req, res) => {
|
||||
|
||||
try {
|
||||
// get place where event should be
|
||||
const index = newEvent.order || 0;
|
||||
|
||||
// add new event in place
|
||||
await _insertAt(newEvent, index);
|
||||
if (newEvent.order) {
|
||||
await _insertAt(newEvent, newEvent.order);
|
||||
} else if (newEvent.after) {
|
||||
await _insertAfterId(newEvent, newEvent.after);
|
||||
} else {
|
||||
await _insertAt(newEvent, 0);
|
||||
}
|
||||
|
||||
// update timers
|
||||
_updateTimers();
|
||||
@@ -211,7 +235,6 @@ export const eventsReorder = async (req, res) => {
|
||||
data.events = events;
|
||||
await db.write();
|
||||
|
||||
// TODO: would it be more efficient to reorder at timer?
|
||||
// update timer
|
||||
_updateTimers();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user