summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/js/generate-timezones.js3
-rwxr-xr-xroutes.js17
-rw-r--r--views/partials/editeventgroupmodal.handlebars4
-rw-r--r--views/partials/editeventmodal.handlebars6
-rw-r--r--views/partials/importeventform.handlebars11
-rwxr-xr-xviews/partials/neweventform.handlebars4
-rwxr-xr-xviews/partials/neweventgroupform.handlebars2
7 files changed, 33 insertions, 14 deletions
diff --git a/public/js/generate-timezones.js b/public/js/generate-timezones.js
index 2c7cbf9..01c9989 100644
--- a/public/js/generate-timezones.js
+++ b/public/js/generate-timezones.js
@@ -343,7 +343,8 @@ const timezones = [
"Pacific/Tarawa",
"Pacific/Tongatapu",
"Pacific/Wake",
- "Pacific/Wallis"
+ "Pacific/Wallis",
+ "Etc/UTC"
];
const dateTimeUtc = moment().utc();
diff --git a/routes.js b/routes.js
index 80014e5..ee723e2 100755
--- a/routes.js
+++ b/routes.js
@@ -505,9 +505,18 @@ router.post('/importevent', (req, res) => {
if (req.files && Object.keys(req.files).length != 0) {
importediCalObject = ical.parseICS(req.files.icsImportControl.data.toString('utf8'));
for (var key in importediCalObject) {
- importedEventData = importediCalObject[key];
+ importedEventData = importediCalObject[key];
}
- creatorEmail = importedEventData.organizer.val.replace("MAILTO:", "")
+ console.log(importedEventData)
+ let creatorEmail;
+ if (req.body.creatorEmail) {
+ creatorEmail = req.body.creatorEmail
+ } else if (importedEventData.organizer) {
+ creatorEmail = importedEventData.organizer.val.replace("MAILTO:", "");
+ } else {
+ res.status(500).send("Please supply an email address on the previous page.");
+ }
+
const event = new Event({
id: eventID,
type: 'public',
@@ -515,12 +524,12 @@ router.post('/importevent', (req, res) => {
location: importedEventData.location,
start: importedEventData.start,
end: importedEventData.end,
- timezone: importedEventData.start.tz,
+ timezone: typeof importedEventData.start.tz != 'undefined' ? importedEventData.start.tz : "Etc/UTC",
description: importedEventData.description,
image: '',
creatorEmail: creatorEmail,
url: '',
- hostName: importedEventData.organizer.params.CN,
+ hostName: importedEventData.organizer ? importedEventData.organizer.params.CN : "",
viewPassword: '',
editPassword: '',
editToken: editToken,
diff --git a/views/partials/editeventgroupmodal.handlebars b/views/partials/editeventgroupmodal.handlebars
index 7ab1221..64fba9b 100644
--- a/views/partials/editeventgroupmodal.handlebars
+++ b/views/partials/editeventgroupmodal.handlebars
@@ -11,7 +11,7 @@
<div class="modal-body">
<div class="form-group">
<label for="eventGroupName" >Name</label>
- <input type="text" class="form-control" id="eventGroupName" name="eventGroupName" placeholder="Make it snappy." value="{{eventGroupData.name}}" data-validation="required length" data-validation-length="3-60">
+ <input type="text" class="form-control" id="eventGroupName" name="eventGroupName" placeholder="Make it snappy." value="{{eventGroupData.name}}" data-validation="required length" data-validation-length="3-120">
</div>
<div class="form-group">
<label for="eventGroupDescription" >Description</label>
@@ -24,7 +24,7 @@
</div>
<div class="form-group">
<label for="hostName" >Host or organisation name</label>
- <input type="text" class="form-control" id="hostName" name="hostName" placeholder="Will be shown on the event group page (optional)." value="{{eventGroupData.hostName}}" data-validation="length" data-validation-length="3-60" data-validation-optional="true">
+ <input type="text" class="form-control" id="hostName" name="hostName" placeholder="Will be shown on the event group page (optional)." value="{{eventGroupData.hostName}}" data-validation="length" data-validation-length="3-120" data-validation-optional="true">
</div>
<div class="form-group">
<label>Cover image</label>
diff --git a/views/partials/editeventmodal.handlebars b/views/partials/editeventmodal.handlebars
index 553d961..ce3cdcd 100644
--- a/views/partials/editeventmodal.handlebars
+++ b/views/partials/editeventmodal.handlebars
@@ -14,13 +14,13 @@
<label for="eventName" class="col-form-label">Event name</label>
<input type="text" class="form-control" id="eventName" name="eventName"
placeholder="Make it snappy." value="{{eventData.name}}" data-validation="required length"
- data-validation-length="3-60">
+ data-validation-length="3-120">
</div>
<div class="form-group">
<label for="eventLocation" class="col-form-label">Location</label>
<input type="text" class="form-control" id="eventLocation" name="eventLocation"
placeholder="Be specific." value="{{eventData.location}}" data-validation="required length"
- data-validation-length="3-60">
+ data-validation-length="3-120">
</div>
<div class="form-group">
<label for="eventStart" class="col-form-label">Starts</label>
@@ -53,7 +53,7 @@
<label for="hostName" class="col-form-label">Host name</label>
<input type="text" class="form-control" id="hostName" name="hostName"
placeholder="Will be shown on the event page (optional)." value="{{eventData.hostName}}"
- data-validation="length" data-validation-length="3-60" data-validation-optional="true">
+ data-validation="length" data-validation-length="3-120" data-validation-optional="true">
</div>
<div class="form-group">
<label for="eventImage" class="col-form-label">Cover image</label>
diff --git a/views/partials/importeventform.handlebars b/views/partials/importeventform.handlebars
index 7bf5b17..9ad038a 100644
--- a/views/partials/importeventform.handlebars
+++ b/views/partials/importeventform.handlebars
@@ -6,11 +6,20 @@
<img class="img-thumbnail mb-3 d-block mx-auto" src="/images/facebook-export.png" alt="Image showing the location of the export option on Facebook" />
<form id="icsImportForm" action="/importevent" method="post" enctype="multipart/form-data">
- <div class="custom-file" id="icsImportContainer">
+ <div class="form-group">
+ <div class="custom-file" id="icsImportContainer">
<input required name="icsImportControl" type="file" class="custom-file-input" id="icsImportControl" aria-describedby="fileHelp" accept="text/calendar">
<label name="icsImportLabel" class="custom-file-label" id="icsImportLabel" for="icsImportControl">
<i class="far fa-file-alt"></i> Select file
</label>
</div>
+ </div>
+ <div class="form-group">
+ <label for="creatorEmail" class="form-label">Your email</label>
+ <div class="form-group">
+ <input type="email" class="form-control" id="creatorEmail" name="creatorEmail" placeholder="We won't spam you <3" data-validation="email" data-validation-optional="true">
+ <small class="form-text">We will send your secret editing link to this email address.</small>
+ </div>
+ </div>
<button type="submit" class="d-block mt-3 mx-auto btn btn-primary w-50">Import</button>
</form>
diff --git a/views/partials/neweventform.handlebars b/views/partials/neweventform.handlebars
index fff2f4d..82ecfd9 100755
--- a/views/partials/neweventform.handlebars
+++ b/views/partials/neweventform.handlebars
@@ -4,13 +4,13 @@
<div class="form-group row">
<label for="eventName" class="col-sm-2 col-form-label">Event name</label>
<div class="form-group col-sm-10">
- <input type="text" class="form-control" id="eventName" name="eventName" placeholder="Make it snappy." value="{{data.eventName}}" data-validation="required length" data-validation-length="3-60">
+ <input type="text" class="form-control" id="eventName" name="eventName" placeholder="Make it snappy." value="{{data.eventName}}" data-validation="required length" data-validation-length="3-120">
</div>
</div>
<div class="form-group row">
<label for="eventLocation" class="col-sm-2 col-form-label">Location</label>
<div class="form-group col-sm-10">
- <input type="text" class="form-control" id="eventLocation" name="eventLocation" placeholder="Be specific." value="{{data.eventLocation}}" data-validation="required length" data-validation-length="3-60">
+ <input type="text" class="form-control" id="eventLocation" name="eventLocation" placeholder="Be specific." value="{{data.eventLocation}}" data-validation="required length" data-validation-length="3-120">
</div>
</div>
<div class="form-group row">
diff --git a/views/partials/neweventgroupform.handlebars b/views/partials/neweventgroupform.handlebars
index b7524d4..20dd832 100755
--- a/views/partials/neweventgroupform.handlebars
+++ b/views/partials/neweventgroupform.handlebars
@@ -5,7 +5,7 @@
<div class="form-group row">
<label for="eventGroupName" class="col-sm-2 col-form-label">Event group name</label>
<div class="form-group col-sm-10">
- <input type="text" class="form-control" id="eventGroupName" name="eventGroupName" placeholder="Make it snappy." value="{{data.eventName}}" data-validation="required length" data-validation-length="3-60">
+ <input type="text" class="form-control" id="eventGroupName" name="eventGroupName" placeholder="Make it snappy." value="{{data.eventName}}" data-validation="required length" data-validation-length="3-120">
</div>
</div>
<div class="form-group row">