You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/06/11 15:35:14 UTC

incubator-ignite git commit: # ignite-850 WIP.

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-843 d3974fe4e -> e6af1c24d


# ignite-850 WIP.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e6af1c24
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e6af1c24
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e6af1c24

Branch: refs/heads/ignite-843
Commit: e6af1c24dda510a8aa5a1f11e0ed9fd95d766a24
Parents: d3974fe
Author: Andrey <an...@gridgain.com>
Authored: Thu Jun 11 16:35:00 2015 +0300
Committer: Andrey <an...@gridgain.com>
Committed: Thu Jun 11 16:35:00 2015 +0300

----------------------------------------------------------------------
 .../nodejs/public/form-models/clusters.json     |  21 ++--
 .../public/javascripts/controllers/clusters.js  | 112 +++++++++----------
 .../nodejs/public/stylesheets/style.css         |   2 +-
 .../nodejs/public/stylesheets/style.less        |  20 +++-
 modules/webconfig/nodejs/routes/clusters.js     |   4 +-
 modules/webconfig/nodejs/views/clusters.jade    |   9 +-
 .../nodejs/views/templates/select.jade          |   4 +-
 7 files changed, 86 insertions(+), 86 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/public/form-models/clusters.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/form-models/clusters.json b/modules/webconfig/nodejs/public/form-models/clusters.json
