6 prefix : "/controller/web",
13 one.main.menu.ajax(function(data) {
14 // reparse the ajax data
15 var result = one.main.menu.data.menu(data);
16 // transform into list to append to menu
17 var $div = one.main.menu.menu(result);
19 $("#menu .nav").append($div.children());
20 // binding all menu items
21 var $menu = $("#menu .nav a");
22 $menu.click(function() {
23 var href = $(this).attr('href').substring(1);
24 one.main.page.load(href);
25 var $li = $(this).parent();
26 // reset all other active
27 $menu.each(function(index, value) {
28 $(value).parent().removeClass('active');
30 $li.addClass('active');
32 // reset or go to first menu item by default
33 var currentLocation = location.hash;
34 if (data[currentLocation.substring(1)] == undefined) {
37 $menu.each(function(index, value) {
38 var menuLocation = $(value).attr('href');
39 if (currentLocation == menuLocation) {
40 $($menu[index]).click();
47 menu : function(result) {
48 var $div = $(document.createElement('div'));
49 $(result).each(function(index, value) {
50 if (value != undefined) {
51 var $li = $(document.createElement('li'));
52 var $a = $(document.createElement('a'));
53 $a.text(value['name']);
54 $a.attr('href', '#' + value['id']);
61 ajax : function(successCallback) {
62 $.getJSON(one.main.constants.address.menu, function(data) {
63 successCallback(data);
67 menu : function(data) {
69 $.each(data, function(key, value) {
70 var order = value['order'];
72 var name = value['name'];
77 result[order] = entry;
86 load : function(page) {
87 if (one.f !== undefined && one.f.cleanUp !== undefined) {
92 $('.dashlet', '#main').empty();
93 $('.nav', '#main').empty();
95 $.getScript(one.main.constants.address.prefix + "/" + page
104 dashlet : function($nav, dashlet) {
105 var $li = $(document.createElement('li'));
106 var $a = $(document.createElement('a'));
107 $a.text(dashlet.name);
108 $a.attr('id', dashlet.id);
109 $a.attr('href', '#');
118 main : "one_main_admin_id_modal_main",
119 close : "one_main_admin_id_modal_close",
120 user : "one_main_admin_id_modal_user",
122 user : "one_main_admin_id_modal_add_user",
123 close : "one_main_admin_id_modal_add_close",
125 name : "one_main_admin_id_modal_add_form_name",
126 role : "one_main_admin_id_modal_add_form_role",
127 password : "one_main_admin_id_modal_add_form_password"
131 user : "one_main_admin_id_modal_remove_user",
132 close : "one_main_admin_id_modal_remove_close"
136 user : "one_main_admin_id_add_user"
144 initialize : function(callback) {
145 var h3 = "Welcome " + $('#admin').text();
146 var footer = one.main.admin.modal.footer();
147 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.main, h3,
151 $('#' + one.main.admin.id.modal.close, $modal).click(function() {
152 $modal.modal('hide');
156 one.main.admin.ajax.users(function($body) {
157 one.lib.modal.inject.body($modal, $body);
160 // modal show callback
163 footer : function() {
166 var closeButton = one.lib.dashlet.button.single("Close",
167 one.main.admin.id.modal.close, "", "");
168 var $closeButton = one.lib.dashlet.button.button(closeButton);
169 footer.push($closeButton);
175 users : function(callback) {
176 $.getJSON(one.main.admin.address.root
177 + one.main.admin.address.users, function(data) {
178 var body = one.main.admin.data.users(data);
179 var $body = one.main.admin.body.users(body);
185 users : function(data) {
187 $(data).each(function(index, value) {
190 entry.push(value['user']);
191 entry.push(value['role']);
193 tr['id'] = value['user'];
200 users : function(body) {
201 var $div = $(document.createElement('div'));
202 var $h5 = $(document.createElement('h5'));
203 $h5.append("Manage Users");
204 var attributes = [ "table-striped", "table-bordered",
205 "table-hover", "table-cursor" ];
206 var $table = one.lib.dashlet.table.table(attributes);
207 var headers = [ "User", "Role" ];
208 var $thead = one.lib.dashlet.table.header(headers);
209 var $tbody = one.lib.dashlet.table.body(body);
210 $table.append($thead).append($tbody);
214 $table.find('tr').click(function() {
215 var id = $(this).data('id');
216 one.main.admin.remove.modal.initialize(id);
221 $div.append($h5).append($table);
224 var addUserButton = one.lib.dashlet.button.single("Add User",
225 one.main.admin.id.add.user, "btn-primary", "btn-mini");
226 var $addUserButton = one.lib.dashlet.button
227 .button(addUserButton);
228 $div.append($addUserButton);
231 $addUserButton.click(function() {
232 one.main.admin.add.modal.initialize();
241 initialize : function(id) {
242 var h3 = "Remove User";
243 var footer = one.main.admin.remove.footer();
244 var $body = one.main.admin.remove.body();
245 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user,
249 $('#' + one.main.admin.id.modal.remove.close, $modal).click(
251 $modal.modal('hide');
255 $('#' + one.main.admin.id.modal.remove.user, $modal)
258 one.main.admin.remove.modal
262 if (result == 'Success') {
267 + one.main.admin.id.modal.main);
269 .users(function($body) {
276 alert("Failed to remove user: "
283 ajax : function(id, callback) {
284 $.post(one.main.admin.address.root
285 + one.main.admin.address.users + '/' + id,
292 footer : function() {
295 var removeButton = one.lib.dashlet.button.single("Remove User",
296 one.main.admin.id.modal.remove.user, "btn-danger", "");
297 var $removeButton = one.lib.dashlet.button.button(removeButton);
298 footer.push($removeButton);
300 var closeButton = one.lib.dashlet.button.single("Close",
301 one.main.admin.id.modal.remove.close, "", "");
302 var $closeButton = one.lib.dashlet.button.button(closeButton);
303 footer.push($closeButton);
308 var $p = $(document.createElement('p'));
309 $p.append("Remove user?");
315 initialize : function() {
317 var footer = one.main.admin.add.footer();
318 var $body = one.main.admin.add.body();
319 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user,
323 $('#' + one.main.admin.id.modal.add.close, $modal).click(
325 $modal.modal('hide');
329 $('#' + one.main.admin.id.modal.add.user, $modal)
332 one.main.admin.add.modal
336 if (result == 'Success') {
341 + one.main.admin.id.modal.main);
343 .users(function($body) {
350 alert("Failed to add user: "
357 add : function($modal, callback) {
359 user['user'] = $modal.find(
360 '#' + one.main.admin.id.modal.add.form.name).val();
361 user['password'] = $modal.find(
362 '#' + one.main.admin.id.modal.add.form.password).val();
363 user['role'] = $modal.find(
364 '#' + one.main.admin.id.modal.add.form.role).find(
365 'option:selected').attr('value');
368 resource['json'] = JSON.stringify(user);
369 resource['action'] = 'add'
371 one.main.admin.add.modal.ajax(resource, callback);
373 ajax : function(data, callback) {
374 $.post(one.main.admin.address.root
375 + one.main.admin.address.users, data, function(data) {
381 var $form = $(document.createElement('form'));
382 var $fieldset = $(document.createElement('fieldset'));
384 var $label = one.lib.form.label('Username');
385 var $input = one.lib.form.input('Username');
386 $input.attr('id', one.main.admin.id.modal.add.form.name);
387 $fieldset.append($label).append($input);
389 var $label = one.lib.form.label('Password');
390 var $input = one.lib.form.input('Password');
391 $input.attr('id', one.main.admin.id.modal.add.form.password);
392 $input.attr('type', 'password');
393 $fieldset.append($label).append($input);
395 var $label = one.lib.form.label('Roles');
397 "Network-Admin" : "Network Administrator",
398 "Network-Operator" : "Network Operator"
400 var $select = one.lib.form.select.create(options);
401 $select.attr('id', one.main.admin.id.modal.add.form.role);
402 $fieldset.append($label).append($select);
403 $form.append($fieldset);
406 footer : function() {
409 var addButton = one.lib.dashlet.button.single("Add User",
410 one.main.admin.id.modal.add.user, "btn-primary", "");
411 var $addButton = one.lib.dashlet.button.button(addButton);
412 footer.push($addButton);
414 var closeButton = one.lib.dashlet.button.single("Close",
415 one.main.admin.id.modal.add.close, "", "");
416 var $closeButton = one.lib.dashlet.button.button(closeButton);
417 footer.push($closeButton);
426 top : $("#left-top .dashlet"),
427 bottom : $("#left-bottom .dashlet")
430 bottom : $("#right-bottom .dashlet")
435 $(".modal").on('hidden', function() {
439 $("#alert .close").click(function() {
446 one.role = $('#admin').data('role');
449 $("#admin").click(function() {
450 one.main.admin.modal.initialize(function($modal) {
456 $("#save").click(function() {
457 $.post(one.main.constants.address.save, function(data) {
458 if (data == "Success") {
459 one.lib.alert("Configuration Saved");
461 one.lib.alert("Unable to save configuration: " + data);
467 $("#logout").click(function() {
468 location.href = "/logout";
472 complete : function(xhr, textStatus) {
473 var mime = xhr.getResponseHeader('Content-Type');
474 if (mime.substring(0, 9) == 'text/html') {
480 /** MAIN PAGE LOAD */
481 one.main.menu.load();