1 | var _ = require('underscore'),
|
2 | common = require('./common.js');
|
3 |
|
4 | function sort_proposals(o1, o2) {
|
5 | o1_date = o1.started.getTime();
|
6 | o2_date = o2.started.getTime();
|
7 | if (o1_date != o2_date) {
|
8 | return o1_date > o2_date ? -1 : o1_date < o2_date ? 1 : 0;
|
9 | } else {
|
10 | return o1.amount > o2.amount ? -1 : o1.amount < o2.amount ? 1 : 0;
|
11 | }
|
12 | };
|
13 |
|
14 | function sort_papers(o1, o2) {
|
15 | o1_date = o1.date.getTime();
|
16 | o2_date = o2.date.getTime();
|
17 | if (o1_date != o2_date) {
|
18 | return o1_date > o2_date ? -1 : o1_date < o2_date ? 1 : 0;
|
19 | } else if (o1.poster != o2.poster) {
|
20 | return o1.poster ? 1 : o2.poster ? -1 : 0;
|
21 | } else {
|
22 | return o1.name.toLowerCase() > o2.name.toLowerCase() ? 1 :
|
23 | o1.name.toLowerCase() < o2.name.toLowerCase() ? -1 : 0;
|
24 | }
|
25 | };
|
26 |
|
27 |
|
28 | function sort(config) {
|
29 | return function(files, metalsmith, done) {
|
30 | var metadata = metalsmith.metadata();
|
31 |
|
32 | metadata.people = _.sortBy(metadata.people, function (o) {
|
33 | return o.name.toLowerCase();
|
34 | });
|
35 |
|
36 | metadata.papers = metadata.papers.sort(sort_papers);
|
37 |
|
38 | metadata.projects = metadata.projects.sort(function(p1, p2) {
|
39 | if (p1.started != p2.started) {
|
40 | return p1.started > p2.started ? -1 : p1.started < p2.started ? 1 : 0;
|
41 | } else {
|
42 | return p1.name.toLowerCase() > p2.name.toLowerCase();
|
43 | }
|
44 | });
|
45 |
|
46 | metadata.proposals = metadata.proposals.sort(sort_proposals);
|
47 | metadata.courses = metadata.courses.sort(function (c1, c2) {
|
48 | return c1.started > c2.started ? -1 : c1.started < c2.started ? 1 : 0;
|
49 | });
|
50 |
|
51 | metadata.visible_posts = _.filter(metadata.posts, function (p) {
|
52 | return !(p.working);
|
53 | });
|
54 | metadata.visible_posts = metadata.visible_posts.sort(function (c1, c2) {
|
55 | return c1.created > c2.created ? -1 : c1.created < c2.created ? 1 : 0;
|
56 | });
|
57 |
|
58 | done();
|
59 | }
|
60 | };
|
61 |
|
62 | exports = module.exports = sort;
|
63 | exports.sort_papers = sort_papers;
|