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/12/01 10:03:00 UTC

[48/50] [abbrv] ignite git commit: IGNITE-843 Merge ignite_modules.

IGNITE-843 Merge ignite_modules.


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

Branch: refs/heads/ignite-843-rc2
Commit: 6699b1e9edfc99c855bb67a3573c7db903251b24
Parents: a8c8ebf
Author: Andrey <an...@gridgain.com>
Authored: Tue Dec 1 15:52:43 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Tue Dec 1 15:52:43 2015 +0700

----------------------------------------------------------------------
 .../control-center-web/src/main/js/app/index.js |   4 +-
 .../app/modules/configuration-sidebar/main.js   |  56 ----
 .../app/modules/configuration/sidebar/main.js   |  56 ++++
 .../src/main/js/gulpfile.js/tasks/concat.js     |   4 +-
 .../src/main/js/gulpfile.js/tasks/copy.js       |   3 +-
 .../main/js/gulpfile.js/tasks/inject-plugins.js |   7 +-
 .../src/main/js/views/configuration/caches.jade |  41 ++-
 .../main/js/views/configuration/clusters.jade   |  41 ++-
 .../src/main/js/views/configuration/igfs.jade   |  41 ++-
 .../main/js/views/configuration/metadata.jade   |  83 +++---
 .../main/js/views/configuration/sidebar.jade    |  38 +--
 .../main/js/views/configuration/summary.jade    | 125 ++++----
 .../src/main/js/views/index.jade                |  24 +-
 .../src/main/js/views/login.jade                |   1 +
 .../src/main/js/views/reset.jade                |   1 +
 .../src/main/js/views/settings/admin.jade       |  74 +++--
 .../src/main/js/views/settings/profile.jade     |  79 +++--
 .../src/main/js/views/sql/sql.jade              | 294 +++++++++----------
 .../main/js/views/templates/batch-confirm.jade  |   2 +-
 .../src/main/js/views/templates/layout.jade     |  50 ----
 20 files changed, 478 insertions(+), 546 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/app/index.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/index.js b/modules/control-center-web/src/main/js/app/index.js
index 07d790d..8c68968 100644
--- a/modules/control-center-web/src/main/js/app/index.js
+++ b/modules/control-center-web/src/main/js/app/index.js
@@ -65,7 +65,7 @@ import './modules/states/admin/index'
 // ignite:modules
 import './modules/navbar/main'
 import './modules/userbar/main'
-import './modules/configuration-sidebar/main'
+import './modules/configuration/sidebar/main'
 // endignite
 
 angular
@@ -85,7 +85,7 @@ angular
 	//
 	'ignite-console.navbar',
 	'ignite-console.userbar',
