diff --git a/resources/js/views/dashboard/EventList.vue b/resources/js/views/dashboard/EventList.vue
index 96e7e0b..b58805c 100644
--- a/resources/js/views/dashboard/EventList.vue
+++ b/resources/js/views/dashboard/EventList.vue
@@ -63,6 +63,9 @@
class="sm-table-events"
:headers="headers"
:items="items">
+ {{
+ formattedDate(item.start_at)
+ }}
{{ parseEventLocation(item) }}
@@ -138,7 +141,7 @@ import { ref, watch } from "vue";
import { useRoute, useRouter } from "vue-router";
import { openDialog } from "../../components/SMDialog";
import { api } from "../../helpers/api";
-import { EventCollection, Event } from "../../helpers/api.types";
+import { EventCollection, Event, EventResponse } from "../../helpers/api.types";
import { SMDate } from "../../helpers/datetime";
import { updateRouterParams } from "../../helpers/url";
import { useToastStore } from "../../store/ToastStore";
@@ -218,37 +221,6 @@ const handleLoad = async () => {
const data = result.data as EventCollection;
data.events.forEach(async (row) => {
- if (row.start_at !== "undefined") {
- row.start_at = new SMDate(row.start_at, {
- format: "ymd",
- utc: true,
- }).format("MMM d yyyy, HH:mm aa");
- }
- if (row.end_at !== "undefined") {
- row.end_at = new SMDate(row.end_at, {
- format: "ymd",
- utc: true,
- }).relative();
- }
- if (row.publish_at !== "undefined") {
- row.publish_at = new SMDate(row.publish_at, {
- format: "ymd",
- utc: true,
- }).relative();
- }
- if (row.created_at !== "undefined") {
- row.created_at = new SMDate(row.created_at, {
- format: "ymd",
- utc: true,
- }).relative();
- }
- if (row.updated_at !== "undefined") {
- row.updated_at = new SMDate(row.updated_at, {
- format: "ymd",
- utc: true,
- }).relative();
- }
-
items.value.push(row);
});
@@ -267,6 +239,13 @@ const handleLoad = async () => {
}
};
+const formattedDate = (d: string): string => {
+ return new SMDate(d, {
+ format: "ymd",
+ utc: true,
+ }).format("MMM d yyyy, h:mm aa");
+};
+
/**
* Handle viewing an event.
* @param item
@@ -290,39 +269,42 @@ const handleDuplicate = async (item: Event): Promise => {
location: item.location,
location_url: item.location_url,
address: item.address,
- start_at: new SMDate(item.start_at, {
- format: "dmy",
- }).format("yyyy/MM/dd HH:mm:ss", { utc: true }),
- end_at: new SMDate(item.end_at, {
- format: "dmy",
- }).format("yyyy/MM/dd HH:mm:ss", { utc: true }),
- status: "Draft",
- publish_at:
- item.publish_at == ""
- ? ""
- : new SMDate(item.publish_at, {
- format: "dmy",
- }).format("yyyy/MM/dd HH:mm:ss", { utc: true }),
+ start_at: item.start_at,
+ end_at: item.end_at,
+ status: "draft",
+ publish_at: item.publish_at,
registration_type: item.registration_type,
registration_data: item.registration_data,
content: item.content,
hero: item.hero.id,
price: item.price,
ages: item.ages,
- attachments: item.attachments.map((item) => item.id),
+ attachments: item.attachments.map((item) => item.id).join(","),
};
- await api.post({
+ let result = await api.post({
url: "/events",
body: data,
});
+ let event = result.data as EventResponse;
useToastStore().addToast({
title: "Event Duplicated",
content: "The event has been duplicated.",
type: "success",
});
+
+ router.push({
+ name: "dashboard-event-edit",
+ params: { id: event.event.id },
+ query: {
+ return: encodeURIComponent(
+ window.location.pathname + window.location.search,
+ ),
+ },
+ });
} catch (error) {
+ console.log(error);
useToastStore().addToast({
title: "Server error",
content: "An error occurred duplicating the event.",
@@ -353,7 +335,7 @@ const handleEdit = (item: Event) => {
*/
const handleDelete = async (item: Event) => {
let result = await openDialog(SMDialogConfirm, {
- title: "Delete File?",
+ title: "Delete Event?",
text: `Are you sure you want to delete the event ${item.title}?`,
cancel: {
type: "secondary",
@@ -361,7 +343,7 @@ const handleDelete = async (item: Event) => {
},
confirm: {
type: "danger",
- label: "Delete File",
+ label: "Delete",
},
});
@@ -374,12 +356,18 @@ const handleDelete = async (item: Event) => {
},
});
+ const index = items.value.findIndex(
+ (lookupItem) => item.id === lookupItem.id,
+ );
+ if (index !== -1) {
+ items.value.splice(index, 1);
+ }
+
toastStore.addToast({
title: "Event Deleted",
content: `The event ${item.title} has been deleted.`,
type: "success",
});
- handleLoad();
} catch (error) {
toastStore.addToast({
title: "Error Deleting Event",