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",
128 verify : "one_main_admin_id_modal_add_form_verify"
132 user : "one_main_admin_id_modal_remove_user",
133 close : "one_main_admin_id_modal_remove_close",
134 password : 'one_main_admin_id_modal_remove_password'
137 modal : 'one_main_admin_id_modal_password_modal',
138 submit : 'one_main_admin_id_modal_password_submit',
139 cancel : 'one_main_admin_id_modal_password_cancel',
141 old : 'one_main_admin_id_modal_password_form_old',
142 set : 'one_main_admin_id_modal_password_form_new',
143 verify : 'one_main_admin_id_modal_password_form_verify'
148 user : "one_main_admin_id_add_user"
154 password : '/admin/users/password/'
157 initialize : function(callback) {
158 var h3 = "Welcome " + $('#admin').text();
159 var footer = one.main.admin.modal.footer();
160 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.main, h3,
164 $('#' + one.main.admin.id.modal.close, $modal).click(function() {
165 $modal.modal('hide');
169 one.main.admin.ajax.users(function($body) {
170 one.lib.modal.inject.body($modal, $body);
173 // modal show callback
176 footer : function() {
179 var closeButton = one.lib.dashlet.button.single("Close",
180 one.main.admin.id.modal.close, "", "");
181 var $closeButton = one.lib.dashlet.button.button(closeButton);
182 footer.push($closeButton);
188 users : function(callback) {
189 $.getJSON(one.main.admin.address.root
190 + one.main.admin.address.users, function(data) {
191 var body = one.main.admin.data.users(data);
192 var $body = one.main.admin.body.users(body);
198 users : function(data) {
200 $(data).each(function(index, value) {
203 entry.push(value['user']);
204 entry.push(value['roles']);
206 tr['id'] = value['user'];
213 users : function(body) {
214 var $div = $(document.createElement('div'));
215 var $h5 = $(document.createElement('h5'));
216 $h5.append("Manage Users");
217 var attributes = [ "table-striped", "table-bordered",
218 "table-hover", "table-cursor" ];
219 var $table = one.lib.dashlet.table.table(attributes);
220 var headers = [ "User", "Role" ];
221 var $thead = one.lib.dashlet.table.header(headers);
222 var $tbody = one.lib.dashlet.table.body(body);
223 $table.append($thead).append($tbody);
227 $table.find('tr').click(function() {
228 var id = $(this).data('id');
229 one.main.admin.remove.modal.initialize(id);
234 $div.append($h5).append($table);
237 var addUserButton = one.lib.dashlet.button.single("Add User",
238 one.main.admin.id.add.user, "btn-primary", "btn-mini");
239 var $addUserButton = one.lib.dashlet.button
240 .button(addUserButton);
241 $div.append($addUserButton);
244 $addUserButton.click(function() {
245 one.main.admin.add.modal.initialize();
254 initialize : function(id) {
255 var h3 = "Edit User";
256 var footer = one.main.admin.remove.footer();
257 var $body = one.main.admin.remove.body();
258 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user,
262 $('#' + one.main.admin.id.modal.remove.close, $modal).click(
264 $modal.modal('hide');
268 $('#' + one.main.admin.id.modal.remove.user, $modal)
271 one.main.admin.remove.modal
275 if (result == 'Success') {
280 + one.main.admin.id.modal.main);
282 .users(function($body) {
289 alert("Failed to remove user: "
294 // change password binding
295 $('#' + one.main.admin.id.modal.remove.password, $modal).click(function() {
296 one.main.admin.password.initialize(id, function() {
297 $modal.modal('hide');
303 ajax : function(id, callback) {
304 $.post(one.main.admin.address.root
305 + one.main.admin.address.users + '/' + id,
312 footer : function() {
315 var removeButton = one.lib.dashlet.button.single("Remove User",
316 one.main.admin.id.modal.remove.user, "btn-danger", "");
317 var $removeButton = one.lib.dashlet.button.button(removeButton);
318 footer.push($removeButton);
320 var change = one.lib.dashlet.button.single('Change Password',
321 one.main.admin.id.modal.remove.password, 'btn-success', '');
322 var $change = one.lib.dashlet.button.button(change);
323 footer.push($change);
325 var closeButton = one.lib.dashlet.button.single("Close",
326 one.main.admin.id.modal.remove.close, "", "");
327 var $closeButton = one.lib.dashlet.button.button(closeButton);
328 footer.push($closeButton);
333 var $p = $(document.createElement('p'));
334 $p.append('Select an action');
340 initialize : function() {
342 var footer = one.main.admin.add.footer();
343 var $body = one.main.admin.add.body();
344 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user,
348 $('#' + one.main.admin.id.modal.add.close, $modal).click(
350 $modal.modal('hide');
354 $('#' + one.main.admin.id.modal.add.user, $modal)
357 one.main.admin.add.modal
361 if (result == 'Success') {
366 + one.main.admin.id.modal.main);
368 .users(function($body) {
375 alert("Failed to add user: "
382 add : function($modal, callback) {
384 user['user'] = $modal.find(
385 '#' + one.main.admin.id.modal.add.form.name).val();
386 user['password'] = $modal.find(
387 '#' + one.main.admin.id.modal.add.form.password).val();
389 roles[0] = $modal.find(
390 '#' + one.main.admin.id.modal.add.form.role).find(
391 'option:selected').attr('value');
392 user['roles'] = roles;
395 var verify = $('#'+one.main.admin.id.modal.add.form.verify).val();
396 if (user.password != verify) {
397 alert('Passwords do not match');
402 resource['json'] = JSON.stringify(user);
403 resource['action'] = 'add'
405 one.main.admin.add.modal.ajax(resource, callback);
407 ajax : function(data, callback) {
408 $.post(one.main.admin.address.root
409 + one.main.admin.address.users, data, function(data) {
415 var $form = $(document.createElement('form'));
416 var $fieldset = $(document.createElement('fieldset'));
418 var $label = one.lib.form.label('Username');
419 var $input = one.lib.form.input('Username');
420 $input.attr('id', one.main.admin.id.modal.add.form.name);
421 $fieldset.append($label).append($input);
423 var $label = one.lib.form.label('Password');
424 var $input = one.lib.form.input('Password');
425 $input.attr('id', one.main.admin.id.modal.add.form.password);
426 $input.attr('type', 'password');
427 $fieldset.append($label).append($input);
429 var $label = one.lib.form.label('Verify Password');
430 var $input = one.lib.form.input('Verify Password');
431 $input.attr('id', one.main.admin.id.modal.add.form.verify);
432 $input.attr('type', 'password');
433 $fieldset.append($label).append($input);
435 var $label = one.lib.form.label('Roles');
437 "Network-Admin" : "Network Administrator",
438 "Network-Operator" : "Network Operator"
440 var $select = one.lib.form.select.create(options);
441 $select.attr('id', one.main.admin.id.modal.add.form.role);
442 $fieldset.append($label).append($select);
443 $form.append($fieldset);
446 footer : function() {
449 var addButton = one.lib.dashlet.button.single("Add User",
450 one.main.admin.id.modal.add.user, "btn-primary", "");
451 var $addButton = one.lib.dashlet.button.button(addButton);
452 footer.push($addButton);
454 var closeButton = one.lib.dashlet.button.single("Close",
455 one.main.admin.id.modal.add.close, "", "");
456 var $closeButton = one.lib.dashlet.button.button(closeButton);
457 footer.push($closeButton);
463 initialize : function(id, successCallback) {
464 var h3 = 'Change Password';
465 var footer = one.main.admin.password.footer();
466 var $body = one.main.admin.password.body(id);;
467 var $modal = one.lib.modal.spawn(one.main.admin.id.modal.password.modal,
471 $('#'+one.main.admin.id.modal.password.cancel, $modal).click(function() {
472 $modal.modal('hide');
475 // change password binding
476 $('#'+one.main.admin.id.modal.password.submit, $modal).click(function() {
477 one.main.admin.password.submit(id, $modal, function(result) {
478 if (result.code == 'SUCCESS') {
479 $modal.modal('hide');
482 alert(result.code+': '+result.description);
489 submit : function(id, $modal, callback) {
491 resource.newPassword = $('#'+one.main.admin.id.modal.password.form.set, $modal).val();
494 var verify = $('#'+one.main.admin.id.modal.password.form.verify, $modal).val();
495 if (verify != resource.newPassword) {
496 alert('Passwords do not match');
500 resource.currentPassword = $('#'+one.main.admin.id.modal.password.form.old, $modal).val();
502 $.post(one.main.admin.address.password+id, resource, function(data) {
506 body : function(id) {
507 var $form = $(document.createElement('form'));
508 var $fieldset = $(document.createElement('fieldset'));
510 var $label = one.lib.form.label('Username');
511 var $input = one.lib.form.input('');
512 $input.attr('disabled', 'disabled');
514 $fieldset.append($label)
517 var $label = one.lib.form.label('Old Password');
518 var $input = one.lib.form.input('Old Password');
519 $input.attr('id', one.main.admin.id.modal.password.form.old);
520 $input.attr('type', 'password');
521 $fieldset.append($label).append($input);
523 var $label = one.lib.form.label('New Password');
524 var $input = one.lib.form.input('New Password');
525 $input.attr('id', one.main.admin.id.modal.password.form.set);
526 $input.attr('type', 'password');
527 $fieldset.append($label).append($input);
528 // verify new password
529 var $label = one.lib.form.label('Verify Password');
530 var $input = one.lib.form.input('Verify Password');
531 $input.attr('id', one.main.admin.id.modal.password.form.verify);
532 $input.attr('type', 'password');
533 $fieldset.append($label).append($input);
535 $form.append($fieldset);
538 footer : function() {
540 var submit = one.lib.dashlet.button.single('Submit',
541 one.main.admin.id.modal.password.submit, 'btn-primary', '');
542 var $submit = one.lib.dashlet.button.button(submit);
543 footer.push($submit);
544 var cancel = one.lib.dashlet.button.single('Cancel',
545 one.main.admin.id.modal.password.cancel, '', '');
546 var $cancel = one.lib.dashlet.button.button(cancel);
547 footer.push($cancel);
555 top : $("#left-top .dashlet"),
556 bottom : $("#left-bottom .dashlet")
559 bottom : $("#right-bottom .dashlet")
564 $(".modal").on('hidden', function() {
568 $("#alert .close").click(function() {
575 one.role = $('#admin').data('role');
578 $("#admin").click(function() {
579 one.main.admin.modal.initialize(function($modal) {
585 $("#save").click(function() {
586 $.post(one.main.constants.address.save, function(data) {
587 if (data == "Success") {
588 one.lib.alert("Configuration Saved");
590 one.lib.alert("Unable to save configuration: " + data);
596 $("#logout").click(function() {
597 location.href = "/logout";
601 complete : function(xhr, textStatus) {
602 var mime = xhr.getResponseHeader('Content-Type');
603 if (mime.substring(0, 9) == 'text/html') {
609 /** MAIN PAGE LOAD */
610 one.main.menu.load();