@ozdao/prometheus-framework 0.2.32 → 0.2.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/dist/events.server.js +31 -0
  2. package/dist/events.server.mjs +31 -0
  3. package/dist/files.server.js +99 -78
  4. package/dist/files.server.mjs +99 -78
  5. package/dist/globals.server.js +0 -1
  6. package/dist/globals.server.mjs +0 -1
  7. package/dist/main.css +1 -1
  8. package/dist/prometheus-framework.cjs.js +21 -21
  9. package/dist/prometheus-framework.es.js +1037 -1023
  10. package/package.json +1 -1
  11. package/src/components/Countdown/Countdown.vue +75 -0
  12. package/src/components/EditImages/EditImages.vue +10 -2
  13. package/src/components/Upload/Upload.vue +32 -6
  14. package/src/components/UploadImage/UploadImage.vue +12 -8
  15. package/src/components/UploadImageMultiple/UploadImageMultiple.vue +4 -2
  16. package/src/modules/events/components/pages/EditEvent.vue +304 -2
  17. package/src/modules/events/components/pages/Event.vue +128 -46
  18. package/src/modules/events/components/sections/HeroEvent.vue +161 -0
  19. package/src/modules/events/components/sections/SectionLineup.vue +42 -0
  20. package/src/modules/events/components/sections/SectionMainGuest.vue +104 -0
  21. package/src/modules/events/components/sections/SectionPreviousEvents.vue +119 -0
  22. package/src/modules/events/components/sections/SectionSpecialGuests.vue +47 -0
  23. package/src/modules/events/controllers/events.controller.js +1 -0
  24. package/src/modules/events/controllers/utils/queryProcessor.js +2 -0
  25. package/src/modules/events/models/event.model.js +29 -0
  26. package/src/modules/events/store/events.js +4 -0
  27. package/src/modules/files/controllers/files.controller.js +3 -0
  28. package/src/modules/files/middlewares/server/middlewareBusboy.js +115 -100
  29. package/src/modules/files/routes/files.routes.js +3 -4
  30. package/src/modules/globals/globals.server.js +0 -1
  31. package/src/modules/marketplace/components/pages/Catalog.vue +1 -0
  32. package/src/modules/orders/components/blocks/CardOrder.vue +5 -5
  33. package/src/modules/orders/components/blocks/StatusHistory.vue +84 -0
  34. package/src/modules/orders/components/pages/Order.vue +11 -54
  35. package/src/modules/orders/controllers/orders.controller.js +17 -9
  36. package/src/modules/orders/models/order.model.js +19 -0
  37. package/src/modules/orders/routes/orders.routes.js +4 -1
  38. package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
  39. package/src/modules/users/components/pages/Profile.vue +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/prometheus-framework",
3
- "version": "0.2.32",
3
+ "version": "0.2.34",
4
4
  "description": "Web3 Framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -0,0 +1,75 @@
