/
main.js
61 lines (53 loc) 路 1.87 KB
/
main.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
'use strict';
var Backbone = require('backbone');
var $ = require('jquery');
Backbone.$ = $;
var Raven = require('raven-js');
var config = require('./common/config');
var _ = require('underscore');
var preferencesNamespace = config.namespaces.preferences + ':';
Raven.config('https://44876a16654343e5a30acfcaa5144806@app.getsentry.com/27278', {
whitelistUrls: ['nusmods.com/scripts/']
}).install();
var Promise = require('bluebird'); // jshint ignore:line
var analytics = require('./analytics');
var localforage = require('localforage');
var $body = $('body');
require('../favicon-16.png');
require('../favicon-32.png');
require('../favicon-64.png');
require('../favicon-96.png');
require('../favicon-160.png');
require('../favicon-196.png');
require('../opensearch.xml');
require('../.htaccess');
require('../favicon.ico');
require('../short_url.php');
require('../html.php');
require('../ical.php');
require('../jpg.php');
require('../news.php');
require('../pdf.php');
require('../redirect.php');
require('../xls.php');
localforage.getItem('migratedPreferences').then(function (value) {
if (!value) {
Promise.all(_.keys(config.defaultPreferences).map(function (property) {
return localforage.getItem(property).then(function (value) {
// Migration from old preferences to new namespaced preferencs.
value = value ? value : config.defaultPreferences[property];
localforage.setItem(preferencesNamespace + property, value);
});
}));
localforage.setItem('migratedPreferences', true);
}
});
Promise.all(['theme', 'mode'].map(function (property) {
return localforage.getItem(preferencesNamespace + property).then(function (value) {
value = value ? value : config.defaultPreferences[property];
$body.addClass(property + '-' + value);
$body.attr('data-' + property, value);
});
})).then(analytics.flush);
var App = require('./app');
App.start();