]>
Commit | Line | Data |
---|---|---|
f23a3d4c CS |
1 | var state\r |
2 | var 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">×</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">×</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 |