* 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:
Carlos Valente
2022-05-19 10:48:56 +02:00
committed by GitHub
parent 45ac44b2e8
commit 6ac963684d
155 changed files with 3481 additions and 3465 deletions
+9 -2
View File
@@ -2,10 +2,17 @@ import { Server } from 'node-osc';
let oscServer = null;
/**
* @description utilty function to shutdown osc server
*/
export const shutdownOSCServer = () => {
if (oscServer != null) oscServer.close();
};
/**
* @description initialises OSC server
* @param config
*/
export const initiateOSC = (config) => {
oscServer = new Server(config.port, '0.0.0.0');
@@ -66,7 +73,7 @@ export const initiateOSC = (config) => {
break;
case 'delay':
try {
const t = parseInt(args);
const t = parseInt(args, 10);
if (isNaN(t)) {
global.timer.error('RX', `OSC IN: delay time not recognised ${args}`);
return;
@@ -78,7 +85,7 @@ export const initiateOSC = (config) => {
break;
case 'goto':
try {
const eventIndex = parseInt(args);
const eventIndex = parseInt(args, 10);
if (isNaN(eventIndex) || eventIndex <= 0) {
global.timer.error(
'RX',
+30 -7
View File
@@ -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();
+1 -5
View File
@@ -11,10 +11,6 @@ import { generateId } from '../utils/generate_id.js';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
function getEventTitle() {
return data.event.title;
}
// Create controller for GET request to '/ontime/poll'
// Returns data for current state
export const poll = async (req, res) => {
@@ -31,7 +27,7 @@ export const poll = async (req, res) => {
// Create controller for GET request to '/ontime/db'
// Returns -
export const dbDownload = async (req, res) => {
const fileTitle = getEventTitle() || 'ontime events';
const fileTitle = data?.event?.title || 'ontime events';
const dbFile = path.resolve(__dirname, '../', 'data/db.json');
res.download(dbFile, `${fileTitle}.json`, (err) => {