index 278abb2..453fa57 100644
--- a/modules/webconfig/nodejs/public/form-models/clusters.json
+++ b/modules/webconfig/nodejs/public/form-models/clusters.json
@@ -3,7 +3,8 @@
     {
       "label": "Name",
       "type": "text",
-      "model": "name"
+      "model": "name",
+      "placeholder": "Input name"
     },
     {
       "label": "Discovery",
@@ -77,12 +78,12 @@
             "model": "addressRequestAttempts",
             "placeholder": "2",
             "tip": [
-              "Number of attempts to send multicast address request.",
+              "Number of attempts to send multicast address request. ",
               "IP finder re-sends request only in case if no reply for previous request is received."
             ]
           },
           {
-            "label": "Local host address",
+            "label": "Local address",
             "type": "text",
             "model": "localAddress",
             "tip": [
@@ -222,7 +223,7 @@
           "label": "Cache mode",
           "type": "dropdown",
           "model": "cacheMode",
-          "placeholder": "PARTITIONED",
+          "placeholder": "partitioned",
           "items": "cacheModes"
         },
         {
@@ -298,7 +299,7 @@
           "label": "Samples size",
           "type": "dropdown",
           "model": "deploymentMode",
-          "placeholder": "SHARED",
+          "placeholder": "shared",
           "items": "deploymentModes",
           "tip": [
             "Number of samples used to synchronize clocks between different nodes.",
@@ -584,9 +585,9 @@
       "fields": [
         {
           "label": "Cache concurrency",
-          "type": "text",
+          "type": "dropdown",
           "model": "defaultTxConcurrency",
-          "placeholder": "PESSIMISTIC",
+          "placeholder": "pessimistic",
           "items": "transactionConcurrency",
           "tip": [
             "Cache transaction concurrency to use when one is not explicitly specified."
@@ -594,9 +595,9 @@
         },
         {
           "label": "Isolation",
-          "type": "text",
+          "type": "dropdown",
           "model": "transactionIsolation",
-          "placeholder": "REPEATABLE_READ",
+          "placeholder": "repeatable_read",
           "items": "transactionIsolation",
           "tip": [
             "Default transaction isolation."
@@ -647,7 +648,7 @@
           "label": "Policy",
           "type": "dropdown",
           "model": "segmentationPolicy",
-          "placeholder": "STOP",
+          "placeholder": "stop",
           "items": "segmentationPolicy"
         },
         {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
index 590baa3..6dbac73 100644
--- a/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
+++ b/modules/webconfig/nodejs/public/javascripts/controllers/clusters.js
@@ -17,64 +17,64 @@
 
 configuratorModule.controller('clustersController', ['$scope', '$modal', '$http', function($scope, $modal, $http) {
         $scope.templates = [
-            {value: {}, label: 'None'},
-            {value: {discovery: {kind: 'Vm', Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'Local'},
-            {value: {discovery: {kind: 'Multicast', Multicast: {}}}, label: 'Basic'}
+            {value: {}, label: 'none'},
+            {value: {discovery: {kind: 'Vm', Vm: {addresses: ['127.0.0.1:47500..47510']}}}, label: 'local'},
+            {value: {discovery: {kind: 'Multicast', Multicast: {}}}, label: 'basic'}
         ];
 
         $scope.discoveries = [
-            {value: 'Vm', label: 'Static IPs'},
-            {value: 'Multicast', label: 'Multicast'},
+            {value: 'Vm', label: 'static IPs'},
+            {value: 'Multicast', label: 'multicast'},
             {value: 'S3', label: 'AWS S3'},
-            {value: 'Cloud', label: 'Apache jclouds'},
-            {value: 'GoogleStorage', label: 'Google Cloud Storage'},
+            {value: 'Cloud', label: 'apache jclouds'},
+            {value: 'GoogleStorage', label: 'google cloud storage'},
             {value: 'Jdbc', label: 'JDBC'},
-            {value: 'SharedFs', label: 'Shared Filesystem'}
+            {value: 'SharedFs', label: 'shared filesystem'}
         ];
 
         $scope.events = [
-            {value: 'EVTS_CHECKPOINT', label: 'Checkpoint'},
-            {value: 'EVTS_DEPLOYMENT', label: 'Deployment'},
-            {value: 'EVTS_ERROR', label: 'Error'},
-            {value: 'EVTS_DISCOVERY', label: 'Discovery'},
-            {value: 'EVTS_JOB_EXECUTION', label: 'Job execution'},
-            {value: 'EVTS_TASK_EXECUTION', label: 'Task execution'},
-            {value: 'EVTS_CACHE', label: 'Cache'},
-            {value: 'EVTS_CACHE_REBALANCE', label: 'Cache rebalance'},
-            {value: 'EVTS_CACHE_LIFECYCLE', label: 'Cache lifecycle'},
-            {value: 'EVTS_CACHE_QUERY', label: 'Cache query'},
-            {value: 'EVTS_SWAPSPACE', label: 'Swap space'},
-            {value: 'EVTS_IGFS', label: 'Igfs'}
+            {value: 'EVTS_CHECKPOINT', label: 'evts_checkpoint'},
+            {value: 'EVTS_DEPLOYMENT', label: 'evts_deployment'},
+            {value: 'EVTS_ERROR', label: 'evts_error'},
+            {value: 'EVTS_DISCOVERY', label: 'evts_discovery'},
+            {value: 'EVTS_JOB_EXECUTION', label: 'evts_job_execution'},
+            {value: 'EVTS_TASK_EXECUTION', label: 'evts_task_execution'},
+            {value: 'EVTS_CACHE', label: 'evts_cache'},
+            {value: 'EVTS_CACHE_REBALANCE', label: 'evts_cache_rebalance'},
+            {value: 'EVTS_CACHE_LIFECYCLE', label: 'evts_cache_lifecycle'},
+            {value: 'EVTS_CACHE_QUERY', label: 'evts_cache_query'},
+            {value: 'EVTS_SWAPSPACE', label: 'evts_swapspace'},
+            {value: 'EVTS_IGFS', label: 'evts_igfs'}
         ];
 
         $scope.cacheModes = [
-            {value: 'LOCAL', label: 'LOCAL'},
-            {value: 'REPLICATED', label: 'REPLICATED'},
-            {value: 'PARTITIONED', label: 'PARTITIONED'}
+            {value: 'LOCAL', label: 'local'},
+            {value: 'REPLICATED', label: 'replicated'},
+            {value: 'PARTITIONED', label: 'partitioned'}
         ];
 
         $scope.deploymentModes = [
-            {value: 'PRIVATE', label: 'PRIVATE'},
-            {value: 'ISOLATED', label: 'ISOLATED'},
-            {value: 'SHARED', label: 'SHARED'},
-            {value: 'CONTINUOUS', label: 'CONTINUOUS'}
+            {value: 'PRIVATE', label: 'private'},
+            {value: 'ISOLATED', label: 'isolated'},
+            {value: 'SHARED', label: 'shared'},
+            {value: 'CONTINUOUS', label: 'continuous'}
         ];
 
         $scope.transactionConcurrency = [
-            {value: 'OPTIMISTIC', label: 'OPTIMISTIC'},
-            {value: 'PESSIMISTIC', label: 'PESSIMISTIC'}
+            {value: 'OPTIMISTIC', label: 'optimistic'},
+            {value: 'PESSIMISTIC', label: 'pessimistic'}
         ];
 
         $scope.transactionIsolation = [
-            {value: 'READ_COMMITTED', label: 'READ_COMMITTED'},
-            {value: 'REPEATABLE_READ', label: 'REPEATABLE_READ'},
-            {value: 'SERIALIZABLE', label: 'SERIALIZABLE'}
+            {value: 'READ_COMMITTED', label: 'read_committed'},
+            {value: 'REPEATABLE_READ', label: 'repeatable_read'},
+            {value: 'SERIALIZABLE', label: 'serializable'}
         ];
 
         $scope.segmentationPolicy = [
-            {value: 'RESTART_JVM', label: 'RESTART_JVM'},
-            {value: 'STOP', label: 'STOP'},
-            {value: 'NOOP', label: 'NOOP'}
+            {value: 'RESTART_JVM', label: 'restart_jvm'},
+            {value: 'STOP', label: 'stop'},
+            {value: 'NOOP', label: 'noop'}
         ];
 
         $scope.clusters = [];
@@ -134,16 +134,28 @@ configuratorModule.controller('clustersController', ['$scope', '$modal', '$http'
 
         // Add new cluster.
         $scope.createItem = function() {
-            var item = angular.copy($scope.create.template);
+            $scope.backupItem = angular.copy($scope.create.template);
 
-            item.name = 'Cluster ' + ($scope.clusters.length + 1);
-            item.space = $scope.spaces[0]._id;
+            $scope.backupItem.space = $scope.spaces[0]._id;
+        };
+
+        // Save cluster in db.
+        $scope.saveItem = function() {
+            var item = $scope.backupItem;
 
             $http.post('/rest/clusters/save', item)
                 .success(function(_id) {
-                    item._id = _id;
+                    var i = _.findIndex($scope.clusters, function(cluster) {
+                        return cluster._id == _id;
+                    });
 
-                    $scope.clusters.push(item);
+                    if (i >= 0)
+                        angular.extend($scope.clusters[i], item);
+                    else {
+                        item._id = _id;
+
+                        $scope.clusters.push(item);
+                    }
 
                     $scope.selectItem(item);
                 })
@@ -172,25 +184,5 @@ configuratorModule.controller('clustersController', ['$scope', '$modal', '$http'
                     console.log('Error: ' + errorMessage);
                 });
         };
-
-        // Save cluster in db.
-        $scope.saveItem = function() {
-            var item = $scope.backupItem;
-
-            $http.post('/rest/clusters/save', item)
-                .success(function() {
-                    var i = _.findIndex($scope.clusters, function(cluster) {
-                        return cluster._id == item._id;
-                    });
-
-                    if (i >= 0)
-                        angular.extend($scope.clusters[i], item);
-
-                    $scope.selectItem(item);
-                })
-                .error(function(errorMessage) {
-                    console.log('Error: ' + errorMessage);
-                });
-        };
     }]
 );
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/public/stylesheets/style.css
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/stylesheets/style.css b/modules/webconfig/nodejs/public/stylesheets/style.css
index c0bc148..adbf187 100644
--- a/modules/webconfig/nodejs/public/stylesheets/style.css
+++ b/modules/webconfig/nodejs/public/stylesheets/style.css
@@ -1 +1 @@
-.main-header .logo{height:auto}.main-sidebar{padding-top:60px}.navbar-default .navbar-brand,.navbar-default .navbar-brand:hover{position:absolute;width:100%;left:0;text-align:center}.modal-backdrop.am-fade{opacity:.5;transition:opacity .15s linear}.modal-backdrop.am-fade.ng-enter{opacity:0}.modal-backdrop.am-fade.ng-enter.ng-enter-active{opacity:.5}.modal-backdrop.am-fade.ng-leave{opacity:.5}.modal-backdrop.am-fade.ng-leave.ng-leave-active{opacity:0}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ng-table th.text-right{text-align:right}.ng-table th.text-left{text-align:left}.ng-table th.text-center{text-align:center}.fa.fa-remove{color:red}.border-left{-webkit-box-shadow:1px 0 0 0 #eee inset;box-shadow:1px 0 0 0 #eee inset}.border-right{-webkit-box-shadow:1px 0 0 0 #eee;box-shadow:1px 0 0 0 #eee}.theme-line{background-color:#f9f9f9}.t
 heme-line header{background-color:#fff}.theme-line header .search-bar{width:90%;margin:30px auto 0;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 0 5px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 5px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);position:relative}.theme-line header .search-bar.focus{-webkit-box-shadow:0 0 0 5px rgba(0,0,0,0.2),0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 5px rgba(0,0,0,0.2),0 0 0 1px rgba(0,0,0,0.1)}.theme-line header .search-bar .fa{position:absolute;top:10px;left:14px;font-size:21px;color:#ccc;z-index:10}.theme-line header .search-bar .twitter-typeahead{width:100%}.theme-line header .search-bar input{-webkit-border-radius:5px;border-radius:5px;height:100%;border:0 none;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.1) inset;box-shadow:0 2px 2px rgba(0,0,0,0.1) inset;color:#444;width:100%;padding:13px 13px 13px 50px;font-size:14px}.theme-line header .search-bar input.tt-hint{color:#bbb}.theme-line header .search-bar input:ac
 tive .theme-line header .search-bar input:focus{outline:0 none;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.2) inset;box-shadow:0 2px 2px rgba(0,0,0,0.2) inset}.theme-line header .search-bar .tt-dropdown-menu,.theme-solid header .search-bar .tt-dropdown-menu{width:100%;text-align:left}.theme-line header .search-bar .tt-dropdown-menu h3{padding:0 45px;color:#ccc;font-weight:bold;font-size:12px;margin:10px 0 4px;text-transform:uppercase}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions{display:block}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions .tt-suggestion{cursor:pointer;font-size:14px;padding:4px 45px}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions .tt-suggestion p{color:#333;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line header .search-bar .tt-cursor{background-color:#eee}.theme-line header .search-bar .tt-cursor p{color:#fff}.theme-line header a.btn{border:0 none;padding:10px 25px;ba
 ckground-color:rgba(0,0,0,0.15)}.theme-line header a.btn:hover{background-color:rgba(0,0,0,0.25)}.theme-line header a.btn.btn-link{background:transparent;color:rgba(255,255,255,0.8)}.theme-line header a.btn.btn-link:hover{color:#fff;text-decoration:none}.theme-line .navbar-nav a{background-color:transparent}.theme-line .navbar-nav a:hover,.theme-line .navbar-nav a:active,.theme-line .navbar-nav a:focus{background-color:transparent}.theme-line .main-links{padding-top:50px}.theme-line .main-links h3{margin-top:0;font-size:17px}.theme-line .main-links .links a{color:#888}.theme-line .main-links .links a:hover{text-decoration:none}.theme-line #category-columns,.theme-solid #category-columns{margin:50px 30px 0}.theme-line #category-columns h4{text-transform:uppercase;font-weight:300;color:#999;font-size:14px}.theme-line #category-columns ul{list-style:none;padding:0;margin-bottom:15px}.theme-line #category-columns ul li a{padding:4px 0;display:block;font-size:16px}.theme-line #category-c
 olumns ul .view-all{font-size:0.85em}.theme-line .docs-header{color:#999;overflow:hidden}.theme-line .docs-header h1{color:#444;margin-top:0;font-size:25px}.theme-line .btn-primary{border:0 none}.theme-line .main-content .nav-horizontal a{-webkit-box-shadow:0 0;box-shadow:0 0;border:0 none;background-color:#fff;-webkit-border-radius:0;border-radius:0;color:#aaa;padding:6px;margin:0 14px}.theme-line .main-content .nav-horizontal a:hover{color:#999;border-bottom:4px solid #ddd}.theme-line .main-content .nav-horizontal a.active{border-bottom:4px solid #888}.theme-line .sidebar-nav{color:#474a54;padding-bottom:30px}.theme-line .sidebar-nav ul{padding:0;list-style:none;font-size:13px;margin:3px 0 0}.theme-line .sidebar-nav ul li a{padding:3px 0;display:block;color:#666;position:relative;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line .sidebar-nav ul li a:before{top:0;content:" ";display:block;width:6px;height:100%;position:absolute;left:-30
 px}.theme-line .sidebar-nav ul li a:hover{text-decoration:none}.theme-line .sidebar-nav ul li .subcategory{padding-left:15px}.theme-line .sidebar-nav h4{margin-top:2em;font-weight:normal;text-transform:uppercase;font-size:11px;margin-bottom:10px;color:#bbb}.theme-line .sidebar-nav h4:first-child{margin-top:0}.theme-line .sidebar-nav .ask{width:100%;text-align:center;padding:10px}.theme-line .border-left .sidebar-nav{padding-left:15px}.theme-line .suggest{padding:4px;display:inline-block;font-size:12px}.header{padding:15px}.header .has-github{padding-right:136px}.header h1.navbar-brand{height:40px;width:200px;padding:0;margin:0;margin-top:5px;margin-right:15px}.header h1.navbar-brand a{text-indent:-99999px;background-position:center center;display:block;width:100%;height:100%;-webkit-background-size:contain;-moz-background-size:contain;background-size:contain;background-repeat:no-repeat}.header .nav.navbar-nav.pull-right{position:relative;right:-30px}.header .nav.navbar-nav .not-link
 {padding:15px;display:inline-block}.header .nav.navbar-nav .stable,.header .nav.navbar-nav .beta,.header .nav.navbar-nav .private{font-size:9px;padding:3px 5px;display:inline-block;line-height:8px;-webkit-border-radius:3px;border-radius:3px;margin-left:6px;color:#fff;top:-2px;position:relative;opacity:0.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";filter:alpha(opacity=60)}.header .nav.navbar-nav a:hover>.stable,.header .nav.navbar-nav a:hover>.beta,.header .nav.navbar-nav a:hover>.private{opacity:1;-ms-filter:none;filter:none}.header .nav.navbar-nav .beta{background-color:#59c3d1}.header .nav.navbar-nav .stable{background-color:#41b841}.header .nav.navbar-nav .private{background-color:#333}.header #jumbotron{margin:55px 70px 50px;text-align:center}.header #jumbotron h2{margin-top:0;margin-bottom:20px}.header #jumbotron p{margin-bottom:0;line-height:1.6em;font-size:16px}.header #jumbotron .btn{margin-top:20px}.header .searchbox{position:relative;margin-right:15p
 x;top:9px}.header .searchbox .fa-search{position:absolute;top:8px;right:10px;color:#777;pointer-events:none}.header .searchbox .typeahead{line-height:1.25em;-webkit-transition:.3s ease-out;-moz-transition:.3s ease-out;-o-transition:.3s ease-out;-ms-transition:.3s ease-out;transition:.3s ease-out;background-color:rgba(0,0,0,0.05);-webkit-border-radius:5px;border-radius:5px;width:95px}.header .searchbox .typeahead:focus,.header .searchbox .typeahead:active{outline:0 none}.header .searchbox .tt-dropdown-menu{max-width:350px;margin-left:-100px}.header .searchbox .tt-dropdown-menu h3{width:100px;float:left;margin:0;padding:8px 0 6px 15px;font-size:13px;color:#bbb}.header .searchbox .tt-dropdown-menu .tt-suggestions{display:block;float:left;width:250px}.header .searchbox .tt-dropdown-menu .tt-suggestions .tt-suggestion{font-size:14px}.header .searchbox .tt-dropdown-menu .tt-suggestions .tt-suggestion p{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.he
 ader .searchbox .tt-cursor{background-color:#eee}.header .searchbox .tt-cursor p{color:#fff}.header .searchbox input{border:0 none;display:inline-block;font-size:14px;padding:6px 32px 6px 12px;margin:0}.header .searchbox input.tt-hint{height:auto}.header .searchbox.focus input{width:250px}.theme-line header{border-bottom:8px solid}.theme-line header h2{color:#aaa}.theme-line header p{color:#666}.theme-line header{border-bottom-color:#ec1c24}.theme-line .navbar-nav{color:#888}.theme-line .navbar-nav a{color:#bbb}.theme-line header a.btn{background-color:#ec1c24}.theme-line header a.btn:hover{background-color:#950d12}.theme-line header .navbar-nav .tt-cursor{background-color:#ec1c24}.theme-line header .navbar-nav a:hover,.theme-line header .navbar-nav .open>a{color:#ec1c24}.theme-line .navbar-nav .active a{color:#ec1c24}.theme-line .navbar-nav .active a:hover{color:#950d12}.theme-line .main-links .links a:hover{color:#ec1c24}.theme-line .main-content a{color:#ec1c24}.theme-line .main-
 content a:hover{color:#950d12}.theme-line .sidebar-nav ul li a.active:before{background-color:#ec1c24}.theme-line .sidebar-nav ul li a.active{color:#ec1c24}.theme-line .sidebar-nav ul li a:hover,.theme-line .sidebar-nav ul li a.active:hover{color:#950d12}.theme-line .btn-primary{background-color:#ec1c24}.theme-line .btn-primary:hover{background-color:#950d12}.theme-line .main-content .nav-horizontal a.active{border-color:#ec1c24;color:#ec1c24}.theme-line .main-content .nav-horizontal a:hover{color:#950d12}.theme-line .main-content .nav-horizontal a.active:hover{border-color:#950d12}.theme-line header .navbar-nav a.active,.theme-line #versions-list li a:hover strong,.theme-line #versions-list li a.active .current,.theme-line #versions-list li a:active .current{color:#ec1c24}.theme-line.body-threes .section-right .threes-nav .btn-default:hover,.theme-line.page-docs.body-threes .section-right .threes-nav .pull-right a:hover{color:#ec1c24;border-color:#ec1c24}.body-overlap .main-content
 {margin-top:30px}.body-box .main-content,.body-overlap .main-content{padding:30px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 1px rgba(0,0,0,0.1);background-color:#fff}body{font-weight:400;font-family:Roboto Slab, serif}h1,h2,h3,h4,h5,h6{font-weight:700;font-family:Roboto Slab, serif}.submit-vote.submit-vote-parent.voted a.submit-vote-button,.submit-vote.submit-vote-parent a.submit-vote-button:hover{background-color:#ec1c24}div.submit-vote.submit-vote-parent.voted a.submit-vote-button:hover{background-color:#950d12}a,.link .title{color:#ec1c24}a:hover,.link:hover .title{color:#950d12}.header h1.navbar-brand a{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.header h1.navbar-brand{width:96px}.block-edit-parameters{text-align:right;padding-bottom:5px}.ng-table-pager{display:none}.container-footer{margin-top:20px}.vcenter{display:inline-block;vertical-align:middle;float:none}.modal{display:block;overflow:hidden}.modal .close{position:ab
 solute;top:24px;right:24px;float:none}.modal .modal-dialog{width:610px}.modal .modal-content{-webkit-border-radius:0;border-radius:0;background-color:#f7f7f7}.modal .modal-content .modal-header{background-color:#fff;text-align:center;color:#555;padding:24px;font-family:"myriad-pro",sans-serif}.modal .modal-content .modal-header h4{font-family:"myriad-pro",sans-serif;font-size:22px}.modal .modal-content .modal-header h4 .fa{display:block;font-size:41px;color:#ddd;margin-bottom:5px}.modal .modal-content .modal-header p{margin:0;color:#aaa;font-size:1em;margin-top:3px}.modal .modal-content .modal-spacer{padding:10px 10px 0 10px}.modal .modal-content .modal-footer{margin-top:0}.modal-body{padding-top:30px}h1.ignite-logo{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.st-sort-ascent:after{font-family:FontAwesome, serif;content:'\f077'}.st-sort-descent:after{font-family:FontAwesome, serif;content:'\f078'}.block-display-image img{max-width:100%;max-height:4
 50px;margin:auto;display:block}.greedy{min-height:200px;height:calc(100vh - 230px)}@media (min-width:768px){.navbar-nav>li>a{padding-top:20px;padding-bottom:10px}}.details-row,.settings-row{display:block;margin:0.65em 0}.details-row [class*="col-"],.settings-row [class*="col-"]{display:inline-block;vertical-align:middle;float:none;padding-left:0 !important;padding-right:0 !important}.details-row input[type="checkbox"],.settings-row input[type="checkbox"]{margin-right:4px}.settings-row{margin-left:18px}.details-label{margin-left:18px;margin-right:-18px}button{margin-right:4px}h1,h2,h3{-webkit-user-select:none;font-weight:normal;line-height:1}h3{color:black;font-size:1.2em;margin-top:1.5em;margin-bottom:1.5em}table tr:hover{cursor:pointer}.input-group{display:inline-block}.input-group .form-control{width:auto;margin-left:0;margin-right:0}.form-control{display:inline-block;text-align:left;padding:3px 6px;height:28px}.form-control button{text-align:left}.form-horizontal .control-label{p
 adding-top:4px}button .caret{float:right;margin-left:0;margin-top:7px}.panel-heading .panel-title{margin-left:-18px}.theme-line .links table{table-layout:fixed;margin:0}.theme-line .links table td{padding-left:18px}.theme-line .links table a{color:#666}.theme-line .links table a:hover{color:#ec1c24}.theme-line .links table .active a{color:#ec1c24}.btn{padding:3px 6px}.panel-title a{font-size:14px}.panel-heading{margin:-0.65em 0}.panel{margin-top:-0.65em}.tooltip.right .tooltip-arrow{border-right-color:#ec1c24}.tooltip>.tooltip-inner{max-width:400px;text-align:left;background-color:#ec1c24}label{font-weight:normal;margin-bottom:0}.tip{margin-left:5px}.table-nowrap{table-layout:fixed}.table-nowrap td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fa-remove{margin-left:10px}
\ No newline at end of file
+.main-header .logo{height:auto}.main-sidebar{padding-top:60px}.navbar-default .navbar-brand,.navbar-default .navbar-brand:hover{position:absolute;width:100%;left:0;text-align:center}.modal-backdrop.am-fade{opacity:.5;transition:opacity .15s linear}.modal-backdrop.am-fade.ng-enter{opacity:0}.modal-backdrop.am-fade.ng-enter.ng-enter-active{opacity:.5}.modal-backdrop.am-fade.ng-leave{opacity:.5}.modal-backdrop.am-fade.ng-leave.ng-leave-active{opacity:0}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ng-table th.text-right{text-align:right}.ng-table th.text-left{text-align:left}.ng-table th.text-center{text-align:center}.fa.fa-remove{color:red}.border-left{-webkit-box-shadow:1px 0 0 0 #eee inset;box-shadow:1px 0 0 0 #eee inset}.border-right{-webkit-box-shadow:1px 0 0 0 #eee;box-shadow:1px 0 0 0 #eee}.theme-line{background-color:#f9f9f9}.t
 heme-line header{background-color:#fff}.theme-line header .search-bar{width:90%;margin:30px auto 0;-webkit-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 0 5px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 5px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.1);position:relative}.theme-line header .search-bar.focus{-webkit-box-shadow:0 0 0 5px rgba(0,0,0,0.2),0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 5px rgba(0,0,0,0.2),0 0 0 1px rgba(0,0,0,0.1)}.theme-line header .search-bar .fa{position:absolute;top:10px;left:14px;font-size:21px;color:#ccc;z-index:10}.theme-line header .search-bar .twitter-typeahead{width:100%}.theme-line header .search-bar input{-webkit-border-radius:5px;border-radius:5px;height:100%;border:0 none;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.1) inset;box-shadow:0 2px 2px rgba(0,0,0,0.1) inset;color:#444;width:100%;padding:13px 13px 13px 50px;font-size:14px}.theme-line header .search-bar input.tt-hint{color:#bbb}.theme-line header .search-bar input:ac
 tive .theme-line header .search-bar input:focus{outline:0 none;-webkit-box-shadow:0 2px 2px rgba(0,0,0,0.2) inset;box-shadow:0 2px 2px rgba(0,0,0,0.2) inset}.theme-line header .search-bar .tt-dropdown-menu,.theme-solid header .search-bar .tt-dropdown-menu{width:100%;text-align:left}.theme-line header .search-bar .tt-dropdown-menu h3{padding:0 45px;color:#ccc;font-weight:bold;font-size:12px;margin:10px 0 4px;text-transform:uppercase}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions{display:block}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions .tt-suggestion{cursor:pointer;font-size:14px;padding:4px 45px}.theme-line header .search-bar .tt-dropdown-menu .tt-suggestions .tt-suggestion p{color:#333;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line header .search-bar .tt-cursor{background-color:#eee}.theme-line header .search-bar .tt-cursor p{color:#fff}.theme-line header a.btn{border:0 none;padding:10px 25px;ba
 ckground-color:rgba(0,0,0,0.15)}.theme-line header a.btn:hover{background-color:rgba(0,0,0,0.25)}.theme-line header a.btn.btn-link{background:transparent;color:rgba(255,255,255,0.8)}.theme-line header a.btn.btn-link:hover{color:#fff;text-decoration:none}.theme-line .navbar-nav a{background-color:transparent}.theme-line .navbar-nav a:hover,.theme-line .navbar-nav a:active,.theme-line .navbar-nav a:focus{background-color:transparent}.theme-line .main-links{padding-top:50px}.theme-line .main-links h3{margin-top:0;font-size:17px}.theme-line .main-links .links a{color:#888}.theme-line .main-links .links a:hover{text-decoration:none}.theme-line #category-columns,.theme-solid #category-columns{margin:50px 30px 0}.theme-line #category-columns h4{text-transform:uppercase;font-weight:300;color:#999;font-size:14px}.theme-line #category-columns ul{list-style:none;padding:0;margin-bottom:15px}.theme-line #category-columns ul li a{padding:4px 0;display:block;font-size:16px}.theme-line #category-c
 olumns ul .view-all{font-size:0.85em}.theme-line .docs-header{color:#999;overflow:hidden}.theme-line .docs-header h1{color:#444;margin-top:0;font-size:25px}.theme-line .btn-primary{border:0 none}.theme-line .main-content .nav-horizontal a{-webkit-box-shadow:0 0;box-shadow:0 0;border:0 none;background-color:#fff;-webkit-border-radius:0;border-radius:0;color:#aaa;padding:6px;margin:0 14px}.theme-line .main-content .nav-horizontal a:hover{color:#999;border-bottom:4px solid #ddd}.theme-line .main-content .nav-horizontal a.active{border-bottom:4px solid #888}.theme-line .sidebar-nav{color:#474a54;padding-bottom:30px}.theme-line .sidebar-nav ul{padding:0;list-style:none;font-size:13px;margin:3px 0 0}.theme-line .sidebar-nav ul li a{padding:3px 0;display:block;color:#666;position:relative;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line .sidebar-nav ul li a:before{top:0;content:" ";display:block;width:6px;height:100%;position:absolute;left:-30
 px}.theme-line .sidebar-nav ul li a:hover{text-decoration:none}.theme-line .select li a{color:#666}.theme-line .select li a:hover,.theme-line .select .active{color:#ec1c24;background-color:white}.theme-line .sidebar-nav ul li .subcategory{padding-left:15px}.theme-line .sidebar-nav h4{margin-top:2em;font-weight:normal;text-transform:uppercase;font-size:11px;margin-bottom:10px;color:#bbb}.theme-line .sidebar-nav h4:first-child{margin-top:0}.theme-line .sidebar-nav .ask{width:100%;text-align:center;padding:10px}.theme-line .border-left .sidebar-nav{padding-left:15px}.theme-line .suggest{padding:4px;display:inline-block;font-size:12px}.header{padding:15px}.header .has-github{padding-right:136px}.header h1.navbar-brand{height:40px;width:200px;padding:0;margin:0;margin-top:5px;margin-right:15px}.header h1.navbar-brand a{text-indent:-99999px;background-position:center center;display:block;width:100%;height:100%;-webkit-background-size:contain;-moz-background-size:contain;background-size:co
 ntain;background-repeat:no-repeat}.header .nav.navbar-nav.pull-right{position:relative;right:-30px}.header .nav.navbar-nav .not-link{padding:15px;display:inline-block}.header .nav.navbar-nav .stable,.header .nav.navbar-nav .beta,.header .nav.navbar-nav .private{font-size:9px;padding:3px 5px;display:inline-block;line-height:8px;-webkit-border-radius:3px;border-radius:3px;margin-left:6px;color:#fff;top:-2px;position:relative;opacity:0.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";filter:alpha(opacity=60)}.header .nav.navbar-nav a:hover>.stable,.header .nav.navbar-nav a:hover>.beta,.header .nav.navbar-nav a:hover>.private{opacity:1;-ms-filter:none;filter:none}.header .nav.navbar-nav .beta{background-color:#59c3d1}.header .nav.navbar-nav .stable{background-color:#41b841}.header .nav.navbar-nav .private{background-color:#333}.header #jumbotron{margin:55px 70px 50px;text-align:center}.header #jumbotron h2{margin-top:0;margin-bottom:20px}.header #jumbotron p{margin-bot
 tom:0;line-height:1.6em;font-size:16px}.header #jumbotron .btn{margin-top:20px}.header .searchbox{position:relative;margin-right:15px;top:9px}.header .searchbox .fa-search{position:absolute;top:8px;right:10px;color:#777;pointer-events:none}.header .searchbox .typeahead{line-height:1.25em;-webkit-transition:.3s ease-out;-moz-transition:.3s ease-out;-o-transition:.3s ease-out;-ms-transition:.3s ease-out;transition:.3s ease-out;background-color:rgba(0,0,0,0.05);-webkit-border-radius:5px;border-radius:5px;width:95px}.header .searchbox .typeahead:focus,.header .searchbox .typeahead:active{outline:0 none}.header .searchbox .tt-dropdown-menu{max-width:350px;margin-left:-100px}.header .searchbox .tt-dropdown-menu h3{width:100px;float:left;margin:0;padding:8px 0 6px 15px;font-size:13px;color:#bbb}.header .searchbox .tt-dropdown-menu .tt-suggestions{display:block;float:left;width:250px}.header .searchbox .tt-dropdown-menu .tt-suggestions .tt-suggestion{font-size:14px}.header .searchbox .tt-dr
 opdown-menu .tt-suggestions .tt-suggestion p{white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.header .searchbox .tt-cursor{background-color:#eee}.header .searchbox .tt-cursor p{color:#fff}.header .searchbox input{border:0 none;display:inline-block;font-size:14px;padding:6px 32px 6px 12px;margin:0}.header .searchbox input.tt-hint{height:auto}.header .searchbox.focus input{width:250px}.theme-line header{border-bottom:8px solid}.theme-line header h2{color:#aaa}.theme-line header p{color:#666}.theme-line header{border-bottom-color:#ec1c24}.theme-line .navbar-nav{color:#888}.theme-line .navbar-nav a{color:#bbb}.theme-line header a.btn{background-color:#ec1c24}.theme-line header a.btn:hover{background-color:#950d12}.theme-line header .navbar-nav .tt-cursor{background-color:#ec1c24}.theme-line header .navbar-nav a:hover,.theme-line header .navbar-nav .open>a{color:#ec1c24}.theme-line .navbar-nav .active a{color:#ec1c24}.theme-line .navbar-nav .active a:h
 over{color:#950d12}.theme-line .main-links .links a:hover{color:#ec1c24}.theme-line .main-content a{color:#ec1c24}.theme-line .main-content a:hover{color:#950d12}.theme-line .sidebar-nav ul li a.active:before{background-color:#ec1c24}.theme-line .sidebar-nav ul li a.active{color:#ec1c24}.theme-line .sidebar-nav ul li a:hover,.theme-line .sidebar-nav ul li a.active:hover{color:#950d12}.theme-line .btn-primary{background-color:#ec1c24}.theme-line .btn-primary:hover{background-color:#950d12}.theme-line .main-content .nav-horizontal a.active{border-color:#ec1c24;color:#ec1c24}.theme-line .main-content .nav-horizontal a:hover{color:#950d12}.theme-line .main-content .nav-horizontal a.active:hover{border-color:#950d12}.theme-line header .navbar-nav a.active,.theme-line #versions-list li a:hover strong,.theme-line #versions-list li a.active .current,.theme-line #versions-list li a:active .current{color:#ec1c24}.theme-line.body-threes .section-right .threes-nav .btn-default:hover,.theme-line
 .page-docs.body-threes .section-right .threes-nav .pull-right a:hover{color:#ec1c24;border-color:#ec1c24}.body-overlap .main-content{margin-top:30px}.body-box .main-content,.body-overlap .main-content{padding:30px;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.1);box-shadow:0 0 0 1px rgba(0,0,0,0.1);background-color:#fff}body{font-weight:400;font-family:Roboto Slab, serif}h1,h2,h3,h4,h5,h6{font-weight:700;font-family:Roboto Slab, serif}.submit-vote.submit-vote-parent.voted a.submit-vote-button,.submit-vote.submit-vote-parent a.submit-vote-button:hover{background-color:#ec1c24}div.submit-vote.submit-vote-parent.voted a.submit-vote-button:hover{background-color:#950d12}a,.link .title{color:#ec1c24}a:hover,.link:hover .title{color:#950d12}.header h1.navbar-brand a{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.header h1.navbar-brand{width:96px}.block-edit-parameters{text-align:right;padding-bottom:5px}.ng-table-pager{display:none}.container-footer{margin-to
 p:20px}.vcenter{display:inline-block;vertical-align:middle;float:none}.modal{display:block;overflow:hidden}.modal .close{position:absolute;top:24px;right:24px;float:none}.modal .modal-dialog{width:610px}.modal .modal-content{-webkit-border-radius:0;border-radius:0;background-color:#f7f7f7}.modal .modal-content .modal-header{background-color:#fff;text-align:center;color:#555;padding:24px;font-family:"myriad-pro",sans-serif}.modal .modal-content .modal-header h4{font-family:"myriad-pro",sans-serif;font-size:22px}.modal .modal-content .modal-header h4 .fa{display:block;font-size:41px;color:#ddd;margin-bottom:5px}.modal .modal-content .modal-header p{margin:0;color:#aaa;font-size:1em;margin-top:3px}.modal .modal-content .modal-spacer{padding:10px 10px 0 10px}.modal .modal-content .modal-footer{margin-top:0}.modal-body{padding-top:30px}h1.ignite-logo{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.st-sort-ascent:after{font-family:FontAwesome, serif;conten
 t:'\f077'}.st-sort-descent:after{font-family:FontAwesome, serif;content:'\f078'}.block-display-image img{max-width:100%;max-height:450px;margin:auto;display:block}.greedy{min-height:200px;height:calc(100vh - 230px)}@media (min-width:768px){.navbar-nav>li>a{padding-top:20px;padding-bottom:10px}}.details-row,.settings-row{display:block;margin:0.65em 0}.details-row [class*="col-"],.settings-row [class*="col-"]{display:inline-block;vertical-align:middle;float:none;padding-left:0 !important;padding-right:0 !important}.details-row input[type="checkbox"],.settings-row input[type="checkbox"]{margin-right:4px}.settings-row{margin-left:18px}.details-label{margin-left:18px;margin-right:-18px}button{margin-right:4px}h1,h2,h3{-webkit-user-select:none;font-weight:normal;line-height:1}h3{color:black;font-size:1.2em;margin-top:1.5em;margin-bottom:1.5em}table tr:hover{cursor:pointer}.input-group{display:inline-block}.input-group .form-control{width:auto;margin-left:0;margin-right:0}.form-control{dis
 play:inline-block;text-align:left;padding:3px 6px;height:28px}.form-control button{text-align:left}.form-horizontal .control-label{padding-top:4px}button .caret{float:right;margin-left:0;margin-top:7px}.panel-heading .panel-title{margin-left:-18px}.theme-line .links table{table-layout:fixed;margin-bottom:20px}.theme-line .links table td{padding-left:18px}.theme-line .links table a{color:#666}.theme-line .links table a:hover{color:#950d12}.theme-line .links table .active a{color:#ec1c24;font-weight:bold}.btn{padding:3px 6px}.panel-title a{font-size:14px}.panel-heading{margin:-0.65em 0}.tooltip.right .tooltip-arrow{border-right-color:#ec1c24}.tooltip>.tooltip-inner{max-width:400px;text-align:left;background-color:#ec1c24}label{font-weight:normal;margin-bottom:0}.tip{margin-left:5px}.table-nowrap{table-layout:fixed}.table-nowrap td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fa-remove{margin-left:10px}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/public/stylesheets/style.less
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/public/stylesheets/style.less b/modules/webconfig/nodejs/public/stylesheets/style.less
index 563bca2..5a107e9 100644
--- a/modules/webconfig/nodejs/public/stylesheets/style.less
+++ b/modules/webconfig/nodejs/public/stylesheets/style.less
@@ -339,6 +339,17 @@
   text-decoration: none;
 }
 
+.theme-line .select li a {
+  color: #666;
+}
+
+.theme-line .select  {
+  li a:hover, .active {
+    color: #ec1c24;
+    background-color: white;
+  }
+}
+
 //.theme-line .sidebar-nav ul li a:hover:before,
 //.theme-solid .sidebar-nav ul li a:hover:before {
 //  background-color: #eee;
@@ -959,7 +970,7 @@ button .caret {
 
 .theme-line .links table {
   table-layout: fixed;
-  margin: 0;
+  margin-bottom: 20px;
 }
 .theme-line .links table td {
   padding-left: 18px;
@@ -970,12 +981,13 @@ button .caret {
 }
 
 .theme-line .links table a:hover {
-  color: #ec1c24;
+  color: #950d12;
 }
 
 .theme-line .links table .active a {
   //font-weight: bold;
   color: #ec1c24;
+  font-weight: bold;
 }
 
 .btn {
@@ -990,10 +1002,6 @@ button .caret {
   margin: -0.65em 0;
 }
 
-.panel {
-  margin-top: -0.65em;
-}
-
 .tooltip.right .tooltip-arrow {
   border-right-color: #ec1c24;
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/routes/clusters.js b/modules/webconfig/nodejs/routes/clusters.js
index da2b347..2f8273f 100644
--- a/modules/webconfig/nodejs/routes/clusters.js
+++ b/modules/webconfig/nodejs/routes/clusters.js
@@ -67,11 +67,11 @@ router.get('/', function(req, res) {
  */
 router.post('/save', function(req, res) {
     if (req.body._id)
-        db.Cluster.update({_id: req.body._id}, req.body, {upsert: true}, function(err) {
+        db.Cluster.update({_id: req.body._id}, req.body, {upsert: true}, function(err, cluster) {
             if (err)
                 return res.status(500).send(err.message);
 
-            res.sendStatus(200);
+            res.send(req.body._id);
         });
     else {
         var cluster = new db.Cluster(req.body);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/views/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/clusters.jade b/modules/webconfig/nodejs/views/clusters.jade
index 82d0407..6c52101 100644
--- a/modules/webconfig/nodejs/views/clusters.jade
+++ b/modules/webconfig/nodejs/views/clusters.jade
@@ -27,16 +27,15 @@ block content
         p Create and configure Ignite clusters.
         hr
     .docs-body(ng-controller='clustersController')
-        button(ng-click='createItem()' class=['btn', 'btn-primary'] ng-disabled='!create.template') &nbspAdd cluster
-        span from template:&nbsp
-        button.btn.btn-default(ng-init='create.template = templates[0].value' ng-model='create.template' data-template='/select' data-placeholder='Choose cluster template' bs-options='item.value as item.label for item in templates' bs-select)
-        h3(ng-hide='clusters.length == 0') Clusters
-        .links
+        .links(ng-hide='clusters.length == 0')
             table.col-sm-12(st-table='clusters')
                 tbody
                     tr(ng-repeat='row in clusters track by row._id')
                         td.col-sm-6(ng-class='{active: row._id == selectedItem._id}')
                             a(ng-click='selectItem(row)') {{$index + 1}}. {{row.name}}, {{row.discovery.kind | displayValue:discoveries:'Discovery not set'}}
+        button(ng-click='createItem()' class=['btn', 'btn-primary'] ng-disabled='!create.template') &nbspAdd cluster
+        span(style='margin-left: 15px; margin-right: 5px') Use template:&nbsp
+        button.btn.btn-default(ng-init='create.template = templates[0].value' ng-model='create.template' data-template='/select' data-placeholder='Choose cluster template' bs-options='item.value as item.label for item in templates' bs-select)
         .row.col-sm-12
             hr
         form.form-horizontal(name='editForm' ng-if='backupItem')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e6af1c24/modules/webconfig/nodejs/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/views/templates/select.jade b/modules/webconfig/nodejs/views/templates/select.jade
index 39d7483..1a7a70c 100644
--- a/modules/webconfig/nodejs/views/templates/select.jade
+++ b/modules/webconfig/nodejs/views/templates/select.jade
@@ -16,8 +16,8 @@
 
 ul.select.dropdown-menu(tabindex='-1', ng-show='$isVisible()', role='select')
     li(role='presentation', ng-repeat='match in $matches')
-        a(style='cursor: default;', role='menuitem', tabindex='-1', ng-click='$select($index, $event)')
-            i.pull-right(class='{{$iconCheckmark}}', ng-if='$isMultiple && $isActive($index)')
+        a(style='cursor: default;', role='menuitem', tabindex='-1', ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)')
+            i.pull-right(class='{{$iconCheckmark}}', ng-if='$isMultiple && $isActive($index)' ng-class='{active: $isActive($index)}' style='margin-left: 15px')
             span(ng-bind='match.label')
     li(ng-if='$showAllNoneButtons || ($isMultiple && $matches.length > 5)')
         hr(style='margin: 5px 0')