diff --git a/backend/controllers/events.js b/backend/controllers/events.js
index 565cb6f..4eb06e4 100644
--- a/backend/controllers/events.js
+++ b/backend/controllers/events.js
@@ -3,6 +3,8 @@ var db = require('../db');
var mongoose = require("mongoose");
var Event = require("../models/event");
var { callModel: Call, callSchema } = require("../models/call");
+var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com';
+
exports.getEvent = async function (req, res, next) {
@@ -78,17 +80,16 @@ exports.addNewEvent = async function (req, res, next) {
});
event.calls = calls;
event.numCalls = calls.length;
- console.log(await event.save());
+ await event.save();
+
+ const url = "/events/" + event._id;
res.contentType('json');
- res.send(JSON.stringify({
- success: false,
- error: "Upload failed"
- }));
+ res.send(JSON.stringify({url:url}));
}
catch (err) {
console.error(err);
res.status(500);
- res.send("Error parsing sourcelist " + err);
+ res.send("Error creating event" + err);
}
diff --git a/frontend/src/Call/components/PlaylistBuilder.js b/frontend/src/Call/components/PlaylistBuilder.js
index 14513a1..2cc9a2d 100644
--- a/frontend/src/Call/components/PlaylistBuilder.js
+++ b/frontend/src/Call/components/PlaylistBuilder.js
@@ -1,5 +1,5 @@
import { useSelector, useDispatch } from 'react-redux'
-import { useParams } from 'react-router-dom';
+import { Link, useParams } from 'react-router-dom';
import React, { useState } from "react";
import {
Header,
@@ -28,6 +28,10 @@ function PlaylistBuilder(props) {
const [addNewEvent, { isLoading }] = useAddNewEventMutation()
const { loading: callsLoading, data: callsData } = useSelector((state) => state.calls);
const [open, setOpen] = React.useState(false);
+ const [successModalOpen, setSuccessModalOpen] = useState(false);
+ const [eventUrl, setEventUrl] = useState("");
+ const [eventPath, setEventPath] = useState("");
+ const [submitMessage, setSubmitMessage] = useState(false);
const [title, setTitle] = useState("")
const [description, setDescription] = useState("")
const handleTitleChange = (e, { name, value }) => setTitle(value);
@@ -84,22 +88,37 @@ function PlaylistBuilder(props) {
})
const submitPlaylist = () => {
+ setSubmitMessage(false);
setOpen(true)
}
- const handleSubmit = () => {
- setOpen(false)
+ const handleSubmit = async () => {
+ if ((title.length < 3) || (description.length < 3)) {
+ setSubmitMessage("Please fill out the title and description with something useful");
+ } else {
+ setOpen(false);
const callIds = playlist.map((call) => call._id)
const event = {
title,
description,
callIds
}
- addNewEvent(event);
+ try {
+ const returned = await addNewEvent(event).unwrap();
+ console.log(returned);
+ setEventUrl(new URL(returned.url, document.baseURI).href)
+ setEventPath(returned.url);
+ setSuccessModalOpen(true);
+ } catch (error) {
+ console.error(error)
+ // you can handle errors here if you want to
+ }
+
setTitle("");
setDescription("");
dispatch(setPlaylist([]));
}
+ }
let content = ()
if (playlist.length > 0) {
@@ -112,10 +131,28 @@ function PlaylistBuilder(props) {
return (
<>
+ setSuccessModalOpen(false)}
+ size='tiny'
+ >
+ Event Successfully Created
+ Your Event is here: {eventUrl}
+
+
+
+
setOpen(false)}
onOpen={() => setOpen(true)}
open={open}
+
>
Submit an Event
@@ -142,6 +179,7 @@ function PlaylistBuilder(props) {
onChange={handleDescriptionChange}
/>
+ {submitMessage&& {submitMessage}}