]> jfr.im git - z_archive/KronOS.git/blob - public/js/application.js
Merge
[z_archive/KronOS.git] / public / js / application.js
1 <<<<<<< HEAD
2 var state
3 var wos
4
5 (function( $ ) {
6 $.fn.pageConstruct = function( initvar ) {
7
8 this.buildPage = function() {
9 document.cookie = "session_id=0;expires=0";
10 this.loadMenu();
11 this.loadContainer();
12 }
13
14 this.loadDefaults = function() {
15 var self = this;
16 // $.getJSON("/backend/logged_in", function(resp) {
17 // if (!resp.contents) {
18 self.hideMenu();
19 self.hideBackground();
20 self.setUsername('<em>unauthenticated</em>');
21 self.loadLogin();
22 // } else {
23 // self.loadUsername();
24 // self.loadBackground();
25 // }
26 // });
27 }
28
29 this.showError = function(e, t, c) {
30 var n = $(".alert").length;
31 if (n>2) {
32 $(".alert").first().remove();
33 }
34 error = '<div class="alert alert-block alert-' + t + '"><button type="button" class="close" data-dismiss="alert">&times;</button>' + e + '</div>'
35 $(c).append(error);
36 }
37
38 this.loadMenu = function() {
39 $('body').append('<div class="navbar navbar-inverse navbar-fixed-top"></div>');
40 $('.navbar').append('<div class="navbar-inner"><div class="container-fluid"></div></div>');
41 $('.container-fluid').append('<a class="brand" href="#">KronOS</a>');
42 $('.container-fluid').append('<div class="menuitems"></div>');
43 $('.container-fluid').append('<p class="navbar-text pull-right">Logged in as <a href="#" class="navbar-link" id="username"><em>unauthenticated</em></a> &bull; <span style="font-family:monospace;"><span id="clock"></span></span></p>');
44 $('#clock').jclock({
45 format: '%H:%M',
46 });
47 };
48
49 this.loadContainer = function() {
50 $('body').append('<div id="desktop" class="container-fluid"></div>');
51 $('desktop').append('<div class="row"></div>');
52 };
53
54 this.loadMenuItems = function() {
55 $.getJSON("/backend/get_menu", function(resp) {
56 if (resp.success) {
57 navStr = '<ul class="nav">';
58 $.each(resp.contents, function(key, val) {
59 openStr = '<li class="dropdown"><a tabindex="-1" class="dropdown-toggle" data-toggle="dropdown" href="#">'+key+' <b class="caret"></b></a><ul class="dropdown-menu">';
60 innerStr = '';
61 closeStr = '</ul></li>';
62 $.each(val, function(ikey, ival) {
63 if (typeof ival == "object") {
64 innerStr += '<li class="dropdown-submenu"><a tabindex="-1" href="#">'+ikey+'</a><ul class="dropdown-menu">';
65 $.each(ival, function(iikey, iival) {
66 innerStr += '<li><a tabindex="-1" href=\''+iival+'\'>'+iikey+'</a></li>';
67 });
68 innerStr += '</ul></li>';
69 } else {
70 innerStr += '<li><a tabindex="-1" href=\''+ival+'\'>'+ikey+'</a></li>';
71 }
72 });
73 navStr += openStr+innerStr+closeStr;
74 });
75 navStr += '</ul>';
76 $('.menuitems').html(navStr);
77 } else {
78 throwError(resp.error, 'error', '#desktop');
79 }
80 });
81 };
82
83 this.hideMenu = function() {
84 $('.menuitems').empty();
85 }
86
87 this.loadLogin = function() {
88 $.ajax({
89 url: "/backend/login_modal",
90 success: function (data) {
91 $('body').append(data);
92 $('#loginModal').modal({
93 backdrop: 'static',
94 keyboard: false,
95 });
96 $('#loginModal').modal('show');
97 },
98 dataType: 'html'
99 });
100 }
101
102 this.loadBackground = function() {
103 background = '<style>body { background-image:url(\'/public/img/default-background.jpg\'); background-position: center top; } </style>'
104 $('body').append(background);
105 };
106
107 this.hideBackground = function() {
108 $('style').remove();
109 }
110
111 this.setUsername = function(name) {
112 $("#username").html(name);
113 }
114
115 this.submitLogin = function() {
116 loginData = {
117 'username': $('#inputUsername').val(),
118 'password': $('#inputPassword').val()
119 };
120 self = this;
121 $.post('/account/login', loginData, function(resp) {
122 if (resp.success) {
123 document.cookie = "session_id="+resp.data.sid+";expires=0";
124 self.setUsername(resp.data.name);
125 self.loadMenuItems();
126 self.loadBackground();
127
128 $('#loginModal').modal('hide');
129 $('#inputUsername').val("")
130 $(".alert").remove();
131 } else {
132 self.showError(resp.error, 'error', '.messagebody');
133 }
134
135 $('#inputPassword').val("")
136 }, "json");
137 }
138
139 this.credits = function() {
140 $('body').append('<div id="credits" class="modal hide fade"></div>');
141
142 $('#credits').append('<div class="modal-header">');
143 $('#credits').append('<div class="modal-body">');
144 $('#credits').append('<div class="modal-footer">');
145
146 $('').append('');
147 $('#credits>.modal-header').append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>');
148 $('#credits>.modal-header').append('<h3 id="creditsLabel">About KronOS</h3>');
149
150 $('#credits>.modal-body').append('<h4>Committers</h4>');
151 $('#credits>.modal-body').append('<ul><li>BiohZn</li><li>DimeCadmium</li><li>Oscar</li><li>hyster</li><li>DarkDeviL</li></ul>');
152
153 $('#credits>.modal-footer').append('<button class="btn" aria-hidden="true" onClick="wos.hideCredits();">Close</button>');
154
155 $('#credits').modal({
156 backdrop: false
157 });
158 $('#credits').modal('show');
159 }
160
161 this.hideCredits = function() {
162 $('#credits').modal('hide');
163 $('#credits').remove();
164 }
165
166 this.logout = function() {
167 document.cookie = "session_id=0;expires=0";
168 this.loadDefaults();
169 }
170
171 return this;
172 };
173 })( jQuery );
174
175 $(function () {
176 wos = $('document.body').pageConstruct();
177
178 wos.buildPage();
179 wos.loadDefaults();
180 });
181 =======
182 var state
183 var wos
184
185 (function( $ ) {
186 $.fn.pageConstruct = function( initvar ) {
187
188 this.buildPage = function() {
189 document.cookie = "session_id=0;expires=0";
190 this.loadMenu();
191 this.loadContainer();
192 }
193
194 this.loadDefaults = function() {
195 var self = this;
196 // $.getJSON("/backend/logged_in", function(resp) {
197 // if (!resp.contents) {
198 self.hideMenu();
199 self.hideBackground();
200 self.setUsername('<em>unauthenticated</em>');
201 self.loadLogin();
202 // } else {
203 // self.loadUsername();
204 // self.loadBackground();
205 // }
206 // });
207 }
208
209 this.showError = function(e, t, c) {
210 var n = $(".alert").length;
211 if (n>2) {
212 $(".alert").first().remove();
213 }
214 error = '<div class="alert alert-block alert-' + t + '"><button type="button" class="close" data-dismiss="alert">&times;</button>' + e + '</div>'
215 $(c).append(error);
216 }
217
218 this.loadMenu = function() {
219 $('body').append('<div class="navbar navbar-inverse navbar-fixed-top"></div>');
220 $('.navbar').append('<div class="navbar-inner"><div class="container-fluid"></div></div>');
221 $('.container-fluid').append('<a class="brand" href="#">KronOS</a>');
222 $('.container-fluid').append('<div class="menuitems"></div>');
223 $('.container-fluid').append('<p class="navbar-text pull-right">Logged in as <a href="#" class="navbar-link" id="username"><em>unauthenticated</em></a></p>');
224 };
225
226 this.loadContainer = function() {
227 $('body').append('<div id="desktop" class="container-fluid"></div>');
228 $('desktop').append('<div class="row"></div>');
229 };
230
231 this.loadMenuItems = function() {
232 $.getJSON("/backend/get_menu", function(resp) {
233 if (resp.success) {
234 navStr = '<ul class="nav">';
235 $.each(resp.contents, function(key, val) {
236 openStr = '<li class="dropdown"><a tabindex="-1" class="dropdown-toggle" data-toggle="dropdown" href="#">'+key+' <b class="caret"></b></a><ul class="dropdown-menu">';
237 innerStr = '';
238 closeStr = '</ul></li>';
239 $.each(val, function(ikey, ival) {
240 if (typeof ival == "object") {
241 innerStr += '<li class="dropdown-submenu"><a tabindex="-1" href="#">'+ikey+'</a><ul class="dropdown-menu">';
242 $.each(ival, function(iikey, iival) {
243 innerStr += '<li><a tabindex="-1" href=\''+iival+'\'>'+iikey+'</a></li>';
244 });
245 innerStr += '</ul></li>';
246 } else {
247 innerStr += '<li><a tabindex="-1" href=\''+ival+'\'>'+ikey+'</a></li>';
248 }
249 });
250 navStr += openStr+innerStr+closeStr;
251 });
252 navStr += '</ul>';
253 $('.menuitems').html(navStr);
254 } else {
255 throwError(resp.error, 'error', '#desktop');
256 }
257 });
258 };
259
260 this.hideMenu = function() {
261 $('.menuitems').empty();
262 }
263
264 this.loadLogin = function() {
265 $.ajax({
266 url: "/backend/login_modal",
267 success: function (data) {
268 $('body').append(data);
269 $('#loginModal').modal({
270 backdrop: 'static',
271 keyboard: false,
272 });
273 $('#loginModal').modal('show');
274 },
275 dataType: 'html'
276 });
277 }
278
279 this.loadBackground = function() {
280 background = '<style>body { background-image:url(\'/public/img/default-background.jpg\'); background-position: center top; } </style>'
281 $('body').append(background);
282 };
283
284 this.hideBackground = function() {
285 $('style').remove();
286 }
287
288 this.setUsername = function(name) {
289 $("#username").html(name);
290 }
291
292 this.submitLogin = function() {
293 loginData = {
294 'username': $('#inputUsername').val(),
295 'password': $('#inputPassword').val()
296 };
297 self = this;
298 $.post('/account/login', loginData, function(resp) {
299 if (resp.success) {
300 document.cookie = "session_id="+resp.data.sid+";expires=0";
301 self.setUsername(resp.data.name);
302 self.loadMenuItems();
303 self.loadBackground();
304
305 $('#loginModal').modal('hide');
306 $('#loginModal').remove();
307 } else {
308 self.showError(resp.error, 'error', '.messagebody');
309 }
310
311 $('#inputPassword').val("")
312 }, "json");
313 }
314
315 this.credits = function() {
316 $('body').append('<div id="credits" class="modal hide fade"></div>');
317
318 $('#credits').append('<div class="modal-header">');
319 $('#credits').append('<div class="modal-body">');
320 $('#credits').append('<div class="modal-footer">');
321
322 $('').append('');
323 $('#credits>.modal-header').append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>');
324 $('#credits>.modal-header').append('<h3 id="creditsLabel">About KronOS</h3>');
325
326 $('#credits>.modal-body').append('<h4>Committers</h4>');
327 $('#credits>.modal-body').append('<ul><li>BiohZn</li><li>DimeCadmium</li><li>Oscar</li><li>hyster</li><li>DarkDeviL</li></ul>');
328
329 $('#credits>.modal-footer').append('<button class="btn" aria-hidden="true" onClick="wos.hideCredits();">Close</button>');
330
331 $('#credits').modal({
332 backdrop: false
333 });
334 $('#credits').modal('show');
335 }
336
337 this.hideCredits = function() {
338 $('#credits').modal('hide');
339 $('#credits').remove();
340 }
341
342 this.logout = function() {
343 document.cookie = "session_id=0;expires=0";
344 this.loadDefaults();
345 }
346
347 return this;
348 };
349 })( jQuery );
350
351 $(function () {
352 wos = $('document.body').pageConstruct();
353
354 wos.buildPage();
355 wos.loadDefaults();
356 });
357 >>>>>>> 3ff0a8ddc9627b0815f031e0cf65314bb95a9e31