1
+ <template>
2
+ <div class="gap-thin flex-nowrap flex flex-center">
3
+ <div v-if="isTimeOver" class="flex-child-grow-1 flex-child-shrink-0 flex-child-basis-auto pd-medium bg-blur-small bg-white-transp-5 radius-small">
4
+ <p class="p-small t-transp">Offer is over</p>
5
+ </div>
6
+
7
+ <div v-if="!isTimeOver" class="flex-child-grow-1 flex-child-shrink-0 flex-child-basis-auto pd-nano bg-blur-small bg-white-transp-5 radius-small">
8
+ <p class="p-big">{{ days }}</p>
9
+ <p class="p-small t-transp">Days</p>
10
+ </div>
11
+ <div v-if="!isTimeOver" class="flex-child-grow-1 flex-child-shrink-0 flex-child-basis-auto pd-nano bg-blur-small bg-white-transp-5 radius-small">
12
+ <p class="p-big">{{ hours }}</p>
13
+ <p class="p-small t-transp">hours</p>
14
+ </div>
15
+ <div v-if="!isTimeOver" class="flex-child-grow-1 flex-child-shrink-0 flex-child-basis-auto pd-nano bg-blur-small bg-white-transp-5 radius-small">
16
+ <p class="p-big">{{ minutes }}</p>
17
+ <p class="p-small t-transp">minutes</p>
18
+ </div>
19
+ <div v-if="!isTimeOver" class="flex-child-grow-1 flex-child-shrink-0 flex-child-basis-auto pd-nano bg-blur-small bg-white-transp-5 radius-small">
20
+ <p class="p-big">{{ seconds }}</p>
21
+ <p class="p-small t-transp">seconds</p>
22
+ </div>
23
+ </div>
24
+ </template>
25
+
26
+ <script setup>
27
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
28
+
29
+ const props = defineProps([
30
+ 'content',
31
+ 'options'
32
+ ])
33
+
34
+ const targetDate = new Date(props.options?.date || 'January 13, 2024 16:00:00').getTime();
35
+ const currentDate = ref(new Date().getTime());
36
+
37
+ let interval;
38
+
39
+ const days = ref(0);
40
+ const hours = ref(0);
41
+ const minutes = ref(0);
42
+ const seconds = ref(0);
43
+
44
+ const isTimeOver = ref(false);
45
+
46
+ const calculateTime = () => {
47
+ const timeDifference = targetDate - currentDate.value;
48
+
49
+ if (timeDifference <= 0) {
50
+ // Target date has passed, set all values to 0
51
+ days.value = 0;
52
+ hours.value = 0;
53
+ minutes.value = 0;
54
+ seconds.value = 0;
55
+ isTimeOver.value = true
56
+ clearInterval(interval);
57
+ } else {
58
+ days.value = Math.floor(timeDifference / (1000 * 60 * 60 * 24));
59
+ hours.value = Math.floor((timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
60
+ minutes.value = Math.floor((timeDifference % (1000 * 60 * 60)) / (1000 * 60));
61
+ seconds.value = Math.floor((timeDifference % (1000 * 60)) / 1000);
62
+ }
63
+ };
64
+
65
+ onMounted(() => {
66
+ interval = setInterval(() => {
67
+ currentDate.value = new Date().getTime();
68
+ calculateTime();
69
+ }, 1000);
70
+ });
71
+
72
+ onBeforeUnmount(() => {
73
+ clearInterval(interval);
74
+ });
75
+ </script>
@@ -29,8 +29,10 @@
29
29
  <UploadImageMultiple
30
30
  v-if="localImages.length < 1"
31
31
  @update:images="onImagesUpdate"
32
- :uploadPath="'photos'"
33
- class="w-100 radius-medium pd-extra bg-white"
32
+ :uploadPath="props.uploadPath"
33
+ :text="props.text"
34
+ :options="props.options"
35
+ class="w-100 pd-extra"
34
36
  />
35
37
  </div>
36
38
  </template>
@@ -43,6 +45,12 @@ import IconCross from '@pf/src/modules/icons/navigation/IconCross.vue';
43
45
 
44
46
  const props = defineProps({
45
47
  images: Array,
48
+ text: Object,
49
+ options: Object,
50
+ uploadPath: {
51
+ type: Object,
52
+ default: 'unsorted'
53
+ }
46
54
  });
47
55
 
48
56
  const emit = defineEmits(['update:images'])
@@ -1,13 +1,21 @@
1
1
  <template>
2
2
  <div :class="[$attrs.class, { 'bg-fourth-nano': validation }]" class="flex-center flex-nowrap flex">
3
- {{fileURL}}
4
-
5
3
  <!-- Label -->
6
4
  <div v-if="label" class="t-transp mn-r-small">
7
5
  <span>{{label}}</span>
8
6
  </div>
9
7
 
10
- <div class="w-100">
8
+ <div v-if="fileURL" class="flex-nowrap flex w-100 flex-v-center">
9
+ <a :href="fileURL" class="w-100" target="_blank">{{ fileURL }}</a>
10
+
11
+ <IconCross
12
+ @click="removeFile"
13
+ class="cursor-pointer t-center flex-center flex radius-extra i-medium bg-red pd-micro"
14
+ />
15
+
16
+ </div>
17
+
18
+ <div v-else class="w-100">
11
19
  <!-- Input / File -->
12
20
  <input
13
21
  @change="onFileChange"
@@ -30,25 +38,36 @@
30
38
  </template>
31
39
 
32
40
  <script setup>
33
- import { ref, computed,} from 'vue'
41
+ import { ref, computed, watch} from 'vue'
34
42
  import axios from 'axios';
35
43
 
44
+ import IconCross from '@pf/src/modules/icons/navigation/IconCross.vue';
45
+
36
46
  const emit = defineEmits(['update:field', 'focus', 'blur', 'file-change']);
37
47
 
38
48
  const props = defineProps({
49
+ field: String,
39
50
  label: null,
40
51
  type: 'file',
41
52
  placeholder: 'Upload a file',
42
53
  validation: false,
54
+ uploadPath: {
55
+ type: String,
56
+ default: '/files'
57
+ },
43
58
  multiple: {
44
59
  type: Boolean,
45
60
  default: false
46
61
  }
47
62
  });
48
63
 
49
- const fileURL = ref(null);
64
+ const fileURL = ref(props.field);
50
65
  const fileInput = ref(null);
51
66
 
67
+ watch(() => props.field, (newValue) => {
68
+ fileURL.value = newValue;
69
+ });
70
+
52
71
  // Handles file change event
53
72
 
54
73
  async function onFileChange(e) {
@@ -67,12 +86,19 @@ async function onFileChange(e) {
67
86
  }
68
87
  });
69
88
 
70
- fileURL.value = response.data.filepath;
89
+ console.log(response.data)
90
+ fileURL.value = response.data[0].filepath;
71
91
  emit('file-change', fileURL.value);
72
92
  } catch (error) {
73
93
  console.error(error);
74
94
  }
