-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.js
43 lines (35 loc) · 1.19 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
(function() {
"use strict";
var emitter = new EventEmitter();
var view_helper = new ViewHelper();
var page_builder = new PageBuilder(emitter, view_helper);
page_builder.registerEvents();
var request = new Request('config.json');
request.load(function(raw_config) {
var config = JSON.parse(raw_config);
var theme_loader = new ThemeLoader();
theme_loader.loadTheme(config.theme);
var plugin_factory = new PluginFactory(emitter, view_helper);
for (var i in config.plugins) {
var plugin = plugin_factory.getPlugin(config.plugins[i]);
plugin.registerPlugin();
}
page_builder.setConferenceTitle(config.conference);
var schedule_loader_factory = new ScheduleLoaderFactory();
var loader = schedule_loader_factory.getScheduleLoader(config);
if (config.schedule_loader.type == 'spreadsheet') {
var parser = new JsconfLikeSpreadsheetParser();
loader.load(function(result1) {
parser.convertCsvToJson(result1, function(result) {
parser.buildSchedule(result, function(result) {
emitter.trigger('schedule-data-ready', result);
});
});
});
} else {
loader.load(function(result) {
emitter.trigger('schedule-data-ready', result);
});
}
});
})();