-    'ignite-console.configuration-sidebar'
+    'ignite-console.configuration.sidebar'
 ])
 .config(['$stateProvider', '$locationProvider', '$urlRouterProvider', function($stateProvider, $locationProvider, $urlRouterProvider) {
 	// set up the states

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/app/modules/configuration-sidebar/main.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/configuration-sidebar/main.js b/modules/control-center-web/src/main/js/app/modules/configuration-sidebar/main.js
deleted file mode 100644
index 8d34064..0000000
--- a/modules/control-center-web/src/main/js/app/modules/configuration-sidebar/main.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import angular from 'angular'
-
-angular
-.module('ignite-console.configuration.sidebar', [
-
-])
-.provider('igniteConfigurationSidebar', function() {
-    var items = [
-        { label: 'Clusters', href: '/configuration/clusters' },
-        { label: 'Caches', href: '/configuration/caches' },
-        { label: 'Metadata', href: '/configuration/metadata' },
-        { label: 'IGFS', href: '/configuration/igfs' }
-    ];
-
-    this.push = function(data) {
-        items.push(data);
-    };
-
-    this.$get = [function() {
-        var r = angular.copy(items);
-
-        r.push({ label: 'Summary', href: '/configuration/summary' });
-
-        return r;
-    }]
-})
-.directive('igniteConfigurationSidebar', ['igniteConfigurationSidebar', function(igniteConfigurationSidebar) {
-    function controller() {
-        var ctrl = this;
-
-        ctrl.items = igniteConfigurationSidebar;
-    }
-
-    return {
-        restrict: 'A',
-        controller: controller,
-        controllerAs: 'sidebar'
-    }
-}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/app/modules/configuration/sidebar/main.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/app/modules/configuration/sidebar/main.js b/modules/control-center-web/src/main/js/app/modules/configuration/sidebar/main.js
new file mode 100644
index 0000000..8d34064
--- /dev/null
+++ b/modules/control-center-web/src/main/js/app/modules/configuration/sidebar/main.js
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import angular from 'angular'
+
+angular
+.module('ignite-console.configuration.sidebar', [
+
+])
+.provider('igniteConfigurationSidebar', function() {
+    var items = [
+        { label: 'Clusters', href: '/configuration/clusters' },
+        { label: 'Caches', href: '/configuration/caches' },
+        { label: 'Metadata', href: '/configuration/metadata' },
+        { label: 'IGFS', href: '/configuration/igfs' }
+    ];
+
+    this.push = function(data) {
+        items.push(data);
+    };
+
+    this.$get = [function() {
+        var r = angular.copy(items);
+
+        r.push({ label: 'Summary', href: '/configuration/summary' });
+
+        return r;
+    }]
+})
+.directive('igniteConfigurationSidebar', ['igniteConfigurationSidebar', function(igniteConfigurationSidebar) {
+    function controller() {
+        var ctrl = this;
+
+        ctrl.items = igniteConfigurationSidebar;
+    }
+
+    return {
+        restrict: 'A',
+        controller: controller,
+        controllerAs: 'sidebar'
+    }
+}]);

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/gulpfile.js/tasks/concat.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/concat.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/concat.js
index dfb2115..dcd8779 100644
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/concat.js
+++ b/modules/control-center-web/src/main/js/gulpfile.js/tasks/concat.js
@@ -21,7 +21,9 @@ var concat = require('gulp-concat');
 paths = [
 	'!./controllers/common-module.js',
 	'./controllers/*.js',
-	'./controllers/**/*.js'
+	'./controllers/**/*.js',
+	'./helpers/generator/*.js',
+	'./helpers/generator/**/*.js'
 ];
 
 gulp.task('concat', function() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
index 8956587..07a4cd4 100644
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
+++ b/modules/control-center-web/src/main/js/gulpfile.js/tasks/copy.js
@@ -45,8 +45,9 @@ var legacyPaths = [
 
 var igniteModulePaths = [
     igniteModules + '/**/main.js',
+    igniteModules + '/**/app/modules/*.js',
+    igniteModules + '/**/app/modules/**/*.js',
     igniteModules + '/**/controllers/*.js',
-    igniteModules + '/**/generator/*.js',
     igniteModules + '/**/controllers/models/*.json'
 ];
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js b/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
index 6a05231..6dad3c3 100644
--- a/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
+++ b/modules/control-center-web/src/main/js/gulpfile.js/tasks/inject-plugins.js
@@ -32,7 +32,10 @@ var js_targets = [
 ];
 
 var js_sources = [
-    './build/ignite_modules/**/main.js'
+    './build/ignite_modules/**/main.js',
+    './build/ignite_modules/**/app/modules/*.js',
+    './build/ignite_modules/**/app/modules/*.js',
+    './build/ignite_modules/**/app/modules/**/*.js'
 ];
 
 gulp.task('inject:plugins:html', function() {
@@ -55,7 +58,7 @@ gulp.task('inject:plugins:js', function() {
             endtag: ' /* endignite */',
                 transform: function (filePath, file, i, length) {
                 // return file contents as string
-                return ", 'ignite-web-console." + filePath.replace(/.*ignite_modules\/([^\/]+).*/mgi, '$1') + "'";
+                return ", 'ignite-console." + filePath.replace(/.*ignite_modules\/([^\/]+).*/mgi, '$1') + "'";
             }
         }))
         .pipe(gulp.dest('./build'));

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/caches.jade b/modules/control-center-web/src/main/js/views/configuration/caches.jade
index 42ba4a1..e933f2a 100644
--- a/modules/control-center-web/src/main/js/views/configuration/caches.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/caches.jade
@@ -16,26 +16,25 @@
 
 include ../includes/controls
 
-block content
-    .docs-header
-        h1 Create and Configure Ignite Caches
-    .docs-body(ng-controller='cachesController')
-        div(dw-loading='loadingCachesScreen' dw-loading-options='{text: "Loading caches screen...", className: "page-loading-overlay"}')
-            div(ng-show='ui.ready')
-                +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+.docs-header
+    h1 Create and Configure Ignite Caches
+.docs-body(ng-controller='cachesController')
+    div(dw-loading='loadingCachesScreen' dw-loading-options='{text: "Loading caches screen...", className: "page-loading-overlay"}')
+        div(ng-show='ui.ready')
+            +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+            hr
+            +main-table('Caches:', 'caches', 'cacheName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}, {{row.cacheMode | displayValue:cacheModes:"Cache mode not set"}}, {{row.atomicityMode | displayValue:atomicities:"Cache atomicity not set"}}')
+            .padding-top-dflt(bs-affix)
+                .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new cache')
+                    button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cache
+                +save-remove-buttons('cache')
                 hr
-                +main-table('Caches:', 'caches', 'cacheName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}, {{row.cacheMode | displayValue:cacheModes:"Cache mode not set"}}, {{row.atomicityMode | displayValue:atomicities:"Cache atomicity not set"}}')
-                .padding-top-dflt(bs-affix)
-                    .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new cache')
-                        button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cache
+            form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
+                .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true')
+                    +groups('general', 'backupItem')
+                    div(ng-show='ui.expanded')
+                        +advanced-options
+                        +groups('advanced', 'backupItem')
+                +advanced-options
+                .section(ng-if='ui.expanded')
                     +save-remove-buttons('cache')
-                    hr
-                form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
-                    .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true')
-                        +groups('general', 'backupItem')
-                        div(ng-show='ui.expanded')
-                            +advanced-options
-                            +groups('advanced', 'backupItem')
-                    +advanced-options
-                    .section(ng-if='ui.expanded')
-                        +save-remove-buttons('cache')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/clusters.jade b/modules/control-center-web/src/main/js/views/configuration/clusters.jade
index 33d0f75..ecb0d4e 100644
--- a/modules/control-center-web/src/main/js/views/configuration/clusters.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/clusters.jade
@@ -16,26 +16,25 @@
 
 include ../includes/controls
 
-block content
-    .docs-header
-        h1 Create and Configure Ignite Clusters
-    .docs-body(ng-controller='clustersController')
-        div(dw-loading='loadingClustersScreen' dw-loading-options='{text: "Loading clusters screen...", className: "page-loading-overlay"}')
-            div(ng-show='ui.ready')
-                +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+.docs-header
+    h1 Create and Configure Ignite Clusters
+.docs-body(ng-controller='clustersController')
+    div(dw-loading='loadingClustersScreen' dw-loading-options='{text: "Loading clusters screen...", className: "page-loading-overlay"}')
+        div(ng-show='ui.ready')
+            +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+            hr
+            +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}, {{row.discovery.kind | displayValue:discoveries:"Discovery not set"}}')
+            .padding-top-dflt(bs-affix)
+                .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new cluster')
+                    button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cluster
+                +save-remove-buttons('cluster')
                 hr
-                +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}, {{row.discovery.kind | displayValue:discoveries:"Discovery not set"}}')
-                .padding-top-dflt(bs-affix)
-                    .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new cluster')
-                        button.btn.btn-primary(id='new-item' ng-click='createItem()') Add cluster
+            form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
+                .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true')
+                    +groups('general', 'backupItem')
+                    div(ng-show='ui.expanded')
+                        +advanced-options
+                        +groups('advanced', 'backupItem')
+                +advanced-options
+                .section(ng-show='ui.expanded')
                     +save-remove-buttons('cluster')
-                    hr
-                form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
-                    .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true')
-                        +groups('general', 'backupItem')
-                        div(ng-show='ui.expanded')
-                            +advanced-options
-                            +groups('advanced', 'backupItem')
-                    +advanced-options
-                    .section(ng-show='ui.expanded')
-                        +save-remove-buttons('cluster')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/igfs.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/igfs.jade b/modules/control-center-web/src/main/js/views/configuration/igfs.jade
index ef090c2..ec2ed78 100644
--- a/modules/control-center-web/src/main/js/views/configuration/igfs.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/igfs.jade
@@ -16,26 +16,25 @@
 
 include ../includes/controls
 
-block content
-    .docs-header
-        h1 Create and Configure IGFS
-    .docs-body(ng-controller='igfsController')
-        div(dw-loading='loadingIgfsScreen' dw-loading-options='{text: "Loading IGFS screen...", className: "page-loading-overlay"}')
-            div(ng-show='ui.ready')
-                +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+.docs-header
+    h1 Create and Configure IGFS
+.docs-body(ng-controller='igfsController')
+    div(dw-loading='loadingIgfsScreen' dw-loading-options='{text: "Loading IGFS screen...", className: "page-loading-overlay"}')
+        div(ng-show='ui.ready')
+            +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+            hr
+            +main-table('IGFS:', 'igfss', 'igfsName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}')
+            .padding-top-dflt(bs-affix)
+                .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new IGFS')
+                    button.btn.btn-primary(id='new-item' ng-click='createItem()') Add IGFS
+                +save-remove-buttons('IGFS')
                 hr
-                +main-table('IGFS:', 'igfss', 'igfsName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}')
-                .padding-top-dflt(bs-affix)
-                    .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new IGFS')
-                        button.btn.btn-primary(id='new-item' ng-click='createItem()') Add IGFS
+            form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
+                .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true')
+                    +groups('general', 'backupItem')
+                    div(ng-show='ui.expanded')
+                        +advanced-options
+                        +groups('advanced', 'backupItem')
+                +advanced-options
+                .section(ng-show='ui.expanded')
                     +save-remove-buttons('IGFS')
-                    hr
-                form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow(displayedRows, selectedItem)' novalidate unsaved-warning-form)
-                    .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true')
-                        +groups('general', 'backupItem')
-                        div(ng-show='ui.expanded')
-                            +advanced-options
-                            +groups('advanced', 'backupItem')
-                    +advanced-options
-                    .section(ng-show='ui.expanded')
-                        +save-remove-buttons('IGFS')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/metadata.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/metadata.jade b/modules/control-center-web/src/main/js/views/configuration/metadata.jade
index 7f50c9e..e8c114f 100644
--- a/modules/control-center-web/src/main/js/views/configuration/metadata.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/metadata.jade
@@ -16,47 +16,46 @@
 
 include ../includes/controls
 
-block content
-    .docs-header
-        h1 Create and Configure Cache Type Metadata
-    .docs-body(ng-controller='metadataController')
-        div(dw-loading='loadingMetadataScreen' dw-loading-options='{text: "Loading metadata screen...", className: "page-loading-overlay"}')
-            div(ng-show='ui.ready')
-                +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
-                hr
-                .padding-bottom-dflt(ng-show='metadatas && metadatas.length > 0')
-                    table.links(st-set-filter='metadatasSearch' st-table='displayedRows' st-safe-src='metadatas')
-                        thead
+.docs-header
+    h1 Create and Configure Cache Type Metadata
+.docs-body(ng-controller='metadataController')
+    div(dw-loading='loadingMetadataScreen' dw-loading-options='{text: "Loading metadata screen...", className: "page-loading-overlay"}')
+        div(ng-show='ui.ready')
+            +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+            hr
+            .padding-bottom-dflt(ng-show='metadatas && metadatas.length > 0')
+                table.links(st-set-filter='metadatasSearch' st-table='displayedRows' st-safe-src='metadatas')
+                    thead
+                        tr
+                            th
+                                .col-sm-8
+                                    .col-sm-5
+                                        lable.labelHeader.labelFormField {{metadataTitle()}}
+                                    .col-sm-7
+                                        .pull-right.labelLogin.additional-filter(ng-if='(metadatas | metadatasValidation:false:true).length > 0')
+                                            a.labelFormField(ng-if='ui.showValid' ng-click='toggleValid()') Key fields should be configured: {{(displayedRows | metadatasValidation:false:true).length}}&nbsp
+                                            a.labelFormField(ng-if='!ui.showValid' ng-click='toggleValid()') Show all metadata: {{displayedRows.length}}&nbsp
+                                .col-sm-4
+                                    input.form-control.pull-right(type='text' st-search='' placeholder='Filter metadatas...')
+                        tbody
                             tr
-                                th
-                                    .col-sm-8
-                                        .col-sm-5
-                                            lable.labelHeader.labelFormField {{metadataTitle()}}
-                                        .col-sm-7
-                                            .pull-right.labelLogin.additional-filter(ng-if='(metadatas | metadatasValidation:false:true).length > 0')
-                                                a.labelFormField(ng-if='ui.showValid' ng-click='toggleValid()') Key fields should be configured: {{(displayedRows | metadatasValidation:false:true).length}}&nbsp
-                                                a.labelFormField(ng-if='!ui.showValid' ng-click='toggleValid()') Show all metadata: {{displayedRows.length}}&nbsp
-                                    .col-sm-4
-                                        input.form-control.pull-right(type='text' st-search='' placeholder='Filter metadatas...')
-                            tbody
-                                tr
-                                    td
-                                        .scrollable-y(ng-show='(displayedRows | metadatasValidation:ui.showValid:true).length > 0' style='max-height: 200px')
-                                            table
-                                                tbody
-                                                    tr(ng-repeat='row in (displayedRows | metadatasValidation:ui.showValid:true) track by row._id')
-                                                        td
-                                                            a(ng-class='{active: row._id == selectedItem._id}' ng-click='selectItem(row)') {{$index + 1}}) {{row.valueType}}
-                                        label.placeholder(ng-show='(displayedRows | metadatasValidation:ui.showValid:true).length == 0') No metadata found
-                .padding-top-dflt(bs-affix)
-                    .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new metadata')
-                        button.btn.btn-primary(id='new-item' ng-click='createItem()') Add metadata
-                    .panel-tip-container(bs-tooltip data-title='Load new metadata from database' data-placement='bottom')
-                        button.btn.btn-primary(ng-click='showLoadMetadataModal()') Load from database
+                                td
+                                    .scrollable-y(ng-show='(displayedRows | metadatasValidation:ui.showValid:true).length > 0' style='max-height: 200px')
+                                        table
+                                            tbody
+                                                tr(ng-repeat='row in (displayedRows | metadatasValidation:ui.showValid:true) track by row._id')
+                                                    td
+                                                        a(ng-class='{active: row._id == selectedItem._id}' ng-click='selectItem(row)') {{$index + 1}}) {{row.valueType}}
+                                    label.placeholder(ng-show='(displayedRows | metadatasValidation:ui.showValid:true).length == 0') No metadata found
+            .padding-top-dflt(bs-affix)
+                .panel-tip-container(data-placement='bottom' bs-tooltip data-title='Create new metadata')
+                    button.btn.btn-primary(id='new-item' ng-click='createItem()') Add metadata
+                .panel-tip-container(bs-tooltip data-title='Load new metadata from database' data-placement='bottom')
+                    button.btn.btn-primary(ng-click='showLoadMetadataModal()') Load from database
+                +save-remove-buttons('metadata')
+            hr
+            form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow((displayedRows | metadatasValidation:ui.showValid:true), selectedItem)' novalidate unsaved-warning-form)
+                .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true')
+                    +groups('metadata', 'backupItem')
+                .section
                     +save-remove-buttons('metadata')
-                hr
-                form.form-horizontal(name='ui.inputForm' ng-show='backupItem && tableVisibleRow((displayedRows | metadatasValidation:ui.showValid:true), selectedItem)' novalidate unsaved-warning-form)
-                    .panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true')
-                        +groups('metadata', 'backupItem')
-                    .section
-                        +save-remove-buttons('metadata')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/sidebar.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/sidebar.jade b/modules/control-center-web/src/main/js/views/configuration/sidebar.jade
index a8e7129..f20be95 100644
--- a/modules/control-center-web/src/main/js/views/configuration/sidebar.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/sidebar.jade
@@ -14,27 +14,19 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-append scripts
-    script(src='/data-structures.js')
-    script(src='/generator/generator-common.js')
-    script(src='/generator/generator-xml.js')
-    script(src='/generator/generator-java.js')
+.row
+    .col-xs-3.col-sm-3.col-md-2.border-right.section-left.greedy
+        .sidebar-nav(bs-affix)
+            ul.menu(ignite-configuration-sidebar ng-controller='activeLink')
+                li(ng-repeat='item in sidebar.items')
+                    a(ng-class='{active: isActive("{{::item.href}}$")}' href='{{::item.href}}')
+                        span.fa-stack
+                            i.fa.fa-circle-thin.fa-stack-2x
+                            i.fa.fa-stack-1x {{::$index + 1}}
+                        | {{::item.label}}
+                    ul(ng-if='item.subItems' style='margin-left:30px')
+                        li(ng-repeat='subItem in item.subItems')
+                            a(ng-class='{active: isActive("{{::subItem.href}}")}' href='{{::subItem.href}}') {{::subItem.label}}
 
-block container
-    .row
-        .col-xs-3.col-sm-3.col-md-2.border-right.section-left.greedy
-            .sidebar-nav(bs-affix)
-                ul.menu(ignite-configuration-sidebar ng-controller='activeLink')
-                    li(ng-repeat='item in sidebar.items')
-                        a(ng-class='{active: isActive("{{::item.href}}$")}' href='{{::item.href}}')
-                            span.fa-stack
-                                i.fa.fa-circle-thin.fa-stack-2x
-                                i.fa.fa-stack-1x {{::$index + 1}}
-                            | {{::item.label}}
-                        ul(ng-if='item.subItems' style='margin-left:30px')
-                            li(ng-repeat='subItem in item.subItems')
-                                a(ng-class='{active: isActive("{{::subItem.href}}")}' href='{{::subItem.href}}') {{::subItem.label}}
-
-        .col-xs-9.col-sm-9.col-md-10.border-left.section-right
-            .docs-content(ui-view='')
-                block content
+    .col-xs-9.col-sm-9.col-md-10.border-left.section-right
+        .docs-content(ui-view='')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/summary.jade b/modules/control-center-web/src/main/js/views/configuration/summary.jade
index 79c31ed..8efa785 100644
--- a/modules/control-center-web/src/main/js/views/configuration/summary.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/summary.jade
@@ -14,12 +14,6 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-append scripts
-    script(src='/generator/generator-docker.js')
-    script(src='/generator/generator-properties.js')
-    script(src='/generator/generator-pom.js')
-    script(src='/generator/generator-readme.js')
-
 include ../includes/controls
 
 mixin hard-link(ref, txt)
@@ -44,72 +38,71 @@ mixin pojos(side)
                 | Include key fields
         div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='config#{side}.pojoClassBody')
 
-block content
-    .docs-header
-        h1 Configurations Summary
-    .docs-body(ng-controller='summaryController' dw-loading='loadingSummaryScreen' dw-loading-options='{text: "Loading summary screen...", className: "page-loading-overlay"}' method='post' action='summary/download')
-        +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+.docs-header
+    h1 Configurations Summary
+.docs-body(ng-controller='summaryController' dw-loading='loadingSummaryScreen' dw-loading-options='{text: "Loading summary screen...", className: "page-loading-overlay"}' method='post' action='summary/download')
+    +block-callout('{{screenTip.workflowTitle}}', 'screenTip.workflowContent', '{{screenTip.whatsNextTitle}}', 'screenTip.whatsNextContent')
+    hr
+    .padding-dflt(ng-if='clusters.length == 0')
+        | You have no clusters configured. Please configure them &nbsp;
+        a(href='/configuration/clusters') here.
+    +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}')
+    .padding-top-dflt(ng-if='clusters.length > 0' bs-affix)
+        button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip data-title='Download configuration' data-placement='bottom') Download
         hr
-        .padding-dflt(ng-if='clusters.length == 0')
-            | You have no clusters configured. Please configure them &nbsp;
-            a(href='/configuration/clusters') here.
-        +main-table('Clusters:', 'clusters', 'clusterName', 'selectItem(row)', '{{$index + 1}}) {{row.name}}')
-        .padding-top-dflt(ng-if='clusters.length > 0' bs-affix)
-            button.btn.btn-primary(id='download' ng-click='downloadConfiguration()' bs-tooltip data-title='Download configuration' data-placement='bottom') Download
-            hr
-        div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)' role='tab')
-            .panel-group(bs-collapse ng-init='panels.activePanels=[0,1]' ng-model='panels.activePanels' data-allow-multiple='true')
-                .panel.panel-default
-                    .panel-heading(role='tab' bs-collapse-toggle)
-                        i.fa(ng-class='panelExpanded(panels, "server") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
-                        label Server
-                    .panel-collapse(id='server' role='tabpanel' bs-collapse-target)
-                        .summary-tabs(bs-tabs data-bs-active-pane="tabsServer.activeTab" ng-show='selectedItem' template='configuration/summary-tabs.html')
+    div(ng-show='selectedItem && tableVisibleRow(displayedRows, selectedItem)' role='tab')
+        .panel-group(bs-collapse ng-init='panels.activePanels=[0,1]' ng-model='panels.activePanels' data-allow-multiple='true')
+            .panel.panel-default
+                .panel-heading(role='tab' bs-collapse-toggle)
+                    i.fa(ng-class='panelExpanded(panels, "server") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
+                    label Server
+                .panel-collapse(id='server' role='tabpanel' bs-collapse-target)
+                    .summary-tabs(bs-tabs data-bs-active-pane="tabsServer.activeTab" ng-show='selectedItem' template='configuration/summary-tabs.html')
+                        div(bs-pane title='XML')
+                            div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlServer')
+                        div(bs-pane title='Java')
+                            .details-row
+                                .col-xs-2.col-sm-2.col-md-1
+                                    label Generate:
+                                .col-xs-4.col-sm-3.col-md-3
+                                    button.select-toggle.form-control(ng-model='configServer.javaClassServer' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
+                            div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaServer')
+                        div(bs-pane title='POM')
+                            div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='pom')
+                        div(bs-pane title='Dockerfile')
+                            .details-row
+                                p
+                                    +hard-link('https://docs.docker.com/reference/builder', 'Docker')
+                                    | &nbsp;file is a text file with instructions to create Docker image.<br/>
+                                    | To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
+                                    | Also you could use predefined&nbsp;
+                                    +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
+                                    | . For more information about using Ignite with Docker please read&nbsp;
+                                    +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
+                                    |.
+                                .col-xs-3.col-sm-2
+                                    label(for='os') Operation System:
+                                .col-xs-5.col-sm-4
+                                    input#os.form-control(type='text' ng-model='configServer.os' placeholder='debian:8' data-min-length='0' data-html='1' data-auto-select='true' bs-typeahead retain-selection bs-options='os for os in oss')
+                            div(ui-ace='{onLoad: aceInit, mode: "dockerfile"}' ng-model='dockerServer')
+            .panel.panel-default
+                .panel-heading(role='tab' bs-collapse-toggle)
+                    i.fa(ng-class='panelExpanded(panels, "client") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
+                    label Client
+                .panel-collapse(id='client' role='tabpanel' bs-collapse-target)
+                    div(ng-show='selectedItem')
+                        .details-row(ng-repeat='field in clientFields')
+                            +form-row-custom(['col-xs-4 col-sm-4 col-md-3'], ['col-xs-4 col-sm-4 col-md-3'], 'backupItem')
+                        .summary-tabs(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
                             div(bs-pane title='XML')
-                                div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlServer')
+                                div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlClient')
                             div(bs-pane title='Java')
                                 .details-row
                                     .col-xs-2.col-sm-2.col-md-1
                                         label Generate:
                                     .col-xs-4.col-sm-3.col-md-3
-                                        button.select-toggle.form-control(ng-model='configServer.javaClassServer' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
-                                div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaServer')
+                                        button.select-toggle.form-control(ng-model='backupItem.javaClassClient' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
+                                div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaClient')
                             div(bs-pane title='POM')
                                 div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='pom')
-                            div(bs-pane title='Dockerfile')
-                                .details-row
-                                    p
-                                        +hard-link('https://docs.docker.com/reference/builder', 'Docker')
-                                        | &nbsp;file is a text file with instructions to create Docker image.<br/>
-                                        | To build image you have to store following Docker file with your Ignite XML configuration to the same directory.<br>
-                                        | Also you could use predefined&nbsp;
-                                        +hard-link('https://ignite.apache.org/download.html#docker', 'Apache Ignite docker image')
-                                        | . For more information about using Ignite with Docker please read&nbsp;
-                                        +hard-link('http://apacheignite.readme.io/docs/docker-deployment', 'documentation')
-                                        |.
-                                    .col-xs-3.col-sm-2
-                                        label(for='os') Operation System:
-                                    .col-xs-5.col-sm-4
-                                        input#os.form-control(type='text' ng-model='configServer.os' placeholder='debian:8' data-min-length='0' data-html='1' data-auto-select='true' bs-typeahead retain-selection bs-options='os for os in oss')
-                                div(ui-ace='{onLoad: aceInit, mode: "dockerfile"}' ng-model='dockerServer')
-                .panel.panel-default
-                    .panel-heading(role='tab' bs-collapse-toggle)
-                        i.fa(ng-class='panelExpanded(panels, "client") ? "fa-chevron-circle-up" : "fa-chevron-circle-down"')
-                        label Client
-                    .panel-collapse(id='client' role='tabpanel' bs-collapse-target)
-                        div(ng-show='selectedItem')
-                            .details-row(ng-repeat='field in clientFields')
-                                +form-row-custom(['col-xs-4 col-sm-4 col-md-3'], ['col-xs-4 col-sm-4 col-md-3'], 'backupItem')
-                            .summary-tabs(bs-tabs data-bs-active-pane="tabsClient.activeTab" template='configuration/summary-tabs.html')
-                                div(bs-pane title='XML')
-                                    div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='xmlClient')
-                                div(bs-pane title='Java')
-                                    .details-row
-                                        .col-xs-2.col-sm-2.col-md-1
-                                            label Generate:
-                                        .col-xs-4.col-sm-3.col-md-3
-                                            button.select-toggle.form-control(ng-model='backupItem.javaClassClient' bs-select bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
-                                    div(ui-ace='{onLoad: aceInit, mode: "java"}' ng-model='javaClient')
-                                div(bs-pane title='POM')
-                                    div(ui-ace='{onLoad: aceInit, mode: "xml"}' ng-model='pom')
-                                +pojos('Client')
+                            +pojos('Client')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/index.jade b/modules/control-center-web/src/main/js/views/index.jade
index 97f46e2..d6bedca 100644
--- a/modules/control-center-web/src/main/js/views/index.jade
+++ b/modules/control-center-web/src/main/js/views/index.jade
@@ -22,19 +22,17 @@ html(ng-app='ignite-web-console')
         meta(http-equiv='content-type' content='text/html; charset=UTF8')
         title=title
 
-        block css
-            link(rel='stylesheet', href='/app.min.css')
-
-        block scripts
-            script(src='/common-utils.js')
-            script(src='/app.min.js')
-
-            // ignite:plugins
-            // endignite
-            
-            script(src='/common-module.js')
-            script(src='/data-structures.js')
-            script(src='/all.js')
+        link(rel='stylesheet', href='/app.min.css')
+
+        script(src='/common-utils.js')
+        script(src='/app.min.js')
+
+        script(src='/common-module.js')
+        script(src='/data-structures.js')
+        script(src='/all.js')
+
+        // ignite:plugins
+        // endignite
 
     body.theme-line.body-overlap.greedy
         .wrapper(ui-view='')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/login.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/login.jade b/modules/control-center-web/src/main/js/views/login.jade
index b33e37b..9af6ab2 100644
--- a/modules/control-center-web/src/main/js/views/login.jade
+++ b/modules/control-center-web/src/main/js/views/login.jade
@@ -130,6 +130,7 @@ header#header.header
                     a.right.carousel-control(href='#carousel', role='button', data-slide='next')
                         span.fa.fa-chevron-right(aria-hidden='true')
                         span.sr-only Next
+
 include includes/footer
 
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/reset.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/reset.jade b/modules/control-center-web/src/main/js/views/reset.jade
index 5f77c81..7f5a98d 100644
--- a/modules/control-center-web/src/main/js/views/reset.jade
+++ b/modules/control-center-web/src/main/js/views/reset.jade
@@ -41,4 +41,5 @@ header#header.header
                         .col-sm-3
                             input#user_confirm.form-control(type='password' ng-model='reset_info.confirm' match='reset_info.password' placeholder='Confirm new password' required on-enter='resetForm.$valid && resetPassword(user_info)')
                 button.btn.btn-primary(ng-disabled='resetForm.$invalid' ng-click='resetPassword(reset_info)') Reset Password
+
 include includes/footer

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/settings/admin.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/settings/admin.jade b/modules/control-center-web/src/main/js/views/settings/admin.jade
index b9c2860..84286a8 100644
--- a/modules/control-center-web/src/main/js/views/settings/admin.jade
+++ b/modules/control-center-web/src/main/js/views/settings/admin.jade
@@ -12,41 +12,39 @@
     See the License for the specific language governing permissions and
     limitations under the License.
 
-block container
-    .row(ng-controller='adminController')
-        .docs-content
-            .docs-header
-                h1 List of registered users
-                hr
-            .docs-body
-                table.table.table-striped.admin(st-table='displayedUsers' st-safe-src='users')
-                    thead
-                        tr
-                            th.header(colspan='5')
-                                .col-sm-2.pull-right
-                                    input.form-control(type='text' st-search='' placeholder='Filter users...')
-                        tr
-                            th(st-sort='username') User name
-                            th(st-sort='email') Email
-                            th.col-sm-2(st-sort='lastLogin') Last login
-                            th(width='1%'  st-sort='admin') Admin
-                            th(width='1%') Actions
-                    tbody
-                        tr(ng-repeat='row in displayedUsers')
-                            td {{row.username}}
-                            td
-                                a(ng-href='mailto:{{row.email}}') {{row.email}}
-                            td
-                                span {{row.lastLogin | date:'medium'}}
-                            td(style='text-align: center;')
-                                input(type='checkbox' ng-disabled='row.adminChanging || row._id == user._id'
-                                    ng-model='row.admin' ng-change='toggleAdmin(row)')
-                            td(style='text-align: center;')
-                                div(ng-show='row._id != user._id')
-                                    i.fa.fa-remove(ng-click='removeUser(row)' bs-tooltip data-title='Remove user')
-                                    i.fa.fa-eye(ng-click='becomeUser(row)' style='margin-left: 5px'  bs-tooltip data-title='Become this user')
-                    tfoot
-                        tr
-                            td.text-right(colspan='5')
-                                div(st-pagination st-items-by-page='15' st-displayed-pages='5')
-
+.row(ng-controller='adminController')
+    .docs-content
+        .docs-header
+            h1 List of registered users
+            hr
+        .docs-body
+            table.table.table-striped.admin(st-table='displayedUsers' st-safe-src='users')
+                thead
+                    tr
+                        th.header(colspan='5')
+                            .col-sm-2.pull-right
+                                input.form-control(type='text' st-search='' placeholder='Filter users...')
+                    tr
+                        th(st-sort='username') User name
+                        th(st-sort='email') Email
+                        th.col-sm-2(st-sort='lastLogin') Last login
+                        th(width='1%'  st-sort='admin') Admin
+                        th(width='1%') Actions
+                tbody
+                    tr(ng-repeat='row in displayedUsers')
+                        td {{row.username}}
+                        td
+                            a(ng-href='mailto:{{row.email}}') {{row.email}}
+                        td
+                            span {{row.lastLogin | date:'medium'}}
+                        td(style='text-align: center;')
+                            input(type='checkbox' ng-disabled='row.adminChanging || row._id == user._id'
+                                ng-model='row.admin' ng-change='toggleAdmin(row)')
+                        td(style='text-align: center;')
+                            div(ng-show='row._id != user._id')
+                                i.fa.fa-remove(ng-click='removeUser(row)' bs-tooltip data-title='Remove user')
+                                i.fa.fa-eye(ng-click='becomeUser(row)' style='margin-left: 5px'  bs-tooltip data-title='Become this user')
+                tfoot
+                    tr
+                        td.text-right(colspan='5')
+                            div(st-pagination st-items-by-page='15' st-displayed-pages='5')

http://git-wip-us.apache.org/repos/asf/ignite/blob/6699b1e9/modules/control-center-web/src/main/js/views/settings/profile.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/settings/profile.jade b/modules/control-center-web/src/main/js/views/settings/profile.jade
index 7f76ed7..dffb333 100644
--- a/modules/control-center-web/src/main/js/views/settings/profile.jade
+++ b/modules/control-center-web/src/main/js/views/settings/profile.jade
@@ -17,47 +17,46 @@
 mixin lbl(txt)
     label.col-sm-2.required.labelFormField #{txt}
 
-block container
-    .row(ng-controller='profileController')
-        .docs-content
-            .docs-header
-                h1 User profile
-                hr
-            .docs-body
-                form.form-horizontal(name='profileForm' novalidate)
-                    .col-sm-10(style='padding: 0')
+.row(ng-controller='profileController')
+    .docs-content
+        .docs-header
+            h1 User profile
+            hr
+        .docs-body
+            form.form-horizontal(name='profileForm' novalidate)
+                .col-sm-10(style='padding: 0')
+                    .details-row
+                        +lbl('User name:')
+                        .col-xs-5.col-sm-4
+                            input.form-control(id='profile-username' type='text' ng-model='profileUser.username' placeholder='Input name' required auto-focus)
+                    .details-row
+                        +lbl('Email:')
+                        .col-xs-5.col-sm-4
+                            input.form-control(id='profile-email' type='email' ng-model='profileUser.email' placeholder='you@domain.com' required)
+                    .details-row
+                        .advanced-options
+                            i.fa.fa-chevron-circle-up(ng-show='profileUser.showToken' ng-click='profileUser.showToken = ! profileUser.showToken')
+                            i.fa.fa-chevron-circle-down(ng-show='!profileUser.showToken' ng-click='profileUser.showToken = ! profileUser.showToken')
+                            a(ng-click='profileUser.showToken = ! profileUser.showToken') {{profileUser.showToken ? 'Hide security token...' : 'Show security token...'}}
+                    .details-row(ng-show='profileUser.showToken')
+                        +lbl('Security token:')
+                        label {{profileUser.token}}
+                        i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip data-title='Generate random security token')
+                        i.tipLabel.fa.fa-clipboard(ng-click-copy='{{profileUser.token}}' bs-tooltip data-title='Copy security token to clipboard')
+                        i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
+                    .details-row
+                        .advanced-options
+                            i.fa.fa-chevron-circle-up(ng-show='profileUser.changePassword' ng-click='profileUser.changePassword = ! profileUser.changePassword')
+                            i.fa.fa-chevron-circle-down(ng-show='!profileUser.changePassword' ng-click='profileUser.changePassword = ! profileUser.changePassword')
+                            a(ng-click='profileUser.changePassword = ! profileUser.changePassword') {{profileUser.changePassword ? 'Cancel password changing...' : 'Change password...'}}
+                    div(ng-if='profileUser.changePassword')
                         .details-row
-                            +lbl('User name:')
+                            +lbl('New password:')
                             .col-xs-5.col-sm-4
-                                input.form-control(id='profile-username' type='text' ng-model='profileUser.username' placeholder='Input name' required auto-focus)
+                                input.form-control(type='password' ng-model='profileUser.newPassword' placeholder='New password' ng-required='profileUser.changePassword')
                         .details-row
-                            +lbl('Email:')
+                            +lbl('Confirm:')
                             .col-xs-5.col-sm-4
-                                input.form-control(id='profile-email' type='email' ng-model='profileUser.email' placeholder='you@domain.com' required)
-                        .details-row
-                            .advanced-options
-                                i.fa.fa-chevron-circle-up(ng-show='profileUser.showToken' ng-click='profileUser.showToken = ! profileUser.showToken')
-                                i.fa.fa-chevron-circle-down(ng-show='!profileUser.showToken' ng-click='profileUser.showToken = ! profileUser.showToken')
-                                a(ng-click='profileUser.showToken = ! profileUser.showToken') {{profileUser.showToken ? 'Hide security token...' : 'Show security token...'}}
-                        .details-row(ng-show='profileUser.showToken')
-                            +lbl('Security token:')
-                            label {{profileUser.token}}
-                            i.tipLabel.fa.fa-refresh(ng-click='generateToken()' bs-tooltip data-title='Generate random security token')
-                            i.tipLabel.fa.fa-clipboard(ng-click-copy='{{profileUser.token}}' bs-tooltip data-title='Copy security token to clipboard')
-                            i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='' data-title='The security token is used for authorization of web agent')
-                        .details-row
-                            .advanced-options
-                                i.fa.fa-chevron-circle-up(ng-show='profileUser.changePassword' ng-click='profileUser.changePassword = ! profileUser.changePassword')
-                                i.fa.fa-chevron-circle-down(ng-show='!profileUser.changePassword' ng-click='profileUser.changePassword = ! profileUser.changePassword')
-                                a(ng-click='profileUser.changePassword = ! profileUser.changePassword') {{profileUser.changePassword ? 'Cancel password changing...' : 'Change password...'}}
-                        div(ng-if='profileUser.changePassword')
-                            .details-row
-                                +lbl('New password:')
-                                .col-xs-5.col-sm-4
-                                    input.form-control(type='password' ng-model='profileUser.newPassword' placeholder='New password' ng-required='profileUser.changePassword')
-                            .details-row
-                                +lbl('Confirm:')
-                                .col-xs-5.col-sm-4
-                                    input.form-control(type='password' ng-model='profileUser.confirmPassword' match='profileUser.newPassword' placeholder='Confirm new password' ng-required='profileUser.changePassword')
-                    .col-xs-12.col-sm-12.details-row
-                        a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save
+                                input.form-control(type='password' ng-model='profileUser.confirmPassword' match='profileUser.newPassword' placeholder='Confirm new password' ng-required='profileUser.changePassword')
+                .col-xs-12.col-sm-12.details-row
+                    a.btn.btn-primary(ng-disabled='!profileCouldBeSaved()' ng-click='profileCouldBeSaved() && saveUser()' bs-tooltip='' data-title='{{saveBtnTipText()}}' data-placement='bottom' data-trigger='hover') Save