]>
jfr.im git - z_archive/KronOS.git/blob - public/js/application.js
2 $.fn
.pageConstruct = function() {
4 this.buildPage = function() {
5 document
.cookie
= "session_id=0;expires=0";
10 this.loadDefaults = function() {
12 // $.getJSON("backend/logged_in", function(resp) {
13 // if (!resp.contents) {
15 self
.hideBackground();
16 self
.setUsername('<em>unauthenticated</em>');
19 // self.loadUsername();
20 // self.loadBackground();
25 this.showError = function(e
, t
, c
) {
26 var n
= $(".alert").length
;
28 $(".alert").first().remove();
30 error
= '<div class="alert alert-block alert-' + t
+ '"><button type="button" class="close" data-dismiss="alert">×</button>' + e
+ '</div>'
34 this.loadMenu = function() {
35 $('body').append('<div class="navbar navbar-inverse navbar-fixed-top"></div>');
36 $('.navbar').append('<div class="navbar-inner"><div id="menu" class="container-fluid"></div></div>');
37 $('#menu').append('<a class="brand dropdown-toggle" href="#" tabindex="-1" data-toggle="dropdown">KronOS <b class="caret"></b></a><ul id="coreapps" class="dropdown-menu"></ul>');
38 $('#menu').append('<div class="menuitems"></div>');
39 $('#menu').append('<p class="navbar-text pull-right">Logged in as <a href="#" class="navbar-link" id="username"><em>unauthenticated</em></a> • <span style="font-family:monospace;"><span id="clock"></span></span></p>');
44 $('#coreapps').append('<li><a tabindex="-1" href="javascript:wos.openCoreApp(\'credits\');void(0);">Credits</a></li>');
47 this.loadContainer = function() {
48 $('body').append('<div id="desktop" class="container-fluid"></div>');
49 $('desktop').append('<div class="row"></div>');
52 this.loadMenuItems = function() {
53 $.getJSON("backend/get_menu", function(resp
) {
55 navStr
= '<ul class="nav">';
56 $.each(resp
.contents
, function(key
, val
) {
57 openStr
= '<li class="dropdown"><a tabindex="-1" class="dropdown-toggle" data-toggle="dropdown" href="#">'+key
+' <b class="caret"></b></a><ul class="dropdown-menu">';
59 closeStr
= '</ul></li>';
60 $.each(val
, function(ikey
, ival
) {
61 if (typeof ival
== "object") {
62 innerStr
+= '<li class="dropdown-submenu"><a tabindex="-1" href="#">'+ikey
+'</a><ul class="dropdown-menu">';
63 $.each(ival
, function(iikey
, iival
) {
64 innerStr
+= '<li><a tabindex="-1" href=\''+iival
+'\'>'+iikey
+'</a></li>';
66 innerStr
+= '</ul></li>';
68 innerStr
+= '<li><a tabindex="-1" href=\''+ival
+'\'>'+ikey
+'</a></li>';
71 navStr
+= openStr
+innerStr
+closeStr
;
74 $('.menuitems').html(navStr
);
76 throwError(resp
.error
, 'error', '#desktop');
81 this.hideMenu = function() {
82 $('.menuitems').empty();
85 this.loadLogin = function() {
87 url: "backend/login_modal",
88 success: function (data
) {
89 $('body').append(data
);
90 $('#loginModal').modal({
94 $('#loginModal').modal('show');
100 this.loadBackground = function() {
101 background
= '<style>body { background-image:url(\'/public/img/default-background.jpg\'); background-position: center top; } </style>'
102 $('body').append(background
);
105 this.hideBackground = function() {
109 this.setUsername = function(name
) {
110 $("#username").html(name
);
113 this.submitLogin = function() {
115 'username': $('#inputUsername').val(),
116 'password': $('#inputPassword').val()
119 $.post('account/login', loginData
, function(resp
) {
121 document
.cookie
= "session_id="+resp
.data
.sid
+";expires=0";
122 self
.setUsername(resp
.data
.name
);
123 self
.loadMenuItems();
124 self
.loadBackground();
126 $('#loginModal').modal('hide');
127 $('#inputUsername').val("")
128 $(".alert").remove();
130 self
.showError(resp
.error
, 'error', '.messagebody');
133 $('#inputPassword').val("")
137 this.credits = function() {
138 $('body').append('<div id="credits" class="modal hide fade"></div>');
140 $('#credits').append('<div class="modal-header">');
141 $('#credits').append('<div class="modal-body">');
142 $('#credits').append('<div class="modal-footer">');
145 $('#credits>.modal-header').append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>');
146 $('#credits>.modal-header').append('<h3 id="creditsLabel">About KronOS</h3>');
148 $('#credits>.modal-body').append('<h4>Committers</h4>');
149 $('#credits>.modal-body').append('<ul><li>BiohZn</li><li>DimeCadmium</li><li>Oscar</li><li>hyster</li><li>DarkDeviL</li></ul>');
151 $('#credits>.modal-footer').append('<button class="btn" aria-hidden="true" onClick="wos.hideCredits();">Close</button>');
153 $('#credits').modal({
156 $('#credits').modal('show');
159 this.hideCredits = function() {
160 $('#credits').modal('hide');
161 $('#credits').remove();
164 this.logout = function() {
165 document
.cookie
= "session_id=0;expires=0";
169 this.openApp = function(appid
) {
170 $.getJSON("control/open/"+appid
, function(resp
) {
172 var repl
= resp
.contents
173 var target
= 'div#'+repl
.name
+repl
.id
;
175 wos
.apps
[repl
.id
] = {aid: appid
, instance: repl
.id
, title: repl
.title
, target: target
};
177 $.getScript('control/scripts/'+appid
, function() {
178 wos
.appscripts
[appid
].load(target
);
181 $('body').append('<div id="'+repl
.name
+repl
.id
+'" class="app modal hide fade"></div>');
183 $(target
).append('<div class="modal-header"></div>');
184 $(target
).append('<div class="modal-body"></div>');
185 $(target
).append('<div class="modal-footer"></div>');
187 $(target
+'>.modal-header').append('<button type="button" class="close" aria-hidden="true" data-dismiss="modal" onClick="wos.closeApp(\'#'+repl
.name
+repl
.id
+'\');void(0);">×</button>');
188 $(target
+'>.modal-header').append('<h3 class="appLabel">'+repl
.title
+'</h3>');
190 $(target
+'>.modal-body').append(repl
.interior
);
192 $(target
).modal({ backdrop: false });
193 $(target
).modal('show');
195 throwError(resp
.error
, 'error', '#desktop');
200 this.openCoreApp = function(appname
) {
201 this.openApp("-1/"+appname
);
204 this.closeApp = function(target
) {
205 $(target
).modal('hide');
217 wos
= $('document.body').pageConstruct();