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
96
97
98
99
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GNU-GPL-3.0
function Application() {
G.app = this;
this.page = null;
this.addServerEventListener();
this.setScreenFromLocationHash();
this.playerUi = new PlayerUi();
var playerNode = this.playerUi.createNodes();
$(function() {
$(".playerFooter").append(playerNode);
});
}
Application.prototype.setScreenFromLocationHash = function() {
var self = this;
if (!this.page) {
$(".page").empty();
}
var fields = Utils.parseHashUrl(window.location.hash);
if (fields.length > 0) {
if (self.pageList[fields[0]]) {
var nextPage = new self.pageList[fields[0]];
self.pageList[fields[0]].prototype.constructor.apply(
nextPage,
fields.slice(1)
);
self.setPage(nextPage);
}
} else {
self.setPage(new StartPage());
/*
$.getJSON("api/activePage", function(data) {
if (self.pageList[data.page]) {
//self.setPage(new self.pageList[data.page]);
self.setPage(new StartPage());
} else if (data.page == "TvShowPage") {
self.setPage(new StartPage());
} else {
self.setPage(new StartPage());
}
}).error(function() {
console.error("did not receive active page id");
});
*/
}
}
Application.prototype.addServerEventListener = function() {
this.serverEvents = new EventSource("api/events/all");
this.serverEvents.onopen = function(event) {
console.log("sse open", event);
}
this.serverEvents.onmessage = function(event) {
console.log("sse message", event);
}
this.serverEvents.onerror = function(event) {
console.log("sse error", event);
}
}
Application.prototype.pageList = {
"StartPage": StartPage,
"TvShowPage": TvShowPage,
"StreamPlayerPage": StreamPlayerPage,
"MissingFilesPage": MissingFilesPage
};
Application.prototype.setPage = function(page) {
if (this.page && this.page.removeNodes) {
this.page.removeNodes();
}
this.page = page;
var node = null;
if (page) {
node = page.createNodes();
}
$(function() {
$(".page").empty();
if (node) {
$(".page").append(node);
}
});
};
(function() {
G.app = new Application();
G.playerType = "remote";
$(window).bind("hashchange", function()
{
G.app.setScreenFromLocationHash();
});
})();