From 16de408453440b640acbaac29b9bfd89fdc6851d Mon Sep 17 00:00:00 2001 From: Andrew Kim Date: Tue, 10 Sep 2013 15:43:01 -0500 Subject: [PATCH 1/1] Add page loading semaphore Change-Id: I625eb9fe50732ce4fad17ffdfc650ba129c9ef5c Signed-off-by: Andrew Kim --- .../web/root/src/main/resources/js/open.js | 1299 +++++++++-------- 1 file changed, 654 insertions(+), 645 deletions(-) diff --git a/opendaylight/web/root/src/main/resources/js/open.js b/opendaylight/web/root/src/main/resources/js/open.js index 85e4d472ef..b2502ad71a 100644 --- a/opendaylight/web/root/src/main/resources/js/open.js +++ b/opendaylight/web/root/src/main/resources/js/open.js @@ -1,680 +1,689 @@ one.main = {}; one.main.constants = { - address : { - menu : "/web.json", - prefix : "/controller/web", - save : "/save" - } + address : { + menu : "/web.json", + prefix : "/controller/web", + save : "/save" + } } one.main.menu = { - load : function() { - one.main.menu.ajax(function(data) { - // reparse the ajax data - var result = one.main.menu.data.menu(data); - // transform into list to append to menu - var $div = one.main.menu.menu(result); - // append to menu - $("#menu .nav").append($div.children()); - // binding all menu items - var $menu = $("#menu .nav a"); - $menu.click(function() { - var href = $(this).attr('href').substring(1); - one.main.page.load(href); - var $li = $(this).parent(); - // reset all other active - $menu.each(function(index, value) { - $(value).parent().removeClass('active'); - }); - $li.addClass('active'); - }); - // reset or go to first menu item by default - var currentLocation = location.hash; - if (data[currentLocation.substring(1)] == undefined) { - $($menu[0]).click(); - } else { - $menu.each(function(index, value) { - var menuLocation = $(value).attr('href'); - if (currentLocation == menuLocation) { - $($menu[index]).click(); - return; - } - }); - } - }); - }, - menu : function(result) { - var $div = $(document.createElement('div')); - $(result).each(function(index, value) { - if (value != undefined) { - var $li = $(document.createElement('li')); - var $a = $(document.createElement('a')); - $a.text(value['name']); - $a.attr('href', '#' + value['id']); - $li.append($a); - $div.append($li); - } + registry : { + load : false + }, + load : function() { + one.main.menu.ajax(function(data) { + // reparse the ajax data + var result = one.main.menu.data.menu(data); + // transform into list to append to menu + var $div = one.main.menu.menu(result); + // append to menu + $("#menu .nav").append($div.children()); + // binding all menu items + var $menu = $("#menu .nav a"); + $menu.click(function() { + if (one.main.menu.registry.load === true) { + return false; + } + one.main.menu.registry.load = true; + var href = $(this).attr('href').substring(1); + one.main.page.load(href); + var $li = $(this).parent(); + // reset all other active + $menu.each(function(index, value) { + $(value).parent().removeClass('active'); }); - return $div; - }, - ajax : function(successCallback) { - $.getJSON(one.main.constants.address.menu, function(data) { - successCallback(data); + $li.addClass('active'); + }); + // reset or go to first menu item by default + var currentLocation = location.hash; + if (data[currentLocation.substring(1)] == undefined) { + $($menu[0]).click(); + } else { + $menu.each(function(index, value) { + var menuLocation = $(value).attr('href'); + if (currentLocation == menuLocation) { + $($menu[index]).click(); + return; + } }); - }, - data : { - menu : function(data) { - var result = []; - $.each(data, function(key, value) { - var order = value['order']; - if (order >= 0) { - var name = value['name']; - var entry = { - 'name' : name, - 'id' : key - }; - result[order] = entry; - } - }); - return result; + } + }); + }, + menu : function(result) { + var $div = $(document.createElement('div')); + $(result).each(function(index, value) { + if (value != undefined) { + var $li = $(document.createElement('li')); + var $a = $(document.createElement('a')); + $a.text(value['name']); + $a.attr('href', '#' + value['id']); + $li.append($a); + $div.append($li); + } + }); + return $div; + }, + ajax : function(successCallback) { + $.getJSON(one.main.constants.address.menu, function(data) { + successCallback(data); + }); + }, + data : { + menu : function(data) { + var result = []; + $.each(data, function(key, value) { + var order = value['order']; + if (order >= 0) { + var name = value['name']; + var entry = { + 'name' : name, + 'id' : key + }; + result[order] = entry; } + }); + return result; } + } } one.main.page = { - load : function(page) { - if (one.f !== undefined && one.f.cleanUp !== undefined) { - one.f.cleanUp(); - } - // clear page related - delete one.f; - $('.dashlet', '#main').empty(); - $('.nav', '#main').empty(); - // fetch page's js - $.getScript(one.main.constants.address.prefix + "/" + page - + "/js/page.js"); - - $.ajaxSetup({ - data : { - 'x-page-url' : page - } - }); - }, - dashlet : function($nav, dashlet) { - var $li = $(document.createElement('li')); - var $a = $(document.createElement('a')); - $a.text(dashlet.name); - $a.attr('id', dashlet.id); - $a.attr('href', '#'); - $li.append($a); - $nav.append($li); + load : function(page) { + if (one.f !== undefined && one.f.cleanUp !== undefined) { + one.f.cleanUp(); } + // clear page related + delete one.f; + $('.dashlet', '#main').empty(); + $('.nav', '#main').empty(); + // fetch page's js + $.getScript(one.main.constants.address.prefix+"/"+page+"/js/page.js") + .success(function() { + one.main.menu.registry.load = false; + }); + + $.ajaxSetup({ + data : { + 'x-page-url' : page + } + }); + }, + dashlet : function($nav, dashlet) { + var $li = $(document.createElement('li')); + var $a = $(document.createElement('a')); + $a.text(dashlet.name); + $a.attr('id', dashlet.id); + $a.attr('href', '#'); + $li.append($a); + $nav.append($li); + } } one.main.admin = { - id : { - modal : { - main : "one_main_admin_id_modal_main", - close : "one_main_admin_id_modal_close", - user : "one_main_admin_id_modal_user", - add : { - user : "one_main_admin_id_modal_add_user", - close : "one_main_admin_id_modal_add_close", - form : { - name : "one_main_admin_id_modal_add_form_name", - role : "one_main_admin_id_modal_add_form_role", - password : "one_main_admin_id_modal_add_form_password", - verify : "one_main_admin_id_modal_add_form_verify" - } - }, - remove : { - user : "one_main_admin_id_modal_remove_user", - close : "one_main_admin_id_modal_remove_close", - password : 'one_main_admin_id_modal_remove_password' - }, - password : { - modal : 'one_main_admin_id_modal_password_modal', - submit : 'one_main_admin_id_modal_password_submit', - cancel : 'one_main_admin_id_modal_password_cancel', - form : { - old : 'one_main_admin_id_modal_password_form_old', - set : 'one_main_admin_id_modal_password_form_new', - verify : 'one_main_admin_id_modal_password_form_verify' - } - } - }, - add : { - user : "one_main_admin_id_add_user" + id : { + modal : { + main : "one_main_admin_id_modal_main", + close : "one_main_admin_id_modal_close", + user : "one_main_admin_id_modal_user", + add : { + user : "one_main_admin_id_modal_add_user", + close : "one_main_admin_id_modal_add_close", + form : { + name : "one_main_admin_id_modal_add_form_name", + role : "one_main_admin_id_modal_add_form_role", + password : "one_main_admin_id_modal_add_form_password", + verify : "one_main_admin_id_modal_add_form_verify" + } + }, + remove : { + user : "one_main_admin_id_modal_remove_user", + close : "one_main_admin_id_modal_remove_close", + password : 'one_main_admin_id_modal_remove_password' + }, + password : { + modal : 'one_main_admin_id_modal_password_modal', + submit : 'one_main_admin_id_modal_password_submit', + cancel : 'one_main_admin_id_modal_password_cancel', + form : { + old : 'one_main_admin_id_modal_password_form_old', + set : 'one_main_admin_id_modal_password_form_new', + verify : 'one_main_admin_id_modal_password_form_verify' } + } }, - address : { - root : "/admin", - users : "/users", - password : '/admin/users/password/' + add : { + user : "one_main_admin_id_add_user" + } + }, + address : { + root : "/admin", + users : "/users", + password : '/admin/users/password/' + }, + modal : { + initialize : function(callback) { + var h3 = "Welcome " + $('#admin').text(); + var footer = one.main.admin.modal.footer(); + var $modal = one.lib.modal.spawn(one.main.admin.id.modal.main, h3, + '', footer); + + // close binding + $('#' + one.main.admin.id.modal.close, $modal).click(function() { + $modal.modal('hide'); + }); + + // body inject + one.main.admin.ajax.users(function($body) { + one.lib.modal.inject.body($modal, $body); + }); + + // modal show callback + callback($modal); }, - modal : { - initialize : function(callback) { - var h3 = "Welcome " + $('#admin').text(); - var footer = one.main.admin.modal.footer(); - var $modal = one.lib.modal.spawn(one.main.admin.id.modal.main, h3, - '', footer); - - // close binding - $('#' + one.main.admin.id.modal.close, $modal).click(function() { - $modal.modal('hide'); - }); + footer : function() { + var footer = []; + var closeButton = one.lib.dashlet.button.single('Close', one.main.admin.id.modal.close, '', ''); + var $closeButton = one.lib.dashlet.button.button(closeButton); + footer.push($closeButton); + return footer; + } + }, + ajax : { + users : function(callback) { + $.getJSON(one.main.admin.address.root + + one.main.admin.address.users, function(data) { + var body = one.main.admin.data.users(data); + var $body = one.main.admin.body.users(body); + callback($body); + }); + } + }, + data : { + users : function(data) { + var body = []; + $(data).each(function(index, value) { + var tr = {}; + var entry = []; + entry.push(value['user']); + entry.push(value['roles']); + tr['entry'] = entry; + tr['id'] = value['user']; + body.push(tr); + }); + return body; + } + }, + body : { + users : function(body) { + var $div = $(document.createElement('div')); + var $h5 = $(document.createElement('h5')); + $h5.append("Manage Users"); + var attributes = [ "table-striped", "table-bordered", + "table-hover", "table-cursor" ]; + var $table = one.lib.dashlet.table.table(attributes); + var headers = [ "User", "Role" ]; + var $thead = one.lib.dashlet.table.header(headers); + var $tbody = one.lib.dashlet.table.body(body); + $table.append($thead).append($tbody); + + // bind table + if (one.role < 2) { + $table.find('tr').click(function() { + var id = $(this).data('id'); + one.main.admin.remove.modal.initialize(id); + }); + } - // body inject - one.main.admin.ajax.users(function($body) { - one.lib.modal.inject.body($modal, $body); - }); + // append to div + $div.append($h5).append($table); - // modal show callback - callback($modal); - }, - footer : function() { - var footer = []; - var closeButton = one.lib.dashlet.button.single('Close', one.main.admin.id.modal.close, '', ''); - var $closeButton = one.lib.dashlet.button.button(closeButton); - footer.push($closeButton); - return footer; - } + if (one.role < 2) { + var addUserButton = one.lib.dashlet.button.single("Add User", + one.main.admin.id.add.user, "btn-primary", "btn-mini"); + var $addUserButton = one.lib.dashlet.button + .button(addUserButton); + $div.append($addUserButton); + + // add user binding + $addUserButton.click(function() { + one.main.admin.add.modal.initialize(); + }); + } + + return $div; + } + }, + remove : { + modal : { + initialize : function(id) { + var h3 = "Edit User"; + var footer = one.main.admin.remove.footer(); + var $body = one.main.admin.remove.body(); + var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user, + h3, $body, footer); + // close binding + $('#'+one.main.admin.id.modal.remove.close, $modal).click(function() { + $modal.modal('hide'); + }); + // remove binding + $('#' + one.main.admin.id.modal.remove.user, $modal).click(function() { + one.main.admin.remove.modal.ajax(id, function(result) { + if (result == 'Success') { + $modal.modal('hide'); + // body inject + var $admin = $('#'+one.main.admin.id.modal.main); + one.main.admin.ajax.users(function($body) { + one.lib.modal.inject.body($admin, $body); + }); + } else { + alert("Failed to remove user: " + result); + } + }); + }); + // change password binding + $('#' + one.main.admin.id.modal.remove.password, $modal).click(function() { + one.main.admin.password.initialize(id, function() { + $modal.modal('hide'); + }); + }); + $modal.modal(); + }, + ajax : function(id, callback) { + $.post(one.main.admin.address.root + one.main.admin.address.users + '/' + id, function(data) { + callback(data); + }); + }, }, - ajax : { - users : function(callback) { - $.getJSON(one.main.admin.address.root - + one.main.admin.address.users, function(data) { - var body = one.main.admin.data.users(data); - var $body = one.main.admin.body.users(body); - callback($body); - }); - } + footer : function() { + var footer = []; + var removeButton = one.lib.dashlet.button.single("Remove User", + one.main.admin.id.modal.remove.user, "btn-danger", ""); + var $removeButton = one.lib.dashlet.button.button(removeButton); + footer.push($removeButton); + var change = one.lib.dashlet.button.single('Change Password', + one.main.admin.id.modal.remove.password, 'btn-success', ''); + var $change = one.lib.dashlet.button.button(change); + footer.push($change); + var closeButton = one.lib.dashlet.button.single("Close", + one.main.admin.id.modal.remove.close, "", ""); + var $closeButton = one.lib.dashlet.button.button(closeButton); + footer.push($closeButton); + return footer; }, - data : { - users : function(data) { - var body = []; - $(data).each(function(index, value) { - var tr = {}; - var entry = []; - entry.push(value['user']); - entry.push(value['roles']); - tr['entry'] = entry; - tr['id'] = value['user']; - body.push(tr); - }); - return body; - } + body : function() { + var $p = $(document.createElement('p')); + $p.append('Select an action'); + return $p; }, - body : { - users : function(body) { - var $div = $(document.createElement('div')); - var $h5 = $(document.createElement('h5')); - $h5.append("Manage Users"); - var attributes = [ "table-striped", "table-bordered", - "table-hover", "table-cursor" ]; - var $table = one.lib.dashlet.table.table(attributes); - var headers = [ "User", "Role" ]; - var $thead = one.lib.dashlet.table.header(headers); - var $tbody = one.lib.dashlet.table.body(body); - $table.append($thead).append($tbody); - - // bind table - if (one.role < 2) { - $table.find('tr').click(function() { - var id = $(this).data('id'); - one.main.admin.remove.modal.initialize(id); - }); + }, + add : { + modal : { + initialize : function() { + var h3 = "Add User"; + var footer = one.main.admin.add.footer(); + var $body = one.main.admin.add.body(); + var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user, + h3, $body, footer); + // close binding + $('#' + one.main.admin.id.modal.add.close, $modal).click(function() { + $modal.modal('hide'); + }); + // add binding + $('#' + one.main.admin.id.modal.add.user, $modal).click(function() { + one.main.admin.add.modal.add($modal, function(result) { + if (result == 'Success') { + $modal.modal('hide'); + // body inject + var $admin = $('#'+one.main.admin.id.modal.main); + one.main.admin.ajax.users(function($body) { + one.lib.modal.inject.body($admin, $body); + }); + } else { + alert("Failed to add user: "+result); } + }); + }); + $modal.modal(); + }, + add : function($modal, callback) { + var user = {}; + user['user'] = $modal.find( + '#' + one.main.admin.id.modal.add.form.name).val(); + user['password'] = $modal.find( + '#' + one.main.admin.id.modal.add.form.password).val(); + roles = new Array(); + roles[0] = $modal.find( + '#' + one.main.admin.id.modal.add.form.role).find( + 'option:selected').attr('value'); + user['roles'] = roles; + + // password check + var verify = $('#'+one.main.admin.id.modal.add.form.verify).val(); + if (user.password != verify) { + alert('Passwords do not match'); + return false; + } - // append to div - $div.append($h5).append($table); + var resource = {}; + resource['json'] = JSON.stringify(user); + resource['action'] = 'add' - if (one.role < 2) { - var addUserButton = one.lib.dashlet.button.single("Add User", - one.main.admin.id.add.user, "btn-primary", "btn-mini"); - var $addUserButton = one.lib.dashlet.button - .button(addUserButton); - $div.append($addUserButton); + one.main.admin.add.modal.ajax(resource, callback); + }, + ajax : function(data, callback) { + $.post(one.main.admin.address.root + + one.main.admin.address.users, data, function(data) { + callback(data); + }); + } + }, + body : function() { + var $form = $(document.createElement('form')); + var $fieldset = $(document.createElement('fieldset')); + // user + var $label = one.lib.form.label('Username'); + var $input = one.lib.form.input('Username'); + $input.attr('id', one.main.admin.id.modal.add.form.name); + $fieldset.append($label).append($input); + // password + var $label = one.lib.form.label('Password'); + var $input = one.lib.form.input('Password'); + $input.attr('id', one.main.admin.id.modal.add.form.password); + $input.attr('type', 'password'); + $fieldset.append($label).append($input); + // password verify + var $label = one.lib.form.label('Verify Password'); + var $input = one.lib.form.input('Verify Password'); + $input.attr('id', one.main.admin.id.modal.add.form.verify); + $input.attr('type', 'password'); + $fieldset.append($label).append($input); + // roles + var $label = one.lib.form.label('Roles'); + var options = { + "Network-Admin" : "Network Administrator", + "Network-Operator" : "Network Operator" + }; + var $select = one.lib.form.select.create(options); + $select.attr('id', one.main.admin.id.modal.add.form.role); + $fieldset.append($label).append($select); + $form.append($fieldset); + return $form; + }, + footer : function() { + var footer = []; - // add user binding - $addUserButton.click(function() { - one.main.admin.add.modal.initialize(); - }); - } + var addButton = one.lib.dashlet.button.single("Add User", + one.main.admin.id.modal.add.user, "btn-primary", ""); + var $addButton = one.lib.dashlet.button.button(addButton); + footer.push($addButton); - return $div; - } + var closeButton = one.lib.dashlet.button.single("Close", + one.main.admin.id.modal.add.close, "", ""); + var $closeButton = one.lib.dashlet.button.button(closeButton); + footer.push($closeButton); + + return footer; + } + }, + password : { + initialize : function(id, successCallback) { + var h3 = 'Change Password'; + var footer = one.main.admin.password.footer(); + var $body = one.main.admin.password.body(id);; + var $modal = one.lib.modal.spawn(one.main.admin.id.modal.password.modal, + h3, $body, footer); + + // cancel binding + $('#'+one.main.admin.id.modal.password.cancel, $modal).click(function() { + $modal.modal('hide'); + }); + + // change password binding + $('#'+one.main.admin.id.modal.password.submit, $modal).click(function() { + one.main.admin.password.submit(id, $modal, function(result) { + if (result.code == 'SUCCESS') { + $modal.modal('hide'); + successCallback(); + } else { + alert(result.code+': '+result.description); + } + }); + }); + + $modal.modal(); }, - remove : { - modal : { - initialize : function(id) { - var h3 = "Edit User"; - var footer = one.main.admin.remove.footer(); - var $body = one.main.admin.remove.body(); - var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user, - h3, $body, footer); - // close binding - $('#'+one.main.admin.id.modal.remove.close, $modal).click(function() { - $modal.modal('hide'); - }); - // remove binding - $('#' + one.main.admin.id.modal.remove.user, $modal).click(function() { - one.main.admin.remove.modal.ajax(id, function(result) { - if (result == 'Success') { - $modal.modal('hide'); - // body inject - var $admin = $('#'+one.main.admin.id.modal.main); - one.main.admin.ajax.users(function($body) { - one.lib.modal.inject.body($admin, $body); - }); - } else { - alert("Failed to remove user: " + result); - } - }); - }); - // change password binding - $('#' + one.main.admin.id.modal.remove.password, $modal).click(function() { - one.main.admin.password.initialize(id, function() { - $modal.modal('hide'); - }); - }); - $modal.modal(); - }, - ajax : function(id, callback) { - $.post(one.main.admin.address.root + one.main.admin.address.users + '/' + id, function(data) { - callback(data); - }); - }, - }, - footer : function() { - var footer = []; - var removeButton = one.lib.dashlet.button.single("Remove User", - one.main.admin.id.modal.remove.user, "btn-danger", ""); - var $removeButton = one.lib.dashlet.button.button(removeButton); - footer.push($removeButton); - var change = one.lib.dashlet.button.single('Change Password', - one.main.admin.id.modal.remove.password, 'btn-success', ''); - var $change = one.lib.dashlet.button.button(change); - footer.push($change); - var closeButton = one.lib.dashlet.button.single("Close", - one.main.admin.id.modal.remove.close, "", ""); - var $closeButton = one.lib.dashlet.button.button(closeButton); - footer.push($closeButton); - return footer; - }, - body : function() { - var $p = $(document.createElement('p')); - $p.append('Select an action'); - return $p; - }, + submit : function(id, $modal, callback) { + var resource = {}; + resource.newPassword = $('#'+one.main.admin.id.modal.password.form.set, $modal).val(); + + // verify password + var verify = $('#'+one.main.admin.id.modal.password.form.verify, $modal).val(); + if (verify != resource.newPassword) { + alert('Passwords do not match'); + return false; + } + + resource.currentPassword = $('#'+one.main.admin.id.modal.password.form.old, $modal).val(); + + $.post(one.main.admin.address.password+id, resource, function(data) { + callback(data); + }); }, - add : { - modal : { - initialize : function() { - var h3 = "Add User"; - var footer = one.main.admin.add.footer(); - var $body = one.main.admin.add.body(); - var $modal = one.lib.modal.spawn(one.main.admin.id.modal.user, - h3, $body, footer); - // close binding - $('#' + one.main.admin.id.modal.add.close, $modal).click(function() { - $modal.modal('hide'); - }); - // add binding - $('#' + one.main.admin.id.modal.add.user, $modal).click(function() { - one.main.admin.add.modal.add($modal, function(result) { - if (result == 'Success') { - $modal.modal('hide'); - // body inject - var $admin = $('#'+one.main.admin.id.modal.main); - one.main.admin.ajax.users(function($body) { - one.lib.modal.inject.body($admin, $body); - }); - } else { - alert("Failed to add user: "+result); - } - }); - }); - $modal.modal(); - }, - add : function($modal, callback) { - var user = {}; - user['user'] = $modal.find( - '#' + one.main.admin.id.modal.add.form.name).val(); - user['password'] = $modal.find( - '#' + one.main.admin.id.modal.add.form.password).val(); - roles = new Array(); - roles[0] = $modal.find( - '#' + one.main.admin.id.modal.add.form.role).find( - 'option:selected').attr('value'); - user['roles'] = roles; - - // password check - var verify = $('#'+one.main.admin.id.modal.add.form.verify).val(); - if (user.password != verify) { - alert('Passwords do not match'); - return false; - } - - var resource = {}; - resource['json'] = JSON.stringify(user); - resource['action'] = 'add' - - one.main.admin.add.modal.ajax(resource, callback); - }, - ajax : function(data, callback) { - $.post(one.main.admin.address.root - + one.main.admin.address.users, data, function(data) { - callback(data); - }); - } - }, - body : function() { - var $form = $(document.createElement('form')); - var $fieldset = $(document.createElement('fieldset')); - // user - var $label = one.lib.form.label('Username'); - var $input = one.lib.form.input('Username'); - $input.attr('id', one.main.admin.id.modal.add.form.name); - $fieldset.append($label).append($input); - // password - var $label = one.lib.form.label('Password'); - var $input = one.lib.form.input('Password'); - $input.attr('id', one.main.admin.id.modal.add.form.password); - $input.attr('type', 'password'); - $fieldset.append($label).append($input); - // password verify - var $label = one.lib.form.label('Verify Password'); - var $input = one.lib.form.input('Verify Password'); - $input.attr('id', one.main.admin.id.modal.add.form.verify); - $input.attr('type', 'password'); - $fieldset.append($label).append($input); - // roles - var $label = one.lib.form.label('Roles'); - var options = { - "Network-Admin" : "Network Administrator", - "Network-Operator" : "Network Operator" - }; - var $select = one.lib.form.select.create(options); - $select.attr('id', one.main.admin.id.modal.add.form.role); - $fieldset.append($label).append($select); - $form.append($fieldset); - return $form; - }, - footer : function() { - var footer = []; - - var addButton = one.lib.dashlet.button.single("Add User", - one.main.admin.id.modal.add.user, "btn-primary", ""); - var $addButton = one.lib.dashlet.button.button(addButton); - footer.push($addButton); - - var closeButton = one.lib.dashlet.button.single("Close", - one.main.admin.id.modal.add.close, "", ""); - var $closeButton = one.lib.dashlet.button.button(closeButton); - footer.push($closeButton); - - return footer; - } + body : function(id) { + var $form = $(document.createElement('form')); + var $fieldset = $(document.createElement('fieldset')); + // user + var $label = one.lib.form.label('Username'); + var $input = one.lib.form.input(''); + $input.attr('disabled', 'disabled'); + $input.val(id); + $fieldset.append($label) + .append($input); + // old password + var $label = one.lib.form.label('Old Password'); + var $input = one.lib.form.input('Old Password'); + $input.attr('id', one.main.admin.id.modal.password.form.old); + $input.attr('type', 'password'); + $fieldset.append($label).append($input); + // new password + var $label = one.lib.form.label('New Password'); + var $input = one.lib.form.input('New Password'); + $input.attr('id', one.main.admin.id.modal.password.form.set); + $input.attr('type', 'password'); + $fieldset.append($label).append($input); + // verify new password + var $label = one.lib.form.label('Verify Password'); + var $input = one.lib.form.input('Verify Password'); + $input.attr('id', one.main.admin.id.modal.password.form.verify); + $input.attr('type', 'password'); + $fieldset.append($label).append($input); + // return + $form.append($fieldset); + return $form; }, - password : { - initialize : function(id, successCallback) { - var h3 = 'Change Password'; - var footer = one.main.admin.password.footer(); - var $body = one.main.admin.password.body(id);; - var $modal = one.lib.modal.spawn(one.main.admin.id.modal.password.modal, - h3, $body, footer); - - // cancel binding - $('#'+one.main.admin.id.modal.password.cancel, $modal).click(function() { - $modal.modal('hide'); - }); - - // change password binding - $('#'+one.main.admin.id.modal.password.submit, $modal).click(function() { - one.main.admin.password.submit(id, $modal, function(result) { - if (result.code == 'SUCCESS') { - $modal.modal('hide'); - successCallback(); - } else { - alert(result.code+': '+result.description); - } - }); - }); - - $modal.modal(); - }, - submit : function(id, $modal, callback) { - var resource = {}; - resource.newPassword = $('#'+one.main.admin.id.modal.password.form.set, $modal).val(); - - // verify password - var verify = $('#'+one.main.admin.id.modal.password.form.verify, $modal).val(); - if (verify != resource.newPassword) { - alert('Passwords do not match'); - return false; - } - - resource.currentPassword = $('#'+one.main.admin.id.modal.password.form.old, $modal).val(); - - $.post(one.main.admin.address.password+id, resource, function(data) { - callback(data); - }); - }, - body : function(id) { - var $form = $(document.createElement('form')); - var $fieldset = $(document.createElement('fieldset')); - // user - var $label = one.lib.form.label('Username'); - var $input = one.lib.form.input(''); - $input.attr('disabled', 'disabled'); - $input.val(id); - $fieldset.append($label) - .append($input); - // old password - var $label = one.lib.form.label('Old Password'); - var $input = one.lib.form.input('Old Password'); - $input.attr('id', one.main.admin.id.modal.password.form.old); - $input.attr('type', 'password'); - $fieldset.append($label).append($input); - // new password - var $label = one.lib.form.label('New Password'); - var $input = one.lib.form.input('New Password'); - $input.attr('id', one.main.admin.id.modal.password.form.set); - $input.attr('type', 'password'); - $fieldset.append($label).append($input); - // verify new password - var $label = one.lib.form.label('Verify Password'); - var $input = one.lib.form.input('Verify Password'); - $input.attr('id', one.main.admin.id.modal.password.form.verify); - $input.attr('type', 'password'); - $fieldset.append($label).append($input); - // return - $form.append($fieldset); - return $form; - }, - footer : function() { - var footer = []; - var submit = one.lib.dashlet.button.single('Submit', - one.main.admin.id.modal.password.submit, 'btn-primary', ''); - var $submit = one.lib.dashlet.button.button(submit); - footer.push($submit); - var cancel = one.lib.dashlet.button.single('Cancel', - one.main.admin.id.modal.password.cancel, '', ''); - var $cancel = one.lib.dashlet.button.button(cancel); - footer.push($cancel); - return footer; - } - } + footer : function() { + var footer = []; + var submit = one.lib.dashlet.button.single('Submit', + one.main.admin.id.modal.password.submit, 'btn-primary', ''); + var $submit = one.lib.dashlet.button.button(submit); + footer.push($submit); + var cancel = one.lib.dashlet.button.single('Cancel', + one.main.admin.id.modal.password.cancel, '', ''); + var $cancel = one.lib.dashlet.button.button(cancel); + footer.push($cancel); + return footer; + } + } } one.main.cluster = { - id : { // one.main.cluster.id - modal : 'one-main-cluster-id-modal', - close : 'one-main-cluster-id-close', - datagrid : 'one-main-cluster-id-datagrid' - }, - initialize : function() { - var h3 = 'Cluster Management'; - var footer = one.main.cluster.footer(); - var $body = ''; - var $modal = one.lib.modal.spawn(one.main.cluster.id.modal, h3, $body, footer); - - // close - $('#'+one.main.cluster.id.close, $modal).click(function() { - $modal.modal('hide'); - }); - - // body - $.getJSON('/admin/cluster', function(data) { - var $gridHTML = one.lib.dashlet.datagrid.init(one.main.cluster.id.datagrid, { - searchable: true, - filterable: false, - pagination: true, - flexibleRowsPerPage: true - }, 'table-striped table-condensed table-cursor'); - var source = one.main.cluster.data(data); - $gridHTML.datagrid({dataSource : source}).on('loaded', function() { - $(this).find('tbody tr').click(function() { - var $tr = $(this); - if ($tr.find('td:nth-child(1)').attr('colspan') === '1') { - return false; - } - var address = $tr.find('.ux-id').text(); - one.main.cluster.nodes.initialize(address); - }); - }); - one.lib.modal.inject.body($modal, $gridHTML); - }); - - $modal.modal(); - }, - data : function(data) { - var tdata = []; - var registry = []; - $(data).each(function(idx, val) { - var name = val.name; - var address = val.address; - var $registry = $(document.createElement('span')); - $registry - .append(JSON.stringify(address)) - .css('display', 'none') - .addClass('ux-id'); - name = one.lib.dashlet.label(name, null)[0].outerHTML; - name += $registry[0].outerHTML; - if (val.me === true) { - var me = one.lib.dashlet.label('*', 'label-inverse')[0].outerHTML; - name += ' '+me; - } - if (val.coordinator === true) { - var coord = one.lib.dashlet.label('C')[0].outerHTML; - name += ' '+coord; - } - tdata.push({ - 'controller' : name - }); - }); - var source = new StaticDataSource({ - columns : [ - { - property : 'controller', - label : 'Controller', - sortable : true - } - ], - data : tdata, - delay : 0 - }); - return source; - }, - footer : function() { - var footer = []; - var close = one.lib.dashlet.button.single('Close', one.main.cluster.id.close, '', ''); - var $close = one.lib.dashlet.button.button(close); - footer.push($close); - return footer; - } + id : { // one.main.cluster.id + modal : 'one-main-cluster-id-modal', + close : 'one-main-cluster-id-close', + datagrid : 'one-main-cluster-id-datagrid' + }, + initialize : function() { + var h3 = 'Cluster Management'; + var footer = one.main.cluster.footer(); + var $body = ''; + var $modal = one.lib.modal.spawn(one.main.cluster.id.modal, h3, $body, footer); + + // close + $('#'+one.main.cluster.id.close, $modal).click(function() { + $modal.modal('hide'); + }); + + // body + $.getJSON('/admin/cluster', function(data) { + var $gridHTML = one.lib.dashlet.datagrid.init(one.main.cluster.id.datagrid, { + searchable: true, + filterable: false, + pagination: true, + flexibleRowsPerPage: true + }, 'table-striped table-condensed table-cursor'); + var source = one.main.cluster.data(data); + $gridHTML.datagrid({dataSource : source}).on('loaded', function() { + $(this).find('tbody tr').click(function() { + var $tr = $(this); + if ($tr.find('td:nth-child(1)').attr('colspan') === '1') { + return false; + } + var address = $tr.find('.ux-id').text(); + one.main.cluster.nodes.initialize(address); + }); + }); + one.lib.modal.inject.body($modal, $gridHTML); + }); + + $modal.modal(); + }, + data : function(data) { + var tdata = []; + var registry = []; + $(data).each(function(idx, val) { + var name = val.name; + var address = val.address; + var $registry = $(document.createElement('span')); + $registry + .append(JSON.stringify(address)) + .css('display', 'none') + .addClass('ux-id'); + name = one.lib.dashlet.label(name, null)[0].outerHTML; + name += $registry[0].outerHTML; + if (val.me === true) { + var me = one.lib.dashlet.label('*', 'label-inverse')[0].outerHTML; + name += ' '+me; + } + if (val.coordinator === true) { + var coord = one.lib.dashlet.label('C')[0].outerHTML; + name += ' '+coord; + } + tdata.push({ + 'controller' : name + }); + }); + var source = new StaticDataSource({ + columns : [ + { + property : 'controller', + label : 'Controller', + sortable : true + } + ], + data : tdata, + delay : 0 + }); + return source; + }, + footer : function() { + var footer = []; + var close = one.lib.dashlet.button.single('Close', one.main.cluster.id.close, '', ''); + var $close = one.lib.dashlet.button.button(close); + footer.push($close); + return footer; + } } one.main.cluster.nodes = { - id : { // one.main.cluster.nodes.id - modal : 'one-main-cluster-nodes-id-modal', - close : 'one-main-cluster-nodes-id-close', - datagrid : 'one-main-cluser-nodes-id-datagrid' - }, - initialize : function(address) { // one.main.cluster.nodes.initialize - var h3 = 'Connected Nodes'; - var footer = one.main.cluster.nodes.footer(); - var $body = ''; - var $modal = one.lib.modal.spawn(one.main.cluster.nodes.id.modal, h3, $body, footer); - - // close - $('#'+one.main.cluster.nodes.id.close, $modal).click(function() { - $modal.modal('hide'); - }); - - // body - $.getJSON('/admin/cluster/controller/'+address, function(data) { - var $gridHTML = one.lib.dashlet.datagrid.init(one.main.cluster.nodes.id.datagrid, { - searchable: true, - filterable: false, - pagination: true, - flexibleRowsPerPage: true - }, 'table-striped table-condensed'); - var source = one.main.cluster.nodes.data(data); - $gridHTML.datagrid({dataSource : source}); - one.lib.modal.inject.body($modal, $gridHTML); - }); - - $modal.modal(); - }, - data : function(data) { - var tdata = []; - $(data).each(function(idx, val) { - tdata.push({ - 'node' : val.description - }); - }); - var source = new StaticDataSource({ - columns : [ - { - property : 'node', - label : 'Node', - sortable : true - } - ], - data : tdata, - delay : 0 - }); - return source; - }, - footer : function() { // one.main.cluster.nodes.footer - var footer = []; - var close = one.lib.dashlet.button.single('Close', one.main.cluster.nodes.id.close, '', ''); - var $close = one.lib.dashlet.button.button(close); - footer.push($close); - return footer; - } + id : { // one.main.cluster.nodes.id + modal : 'one-main-cluster-nodes-id-modal', + close : 'one-main-cluster-nodes-id-close', + datagrid : 'one-main-cluser-nodes-id-datagrid' + }, + initialize : function(address) { // one.main.cluster.nodes.initialize + var h3 = 'Connected Nodes'; + var footer = one.main.cluster.nodes.footer(); + var $body = ''; + var $modal = one.lib.modal.spawn(one.main.cluster.nodes.id.modal, h3, $body, footer); + + // close + $('#'+one.main.cluster.nodes.id.close, $modal).click(function() { + $modal.modal('hide'); + }); + + // body + $.getJSON('/admin/cluster/controller/'+address, function(data) { + var $gridHTML = one.lib.dashlet.datagrid.init(one.main.cluster.nodes.id.datagrid, { + searchable: true, + filterable: false, + pagination: true, + flexibleRowsPerPage: true + }, 'table-striped table-condensed'); + var source = one.main.cluster.nodes.data(data); + $gridHTML.datagrid({dataSource : source}); + one.lib.modal.inject.body($modal, $gridHTML); + }); + + $modal.modal(); + }, + data : function(data) { + var tdata = []; + $(data).each(function(idx, val) { + tdata.push({ + 'node' : val.description + }); + }); + var source = new StaticDataSource({ + columns : [ + { + property : 'node', + label : 'Node', + sortable : true + } + ], + data : tdata, + delay : 0 + }); + return source; + }, + footer : function() { // one.main.cluster.nodes.footer + var footer = []; + var close = one.lib.dashlet.button.single('Close', one.main.cluster.nodes.id.close, '', ''); + var $close = one.lib.dashlet.button.button(close); + footer.push($close); + return footer; + } } one.main.dashlet = { - left : { - top : $("#left-top .dashlet"), - bottom : $("#left-bottom .dashlet") - }, - right : { - bottom : $("#right-bottom .dashlet") - } + left : { + top : $("#left-top .dashlet"), + bottom : $("#left-bottom .dashlet") + }, + right : { + bottom : $("#right-bottom .dashlet") + } } /** BOOTSTRAP */ $(".modal").on('hidden', function() { - $(this).remove(); + $(this).remove(); }); $("#alert .close").click(function() { - $("#alert").hide(); + $("#alert").hide(); }); /** INIT */ @@ -684,39 +693,39 @@ one.role = $('#admin').data('role'); // user admin $("#admin").click(function() { - one.main.admin.modal.initialize(function($modal) { - $modal.modal(); - }); + one.main.admin.modal.initialize(function($modal) { + $modal.modal(); + }); }); // cluster $('#cluster').click(function() { - one.main.cluster.initialize(); + one.main.cluster.initialize(); }); // save $("#save").click(function() { - $.post(one.main.constants.address.save, function(data) { - if (data == "Success") { - one.lib.alert("Configuration Saved"); - } else { - one.lib.alert("Unable to save configuration: " + data); - } - }); + $.post(one.main.constants.address.save, function(data) { + if (data == "Success") { + one.lib.alert("Configuration Saved"); + } else { + one.lib.alert("Unable to save configuration: " + data); + } + }); }); // logout $("#logout").click(function() { - location.href = "/logout"; + location.href = "/logout"; }); $.ajaxSetup({ - complete : function(xhr, textStatus) { - var mime = xhr.getResponseHeader('Content-Type'); - if (mime.substring(0, 9) == 'text/html') { - location.href = '/'; - } + complete : function(xhr, textStatus) { + var mime = xhr.getResponseHeader('Content-Type'); + if (mime.substring(0, 9) == 'text/html') { + location.href = '/'; } + } }); /** MAIN PAGE LOAD */ -- 2.36.6