-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroutes.js
executable file
·95 lines (87 loc) · 2.2 KB
/
routes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var subs = new SubsManager();
Router.map(function() {
Router.configure({
loadingTemplate: 'loading'
});
this.route('home', {
path: '/',
waitOn: function() {
return subs.subscribe("meetups");
},
data: {
upcomingMeetup: Meetups.find({dateTime : {$gt : new Date()} }, {sort: {dateTime: 1}, limit: 1})
}
});
this.route('meetups', {
path: '/meetups',
waitOn: function() {
return subs.subscribe("meetups");
},
data: {
upcomingMeetup: Meetups.find({dateTime : {$gt : new Date()} }, {sort: {dateTime: 1}, limit: 1}),
previousMeetups: Meetups.find({dateTime : {$lt : new Date()} }, {sort: {dateTime: -1}})
},
onAfterAction: function() {
SEO.set({
title: 'Meetups | ' + SEO.settings.title
});
}
});
this.route('meetupDetail', {
name: 'meetupDetail',
path: '/meetups/:meetupId-:slug',
waitOn: function() {
return [
subs.subscribe("meetup", this.params.slug),
subs.subscribe("members")
];
},
subscriptions: function() {
return Meteor.subscribe('meetupDetail', this.params.slug);
},
data: function() {
return {
meetup: Meetups.findOne({"slug": this.params.slug}),
members: Meteor.users.find({}, {sort: {'profile.points': -1}})
};
},
onAfterAction: function() {
if(this.ready()) {
SEO.set({
title: this.data().meetup.title + ' | Meetups | ' + SEO.settings.title
});
}
}
});
this.route('members', {
path: '/members',
waitOn: function() {
return subs.subscribe("members");
},
data: {
members: Meteor.users.find({})
},
onAfterAction: function() {
SEO.set({
title: 'Members | ' + SEO.settings.title
});
}
});
this.route('notFound', {
path: '*',
where: 'server',
action: function() {
this.response.statusCode = 404;
this.response.end(Handlebars.templates['404']());
}
});
Router._scrollToHash = function(hash) {
var section = $(hash);
if (section.length) {
var sectionTop = section.offset().top;
$("html, body").animate({
scrollTop: sectionTop
}, "slow");
}
};
});