summaryrefslogtreecommitdiff
path: root/views/partials
diff options
context:
space:
mode:
authorRaphael <mail@raphaelkabo.com>2023-10-08 19:26:04 +0100
committerGitHub <noreply@github.com>2023-10-08 19:26:04 +0100
commit44e150bc7f8391b56b78a0697dbd128a8bf8be7b (patch)
treeef065e69228453d5d49b886157a4a88ed3540474 /views/partials
parent9ef8e220b4fb582d620016d293b340a63ec97cff (diff)
parent608532d24d868d939fd2cef6302d8d5089a81ee4 (diff)
Merge pull request #112 from lowercasename/rk/typescript
Typescript migration
Diffstat (limited to 'views/partials')
-rw-r--r--views/partials/editeventgroupmodal.handlebars32
-rw-r--r--views/partials/editeventmodal.handlebars164
-rwxr-xr-xviews/partials/eventForm.handlebars141
-rw-r--r--views/partials/eventGroupForm.handlebars47
-rw-r--r--views/partials/importeventform.handlebars26
-rwxr-xr-xviews/partials/neweventform.handlebars179
-rwxr-xr-xviews/partials/neweventgroupform.handlebars66
-rwxr-xr-xviews/partials/sidebar.handlebars2
8 files changed, 240 insertions, 417 deletions
diff --git a/views/partials/editeventgroupmodal.handlebars b/views/partials/editeventgroupmodal.handlebars
index 3b8f55a..2506e26 100644
--- a/views/partials/editeventgroupmodal.handlebars
+++ b/views/partials/editeventgroupmodal.handlebars
@@ -8,32 +8,10 @@
</button>
</div>
<div class="modal-body">
- <form id="editEventForm" action="/editeventgroup/{{eventGroupData.id}}/{{eventGroupData.editToken}}" method="post" enctype="multipart/form-data" autocomplete="off">
- <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-120">
- </div>
- <div class="form-group">
- <label for="eventGroupDescription" >Description</label>
- <textarea class="form-control" id="eventGroupDescription" name="eventGroupDescription" data-validation="required">{{eventGroupData.description}}</textarea>
- <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting supported.</small>
- </div>
- <div class="form-group">
- <label for="eventGroupURL" >Link</label>
- <input type="url" class="form-control" id="eventURL" name="eventGroupURL" value="{{eventGroupData.url}}" placeholder="For tickets or a page with more information (optional)." data-validation="url" data-validation-optional="true">
- </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-120" data-validation-optional="true">
- </div>
- <div class="form-group">
- <label>Cover image</label>
- <div class="image-preview" id="eventGroupImagePreview">
- <label for="eventGroupImageUpload" id="eventGroupImageLabel">Choose file</label>
- <input type="file" name="eventGroupImageUpload" id="eventGroupImageUpload" />
- </div>
- <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
- </div>
+ <form id="editEventForm" enctype="multipart/form-data" x-data="editEventGroupForm()" @submit.prevent="submitForm">
+
+ {{> eventGroupForm }}
+
<div class="form-group">
<div class="card border-danger mb-3">
<div class="card-header text-danger">Delete this event group</div>
@@ -51,3 +29,5 @@
</div>
</div>
</div>
+
+<script type="text/javascript" src="/js/modules/group-edit.js"></script> \ No newline at end of file
diff --git a/views/partials/editeventmodal.handlebars b/views/partials/editeventmodal.handlebars
index b4b0ea6..a36cd98 100644
--- a/views/partials/editeventmodal.handlebars
+++ b/views/partials/editeventmodal.handlebars
@@ -8,140 +8,21 @@
</button>
</div>
<div class="modal-body">
- <form id="editEventForm" action="/editevent/{{eventData.id}}/{{eventData.editToken}}" method="post"
- enctype="multipart/form-data" autocomplete="off">
- <div class="form-group">
- <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-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-120">
- </div>
- <div class="form-group">
- <label for="eventStart" class="col-form-label">Starts</label>
- <input readonly type="text" class="form-control" id="eventStart" name="eventStart" value=""
- data-validation="required">
- </div>
- <div class="form-group">
- <label for="eventEnd" class="col-form-label">Ends</label>
- <input readonly type="text" class="form-control" id="eventEnd" name="eventEnd" value=""
- data-validation="required">
- </div>
- <div class="form-group">
- <label for="timezone" class="col-form-label">Timezone</label>
- <select class="select2" id="timezone" name="timezone"></select>
- </div>
- <div class="form-group">
- <label for="eventDescription" class="col-form-label">Description</label>
- <textarea class="form-control" id="eventDescription" name="eventDescription"
- data-validation="required">{{eventData.description}}</textarea>
- <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting
- supported.</small>
- </div>
- <div class="form-group">
- <label for="eventURL" class="col-form-label">Link</label>
- <input type="url" class="form-control" id="eventURL" name="eventURL" value="{{eventData.url}}"
- placeholder="For tickets or another event page (optional)." data-validation="url"
- data-validation-optional="true">
- </div>
- <div class="form-group">
- <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-120" data-validation-optional="true">
- </div>
- <div class="form-group">
- <label for="eventImage" class="col-form-label">Cover image</label>
- <div class="image-preview" id="image-preview">
- <label for="image-upload" id="image-label">Choose file</label>
- <input type="file" name="imageUpload" id="image-upload" />
- </div>
- <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
- {{#if eventData.image}}
- <button type="button" class="btn btn-danger" id="deleteImage">Delete image</button>
- {{/if}}
- </div>
- <div class="form-group">
- <div class="mb-2">Options</div>
- <div class="form-check">
- <input class="form-check-input" type="checkbox" id="eventGroupCheckbox"
- name="eventGroupCheckbox" {{#if eventData.eventGroup}}checked{{/if}}>
- <label class="form-check-label" for="eventGroupCheckbox">
- This event is part of an event group
- </label>
- </div>
- <div class="card text-white bg-secondary my-2" id="eventGroupData" {{#if eventData.eventGroup}}style="display:flex" {{/if}}>
- <div class="card-header">
- <strong>Link this event to an event group</strong>
- </div>
- <div class="card-body">
- <div class="form-group">
- <label for="eventGroupID" class="form-label">Event group ID</label>
- <div class="form-group">
- <input type="text" class="form-control" id="eventGroupID" name="eventGroupID"
- placeholder="" data-validation-optional="true" value="{{eventData.eventGroup.id}}">
- <small class="form-text">You can find this short string of characters in the
- event group's link, in your confirmation email, or on the event group's
- page.</small>
- </div>
- </div>
- <div class="form-group">
- <label for="eventGroupEditToken" class="form-label">Event group secret
- editing code</label>
- <div class="form-group">
- <input type="text" class="form-control" id="eventGroupEditToken"
- name="eventGroupEditToken" placeholder="" data-validation-optional="true" value="{{eventData.eventGroup.editToken}}">
- <small class="form-text">You can find this long string of characters in the
- confirmation email you received when you created the event group.</small>
- </div>
- </div>
- </div>
- </div>
- <div class="form-check">
- <input class="form-check-input" type="checkbox" id="interactionCheckbox"
- name="interactionCheckbox" {{#if eventData.usersCanComment}}checked{{/if}}>
- <label class="form-check-label" for="interactionCheckbox">
- Users can post comments on this event
- </label>
- </div>
- <div class="form-check">
- <input class="form-check-input {{#unless eventData.usersCanAttend}}unchecked{{/unless}}"
- type="checkbox" id="joinCheckbox" name="joinCheckbox"
- {{#if eventData.usersCanAttend}}checked{{/if}}>
- <label class="form-check-label" for="joinCheckbox">
- Users can mark themselves as attending this event
- </label>
- </div>
- <div class="form-check" id="maxAttendeesCheckboxContainer"
- {{#if eventData.maxAttendees}}style="display:flex" {{/if}}>
- <input class="form-check-input" type="checkbox" id="maxAttendeesCheckbox"
- name="maxAttendeesCheckbox" {{#if eventData.maxAttendees}}checked{{/if}}>
- <label class="form-check-label" for="maxAttendeesCheckbox">
- Set a limit on the maximum number of attendees
- </label>
- </div>
- </div>
- <div class="form-group" id="maxAttendeesContainer"
- {{#if eventData.maxAttendees}}style="display:flex" {{/if}}>
- <label for="maxAttendees" class="col-form-label">Attendee limit</label>
- <input type="number" class="form-control" id="maxAttendees" name="maxAttendees"
- placeholder="Enter a number." data-validation="number" data-validation-optional="true"
- value="{{eventData.maxAttendees}}">
- </div>
+ <form id="editEventForm" enctype="multipart/form-data" x-data="editEventForm()" x-init="init()"
+ @submit.prevent="submitForm">
- <div class="form-group">
- <div class="card border-danger mb-3">
- <div class="card-header text-danger">Delete this event</div>
- <div class="card-body text-danger">
- <button type="button" id="deleteEvent" class="btn btn-danger" data-toggle="modal" data-target="#deleteModal" data-event-id="{{eventData.id}}"><i class="fas fa-trash"></i> Delete</button>
+ {{> eventForm }}
+
+ <div class="form-group">
+ <div class="card border-danger mb-3">
+ <div class="card-header text-danger">Delete this event</div>
+ <div class="card-body text-danger">
+ <button type="button" id="deleteEvent" class="btn btn-danger" data-toggle="modal"
+ data-target="#deleteModal" data-event-id="{{eventData.id}}"><i class="fas fa-trash"></i>
+ Delete</button>
+ </div>
</div>
</div>
- </div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
@@ -153,13 +34,16 @@
</div>
<script>
-$('#deleteImage').click(function() {
- $.post('/deleteimage/{{eventData.id}}/{{eventData.editToken}}', function(response) {
- if (response === "Success") {
- location.reload();
- } else {
- alert(response);
- }
- });
-})
+ $('#deleteImage').click(function () {
+ $.post('/deleteimage/{{eventData.id}}/{{eventData.editToken}}', function (response) {
+ if (response === "Success") {
+ location.reload();
+ } else {
+ alert(response);
+ }
+ });
+ })
</script>
+
+<script type="text/javascript" src="/js/generate-timezones.js"></script>
+<script type="text/javascript" src="/js/modules/event-edit.js"></script>
diff --git a/views/partials/eventForm.handlebars b/views/partials/eventForm.handlebars
new file mode 100755
index 0000000..93d679d
--- /dev/null
+++ b/views/partials/eventForm.handlebars
@@ -0,0 +1,141 @@
+<div class="form-group">
+ <label for="eventName" >Event name</label>
+ <div class="form-group ">
+ <input type="text" class="form-control" id="eventName" name="eventName" placeholder="Make it snappy." x-model="data.eventName" >
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventLocation" >Location</label>
+ <div class="form-group ">
+ <input type="text" class="form-control" id="eventLocation" name="eventLocation" placeholder="Be specific." x-model="data.eventLocation">
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventStart" >Starts</label>
+ <div class="form-group">
+ <input type="datetime-local" class="form-control" id="eventStart" name="eventStart" x-model="data.eventStart">
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventEnd" >Ends</label>
+ <div class="form-group ">
+ <input type="datetime-local" class="form-control" id="eventEnd" name="eventEnd" x-model="data.eventEnd">
+ </div>
+</div>
+<div class="form-group">
+ <label for="timezone" >Timezone</label>
+ <div class="form-group ">
+ <select class="select2" id="timezone" name="timezone" x-ref="timezone"></select>
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventDescription" >Description</label>
+ <div class="form-group ">
+ <textarea class="form-control expand" id="eventDescription" name="eventDescription" placeholder="You can always edit it later." x-model="data.eventDescription" ></textarea>
+ <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting supported.</small>
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventURL" >Link</label>
+ <div class="form-group ">
+ <input type="url" class="form-control" id="eventURL" name="eventURL" placeholder="For tickets or another event page (optional)." x-model="data.eventURL" >
+ </div>
+</div>
+<div class="form-group">
+ <label for="eventImage" >Cover image</label>
+ <div class="form-group ">
+ <div class="image-preview" id="event-image-preview">
+ <label for="image-upload" id="event-image-label">Choose file</label>
+ <input type="file" name="imageUpload" id="event-image-upload" accept="image/jpeg,image/gif,image/png" x-ref="eventImageUpload" />
+ </div>
+ <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
+ {{#if eventData.image}}
+ <button type="button" class="btn btn-danger" id="deleteImage">Delete image</button>
+ {{/if}}
+ </div>
+</div>
+<div class="form-group">
+ <label for="hostName" >Host name</label>
+ <div class="form-group ">
+ <input type="text" class="form-control" id="hostName" name="hostName" placeholder="Will be shown on the event page (optional)." x-model="data.hostName" >
+ </div>
+</div>
+<div class="form-group">
+ <label for="creatorEmail" >Your email</label>
+ <div class="form-group ">
+ <input type="email" class="form-control" id="creatorEmail" name="creatorEmail" placeholder="Will not be shown anywhere (optional)." x-model="data.creatorEmail" >
+ <small class="form-text">If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.</small>
+ </div>
+</div>
+<div class="form-group">
+ <label>Options</label>
+ <div >
+ <div class="form-check">
+ <input class="form-check-input" type="checkbox" id="eventGroupCheckbox" name="eventGroupCheckbox" x-model="data.eventGroupCheckbox">
+ <label class="form-check-label" for="eventGroupCheckbox">
+ This event is part of an event group
+ </label>
+ </div>
+ <div class="card my-2" id="eventGroupData" x-show="data.eventGroupCheckbox">
+ <div class="card-header">
+ <strong>Link this event to an event group</strong>
+ </div>
+ <div class="card-body">
+ <div class="form-group">
+ <label for="eventGroupID" class="col-12">Event group ID</label>
+ <div class="form-group col-12">
+ <input type="text" class="form-control" id="eventGroupID" name="eventGroupID" placeholder="" x-model="data.eventGroupID" >
+ <small class="form-text">You can find this short string of characters in the event group's link, in your confirmation email, or on the event group's page.</small>
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="eventGroupEditToken" class="col-12">Event group secret editing code</label>
+ <div class="form-group col-12">
+ <input type="text" class="form-control" id="eventGroupEditToken" name="eventGroupEditToken" placeholder="" x-model="data.eventGroupEditToken" >
+ <small class="form-text">You can find this long string of characters in the confirmation email you received when you created the event group.</small>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="form-check">
+ <input class="form-check-input" type="checkbox" id="interactionCheckbox" name="interactionCheckbox" x-model="data.interactionCheckbox">
+ <label class="form-check-label" for="interactionCheckbox">
+ Users can post comments on this event
+ </label>
+ </div>
+ <div class="form-check">
+ <input class="form-check-input" type="checkbox" id="joinCheckbox" name="joinCheckbox" x-model="data.joinCheckbox">
+ <label class="form-check-label" for="joinCheckbox">
+ Users can mark themselves as attending this event
+ </label>
+ </div>
+ <div class="form-check" id="maxAttendeesCheckboxContainer" x-show="data.joinCheckbox">
+ <input class="form-check-input" type="checkbox" id="maxAttendeesCheckbox" name="maxAttendeesCheckbox" x-model="data.maxAttendeesCheckbox">
+ <label class="form-check-label" for="maxAttendeesCheckbox">
+ Set a limit on the maximum number of attendees
+ </label>
+ </div>
+ </div>
+</div>
+<div class="form-group" id="maxAttendeesContainer" x-show="data.maxAttendeesCheckbox && data.joinCheckbox">
+ <label for="maxAttendees" >Attendee limit</label>
+ <div class="form-group ">
+ <input type="number" class="form-control" id="maxAttendees" name="maxAttendees" placeholder="Enter a number." x-model="data.maxAttendees" >
+ </div>
+</div>
+<div class="form-group">
+ <div class="col-12">
+ <div
+ class="alert alert-danger"
+ role="alert"
+ x-show="errors.length > 0"
+ >
+ <p><i class="fas fa-exclamation-triangle"></i> Please fix these errors:</p>
+ <ul>
+ <template x-for="error in errors">
+ <li x-text="error.message"></li>
+ </template>
+ </ul>
+ </div>
+ </div>
+</div>
diff --git a/views/partials/eventGroupForm.handlebars b/views/partials/eventGroupForm.handlebars
new file mode 100644
index 0000000..0b18bba
--- /dev/null
+++ b/views/partials/eventGroupForm.handlebars
@@ -0,0 +1,47 @@
+<div class="form-group">
+ <label for="eventGroupName">Name</label>
+ <input type="text" class="form-control" id="eventGroupName" name="eventGroupName" placeholder="Make it snappy." x-model="data.eventGroupName">
+</div>
+<div class="form-group">
+ <label for="eventGroupDescription">Description</label>
+ <textarea class="form-control" id="eventGroupDescription" name="eventGroupDescription" x-model="data.eventGroupDescription">{{eventGroupData.description}}</textarea>
+ <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting supported.</small>
+</div>
+<div class="form-group">
+ <label for="eventGroupURL">Link</label>
+ <input type="url" class="form-control" id="eventGroupURL" name="eventGroupURL" placeholder="For tickets or a page with more information (optional)." x-model="data.eventGroupURL">
+</div>
+<div class="form-group">
+ <label for="hostName">Host or organisation name</label>
+ <input type="text" class="form-control" id="eventGroupHostName" name="hostName" placeholder="Will be shown on the event group page (optional)." x-model="data.hostName">
+</div>
+<div class="form-group">
+ <label for="creatorEmail">Your email</label>
+ <div class="form-group">
+ <input type="email" class="form-control" id="eventGroupCreatorEmail" name="creatorEmail" placeholder="Will not be shown anywhere (optional)." x-model="data.creatorEmail">
+ <small class="form-text">If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.</small>
+ </div>
+</div>
+<div class="form-group">
+ <label>Cover image</label>
+ <div class="image-preview" id="group-image-preview">
+ <label for="eventGroupImageUpload" id="group-image-label">Choose file</label>
+ <input type="file" name="imageUpload" id="group-image-upload" accept="image/jpeg,image/gif,image/png" x-ref="eventGroupImageUpload"/>
+ </div>
+ <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
+</div>
+<div class="form-group">
+ <div class="col-12">
+ <div
+ class="alert alert-danger"
+ role="alert"
+ x-show="errors.length > 0"
+ >
+ <p><i class="fas fa-exclamation-triangle"></i> Please fix these errors:</p>
+ <ul>
+ <template x-for="error in errors">
+ <li x-text="error.message"></li>
+ </template>
+ </ul>
+ </div>
+ </div> \ No newline at end of file
diff --git a/views/partials/importeventform.handlebars b/views/partials/importeventform.handlebars
index 9ad038a..13fd2ac 100644
--- a/views/partials/importeventform.handlebars
+++ b/views/partials/importeventform.handlebars
@@ -5,10 +5,10 @@
<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">
+<form id="icsImportForm" enctype="multipart/form-data" x-data="importEventForm()" @submit.prevent="submitForm">
<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">
+ <input required name="icsImportControl" type="file" class="custom-file-input" id="icsImportControl" aria-describedby="fileHelp" accept="text/calendar" x-ref="icsImportControl"/>
<label name="icsImportLabel" class="custom-file-label" id="icsImportLabel" for="icsImportControl">
<i class="far fa-file-alt"></i> Select file
</label>
@@ -17,9 +17,25 @@
<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>
+ <input type="email" class="form-control" id="importCreatorEmail" name="creatorEmail" placeholder="Will not be shown anywhere (optional)." x-model="data.creatorEmail" >
+ <small class="form-text">If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.</small>
</div>
</div>
- <button type="submit" class="d-block mt-3 mx-auto btn btn-primary w-50">Import</button>
+ <div class="form-group">
+ <div class="col-12">
+ <div
+ class="alert alert-danger"
+ role="alert"
+ x-show="errors.length > 0"
+ >
+ <p><i class="fas fa-exclamation-triangle"></i> Please fix these errors:</p>
+ <ul>
+ <template x-for="error in errors">
+ <li x-text="error.message"></li>
+ </template>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <button type="submit" class="d-block mt-3 mx-auto btn btn-primary w-50 mb-4">Import</button>
</form>
diff --git a/views/partials/neweventform.handlebars b/views/partials/neweventform.handlebars
deleted file mode 100755
index 3c7e060..0000000
--- a/views/partials/neweventform.handlebars
+++ /dev/null
@@ -1,179 +0,0 @@
-<h4 class="mb-2">Create an event</h4>
-<form id="newEventForm" action="/newevent" method="post" enctype="multipart/form-data">
- <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-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-120">
- </div>
- </div>
- <div class="form-group row">
- <label for="eventStart" class="col-sm-2 col-form-label">Starts</label>
- <div class="form-group col-sm-10">
- <input readonly type="text" class="form-control" id="eventStart" name="eventStart" placeholder="Click me!" value="{{data.eventStart}}" data-validation="required">
- </div>
- </div>
- <div class="form-group row">
- <label for="eventEnd" class="col-sm-2 col-form-label">Ends</label>
- <div class="form-group col-sm-10">
- <input readonly type="text" class="form-control" id="eventEnd" name="eventEnd" placeholder="Click me!" value="{{data.eventEnd}}" data-validation="required">
- </div>
- </div>
- <div class="form-group row">
- <label for="timezone" class="col-sm-2 col-form-label">Timezone</label>
- <div class="form-group col-sm-10">
- <select class="select2" id="timezone" name="timezone"></select>
- </div>
- </div>
- <div class="form-group row">
- <label for="eventDescription" class="col-sm-2 col-form-label">Description</label>
- <div class="form-group col-sm-10">
- <textarea class="form-control expand" id="eventDescription" name="eventDescription" data-validation="required" placeholder="You can always edit it later."></textarea>
- <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting supported.</small>
- </div>
- </div>
- <div class="form-group row">
- <label for="eventURL" class="col-sm-2 col-form-label">Link</label>
- <div class="form-group col-sm-10">
- <input type="url" class="form-control" id="eventURL" name="eventURL" placeholder="For tickets or another event page (optional)." data-validation="url" data-validation-optional="true">
- </div>
- </div>
- <div class="form-group row">
- <label for="eventImage" class="col-sm-2 col-form-label">Cover image</label>
- <div class="form-group col-sm-10">
- <div class="image-preview" id="eventImagePreview">
- <label for="image-upload" id="eventImageLabel">Choose file</label>
- <input type="file" name="imageUpload" id="eventImageUpload" accept="image/jpeg,image/gif,image/png" />
- </div>
- <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
- </div>
- </div>
- <div class="form-group row">
- <label for="hostName" class="col-sm-2 col-form-label">Host name</label>
- <div class="form-group col-sm-10">
- <input type="text" class="form-control" id="hostName" name="hostName" placeholder="Will be shown on the event page (optional)." data-validation="length" data-validation-length="2-60" data-validation-optional="true">
- </div>
- </div>
- <div class="form-group row">
- <label for="creatorEmail" class="col-sm-2 col-form-label">Your email</label>
- <div class="form-group col-sm-10">
- <input type="email" class="form-control" id="creatorEmail" name="creatorEmail" placeholder="We won't spam you <3 (optional)" data-validation="email" data-validation-optional="true">
- <small class="form-text">If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.</small>
- </div>
- </div>
- <div class="form-group row">
- <div class="col-sm-2">Options</div>
- <div class="col-sm-10">
- <div class="form-check">
- <input class="form-check-input" type="checkbox" id="eventGroupCheckbox" name="eventGroupCheckbox">
- <label class="form-check-label" for="eventGroupCheckbox">
- This event is part of an event group
- </label>
- </div>
- <div class="card text-white bg-secondary my-2" id="eventGroupData">
- <div class="card-header">
- <strong>Link this event to an event group</strong>
- </div>
- <div class="card-body">
- <div class="form-group row">
- <label for="eventGroupID" class="col-sm-2 col-form-label">Event group ID</label>
- <div class="form-group col-sm-10">
- <input type="text" class="form-control" id="eventGroupID" name="eventGroupID" placeholder="" data-validation-optional="true">
- <small class="form-text">You can find this short string of characters in the event group's link, in your confirmation email, or on the event group's page.</small>
- </div>
- </div>
- <div class="form-group row">
- <label for="eventGroupEditToken" class="col-sm-2 col-form-label">Event group secret editing code</label>
- <div class="form-group col-sm-10">
- <input type="text" class="form-control" id="eventGroupEditToken" name="eventGroupEditToken" placeholder="" data-validation-optional="true">
- <small class="form-text">You can find this long string of characters in the confirmation email you received when you created the event group.</small>
- </div>
- </div>
- </div>
- </div>
- <div class="form-check">
- <input class="form-check-input" type="checkbox" id="interactionCheckbox" name="interactionCheckbox">
- <label class="form-check-label" for="interactionCheckbox">
- Users can post comments on this event
- </label>
- </div>
- <div class="form-check">
- <input class="form-check-input" type="checkbox" id="joinCheckbox" name="joinCheckbox">
- <label class="form-check-label" for="joinCheckbox">
- Users can mark themselves as attending this event
- </label>
- </div>
- <div class="form-check" id="maxAttendeesCheckboxContainer">
- <input class="form-check-input" type="checkbox" id="maxAttendeesCheckbox" name="maxAttendeesCheckbox">
- <label class="form-check-label" for="maxAttendeesCheckbox">
- Set a limit on the maximum number of attendees
- </label>
- </div>
- </div>
- </div>
- <div class="form-group row" id="maxAttendeesContainer">
- <label for="maxAttendees" class="col-sm-2 col-form-label">Attendee limit</label>
- <div class="form-group col-sm-10">
- <input type="number" class="form-control" id="maxAttendees" name="maxAttendees" placeholder="Enter a number." data-validation="number" data-validation-optional="true">
- </div>
- </div>
- <div class="form-group row">
- <div class="col-sm-12 pt-3 pb-3 text-center">
- <button id="newEventFormSubmit" type="submit" class="btn btn-primary w-50">Create</button>
- </div>
- </div>
-</form>
-
-<script type="text/javascript" src="/js/generate-timezones.js"></script>
-
-<script>
- $(document).ready(function() {
- $.uploadPreview({
- input_field: "#eventImageUpload",
- preview_box: "#eventImagePreview",
- label_field: "#eventImageLabel",
- label_default: "Choose file",
- label_selected: "Change file",
- no_label: false
- });
- autosize($('textarea'));
- $("#maxAttendeesCheckbox").on("click", function() {
- if ($(this).is(':checked')) {
- $("#maxAttendeesContainer").slideDown('fast').css("display","flex");
- $("#maxAttendees").attr("data-validation-optional","false");
- }
- else {
- $("#maxAttendeesContainer").slideUp('fast');
- $("#maxAttendees").attr("data-validation-optional","true").val("").removeClass('is-valid is-invalid');
- }
- });
- $("#joinCheckbox").on("click", function() {
- if ($(this).is(':checked')) {
- $("#maxAttendeesCheckboxContainer").slideDown('fast').css("display","flex");
- }
- else {
- $("#maxAttendeesCheckboxContainer").slideUp('fast');
- $("#maxAttendeesCheckbox").prop("checked",false);
- $("#maxAttendeesContainer").slideUp('fast');
- $("#maxAttendees").attr("data-validation-optional","true").val("").removeClass('is-valid is-invalid');
- }
- });
- $("#eventGroupCheckbox").on("click", function() {
- if ($(this).is(':checked')) {
- $("#eventGroupData").slideDown('fast');
- $("#eventGroupID").removeAttr("data-validation-optional").attr("data-validation","required");
- $("#eventGroupEditToken").removeAttr("data-validation-optional").attr("data-validation","required");
- }
- else {
- $("#eventGroupData").slideUp('fast');
- $("#eventGroupID").removeAttr("data-validation").attr("data-validation-optional","true").val("");
- $("#eventGroupEditToken").removeAttr("data-validation").attr("data-validation-optional","true").val("");
- }
- });
- });
-</script>
diff --git a/views/partials/neweventgroupform.handlebars b/views/partials/neweventgroupform.handlebars
deleted file mode 100755
index 616b8ca..0000000
--- a/views/partials/neweventgroupform.handlebars
+++ /dev/null
@@ -1,66 +0,0 @@
-<h4 class="mb-2">Create an event group</h4>
-<p>An event group is a holding area for a set of linked events, like a series of film nights, a festival, or a band tour. You can share a public link to your event group just like an individual event link, and people who know the secret editing code (sent in an email when you create the event group) will be able to add future events to the group.</p>
-<p>Event groups do not get automatically removed like events do, but events which have been removed from {{siteName}} will of course not show up in an event group.</p>
-<form id="newEventForm" action="/neweventgroup" method="post" enctype="multipart/form-data">
- <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-120">
- </div>
- </div>
- <div class="form-group row">
- <label for="eventGroupDescription" class="col-sm-2 col-form-label">Description</label>
- <div class="form-group col-sm-10">
- <textarea class="form-control expand" id="eventGroupDescription" name="eventGroupDescription" data-validation="required" placeholder="You can always edit it later."></textarea>
- <small class="form-text"><a href="https://commonmark.org/help/">Markdown</a> formatting supported.</small>
- </div>
- </div>
- <div class="form-group row">
- <label for="eventGroupURL" class="col-sm-2 col-form-label">Link</label>
- <div class="form-group col-sm-10">
- <input type="url" class="form-control" id="eventGroupURL" name="eventGroupURL" placeholder="For tickets or a page with more information (optional)." data-validation="url" data-validation-optional="true">
- </div>
- </div>
- <div class="form-group row">
- <label for="eventGroupImage" class="col-sm-2 col-form-label">Cover image</label>
- <div class="form-group col-sm-10">
- <div class="image-preview" id="eventGroupImagePreview">
- <label for="image-upload" id="eventGroupImageLabel">Choose file</label>
- <input type="file" name="imageUpload" id="eventGroupImageUpload" />
- </div>
- <small class="form-text">Recommended dimensions (w x h): 920px by 300px.</small>
- </div>
- </div>
- <div class="form-group row">
- <label for="hostName" class="col-sm-2 col-form-label">Host or organisation name</label>
- <div class="form-group col-sm-10">
- <input type="text" class="form-control" id="hostName" name="hostName" placeholder="Will be shown on the event group page (optional)." data-validation="length" data-validation-length="2-60" data-validation-optional="true">
- </div>
- </div>
- <div class="form-group row">
- <label for="creatorEmail" class="col-sm-2 col-form-label">Your email</label>
- <div class="form-group col-sm-10">
- <input type="email" class="form-control" id="creatorEmail" name="creatorEmail" placeholder="We won't spam you <3 (optional)" data-validation="email" data-validation-optional="true">
- <small class="form-text">If you provide your email, we will send your secret editing password here, and use it to notify you of updates to the event.</small>
- </div>
- </div>
- <div class="form-group row">
- <div class="col-sm-12 pt-3 pb-3 text-center">
- <button type="submit" class="btn btn-primary w-50">Create</button>
- </div>
- </div>
-</form>
-
-<script>
- $(document).ready(function() {
- $.uploadPreview({
- input_field: "#eventGroupImageUpload",
- preview_box: "#eventGroupImagePreview",
- label_field: "#eventGroupImageLabel",
- label_default: "Choose file",
- label_selected: "Change file",
- no_label: false
- });
- autosize($('textarea'));
- });
-</script>
diff --git a/views/partials/sidebar.handlebars b/views/partials/sidebar.handlebars
index 980e699..5d8e847 100755
--- a/views/partials/sidebar.handlebars
+++ b/views/partials/sidebar.handlebars
@@ -3,5 +3,5 @@
<p class="lead text-center mb-4">Nicer events</p>
- <a class="btn btn-success mb-2 btn-block" href="/new"><i class="far fa-calendar-plus"></i> New event</a>
+ <a class="btn btn-success mb-2 btn-block" href="/new"><i class="far fa-calendar-plus"></i> New</a>
</div>