Skip to content

Commit afb23a3

Browse files
committed
Adding functions to get current week, format week meetups, and display meetups in week format
1 parent 5edb15b commit afb23a3

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

custom.js

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
// List new meetups
3434
listMeetups(data);
3535
mapMeetups(data);
36+
listMeetupsinWeekView(data);
3637
}
3738

3839
function mapMeetups(data){
@@ -140,6 +141,107 @@
140141
$(".meetups").append(list);
141142
}
142143

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+
}
143245
/**
144246
* formatEvents() will get a set of meetups and format accordingly
145247
* @param {meetups}
@@ -238,6 +340,7 @@
238340
meetupListItem.classList.add('active');
239341
setTimeout( () => { meetupListItem.classList.remove('active'); }, 3000);
240342
});
343+
241344
});
242345

243346
})();

0 commit comments

Comments
 (0)