@@ -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,6 +72,17 @@ const store = new Vuex.Store({
55
72
delete event . position ;
56
73
delete event . startTime ;
57
74
delete event . endTime ;
75
+
76
+ if ( event . city == null ) {
77
+ event . city = { } ;
78
+ }
79
+
80
+ // This is a workaround for '$$hashKey': 'value' in the json objects of some events.
81
+ // This is something from angular tracking its props being persisted somehow.
82
+ if ( event . city . nameWithHierarchy ) {
83
+ event . city = { nameWithHierarchy : event . city . nameWithHierarchy } ;
84
+ }
85
+
58
86
if ( event . sessions ) {
59
87
event . sessions [ 0 ] . tickets . forEach ( t => delete t . approvedApplications ) ;
60
88
}
@@ -67,7 +95,7 @@ const store = new Vuex.Store({
67
95
state . event . name = name ;
68
96
} ,
69
97
70
- setCityFromObject ( state , cityObject ) {
98
+ setCityFromEventObject ( state , cityObject ) {
71
99
if ( cityObject ) {
72
100
state . event . city = {
73
101
nameWithHierarchy : cityObject . nameWithHierarchy || cityObject . toponymName ,
@@ -83,8 +111,12 @@ const store = new Vuex.Store({
83
111
state . event . description = description ;
84
112
} ,
85
113
86
- setCity ( state , value ) {
87
- state . event . city = { nameWithHierarchy : value } ;
114
+ setCity ( state , dojo ) {
115
+ if ( dojo . city === null || dojo . city . nameWithHierarchy === undefined ) {
116
+ state . event . city = { } ;
117
+ return ;
118
+ }
119
+ state . event . city = { nameWithHierarchy : dojo . city . nameWithHierarchy } ;
88
120
} ,
89
121
90
122
setCountry ( state , value ) {
@@ -101,9 +133,12 @@ const store = new Vuex.Store({
101
133
const inPast = moment ( ) . diff ( newDate , 'days' ) > 0 ;
102
134
if ( inPast ) {
103
135
const neededDay = startDate . day ( ) ;
104
- newDate = ( moment ( ) . isoWeekday ( ) <= neededDay ) ?
105
- moment ( ) . isoWeekday ( neededDay ) :
106
- moment ( ) . add ( 1 , 'weeks' ) . isoWeekday ( neededDay ) ;
136
+ newDate =
137
+ moment ( ) . isoWeekday ( ) <= neededDay
138
+ ? moment ( ) . isoWeekday ( neededDay )
139
+ : moment ( )
140
+ . add ( 1 , 'weeks' )
141
+ . isoWeekday ( neededDay ) ;
107
142
}
108
143
109
144
state . eventDate = newDate . format ( 'YYYY-MM-DD' ) ;
@@ -129,40 +164,56 @@ const store = new Vuex.Store({
129
164
// Any event that has more than one session was created using the old form
130
165
// and it is unlikely to map to the new form structure
131
166
const previousTickets = event . sessions [ 0 ] . tickets ;
132
- const prevYouthTickets = previousTickets . find ( ticket => ticket . name === 'Youth' ) ;
133
- const prevMentorTickets = previousTickets . find ( ticket => ticket . name === 'Mentor' ) ;
167
+ const prevYouthTickets = previousTickets . find (
168
+ ticket => ticket . name === 'Youth' ,
169
+ ) ;
170
+ const prevMentorTickets = previousTickets . find (
171
+ ticket => ticket . name === 'Mentor' ,
172
+ ) ;
134
173
135
174
if ( prevYouthTickets !== undefined ) {
136
- const youthTickets = state . event . sessions [ 0 ] . tickets
137
- . find ( ticket => ticket . type === 'ninja' ) ;
175
+ const youthTickets = state . event . sessions [ 0 ] . tickets . find (
176
+ ticket => ticket . type === 'ninja' ,
177
+ ) ;
138
178
youthTickets . quantity = prevYouthTickets . quantity ;
139
179
}
140
180
if ( prevMentorTickets !== undefined ) {
141
- const mentorTickets = state . event . sessions [ 0 ]
142
- . tickets . find ( ticket => ticket . type === 'mentor' ) ;
181
+ const mentorTickets = state . event . sessions [ 0 ] . tickets . find (
182
+ ticket => ticket . type === 'mentor' ,
183
+ ) ;
143
184
mentorTickets . quantity = prevMentorTickets . quantity ;
144
185
}
145
186
}
146
187
} ,
147
188
148
189
updateEventDate ( state , value ) {
149
190
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 } ` ) ;
191
+ state . event . dates [ 0 ] . startTime = moment . utc (
192
+ `${ state . eventDate } ${ state . startTime } ` ,
193
+ ) ;
194
+ state . event . dates [ 0 ] . endTime = moment . utc (
195
+ `${ state . eventDate } ${ state . endTime } ` ,
196
+ ) ;
152
197
} ,
153
198
154
199
updateStartTime ( state , value ) {
155
200
state . startTime = value ;
156
- state . event . dates [ 0 ] . startTime = moment . utc ( `${ state . eventDate } ${ state . startTime } ` ) ;
201
+ state . event . dates [ 0 ] . startTime = moment . utc (
202
+ `${ state . eventDate } ${ state . startTime } ` ,
203
+ ) ;
157
204
} ,
158
205
159
206
updateEndTime ( state , value ) {
160
207
state . endTime = value ;
161
- state . event . dates [ 0 ] . endTime = moment . utc ( `${ state . eventDate } ${ state . endTime } ` ) ;
208
+ state . event . dates [ 0 ] . endTime = moment . utc (
209
+ `${ state . eventDate } ${ state . endTime } ` ,
210
+ ) ;
162
211
} ,
163
212
164
213
updateTicketQuantity ( state , { type, quantity } ) {
165
- const tickets = state . event . sessions [ 0 ] . tickets . find ( ticket => ticket . type === type ) ;
214
+ const tickets = state . event . sessions [ 0 ] . tickets . find (
215
+ ticket => ticket . type === type ,
216
+ ) ;
166
217
tickets . quantity = quantity ;
167
218
} ,
168
219
@@ -186,7 +237,9 @@ const store = new Vuex.Store({
186
237
sendEmails : state => state . event . sendEmails ,
187
238
// eslint-disable-next-line no-unused-vars
188
239
ticketQuantity : state => ( type ) => {
189
- const tickets = state . event . sessions [ 0 ] . tickets . find ( ticket => ticket . type === type ) ;
240
+ const tickets = state . event . sessions [ 0 ] . tickets . find (
241
+ ticket => ticket . type === type ,
242
+ ) ;
190
243
return tickets . quantity ;
191
244
} ,
192
245
} ,
0 commit comments