75
95
  }
96
+
97
+ const removeFile = () => {
98
+ fileURL.value = null;
99
+ emit('update:field', null); // Обновляем значение, связанное с v-model:field
100
+ emit('file-change', null); // Посылаем событие об изменении файла
101
+ };
76
102
  </script>
77
103
 
78
104
  <style lang="scss" scoped>
@@ -17,7 +17,7 @@
17
17
  </svg>
18
18
  </div>
19
19
 
20
- <input type="file" ref="fileInput" @change="onFileChange" style="display: none"/>
20
+ <input type="file" name="file" ref="fileInput" @change="onFileChange" style="display: none"/>
21
21
  </div>
22
22
  </template>
23
23
 
@@ -45,25 +45,29 @@ function onComponentClick() {
45
45
 
46
46
  async function onFileChange(e) {
47
47
  let file = e.target.files[0];
48
+ if (!file) {
49
+ console.error("No file selected");
50
+ return;
51
+ }
52
+
48
53
  let formData = new FormData();
49
-
50
54
  formData.append("file", file);
51
55
 
56
+ console.log("Sending file:", file.name); // Логируем имя файла перед отправкой
57
+
52
58
  try {
53
59
  const $axios = axios.create({ baseURL: process.env.API_URL, withCredentials: true });
54
60
 
55
- let response = await $axios.post(`/api/upload/multiple?folderName=${encodeURIComponent(props.uploadPath)}`, formData, {
56
- headers: {
57
- "Content-Type": "multipart/form-data"
58
- }
59
- });
61
+ let response = await $axios.post(`/api/upload/multiple?folderName=${encodeURIComponent(props.uploadPath)}`, formData);
62
+ console.log("Upload response:", response); // Логируем ответ сервера
60
63
  imageUrl.value = response.data[0].filepath;
61
64
  emit('update:photo', imageUrl.value);
62
65
  } catch (error) {
63
- console.error(error);
66
+ console.error("Upload error:", error); // Логируем ошибку
64
67
  }
65
68
  }
66
69
 
70
+
67
71
  function onDrop(e) {
68
72
  e.preventDefault();
69
73
  onFileChange({
@@ -13,7 +13,7 @@
13
13
  fill="rgb(var(--main))"
14
14
  />
15
15
 
16
- <span v-if="options.showText" class="mn-t-thin mn-b-thin d-block h3 t-black">{{ text.title }}</span>
16
+ <span v-if="options.showText || options.showTitle" class="mn-t-thin mn-b-thin d-block h3 t-black">{{ text.title }}</span>
17
17
  <span v-if="options.showText" class="mn-b-thin t-transp d-block ">{{ text.subtitle }}</span>
18
18
  <span v-if="options.showText"class="mn-b-thin uppercase p-small t-medium d-block">or</span>
19
19
 
@@ -50,7 +50,8 @@ const props = defineProps({
50
50
  default: () => ({
51
51
  mimeType: ['jpg', 'png', 'gif'],
52
52
  maxSize: 10 * 1024 * 1024,
53
- showText: true
53
+ showText: true,
54
+ showTitle: true
54
55
  })
55
56
  },
56
57
  text: {
@@ -78,6 +79,7 @@ async function onFileChange(e) {
78
79
  formData.append("file", file);
79
80
  }
80
81
 
82
+
81
83
  try {
82
84
  const $axios = axios.create({ baseURL: process.env.API_URL, withCredentials: true });
83
85
 
@@ -3,7 +3,7 @@
3
3
  <div class="mn-b-thin radius-small w-100 h-10r bg-grey flex-center flex-column flex">
4
4
  <UploadImage
5
5
  v-model:photo="event.cover"
6
- :uploadPath="'users/' + auth.state.user._id + '/events'"
6
+ :uploadPath="'specials'"
7
7
  class="h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra"
8
8
  />
9
9
  <h4>Upload Event Cover</h4>
@@ -21,10 +21,302 @@
21
21
  class="mn-b-semi w-100 bg-grey pd-medium radius-small"
22
22
  />
23
23
 
24
+
25
+ <h3
26
+ v-if="(auth.state.access.roles) && (auth.state.access.roles.includes('ROLE_MODERATOR') || auth.state.access.roles.includes('ROLE_ADMIN'))"
27
+ class="mn-b-small"
28
+ >
29
+ Special Details
30
+ </h3>
31
+
32
+
33
+ <Checkbox
34
+ v-if="(auth.state.access.roles) && (auth.state.access.roles.includes('ROLE_MODERATOR') || auth.state.access.roles.includes('ROLE_ADMIN'))"
35
+ :label="'Special'"
36
+ :radio="event.special"
37
+ @update:radio="updateEvent => event.special = !event.special"
38
+ class="mn-b-semi w-100 bg-black t-white pd-medium radius-small"
39
+ />
40
+
41
+ <div
42
+ v-if="event.special"
43
+ class="mn-b-semi"
44
+ >
45
+ <h4
46
+ class="mn-b-thin"
47
+ >
48
+ Hero Section
49
+ </h4>
50
+
51
+ <Field
52
+ v-model:field="event.specialData.subtitle"
53
+ placeholder="Event subtitle"
54
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
55
+ />
56
+
57
+ <EditImages
58
+ :images="event.specialData.logos"
59
+ :uploadPath="'/specials'"
60
+ :text="{
61
+ title: 'Drag & Drop Your Logos Here',
62
+ subtitle: 'Files supported: JPG, PNG, GIF'
63
+ }"
64
+ :options="{
65
+ showTitle: true,
66
+ showText: false
67
+ }"
68
+ @update:images="(newImages) => event.specialData.logos = newImages"
69
+ class="mn-b-thin bg-grey radius-small"
70
+ />
71
+ <h5
72
+ class="mn-b-thin"
73
+ >
74
+ Video in Hero Section
75
+ </h5>
76
+ <Upload
77
+ v-model:field="event.specialData.video"
78
+ :placeholder="'Upload video'"
79
+ @file-change="(videoURL) => event.specialData.video = videoURL"
80
+ uploadPath="specials"
81
+ type="file"
82
+ class="
83
+ mn-b-thin w-100 bg-grey pd-medium radius-small t-black
84
+ "
85
+ />
86
+
87
+ <h5
88
+ class="mn-b-thin"
89
+ >
90
+ Ticket
91
+ </h5>
92
+
93
+ <div
94
+ class="mn-b-small gap-small cols-2-fit-content"
95
+ >
96
+ <UploadImage
97
+ v-model:photo="event.specialData.ticketImage"
98
+ :uploadPath="'/specials'"
99
+ class="aspect-1x1 w-4r o-hidden radius-extra"
100
+ />
101
+
102
+ <div class="gap-thin flex-nowrap flex w-100">
103
+ <Field
104
+ v-model:field="event.specialData.ticketLinkStripe"
105
+ placeholder="Link to ticket stripe payment page"
106
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
107
+ />
108
+ <Field
109
+ v-model:field="event.specialData.ticketPrice"
110
+ type="number"
111
+ placeholder="Ticket price in baht"
112
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
113
+ />
114
+
115
+
116
+ </div>
117
+ </div>
118
+
119
+ <hr class="bg-black-transp-10 mn-b-semi mn-t-semi d-block">
120
+
121
+ <h4
122
+ class="mn-b-thin"
123
+ >
124
+ Guest Section
125
+ </h4>
126
+
127
+ <Field
128
+ v-model:field="event.specialData.titleMainGuest"
129
+ placeholder="Title for Main Guest section"
130
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
131
+ />
132
+
133
+ <Field
134
+ v-model:field="event.specialData.guestDescription"
135
+ placeholder="Description for Main Guest section"
136
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
137
+ />
138
+
139
+ <div class="gap-thin cols-3">
140
+
141
+ <Field
142
+ v-model:field="event.specialData.guestFacebook"
143
+ placeholder="Facebook of Main Guest"
144
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
145
+ />
146
+
147
+ <Field
148
+ v-model:field="event.specialData.guestInstagram"
149
+ placeholder="Instagram of Main Guest"
150
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
151
+ />
152
+
153
+ <Field
154
+ v-model:field="event.specialData.guestTwitter"
155
+ placeholder="Twitter of Main Guest"
156
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
157
+ />
158
+
159
+
160
+ <Field
161
+ v-model:field="event.specialData.guestTelegram"
162
+ placeholder="Telegram of Main Guest"
163
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
164
+ />
165
+
166
+ <Field
167
+ v-model:field="event.specialData.guestSoundcloud"
168
+ placeholder="Link to Main Guest soundcloud track"
169
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
170
+ />
171
+
172
+ <Field
173
+ v-model:field="event.specialData.guestSpotify"
174
+ placeholder="Link to Main guest spotify track"
175
+ class="mn-b-thin w-100 bg-grey pd-medium radius-small"
176
+ />
177
+ </div>
178
+
179
+ <h5
180
+ class="mn-b-thin"
181
+ >
182
+ Video in Guests Section
183
+ </h5>
184
+
185
+ <Upload
186
+ v-model:field="event.specialData.guestVideo"
187
+ :placeholder="'Upload video'"
188
+ @file-change="(videoURL) => event.specialData.guestVideo = videoURL"
189
+ uploadPath="/specials"
190
+ type="file"
191
+ class="
192
+ mn-b-thin w-100 bg-grey pd-medium radius-small t-black
193
+ "
194
+ />
195
+
196
+ <Block
197
+ title="Guests"
198
+ placeholder="No guests added yet"
199
+ :actions="[{
200
+ label: '+',
201
+ function: () => event.specialData.guests.push({name: null, description: null, photo: null, main: false})
202
+ }]"
203
+ class="cols-1 mn-b-thin t-black gap-thin"
204
+ >
205
+ <div
206
+ class="mn-b-small gap-small cols-2-fit-content"
207
+ v-for="(item, index) in event.specialData.guests"
208
+ :key="index"
209
+ >
210
+ <UploadImage
211
+ v-model:photo="item.photo"
212
+ :uploadPath="'/specials'"
213
+ class="aspect-1x1 w-8r o-hidden radius-extra"
214
+ />
215
+
216
+ <div class="gap-thin flex-nowrap flex w-100">
217
+ <div class="w-100">
218
+ <Field
219
+ v-model:field="item.name"
220
+ placeholder="Name"
221
+ class="w-100 mn-b-thin bg-white radius-small pd-medium"
222
+ />
223
+ <Field
224
+ v-model:field="item.description"
225
+ placeholder="Description"
226
+ class="w-100 mn-b-thin bg-white radius-small pd-medium"
227
+ />
228
+ </div>
229
+ <div class="radius-small h-100 i-big flex-center flex aspect-1x1 bg-red">
230
+ <IconDelete
231
+ @click="() => event.specialData.guests.splice(index, 1)"
232
+ class="i-medium"
233
+ />
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </Block>
238
+
239
+ <hr class="bg-black-transp-10 mn-b-semi mn-t-semi d-block">
240
+
241
+ <h4
242
+ class="mn-b-thin"
243
+ >
244
+ Lineup Section
245
+ </h4>
246
+
247
+ <Block
248
+ title="Line Up"
249
+ placeholder="No line ups added yet"
250
+ :actions="[{
251
+ label: '+',
252
+ function: () => event.specialData.lineup.push({name: null, description: null, photo: null, main: false})
253
+ }]"
254
+ class="cols-1 t-black gap-thin"
255
+ >
256
+ <div
257
+ class="mn-b-thin gap-small flex-nowrap flex"
258
+ v-for="(item, index) in event.specialData.lineup"
259
+ :key="index"
260
+ >
261
+ <Field
262
+ v-model:field="item.name"
263
+ placeholder="Name"
264
+ class="w-100 bg-grey radius-small pd-medium"
265
+ />
266
+ <Field
267
+ v-model:field="item.time"
268
+ placeholder="Time"
269
+ class="w-100 bg-grey radius-small pd-medium"
270
+ />
271
+ <div class="radius-small h-100 i-big flex-center flex aspect-1x1 bg-red">
272
+ <IconDelete
273
+ @click="() => event.specialData.lineup.splice(index, 1)"
274
+ class="i-medium"
275
+ />
276
+ </div>
277
+ </div>
278
+ </Block>
279
+
280
+ <h5
281
+ class="mn-b-thin"
282
+ >
283
+ Background in Lineup Section
284
+ </h5>
285
+
286
+ <Upload
287
+ v-model:field="event.specialData.lineupBackground"
288
+ :placeholder="'Upload image'"
289
+ @file-change="(videoURL) => event.specialData.lineupBackground = videoURL"
290
+ uploadPath="/specials"
291
+ type="file"
292
+ class="
293
+ mn-b-thin w-100 bg-grey pd-medium radius-small t-black
294
+ "
295
+ />
296
+
297
+ <h5
298
+ class="mn-b-thin"
299
+ >
300
+ Video in Previous Partys Section
301
+ </h5>
302
+
303
+ <Upload
304
+ v-model:field="event.specialData.previousVideo"
305
+ :placeholder="'Upload image'"
306
+ @file-change="(videoURL) => event.specialData.previousVideo = videoURL"
307
+ uploadPath="/specials"
308
+ type="file"
309
+ class="
310
+ mn-b-thin w-100 bg-grey pd-medium radius-small t-black
311
+ "
312
+ />
313
+
314
+
315
+ </div>
316
+
24
317
  <h3 class="mn-b-small">Date</h3>
25
318
  <VueDatePicker v-model="date" :alt-position="customPosition" range class="mn-b-semi" />
26
319
 
27
-
28
320
  <h3 class="mn-b-small">Description</h3>
29
321
  <section v-if="event" class="pd-b-extra w-100 bg-grey pd-big radius-big">
30
322
  <Constructor
@@ -87,14 +379,20 @@ import Constructor from '@pf/src/modules/constructor/components/sections/Constru
87
379
  import VueDatePicker from '@vuepic/vue-datepicker';
88
380
  import '@vuepic/vue-datepicker/dist/main.css'
89
381
 
382
+ import Block from '@pf/src/components/Block/Block.vue';
90
383
  import Popup from '@pf/src/components/Popup/Popup.vue';
91
384
  import Field from '@pf/src/components/Field/Field.vue'
92
385
  import BlockTags from '@pf/src/components/FieldTags/BlockTags.vue';
93
386
  import Checkbox from '@pf/src/components/Checkbox/Checkbox.vue';
94
387
  import SelectMulti from '@pf/src/components/SelectMulti/SelectMulti.vue';
388
+ import Upload from '@pf/src/components/Upload/Upload.vue';
95
389
  import UploadImage from '@pf/src/components/UploadImage/UploadImage.vue';
390
+ import EditImages from '@pf/src/components/EditImages/EditImages.vue';
96
391
  import Button from '@pf/src/components/Button/Button.vue';
97
392
 
393
+
394
+ import IconDelete from '@pf/src/modules/icons/navigation/IconDelete.vue';
395
+
98
396
  import { ref, onMounted } from 'vue';
99
397
  import { useRoute, useRouter } from 'vue-router';
100
398
 
@@ -120,8 +418,11 @@ onMounted(async () =>{
120
418
 
121
419
  if (route.params.url) {
122
420
  const data = await events.read({ user: auth.state.user._id, url: route.params.url });
421
+
123
422
  event.value = data.pop();
124
423
 
424
+ console.log(event.value)
425
+
125
426
  const startDate = event.value.date.start;
126
427
  const endDate = event.value.date.end;
127
428
 
@@ -224,6 +525,7 @@ function onSubmit() {
224
525
 
225
526
  console.log(date.value)
226
527
  if (route.params.url) {
528
+ console.log(event.value)
227
529
  events.update(event.value)
228
530
  .then(response => {
229
531
  router.push({ name: 'Event', params: { url: response.url } });