@@ -5,8 +5,16 @@ const store = new Vuex.Store({
5
5
strict : true ,
6
6
state : {
7
7
eventDate : moment ( ) . format ( 'YYYY-MM-DD' ) ,
8
- startTime : moment . utc ( ) . add ( 2 , 'hours' ) . minute ( 0 ) . format ( 'HH:mm' ) ,
9
- endTime : moment . utc ( ) . add ( 3 , 'hours' ) . minute ( 0 ) . format ( 'HH:mm' ) ,
8
+ startTime : moment
9
+ . utc ( )
10
+ . add ( 2 , 'hours' )
11
+ . minute ( 0 )
12
+ . format ( 'HH:mm' ) ,
13
+ endTime : moment
14
+ . utc ( )
15
+ . add ( 3 , 'hours' )
16
+ . minute ( 0 )
17
+ . format ( 'HH:mm' ) ,
10
18
event : {
11
19
name : '' ,
12
20
description : '' ,
@@ -24,9 +32,18 @@ const store = new Vuex.Store({
24
32
notifyOnApplicant : false ,
25
33
sendEmails : true ,
26
34
newForm : true ,
27
- dates : [ {
28
- startTime : moment . utc ( ) . add ( 2 , 'hours' ) . minute ( 0 ) ,
29
- endTime : moment . utc ( ) . add ( 3 , 'hours' ) . minute ( 0 ) } ] ,
35
+ dates : [
36
+ {
37
+ startTime : moment
38
+ . utc ( )
39
+ . add ( 2 , 'hours' )
40
+ . minute ( 0 ) ,
41
+ endTime : moment
42
+ . utc ( )
43
+ . add ( 3 , 'hours' )
44
+ . minute ( 0 ) ,
45
+ } ,
46
+ ] ,
30
47
sessions : [
31
48
{
32
49
name : 'Dojo' ,
@@ -55,19 +72,28 @@ const store = new Vuex.Store({
55
72
delete event . position ;
56
73
delete event . startTime ;
57
74
delete event . endTime ;
75
+
76
+ // This is a workaround for '$$hashKey': 'value' in the json objects of some events.
77
+ // This is something from angular tracking its props being persisted somehow.
78
+ let city = { } ;
79
+ if ( event . city . nameWithHierarchy ) {
80
+ city = { nameWithHierarchy : event . city . nameWithHierarchy } ;
81
+ delete event . city ;
82
+ }
83
+
58
84
if ( event . sessions ) {
59
85
event . sessions [ 0 ] . tickets . forEach ( t => delete t . approvedApplications ) ;
60
86
}
61
87
62
88
// default is to not send emails when editing
63
- state . event = { ...event , sendEmails : false } ;
89
+ state . event = { ...event , city , sendEmails : false } ;
64
90
} ,
65
91
66
92
setEventName ( state , name ) {
67
93
state . event . name = name ;
68
94
} ,
69
95
70
- setCityFromObject ( state , cityObject ) {
96
+ setCityFromEventObject ( state , cityObject ) {
71
97
if ( cityObject ) {
72
98
state . event . city = {
73
99
nameWithHierarchy : cityObject . nameWithHierarchy || cityObject . toponymName ,
@@ -83,8 +109,12 @@ const store = new Vuex.Store({
83
109
state . event . description = description ;
84
110
} ,
85
111
86
- setCity ( state , value ) {
87
- state . event . city = { nameWithHierarchy : value } ;
112
+ setCity ( state , dojo ) {
113
+ if ( dojo . city === null || dojo . city . nameWithHierarchy === undefined ) {
114
+ state . event . city = { } ;
115
+ return ;
116
+ }
117
+ state . event . city = { nameWithHierarchy : dojo . city . nameWithHierarchy } ;
88
118
} ,
89
119
90
120
setCountry ( state , value ) {
@@ -101,9 +131,12 @@ const store = new Vuex.Store({
101
131
const inPast = moment ( ) . diff ( newDate , 'days' ) > 0 ;
102
132
if ( inPast ) {
103
133
const neededDay = startDate . day ( ) ;
104
- newDate = ( moment ( ) . isoWeekday ( ) <= neededDay ) ?
105
- moment ( ) . isoWeekday ( neededDay ) :
106
- moment ( ) . add ( 1 , 'weeks' ) . isoWeekday ( neededDay ) ;
134
+ newDate =
135
+ moment ( ) . isoWeekday ( ) <= neededDay
136
+ ? moment ( ) . isoWeekday ( neededDay )
137
+ : moment ( )
138
+ . add ( 1 , 'weeks' )
139
+ . isoWeekday ( neededDay ) ;
107
140
}
108
141
109
142
state . eventDate = newDate . format ( 'YYYY-MM-DD' ) ;
@@ -129,40 +162,56 @@ const store = new Vuex.Store({
129
162
// Any event that has more than one session was created using the old form
130
163
// and it is unlikely to map to the new form structure
131
164
const previousTickets = event . sessions [ 0 ] . tickets ;
132
- const prevYouthTickets = previousTickets . find ( ticket => ticket . name === 'Youth' ) ;
133
- const prevMentorTickets = previousTickets . find ( ticket => ticket . name === 'Mentor' ) ;
165
+ const prevYouthTickets = previousTickets . find (
166
+ ticket => ticket . name === 'Youth' ,
167
+ ) ;
168
+ const prevMentorTickets = previousTickets . find (
169
+ ticket => ticket . name === 'Mentor' ,
170
+ ) ;
134
171
135
172
if ( prevYouthTickets !== undefined ) {
136
- const youthTickets = state . event . sessions [ 0 ] . tickets
137
- . find ( ticket => ticket . type === 'ninja' ) ;
173
+ const youthTickets = state . event . sessions [ 0 ] . tickets . find (
174
+ ticket => ticket . type === 'ninja' ,
175
+ ) ;
138
176
youthTickets . quantity = prevYouthTickets . quantity ;
139
177
}
140
178
if ( prevMentorTickets !== undefined ) {
141
- const mentorTickets = state . event . sessions [ 0 ]
142
- . tickets . find ( ticket => ticket . type === 'mentor' ) ;
179
+ const mentorTickets = state . event . sessions [ 0 ] . tickets . find (
180
+ ticket => ticket . type === 'mentor' ,
181
+ ) ;
143
182
mentorTickets . quantity = prevMentorTickets . quantity ;
144
183
}
145
184
}
146
185
} ,
147
186
148
187
updateEventDate ( state , value ) {
149
188
state . eventDate = value ;
150
- state . event . dates [ 0 ] . startTime = moment . utc ( `${ state . eventDate } ${ state . startTime } ` ) ;
151
- state . event . dates [ 0 ] . endTime = moment . utc ( `${ state . eventDate } ${ state . endTime } ` ) ;
189
+ state . event . dates [ 0 ] . startTime = moment . utc (
190
+ `${ state . eventDate } ${ state . startTime } ` ,
191
+ ) ;
192
+ state . event . dates [ 0 ] . endTime = moment . utc (
193
+ `${ state . eventDate } ${ state . endTime } ` ,
194
+ ) ;
152
195
} ,
153
196
154
197
updateStartTime ( state , value ) {
155
198
state . startTime = value ;
156
- state . event . dates [ 0 ] . startTime = moment . utc ( `${ state . eventDate } ${ state . startTime } ` ) ;
199
+ state . event . dates [ 0 ] . startTime = moment . utc (
200
+ `${ state . eventDate } ${ state . startTime } ` ,
201
+ ) ;
157
202
} ,
158
203
159
204
updateEndTime ( state , value ) {
160
205
state . endTime = value ;
161
- state . event . dates [ 0 ] . endTime = moment . utc ( `${ state . eventDate } ${ state . endTime } ` ) ;
206
+ state . event . dates [ 0 ] . endTime = moment . utc (
207
+ `${ state . eventDate } ${ state . endTime } ` ,
208
+ ) ;
162
209
} ,
163
210
164
211
updateTicketQuantity ( state , { type, quantity } ) {
165
- const tickets = state . event . sessions [ 0 ] . tickets . find ( ticket => ticket . type === type ) ;
212
+ const tickets = state . event . sessions [ 0 ] . tickets . find (
213
+ ticket => ticket . type === type ,
214
+ ) ;
166
215
tickets . quantity = quantity ;
167
216
} ,
168
217
@@ -186,7 +235,9 @@ const store = new Vuex.Store({
186
235
sendEmails : state => state . event . sendEmails ,
187
236
// eslint-disable-next-line no-unused-vars
188
237
ticketQuantity : state => ( type ) => {
189
- const tickets = state . event . sessions [ 0 ] . tickets . find ( ticket => ticket . type === type ) ;
238
+ const tickets = state . event . sessions [ 0 ] . tickets . find (
239
+ ticket => ticket . type === type ,
240
+ ) ;
190
241
return tickets . quantity ;
191
242
} ,
192
243
} ,
0 commit comments