+
+ Clock:
+ {timer.clock}
+ Timer:
+ {timer.currentSeconds}
+ Started:
+ {timer.startedAt}
+ Finish:
+ {timer.expectedFinish}
-
-
-
-
+
+ Presenter Message:
+ {pres.text}
+ Vis:
+ {pres.visible ? 'visible' : 'invisible'}
+
+
+ Public Message:
+ {publ.text}
+ Vis:
+ {publ.visible ? 'visible' : 'invisible'}
+
+
+ Lower third Message:
+ {lower.text}
+ Vis:
+ {lower.visible ? 'visible' : 'invisible'}
+
+
+ Title Now:
+ {titles.titleNow}
+ Subtitle Now:
+ {titles.subtitleNow}
+ Presenter Now:
+ {titles.presenterNow}
+
+
+ Title Next:
+ {titles.titleNext}
+ Subtitle Next:
+ {titles.subtitleNext}
+ Presenter Next:
+ {titles.presenterNext}
);
diff --git a/client/src/features/viewers/DefaultPresenter.module.css b/client/src/features/viewers/DefaultPresenter.module.css
new file mode 100644
index 000000000..1f35c8eda
--- /dev/null
+++ b/client/src/features/viewers/DefaultPresenter.module.css
@@ -0,0 +1,18 @@
+.mainContainer {
+ color: white;
+ display: flex;
+ flex-direction: rows;
+ flex-wrap: wrap;
+ font-size: 28px;
+ gap: 2em
+}
+
+.container {
+ flex: 1 0 56%;
+ display: flex;
+}
+
+.label {
+ padding: 0 1em;
+ color: #fff5;
+}
diff --git a/client/src/features/viewers/backstage/Paginator.jsx b/client/src/features/viewers/backstage/Paginator.jsx
index ccf7ab0ad..395b8aeab 100644
--- a/client/src/features/viewers/backstage/Paginator.jsx
+++ b/client/src/features/viewers/backstage/Paginator.jsx
@@ -1,7 +1,6 @@
import TodayItem from './TodayItem';
import style from './Paginator.module.css';
import { useEffect, useState } from 'react';
-import { useTimeout } from '../../../app/hooks/useTimeout';
import { useInterval } from '../../../app/hooks/useInterval';
export default function Paginator(props) {
@@ -23,24 +22,19 @@ export default function Paginator(props) {
useEffect(() => {
if (events == null) return;
- console.log('debug events', events);
-
// how many events in list
let n = events.length;
setNumEvents(n);
- console.log('debug ne', n);
// how many paginated views
let p = Math.ceil(n / LIMIT_PER_PAGE);
setPages(p);
- console.log('debug np', p);
// divide events in parts of LIMIT_PER_PAGE
const eventStart = LIMIT_PER_PAGE * selPage;
const eventEnd = LIMIT_PER_PAGE * (selPage + 1);
let e = events.slice(eventStart, eventEnd);
setPage(e);
- console.log('debug show', e);
// if array is completely in past, show depending on SCROLL_PAST
}, [events, selPage]);
@@ -58,6 +52,7 @@ export default function Paginator(props) {
{[...Array(pages)].map((p, i) => (
))}
@@ -69,6 +64,7 @@ export default function Paginator(props) {
else if (selectedYet === 1) selectedYet = 2;
return (
+
{start}
{end}
{title}
diff --git a/client/src/features/viewers/presenter/PresenterView.module.css b/client/src/features/viewers/presenter/PresenterView.module.css
index ad5ff7517..7a8d7d67b 100644
--- a/client/src/features/viewers/presenter/PresenterView.module.css
+++ b/client/src/features/viewers/presenter/PresenterView.module.css
@@ -1,7 +1,6 @@
.container__gray,
.container__grayFinished {
margin: 0;
- padding: 0;
box-sizing: border-box; /* reset */
overflow: hidden;
width: 100%; /* restrict the page width to viewport */
@@ -113,7 +112,7 @@
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.85);
- z-index: 2;
+ z-index: -1;
opacity: 0;
transition: 0.5s;
}
@@ -121,6 +120,8 @@
.messageOverlayActive {
opacity: 1;
transition: 0.5s;
+ transition-property: opacity;
+ z-index: 2;
}
.message {
diff --git a/client/src/index.js b/client/src/index.js
index 1d4dcadd9..0ba311676 100644
--- a/client/src/index.js
+++ b/client/src/index.js
@@ -6,12 +6,13 @@ import reportWebVitals from './reportWebVitals';
import { BrowserRouter } from 'react-router-dom';
// 1. import `ChakraProvider` component
-import { ChakraProvider } from '@chakra-ui/react';
+import { ChakraProvider, CSSReset } from '@chakra-ui/react';
ReactDOM.render(
+
diff --git a/server/controllers/eventsController.js b/server/controllers/eventsController.js
index 359bf8710..7bdfee6f1 100644
--- a/server/controllers/eventsController.js
+++ b/server/controllers/eventsController.js
@@ -109,7 +109,6 @@ exports.eventsPost = async (req, res) => {
res.sendStatus(201);
} catch (error) {
res.status(400).send(error);
- console.log('debug', error);
}
};
@@ -119,19 +118,14 @@ exports.eventsPut = async (req, res) => {
// no valid params
if (!req.body) {
res.status(400).send(`No object found`);
- console.log('error here', 'noobj');
-
return;
}
let eventId = req.body.id;
if (!eventId) {
- res.status(400).send(`No id found`);
- console.log('error here', 'noid');
-
+ res.status(400).send(`Object malformed: id missing`);
return;
}
-
try {
db.get('events')
.find({ id: req.body.id })
@@ -141,7 +135,6 @@ exports.eventsPut = async (req, res) => {
.then(res.sendStatus(200));
} catch (error) {
res.status(400).send(error);
- console.log('error here', error);
}
};
diff --git a/server/data/dataModel.json b/server/data/dataModel.json
index 6cc4cc517..456ff7846 100644
--- a/server/data/dataModel.json
+++ b/server/data/dataModel.json
@@ -1,3 +1,16 @@
{
- "events": []
+ "events": [],
+ "event": {
+ "title": "",
+ "url": "",
+ "publicInfo": "",
+ "backStageInfo": ""
+ },
+ "settings": {
+ "app": "ontime",
+ "version": 1,
+ "osc_enabled": false,
+ "osc_port": 8008,
+ "lock": false
+ }
}
\ No newline at end of file
diff --git a/server/routes/eventsRouter.js b/server/routes/eventsRouter.js
index cc16adb1e..52099a1bb 100644
--- a/server/routes/eventsRouter.js
+++ b/server/routes/eventsRouter.js
@@ -1,8 +1,8 @@
const express = require('express');
const router = express.Router();
-// import playback controller
- const eventsController = require('../controllers/eventsController');
+// import events controller
+const eventsController = require('../controllers/eventsController');
// create route between controller and '/events' endpoint
router.get('/', eventsController.eventsGetAll);