Merge "Remove unused class member SAVE."
[controller.git] / opendaylight / web / root / src / main / resources / js / open.js
index 629d5bbaacffcb42d510d1f8ca56614398d57a30..85e4d472ef0d5f89e3e274543e4040a3b2e22ae2 100644 (file)
@@ -124,13 +124,25 @@ one.main.admin = {
                 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"
+                    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"
-            }
+                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"
@@ -138,7 +150,8 @@ one.main.admin = {
     },
     address : {
         root : "/admin",
-        users : "/users"
+        users : "/users",
+               password : '/admin/users/password/'
     },
     modal : {
         initialize : function(callback) {
@@ -162,12 +175,9 @@ one.main.admin = {
         },
         footer : function() {
             var footer = [];
-
-            var closeButton = one.lib.dashlet.button.single("Close",
-                    one.main.admin.id.modal.close, "", "");
+            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;
         }
     },
@@ -188,7 +198,7 @@ one.main.admin = {
                 var tr = {};
                 var entry = [];
                 entry.push(value['user']);
-                entry.push(value['role']);
+                entry.push(value['roles']);
                 tr['entry'] = entry;
                 tr['id'] = value['user'];
                 body.push(tr);
@@ -239,74 +249,63 @@ one.main.admin = {
     remove : {
         modal : {
             initialize : function(id) {
-                var h3 = "Remove User";
+                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');
-                        });
-
+                $('#'+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);
-                                                    });
-                                });
-
+                $('#' + 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);
-                        });
+                $.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("Remove user?");
+            $p.append('Select an action');
             return $p;
         },
     },
@@ -318,40 +317,25 @@ one.main.admin = {
                 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');
-                        });
-
+                $('#' + 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);
-                                                    });
-                                });
-
+                $('#' + 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) {
@@ -360,9 +344,18 @@ one.main.admin = {
                         '#' + one.main.admin.id.modal.add.form.name).val();
                 user['password'] = $modal.find(
                         '#' + one.main.admin.id.modal.add.form.password).val();
-                user['role'] = $modal.find(
+                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);
@@ -391,6 +384,12 @@ one.main.admin = {
             $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 = {
@@ -418,7 +417,245 @@ one.main.admin = {
 
             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();
+               },
+               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;
+               }
+       }
+}
+
+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;
+       }
+}
+
+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;
+       }
 }
 
 one.main.dashlet = {
@@ -452,6 +689,11 @@ $("#admin").click(function() {
     });
 });
 
+// cluster
+$('#cluster').click(function() {
+       one.main.cluster.initialize();
+});
+
 // save
 $("#save").click(function() {
     $.post(one.main.constants.address.save, function(data) {
@@ -478,4 +720,4 @@ $.ajaxSetup({
 });
 
 /** MAIN PAGE LOAD */
-one.main.menu.load();
\ No newline at end of file
+one.main.menu.load();