]> jfr.im git - z_archive/KronOS.git/blame - public/js/application.js
Now the modal wont duplicate when logging out
[z_archive/KronOS.git] / public / js / application.js
CommitLineData
f23a3d4c
CS
1var state\r
2var wos\r
3\r
4(function( $ ) {\r
5 $.fn.pageConstruct = function( initvar ) {\r
6\r
7 this.buildPage = function() {\r
8 document.cookie = "session_id=0;expires=0";\r
9 this.loadMenu();\r
10 this.loadContainer();\r
11 }\r
12\r
13 this.loadDefaults = function() {\r
14 var self = this;\r
15// $.getJSON("/backend/logged_in", function(resp) {\r
16// if (!resp.contents) {\r
17 self.hideMenu();\r
18 self.hideBackground();\r
19 self.setUsername('<em>unauthenticated</em>');\r
20 self.loadLogin();\r
21// } else {\r
22// self.loadUsername();\r
23// self.loadBackground();\r
24// }\r
25// });\r
26 }\r
27\r
28 this.showError = function(e, t, c) {\r
29 var n = $(".alert").length;\r
30 if (n>2) {\r
31 $(".alert").first().remove();\r
32 }\r
33 error = '<div class="alert alert-block alert-' + t + '"><button type="button" class="close" data-dismiss="alert">&times;</button>' + e + '</div>'\r
34 $(c).append(error);\r
35 }\r
36\r
37 this.loadMenu = function() {\r
38 $('body').append('<div class="navbar navbar-inverse navbar-fixed-top"></div>');\r
39 $('.navbar').append('<div class="navbar-inner"><div class="container-fluid"></div></div>');\r
40 $('.container-fluid').append('<a class="brand" href="#">KronOS</a>');\r
41 $('.container-fluid').append('<div class="menuitems"></div>');\r
42 $('.container-fluid').append('<p class="navbar-text pull-right">Logged in as <a href="#" class="navbar-link" id="username"><em>unauthenticated</em></a></p>');\r
43 };\r
44\r
45 this.loadContainer = function() {\r
46 $('body').append('<div id="desktop" class="container-fluid"></div>');\r
47 $('desktop').append('<div class="row"></div>');\r
48 };\r
49\r
50 this.loadMenuItems = function() {\r
51 $.getJSON("/backend/get_menu", function(resp) {\r
52 if (resp.success) {\r
53 navStr = '<ul class="nav">';\r
54 $.each(resp.contents, function(key, val) {\r
55 openStr = '<li class="dropdown"><a tabindex="-1" class="dropdown-toggle" data-toggle="dropdown" href="#">'+key+' <b class="caret"></b></a><ul class="dropdown-menu">';\r
56 innerStr = '';\r
57 closeStr = '</ul></li>';\r
58 $.each(val, function(ikey, ival) {\r
59 if (typeof ival == "object") {\r
60 innerStr += '<li class="dropdown-submenu"><a tabindex="-1" href="#">'+ikey+'</a><ul class="dropdown-menu">';\r
61 $.each(ival, function(iikey, iival) {\r
62 innerStr += '<li><a tabindex="-1" href=\''+iival+'\'>'+iikey+'</a></li>';\r
63 });\r
64 innerStr += '</ul></li>';\r
65 } else {\r
66 innerStr += '<li><a tabindex="-1" href=\''+ival+'\'>'+ikey+'</a></li>';\r
67 }\r
68 });\r
69 navStr += openStr+innerStr+closeStr;\r
70 });\r
71 navStr += '</ul>';\r
72 $('.menuitems').html(navStr);\r
73 } else {\r
74 throwError(resp.error, 'error', '#desktop');\r
75 }\r
76 });\r
77 };\r
78\r
79 this.hideMenu = function() {\r
80 $('.menuitems').empty();\r
81 }\r
82\r
83 this.loadLogin = function() {\r
84 $.ajax({\r
85 url: "/backend/login_modal",\r
86 success: function (data) {\r
87 $('body').append(data);\r
88 $('#loginModal').modal({\r
89 backdrop: 'static',\r
90 keyboard: false,\r
91 });\r
92 $('#loginModal').modal('show');\r
93 },\r
94 dataType: 'html'\r
95 });\r
96 }\r
97\r
98 this.loadBackground = function() {\r
99 background = '<style>body { background-image:url(\'/public/img/default-background.jpg\'); background-position: center top; } </style>'\r
100 $('body').append(background);\r
101 };\r
102\r
103 this.hideBackground = function() {\r
104 $('style').remove();\r
105 }\r
106\r
107 this.setUsername = function(name) {\r
108 $("#username").html(name);\r
109 }\r
110\r
111 this.submitLogin = function() {\r
112 loginData = {\r
113 'username': $('#inputUsername').val(),\r
114 'password': $('#inputPassword').val()\r
115 };\r
116 self = this;\r
117 $.post('/account/login', loginData, function(resp) {\r
118 if (resp.success) {\r
119 document.cookie = "session_id="+resp.data.sid+";expires=0";\r
120 self.setUsername(resp.data.name);\r
121 self.loadMenuItems();\r
122 self.loadBackground();\r
123\r
124 $('#loginModal').modal('hide');\r
125 $('#loginModal').remove();\r
126 } else {\r
127 self.showError(resp.error, 'error', '.messagebody');\r
128 }\r
129\r
130 $('#inputPassword').val("")\r
131 }, "json");\r
132 }\r
133\r
134 this.logout = function() {\r
135 document.cookie = "session_id=0;expires=0";\r
136 this.loadDefaults();\r
137 }\r
138\r
139 return this;\r
140 };\r
141})( jQuery );\r
142\r
143(function( $ ) {\r
144 $.fn.modalHelper = function( initvar ) {\r
145\r
146 id = initvar;\r
147\r
148 this.init = function() {\r
149 this.append('<div id="'+this.id+'" class="modal hide fade"></div>');\r
150\r
151 this.id = '#'+this.id;\r
152\r
153 $(this.id).append('<div class="modal-header"></div>');\r
154 $(this.id+'>.modal-header').append('<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button><h3>unspecified</h3>');\r
155 $(this.id).append('<div class="modal-body"></div>');\r
156 $(this.id).append('<div class="modal-footer"></div>');\r
157 }\r
158\r
159// this.title = function() {\r
160// return\r
161// }\r
162\r
163// this.content = function() {\r
164// return\r
165// }\r
166\r
167 this.show = function() {\r
168 $(this.id).modal('show');\r
169 }\r
170\r
171 return this;\r
172 };\r
173})( jQuery );\r
174\r
175\r
176$(function () {\r
177 wos = $('document.body').pageConstruct();\r
178\r
179 wos.buildPage();\r
180 wos.loadDefaults();\r
181});\r