|
33 | 33 | // List new meetups |
34 | 34 | listMeetups(data); |
35 | 35 | mapMeetups(data); |
| 36 | + listMeetupsinWeekView(data); |
36 | 37 | } |
37 | 38 |
|
38 | 39 | function mapMeetups(data){ |
|
140 | 141 | $(".meetups").append(list); |
141 | 142 | } |
142 | 143 |
|
| 144 | + // Display Meetup Data in Week View |
| 145 | + function listMeetupsinWeekView(data) { |
| 146 | + let list = []; |
| 147 | + list = getWeekFormattedMeetups(data.results); |
| 148 | + console.log(list); |
| 149 | + |
| 150 | + let week = getWeekRange(); |
| 151 | + console.log(week); |
| 152 | + let thisWeek = []; |
| 153 | + for(let i=1; i < week.length; i++) { |
| 154 | + thisWeek.push('<div>' |
| 155 | + + week[i].dow.substring(0,3) + ' ' |
| 156 | + + week[i].month.substring(0,3) + ' ' |
| 157 | + + week[i].date |
| 158 | + + '</div>'); |
| 159 | + } |
| 160 | + |
| 161 | + //if list[0][i] === date, push to id div |
| 162 | + |
| 163 | + $('#sunday').append(thisWeek[0] + list[0]); |
| 164 | + $('#monday').append(thisWeek[1] + list[1]); |
| 165 | + $('#tuesday').append(thisWeek[2] + list[2]); |
| 166 | + $('#wednesday').append(thisWeek[3] + list[3]); |
| 167 | + $('#thursday').append(thisWeek[4] + list[4]); |
| 168 | + $('#friday').append(thisWeek[5] + list[5]); |
| 169 | + $('#saturday').append(thisWeek[6] + list[6]); |
| 170 | + } |
| 171 | + // Get Week Range |
| 172 | + function getWeekRange() { |
| 173 | + let d = new Date; //get current date |
| 174 | + let first = d.getDate() - d.getDay(); //result? |
| 175 | + let firstday = (new Date(d.setDate(first - 1))).toUTCString(); |
| 176 | + let week = [firstday]; |
| 177 | + const weekdays = ['Sunday','Monday','Tueday','Wednesday','Thursday','Friday','Saturday']; |
| 178 | + const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; |
| 179 | + |
| 180 | + for(let i=0; i<7; i++) { |
| 181 | + let next = new Date(d.getTime()); |
| 182 | + next.setDate(first+i); |
| 183 | + week.push({ |
| 184 | + dow: weekdays[next.getDay()], |
| 185 | + date: next.getDate(), |
| 186 | + month: months[next.getMonth()] |
| 187 | + }); |
| 188 | + } |
| 189 | + return week; |
| 190 | + } |
| 191 | + |
| 192 | + // Format Meetup Data for Week View |
| 193 | + function getWeekFormattedMeetups( meetups ) { |
| 194 | + let sunday = []; |
| 195 | + let monday = []; |
| 196 | + let tuesday = []; |
| 197 | + let wednesday = []; |
| 198 | + let thursday = []; |
| 199 | + let friday = []; |
| 200 | + let saturday = []; |
| 201 | + let formattedMeetupsByWeek = [sunday, monday, tuesday, wednesday, thursday, friday, saturday]; |
| 202 | + |
| 203 | + // For each event create a list item |
| 204 | + meetups.filter( function( meetup ) { |
| 205 | + let d = getDateFormats( meetup ); |
| 206 | + |
| 207 | + let formattedMeetup = '<li id="meetup-' + meetup.id + '" class="week-meetup">' |
| 208 | + + '<div class="infobox">' |
| 209 | + + ' <div class="date">' + d.dowFull + ' ' + d.day + '</div>' |
| 210 | + + ' <div class="title"><a href="' + meetup.event_url + '">' + meetup.name + '</a></div>' |
| 211 | + + ' <div>' + meetup.venue.city + ' - ' + meetup.venue.name + '</div>' |
| 212 | + + '</div>' |
| 213 | + + '<div>' |
| 214 | + + ' <div>' + d.time + '</div>' |
| 215 | + + '</div>' |
| 216 | + +'</li>'; |
| 217 | + |
| 218 | + switch( d.dow ) { |
| 219 | + case "Sun": |
| 220 | + sunday.push(formattedMeetup.toString()); |
| 221 | + break; |
| 222 | + case "Mon": |
| 223 | + monday.push(formattedMeetup); |
| 224 | + break; |
| 225 | + case "Tue": |
| 226 | + tuesday.push(formattedMeetup); |
| 227 | + break; |
| 228 | + case "Wed": |
| 229 | + wednesday.push(formattedMeetup); |
| 230 | + break; |
| 231 | + case "Thu": |
| 232 | + thursday.push(formattedMeetup); |
| 233 | + break; |
| 234 | + case "Fri": |
| 235 | + friday.push(formattedMeetup); |
| 236 | + break; |
| 237 | + case "Sat": |
| 238 | + saturday.push(formattedMeetup); |
| 239 | + break; |
| 240 | + } |
| 241 | + }); |
| 242 | + console.log(formattedMeetupsByWeek); |
| 243 | + return formattedMeetupsByWeek; |
| 244 | + } |
143 | 245 | /** |
144 | 246 | * formatEvents() will get a set of meetups and format accordingly |
145 | 247 | * @param {meetups} |
|
238 | 340 | meetupListItem.classList.add('active'); |
239 | 341 | setTimeout( () => { meetupListItem.classList.remove('active'); }, 3000); |
240 | 342 | }); |
| 343 | + |
241 | 344 | }); |
242 | 345 |
|
243 | 346 | })(); |
0 commit comments