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/07/10 13:10:33 UTC
[1/2] incubator-ignite git commit: # ignite-843 Refactor.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-843 3c2cfe555 -> 181fd9858
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/settings/admin.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/settings/admin.jade b/modules/web-control-center/nodejs/views/settings/admin.jade
new file mode 100644
index 0000000..1986ca2
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/settings/admin.jade
@@ -0,0 +1,52 @@
+//-
+ 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.
+extends ../templates/layout
+
+append scripts
+ script(src='/admin-controller.js')
+
+block container
+ .greedy.row(ng-controller='adminController')
+ .docs-content
+ .docs-header
+ h1 List of registered users
+ hr
+ .docs-body
+ table.table.table-striped(st-table='userListDisplay' st-safe-src='userList')
+ thead
+ tr
+ th(colspan='5')
+ input.form-control(type='text' st-search='' class='' placeholder='Search ...')
+ tr
+ th(st-sort='username') User name
+ th(st-sort='email') Email
+ th(st-sort='lastLogin') Last login
+ th(st-sort='lastLogin') Admin
+ th(colspan='2') Actions
+ tbody
+ tr(ng-repeat='user in userListDisplay')
+ td {{user.username}}
+ td
+ a(ng-href='mailto:{{user.email}}') {{user.email}}
+ td
+ span.small {{user.lastLogin | date:'medium'}}
+ td
+ input(type='checkbox' ng-disabled='user.adminChanging || user._id == loggedInUser._id'
+ ng-model='user.admin' ng-change='toggleAdmin(user)')
+ td(width='1%')
+ a(ng-click='removeUser(user)' ng-show='user._id != loggedInUser._id' title='Remove user')
+ span.glyphicon.glyphicon-remove(style='color: red')
+ td(width='1%')
+ a(ng-href='admin/become?viewedUserId={{user._id}}' ng-show='user._id != loggedInUser._id' title='View user\'s configurations')
+ span.glyphicon.glyphicon-eye-open
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/settings/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/settings/profile.jade b/modules/web-control-center/nodejs/views/settings/profile.jade
new file mode 100644
index 0000000..14a8bb5
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/settings/profile.jade
@@ -0,0 +1,58 @@
+//-
+ 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.
+
+extends ../templates/layout
+
+mixin lbl(txt)
+ label.col-sm-2.required.labelFormField #{txt}
+
+append scripts
+ script(src='/profile-controller.js')
+
+block container
+ .row.greedy(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-sm-4
+ input.form-control(type='text' ng-model='profileUser.username' placeholder='Input name' required)
+ .details-row
+ +lbl('Email:')
+ .col-sm-4
+ input.form-control(type='email' ng-model='profileUser.email' placeholder='you@domain.com' required)
+ .details-row
+ .checkbox
+ label
+ input(type="checkbox" ng-model='profileUser.changePassword')
+ | Change password
+ div(ng-show='profileUser.changePassword')
+ .details-row
+ +lbl('New password:')
+ .col-sm-4
+ input.form-control(type='password', ng-model='profileUser.newPassword' placeholder='New password' ng-required='profileUser.changePassword')
+ .details-row
+ +lbl('Confirm:')
+ .col-sm-4
+ input.form-control(type='password', ng-model='profileUser.confirmPassword' match='profileUser.newPassword' placeholder='Confirm new password' ng-required='profileUser.changePassword')
+ .col-sm-12.details-row
+ button#save-btn.btn.btn-primary(ng-disabled='profileForm.$invalid' ng-click='saveUser()') Save
+
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/sql.jade b/modules/web-control-center/nodejs/views/sql.jade
deleted file mode 100644
index 93e2893..0000000
--- a/modules/web-control-center/nodejs/views/sql.jade
+++ /dev/null
@@ -1,23 +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.
-
-extends templates/layout
-
-block container
- .docs-header
- h1 SQL
- p Connect to Zeppelin and execute SQL queries.
- hr
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/sql/sql.jade b/modules/web-control-center/nodejs/views/sql/sql.jade
index e575676..ea989e0 100644
--- a/modules/web-control-center/nodejs/views/sql/sql.jade
+++ b/modules/web-control-center/nodejs/views/sql/sql.jade
@@ -12,7 +12,7 @@
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.
-extends ../templates/layout-fluid
+extends ../templates/layout-sidebar
append scripts
script(src='/cache-viewer-controller.js')
@@ -22,6 +22,9 @@ append css
link(rel='stylesheet', href='/stylesheets/sql-console.css')
block container
+ .docs-header
+ h1 Connect to Ignite and execute SQL queries
+ hr
div.greedy(ng-controller='cacheViewerController')
h4 Sql console
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/summary.jade b/modules/web-control-center/nodejs/views/summary.jade
deleted file mode 100644
index 12c98ec..0000000
--- a/modules/web-control-center/nodejs/views/summary.jade
+++ /dev/null
@@ -1,95 +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.
-
-extends templates/layout-sidebar
-
-append scripts
- script(src='/summary-controller.js')
-
- script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js')
- script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.js')
- script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.js')
- script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPlain.js')
- script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-animate.min.js")
- script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-sanitize.min.js")
-
-append css
- link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css')
- link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css')
-
-block content
- .docs-header
- h1 Configurations summary
- hr
- .docs-body(ng-controller='summaryController')
- div(ng-show='clusters.length == 0')
- | No cluster configured. You can
- a(href='clusters') configure
- | it.
- div(ng-show='clusters.length > 0')
- p Following cluster configurations were created, you can download them as XML, java code or as docker file.
- .links
- 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='generate(row)') {{$index + 1}}) {{row.name}}
- #cfgResult.configBox(ng-show='selectedItem && !generateError && !loading', style='margin-top: 20px')
- ul.nav.nav-tabs
- li(ng-class='{active: cfgLang == "xml"}')
- a(href, ng-click='cfgLang = "xml"')
- img(src='/images/xml.png', width='16px' height='16px')
- | XML
- li(ng-class='{active: cfgLang=="java"}')
- a(href, ng-click='cfgLang = "java"')
- img(src='/images/java.png', width='16px' height='16px')
- | Java
- li(ng-class="{active: cfgLang=='docker'}")
- a(href, ng-click='cfgLang = "docker"')
- img(src='/images/docker.png', width='16px' height='16px')
- | Dockerfile
- form.settings-row(method='post' action='summary/download')
- input(type="hidden" name="_id" value="{{selectedItem._id}}")
- input(type="hidden" name="javaClass" value="{{javaClass}}")
- input(type="hidden" name="os" value="{{os}}")
-
- #xmlResult(ng-show="cfgLang == 'xml'")
- button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -45px' type='submit') Download
- #xmlResultDiv
- #javaResult(ng-show="cfgLang == 'java'")
- .col-sm-1
- label Generate:
- .col-sm-3
- button.form-control(type='button' ng-model='javaClass' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
- button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -40px' type='submit') Download
- #javaResultDiv
- #dockerResult(ng-show="cfgLang == 'docker'")
- button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -40px' type='submit') Download
- p
- a(style='color:#ec1c24' href='https://docs.docker.com/reference/builder' target="_blank") Docker
- | 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
- a(style='color:#ec1c24' href='https://ignite.incubator.apache.org/download.html#docker' target="_blank") Apache Ignite docker image
- | . For more information about using Ignite with Docker please read
- a(style='color:#ec1c24' href='http://apacheignite.readme.io/docs/docker-deployment' target="_blank") documentation
- |.
- .col-sm-2
- label(for='os') Operation System:
- .col-sm-4
- input#os.form-control(type='text', ng-model='os' placeholder='debian:8' data-min-length="0" data-html="1" data-auto-select="true" data-animation="am-flip-x" bs-typeahead bs-options='os for os in oss')
- .settings-row#dockerResultDiv(style='margin-top: 15px')
- div(ng-show='generateError') {{generateError}}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/templates/layout-fluid.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/templates/layout-fluid.jade b/modules/web-control-center/nodejs/views/templates/layout-fluid.jade
deleted file mode 100644
index 66670cb..0000000
--- a/modules/web-control-center/nodejs/views/templates/layout-fluid.jade
+++ /dev/null
@@ -1,22 +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.
-
-extends headers
-
-block main-container
- .container-fluid.body-container
- .main-content
- block container
[2/2] incubator-ignite git commit: # ignite-843 Refactor.
Posted by an...@apache.org.
# ignite-843 Refactor.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/181fd985
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/181fd985
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/181fd985
Branch: refs/heads/ignite-843
Commit: 181fd98583900ea742eea85066c1ed14e34fae6b
Parents: 3c2cfe5
Author: Andrey <an...@gridgain.com>
Authored: Fri Jul 10 18:10:49 2015 +0700
Committer: Andrey <an...@gridgain.com>
Committed: Fri Jul 10 18:10:49 2015 +0700
----------------------------------------------------------------------
.../nodejs/public/stylesheets/style.css | 2 +-
.../nodejs/public/stylesheets/style.less | 5 +-
.../web-control-center/nodejs/routes/admin.js | 2 +-
.../web-control-center/nodejs/routes/caches.js | 2 +-
.../nodejs/routes/clusters.js | 2 +-
.../nodejs/routes/persistences.js | 2 +-
.../web-control-center/nodejs/routes/profile.js | 2 +-
.../web-control-center/nodejs/routes/summary.js | 2 +-
.../nodejs/views/admin/userList.jade | 52 ---------
.../web-control-center/nodejs/views/caches.jade | 67 -----------
.../nodejs/views/clients.jade | 26 -----
.../nodejs/views/clusters.jade | 70 ------------
.../nodejs/views/configuration/caches.jade | 67 +++++++++++
.../nodejs/views/configuration/clusters.jade | 70 ++++++++++++
.../nodejs/views/configuration/persistence.jade | 114 +++++++++++++++++++
.../nodejs/views/configuration/summary.jade | 95 ++++++++++++++++
.../nodejs/views/includes/controls.jade | 6 +-
.../nodejs/views/includes/header.jade | 4 +-
.../nodejs/views/persistence.jade | 114 -------------------
.../nodejs/views/profile.jade | 58 ----------
.../nodejs/views/settings/admin.jade | 52 +++++++++
.../nodejs/views/settings/profile.jade | 58 ++++++++++
.../web-control-center/nodejs/views/sql.jade | 23 ----
.../nodejs/views/sql/sql.jade | 5 +-
.../nodejs/views/summary.jade | 95 ----------------
.../nodejs/views/templates/layout-fluid.jade | 22 ----
26 files changed, 476 insertions(+), 541 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/public/stylesheets/style.css
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/stylesheets/style.css b/modules/web-control-center/nodejs/public/stylesheets/style.css
index a7f554f..ce05c3a 100644
--- a/modules/web-control-center/nodejs/public/stylesheets/style.css
+++ b/modules/web-control-center/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%;transform:translateX(-50%) translateY(-50%)}.border-left{box-shadow:1px 0 0 0 #eee inset}.border-right{box-shadow:1px 0 0 0 #eee}.theme-line{background-color:#f9f9f9}.theme-line header{background-color:#fff}.theme-line header a.btn{border:0 none;padding:10px 25px;background-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,25
5,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-columns 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:22px}.theme-line .btn-pr
imary{border:0 none;background-color:#ec1c24}.theme-line .btn-primary:hover{background-color:#950d12}.theme-line .main-content .nav-horizontal a{box-shadow:0 0;border:0 none;background-color:#fff;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 ul li>a.active{cursor:default;pointer-events:none}.theme-line .sidebar-nav{color:#474a54;padding-bottom:30px}.theme-line .sidebar-nav ul{padding:0;list-style:none;font-size:14px;margin:3px 0 0}.theme-line .sidebar-nav ul li{color:#666;line-height:28px}.theme-line .sidebar-nav ul li span.fa-stack{margin-right:5px;font-size:12px;height:26px}.theme-line .sidebar-nav ul li a{font-size:18px;color:#666;position:relative;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line .sidebar-nav ul li a:hover{text-decoration:none}.the
me-line .select li a,.theme-line .typeahead li a{color:#666;background-color:transparent}.theme-line .select li a:hover,.theme-line .typeahead li a:hover{color:#ec1c24;background-color:transparent}.theme-line .select .active,.theme-line .typeahead .active{background-color:#eee}.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:5px 15px 0 0}.header h1.navbar-brand a{text-indent:-99999px;background:no-repeat center center;display:block;width:100%;height:100%;background-size:c
ontain}.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;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}.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:#666}.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 .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 header .navbar-nav a{font-size:18px}.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}.theme-line .section-right{padding-left:30px}.body-overlap .main-content{margin-top:30px}.body-box .main-content,.body-overlap .main-content{padding:30px;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}.container-footer{margin-top:20px}.modal{display:block;overflow:hidden}.modal .close{position:absolute;top:0.65em;right:0.65em;float:none}.modal-header .close{margin-right:-2px}.modal .modal-dialog{width:610px}.modal .modal-content{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{color:#aaa;font-size:1em;margin:3px 0 0}.modal .modal-content .modal-spacer{padding:10px 10px 0 10
px}.modal .modal-content .modal-footer{margin-top:0}.modal-body{padding-top:15px}h1.ignite-logo{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.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:18px;padding-bottom:10px}}.details-row{padding:0 0.65em}.details-row,.settings-row{display:block;margin:0.65em 0;line-height:28px}.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"]{line-height:20px;margin-right:4px}.details-row .checkbox label,.settings-row .checkbox label{line-height:20px;vertical-align:middle}button{margin-right:4px}h1,h2,h3{user-select:none;font-weight:normal;line-height:1}h3{color:black;font-size:1.2em;margin-top:0;marg
in-bottom:1.5em}table tr:hover{cursor:pointer}.form-control{display:inline-block;text-align:left;padding:3px 3px;height:28px}.form-control button{text-align:left}.table-form-control{width:auto}button .caret{float:right;margin-left:0;margin-top:7px}.theme-line .panel-heading{padding:10px 10px;margin:0}.theme-line .panel-heading h3{margin-bottom:0}.theme-line .panel-heading h3>a{color:black}.theme-line .panel-title a{color:#ec1c24}.theme-line .panel-title h3{margin-bottom:1.3em}.theme-line .panel-body{padding:0.65em 1.3em}.theme-line .main-content a.customize{margin-left:5px;color:#ec1c24}.theme-line .panel-collapse{margin:0}.theme-line .links table,.theme-line table.links-edit,.theme-line table.links-edit-details,.theme-line table.links-edit-small-padding{display:table;table-layout:fixed;margin-bottom:20px}.theme-line .links table td,.theme-line table.links-edit td,.theme-line table.links-edit-details td,.theme-line table.links-edit-small-padding td{padding-left:18px}.theme-line .lin
ks table .active a,.theme-line table.links-edit .active a,.theme-line table.links-edit-details .active a,.theme-line table.links-edit-small-padding .active a{color:#ec1c24;font-weight:bold}.theme-line .links table a:hover,.theme-line table.links-edit a:hover,.theme-line table.links-edit-details a:hover,.theme-line table.links-edit-small-padding a:hover{color:#950d12}.theme-line .links table a,.theme-line table.links-edit a,.theme-line table.links-edit-details a,.theme-line table.links-edit-small-padding a{color:#666}.theme-line table.links-edit{margin-bottom:10px}.theme-line table.links-edit label{line-height:28px;color:#666}.theme-line table.links-edit-details{margin-bottom:10px}.theme-line table.links-edit-details label{line-height:28px;color:#666}.theme-line table.links-edit-details td{padding:0}.theme-line table.links-edit-details td .input-tip{padding:0}.btn{padding:3px 6px}.panel-title a{font-size:14px}.panel-details{margin-top:0.65em;padding:0;border-radius:4px;border:thin do
tted lightgrey}.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}.form-horizontal .checkbox{padding-top:0}.input-tip{display:block;overflow:hidden}.labelField{float:left;margin-right:4px}.labelFormField{float:left;line-height:28px}.stackTipField{float:right;line-height:28px;margin-left:5px}.form-horizontal .form-group{margin:0}.form-horizontal .has-feedback .form-control-feedback{right:0}.tipField{float:right;line-height:28px;margin-left:5px}.tipLabel{font-size:14px;margin-left:5px}.fieldButton{float:right;margin-left:5px;margin-right:0}.fa-remove{color:#ec1c24;cursor:pointer}label.required:after{color:#ec1c24;content:' *';display:inline}.blank{visibility:hidden}.alert{outline:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-index:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right
{top:50px}.alert.top{right:0;left:0}.alert.top-right{right:0}.alert.top-right .close{padding-left:10px}.alert.top-left{left:0}.alert.top-left .close{padding-right:10px}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-right{right:0}.alert.bottom-right .close{padding-left:10px}.alert.bottom-left{left:0}.alert.bottom-left .close{padding-right:10px}#cfgResult textarea{font-family:monospace;font-size:12px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}input.ng-dirty.ng-invalid,input.ng-pristine.ng-invalid,button.ng-dirty.ng-invalid,button.ng-pristine.ng-invalid{border-color:#ec1c24}input.ng-dirty.ng-invalid :focus,input.ng-pristine.ng-invalid :focus,button.ng-dirty.ng-invalid :focus,button.ng-pristine.ng-invalid :focus{border-color:#ec1c24}.form-control-feedback{display:inline-block;color:#ec1c24;right:18p
x;line-height:28px;pointer-events:initial}.syntaxhighlighter{padding:10px 5px;border-radius:6px}.theme-line table.links-edit-small-padding{margin-top:10px}.theme-line table.links-edit-small-padding label{line-height:28px;color:#666}.theme-line table.links-edit-small-padding a{line-height:28px}.theme-line table.links-edit-small-padding input[type="checkbox"]{line-height:20px;margin-right:5px}.theme-line table.links-edit-small-padding .checkbox label{line-height:20px;vertical-align:middle}.theme-line table.links-edit-small-padding th{text-align:center}.theme-line table.links-edit-small-padding td{padding-left:10px}.configBox .nav>li>a{padding:5px 5px}.viewedUser{display:inline;padding:6px;margin:7px;border-radius:4px;background-color:#f8d5d8}a{cursor:pointer}
\ 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%;transform:translateX(-50%) translateY(-50%)}.border-left{box-shadow:1px 0 0 0 #eee inset}.border-right{box-shadow:1px 0 0 0 #eee}.theme-line{background-color:#f9f9f9}.theme-line header{background-color:#fff}.theme-line header a.btn{border:0 none;padding:10px 25px;background-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,25
5,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-columns 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:22px}.theme-line .btn-pr
imary{border:0 none;background-color:#ec1c24}.theme-line .btn-primary:hover{background-color:#950d12}.theme-line .main-content .nav-horizontal a{box-shadow:0 0;border:0 none;background-color:#fff;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 ul li>a.active{cursor:default;pointer-events:none}.theme-line .sidebar-nav{color:#474a54;padding-bottom:30px}.theme-line .sidebar-nav ul{padding:0;list-style:none;font-size:14px;margin:3px 0 0}.theme-line .sidebar-nav ul li{color:#666;line-height:28px}.theme-line .sidebar-nav ul li span.fa-stack{margin-right:5px;font-size:12px;height:26px}.theme-line .sidebar-nav ul li a{font-size:18px;color:#666;position:relative;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line .sidebar-nav ul li a:hover{text-decoration:none}.the
me-line .select li a,.theme-line .typeahead li a{color:#666;background-color:transparent}.theme-line .select li a:hover,.theme-line .typeahead li a:hover{color:#ec1c24;background-color:transparent}.theme-line .select .active,.theme-line .typeahead .active{background-color:#eee}.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:5px 15px 0 0}.header h1.navbar-brand a{text-indent:-99999px;background:no-repeat center center;display:block;width:100%;height:100%;background-size:c
ontain}.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;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}.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:#666}.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 .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 header .navbar-nav a{font-size:18px}.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}.theme-line .section-right{padding-left:30px}.body-overlap .main-content{margin-top:30px}.body-box .main-content,.body-overlap .main-content{padding:30px;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}.container-footer{margin-top:20px}.modal{display:block;overflow:hidden}.modal .close{position:absolute;top:0.65em;right:0.65em;float:none}.modal-header .close{margin-right:-2px}.modal .modal-dialog{width:610px}.modal .modal-content{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{color:#aaa;font-size:1em;margin:3px 0 0}.modal .modal-content .modal-spacer{padding:10px 10px 0 10
px}.modal .modal-content .modal-footer{margin-top:0}.modal-body{padding-top:15px}h1.ignite-logo{background-image:url("https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.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:18px;padding-bottom:10px}}.details-row{padding:0 0.65em}.details-row,.settings-row{display:block;margin:0.65em 0}.details-row label.table-header,.settings-row label.table-header{line-height:28px}.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"]{line-height:20px;margin-right:4px}.details-row .checkbox label,.settings-row .checkbox label{line-height:20px;vertical-align:middle}button{margin-right:4px}h1,h2,h3{user-select:none;font-weight:norm
al;line-height:1}h3{color:black;font-size:1.2em;margin-top:0;margin-bottom:1.5em}table tr:hover{cursor:pointer}.form-control{display:inline-block;text-align:left;padding:3px 3px;height:28px}.form-control button{text-align:left}.table-form-control{width:auto}button .caret{float:right;margin-left:0;margin-top:7px}.theme-line .panel-heading{padding:10px 10px;margin:0}.theme-line .panel-heading h3{margin-bottom:0}.theme-line .panel-heading h3>a{color:black}.theme-line .panel-title a{color:#ec1c24}.theme-line .panel-title h3{margin-bottom:1.3em}.theme-line .panel-body{padding:0.65em 1.3em}.theme-line .main-content a.customize{margin-left:5px;color:#ec1c24}.theme-line .panel-collapse{margin:0}.theme-line .links table,.theme-line table.links-edit,.theme-line table.links-edit-details,.theme-line table.links-edit-small-padding{display:table;table-layout:fixed;margin-bottom:20px}.theme-line .links table td,.theme-line table.links-edit td,.theme-line table.links-edit-details td,.theme-line tab
le.links-edit-small-padding td{padding-left:18px}.theme-line .links table .active a,.theme-line table.links-edit .active a,.theme-line table.links-edit-details .active a,.theme-line table.links-edit-small-padding .active a{color:#ec1c24;font-weight:bold}.theme-line .links table a:hover,.theme-line table.links-edit a:hover,.theme-line table.links-edit-details a:hover,.theme-line table.links-edit-small-padding a:hover{color:#950d12}.theme-line .links table a,.theme-line table.links-edit a,.theme-line table.links-edit-details a,.theme-line table.links-edit-small-padding a{color:#666}.theme-line table.links-edit{margin-bottom:10px}.theme-line table.links-edit label{line-height:28px;color:#666}.theme-line table.links-edit-details{margin-bottom:10px}.theme-line table.links-edit-details label{line-height:28px;color:#666}.theme-line table.links-edit-details td{padding:0}.theme-line table.links-edit-details td .input-tip{padding:0}.btn{padding:3px 6px}.panel-title a{font-size:14px}.panel-det
ails{margin-top:0.65em;padding:0;border-radius:4px;border:thin dotted lightgrey}.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}.form-horizontal .checkbox{padding-top:0}.input-tip{display:block;overflow:hidden}.labelField{float:left;margin-right:4px}.labelFormField{float:left;line-height:28px}.stackTipField{float:right;line-height:28px;margin-left:5px}.form-horizontal .form-group{margin:0}.form-horizontal .has-feedback .form-control-feedback{right:0}.tipField{float:right;line-height:28px;margin-left:5px}.tipLabel{font-size:14px;margin-left:5px}.fieldButton{float:right;margin-left:5px;margin-right:0}.fa-remove{color:#ec1c24;cursor:pointer}label.required:after{color:#ec1c24;content:' *';display:inline}.blank{visibility:hidden}.alert{outline:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-i
ndex:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right{top:50px}.alert.top{right:0;left:0}.alert.top-right{right:0}.alert.top-right .close{padding-left:10px}.alert.top-left{left:0}.alert.top-left .close{padding-right:10px}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-right{right:0}.alert.bottom-right .close{padding-left:10px}.alert.bottom-left{left:0}.alert.bottom-left .close{padding-right:10px}#cfgResult textarea{font-family:monospace;font-size:12px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}input.ng-dirty.ng-invalid,input.ng-pristine.ng-invalid,button.ng-dirty.ng-invalid,button.ng-pristine.ng-invalid{border-color:#ec1c24}input.ng-dirty.ng-invalid :focus,input.ng-pristine.ng-invalid :focus,button.ng-dirty.ng-invalid :focus,button.ng-pristine.ng-invalid :focus{border-color:#ec1c24}.f
orm-control-feedback{display:inline-block;color:#ec1c24;right:18px;line-height:28px;pointer-events:initial}.syntaxhighlighter{padding:10px 5px;border-radius:6px}.theme-line table.links-edit-small-padding{margin-top:10px}.theme-line table.links-edit-small-padding label{line-height:28px;color:#666}.theme-line table.links-edit-small-padding a{line-height:28px}.theme-line table.links-edit-small-padding input[type="checkbox"]{line-height:20px;margin-right:5px}.theme-line table.links-edit-small-padding .checkbox label{line-height:20px;vertical-align:middle}.theme-line table.links-edit-small-padding th{text-align:center}.theme-line table.links-edit-small-padding td{padding-left:10px}.configBox .nav>li>a{padding:5px 5px}.viewedUser{display:inline;padding:6px;margin:7px;border-radius:4px;background-color:#f8d5d8}a{cursor:pointer}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/public/stylesheets/style.less
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/stylesheets/style.less b/modules/web-control-center/nodejs/public/stylesheets/style.less
index 619ab6c..9abe5b4 100644
--- a/modules/web-control-center/nodejs/public/stylesheets/style.less
+++ b/modules/web-control-center/nodejs/public/stylesheets/style.less
@@ -605,7 +605,10 @@ h1.ignite-logo {
.details-row, .settings-row {
display: block;
margin: 0.65em 0;
- line-height: @input-height;
+
+ label.table-header {
+ line-height: @input-height;
+ }
[class*="col-"] {
display: inline-block;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/admin.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/admin.js b/modules/web-control-center/nodejs/routes/admin.js
index e67f306..422f08b 100644
--- a/modules/web-control-center/nodejs/routes/admin.js
+++ b/modules/web-control-center/nodejs/routes/admin.js
@@ -20,7 +20,7 @@ var db = require('../db');
var uiUtils = require('../helpers/ui-utils');
router.get('/', function(req, res) {
- res.render('admin/userList');
+ res.render('settings/admin');
});
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/caches.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/caches.js b/modules/web-control-center/nodejs/routes/caches.js
index 2545104..6a90ebe 100644
--- a/modules/web-control-center/nodejs/routes/caches.js
+++ b/modules/web-control-center/nodejs/routes/caches.js
@@ -20,7 +20,7 @@ var db = require('../db');
/* GET caches page. */
router.get('/', function(req, res) {
- res.render('caches');
+ res.render('configuration/caches');
});
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/clusters.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/clusters.js b/modules/web-control-center/nodejs/routes/clusters.js
index 1e56ac7..fa3abf2 100644
--- a/modules/web-control-center/nodejs/routes/clusters.js
+++ b/modules/web-control-center/nodejs/routes/clusters.js
@@ -20,7 +20,7 @@ var db = require('../db');
/* GET clusters page. */
router.get('/', function(req, res) {
- res.render('clusters');
+ res.render('configuration/clusters');
});
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/persistences.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/persistences.js b/modules/web-control-center/nodejs/routes/persistences.js
index 1f0fc24..5b33f9b 100644
--- a/modules/web-control-center/nodejs/routes/persistences.js
+++ b/modules/web-control-center/nodejs/routes/persistences.js
@@ -21,7 +21,7 @@ var ds = require('../helpers/data-structures.js'), jdbcTypes = ds.jdbcTypes, jav
/* GET persistence page. */
router.get('/', function(req, res) {
- res.render('persistence');
+ res.render('configuration/persistence');
});
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/profile.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/profile.js b/modules/web-control-center/nodejs/routes/profile.js
index ab9fc9b..015b07c 100644
--- a/modules/web-control-center/nodejs/routes/profile.js
+++ b/modules/web-control-center/nodejs/routes/profile.js
@@ -38,7 +38,7 @@ router.get('/', function (req, res) {
if (err)
return res.status(500).send(err.message);
- res.render('profile');
+ res.render('settings/profile');
});
});
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/routes/summary.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/summary.js b/modules/web-control-center/nodejs/routes/summary.js
index 884c78c..0578f45 100644
--- a/modules/web-control-center/nodejs/routes/summary.js
+++ b/modules/web-control-center/nodejs/routes/summary.js
@@ -25,7 +25,7 @@ var generatorDocker = require('./generator/docker');
/* GET summary page. */
router.get('/', function(req, res) {
- res.render('summary');
+ res.render('configuration/summary');
});
router.post('/generator', function(req, res) {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/admin/userList.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/admin/userList.jade b/modules/web-control-center/nodejs/views/admin/userList.jade
deleted file mode 100644
index 1986ca2..0000000
--- a/modules/web-control-center/nodejs/views/admin/userList.jade
+++ /dev/null
@@ -1,52 +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.
-extends ../templates/layout
-
-append scripts
- script(src='/admin-controller.js')
-
-block container
- .greedy.row(ng-controller='adminController')
- .docs-content
- .docs-header
- h1 List of registered users
- hr
- .docs-body
- table.table.table-striped(st-table='userListDisplay' st-safe-src='userList')
- thead
- tr
- th(colspan='5')
- input.form-control(type='text' st-search='' class='' placeholder='Search ...')
- tr
- th(st-sort='username') User name
- th(st-sort='email') Email
- th(st-sort='lastLogin') Last login
- th(st-sort='lastLogin') Admin
- th(colspan='2') Actions
- tbody
- tr(ng-repeat='user in userListDisplay')
- td {{user.username}}
- td
- a(ng-href='mailto:{{user.email}}') {{user.email}}
- td
- span.small {{user.lastLogin | date:'medium'}}
- td
- input(type='checkbox' ng-disabled='user.adminChanging || user._id == loggedInUser._id'
- ng-model='user.admin' ng-change='toggleAdmin(user)')
- td(width='1%')
- a(ng-click='removeUser(user)' ng-show='user._id != loggedInUser._id' title='Remove user')
- span.glyphicon.glyphicon-remove(style='color: red')
- td(width='1%')
- a(ng-href='admin/become?viewedUserId={{user._id}}' ng-show='user._id != loggedInUser._id' title='View user\'s configurations')
- span.glyphicon.glyphicon-eye-open
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/caches.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/caches.jade b/modules/web-control-center/nodejs/views/caches.jade
deleted file mode 100644
index 2e05ded..0000000
--- a/modules/web-control-center/nodejs/views/caches.jade
+++ /dev/null
@@ -1,67 +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.
-
-extends templates/layout-sidebar
-
-append scripts
- script(src='/caches-controller.js')
-
-include includes/controls
-
-block content
- .docs-header
- h1 Create and configure Ignite caches
- hr
- .docs-body(ng-controller='cachesController')
- .links(ng-hide='caches.length == 0')
- table.col-sm-12(st-table='caches')
- tbody
- tr(ng-repeat='row in caches 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.mode | displayValue:modes:'Cache mode not set'}}, {{row.atomicityMode | displayValue:atomicities:'Cache atomicity not set'}}
- button.btn.btn-primary(ng-click='createItem()') Add cache
- hr
- form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
- div(bs-collapse data-start-collapsed='false')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) General
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in general')
- +form-row
- div(bs-collapse data-start-collapsed='true')
- .panel-title(ng-show='expanded')
- h3
- a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
- .panel-collapse(bs-collapse-target)
- .span(bs-collapse data-start-collapsed='true' data-allow-multiple='true')
- .panel.panel-default(ng-repeat='group in advanced')
- .panel-heading
- h3
- a(bs-collapse-toggle) {{group.label}}
- i.tipLabel.fa.fa-question-circle(ng-if='group.tip' bs-tooltip='joinTip(group.tip)' type='button')
- i.tipLabel.fa.fa-question-circle.blank(ng-if='!group.tip')
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in group.fields')
- +form-row
- .panel-title
- h3
- a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
- button#save-btn.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
- button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/clients.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/clients.jade b/modules/web-control-center/nodejs/views/clients.jade
deleted file mode 100644
index 87cfc10..0000000
--- a/modules/web-control-center/nodejs/views/clients.jade
+++ /dev/null
@@ -1,26 +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.
-
-extends templates/layout-sidebar
-block head
-block content
- .docs-header
- h1 Clients
- p Create and configure Ignite clients.
- hr
- .docs-body(ng-controller='clientsRouter')
-block body
- script(src='/clients.js')
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/clusters.jade b/modules/web-control-center/nodejs/views/clusters.jade
deleted file mode 100644
index 99afd20..0000000
--- a/modules/web-control-center/nodejs/views/clusters.jade
+++ /dev/null
@@ -1,70 +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.
-
-extends templates/layout-sidebar
-
-append scripts
- script(src='/clusters-controller.js')
-
-include includes/controls
-
-block content
- .docs-header
- h1 Create and configure Ignite clusters
- hr
- .docs-body(ng-controller='clustersController')
- .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.btn.btn-primary(ng-click='createItem()' ng-disabled='!create.template')  Add cluster
- label(style='margin-left: 15px; margin-right: 10px') Use template:
- 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)
- i.tiplabel.fa.fa-question-circle(bs-tooltip data-title='{{joinTip(templateTip)}}' type='button')
- hr
- form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
- div(bs-collapse data-start-collapsed='false')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) General
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in general')
- +form-row
- div(bs-collapse data-start-collapsed='true')
- .panel-title(ng-show='expanded')
- h3
- a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
- .panel-collapse(bs-collapse-target)
- .span(bs-collapse data-start-collapsed='true' data-allow-multiple='true')
- .panel.panel-default(ng-repeat='group in advanced')
- .panel-heading
- h3
- a(bs-collapse-toggle) {{group.label}}
- i.tipLabel.fa.fa-question-circle(ng-if='group.tip' bs-tooltip='joinTip(group.tip)' type='button')
- i.tipLabel.fa.fa-question-circle.blank(ng-if='!group.tip')
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in group.fields')
- +form-row
- .panel-title
- h3
- a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
- button#save-btn.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
- button.btn.btn-primary(ng-show='backupItem._id' ng-click='removeItem()') Remove
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/configuration/caches.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/caches.jade b/modules/web-control-center/nodejs/views/configuration/caches.jade
new file mode 100644
index 0000000..c430d26
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/configuration/caches.jade
@@ -0,0 +1,67 @@
+//-
+ 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.
+
+extends ../templates/layout-sidebar
+
+append scripts
+ script(src='/caches-controller.js')
+
+include ../includes/controls
+
+block content
+ .docs-header
+ h1 Create and configure Ignite caches
+ hr
+ .docs-body(ng-controller='cachesController')
+ .links(ng-hide='caches.length == 0')
+ table.col-sm-12(st-table='caches')
+ tbody
+ tr(ng-repeat='row in caches 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.mode | displayValue:modes:'Cache mode not set'}}, {{row.atomicityMode | displayValue:atomicities:'Cache atomicity not set'}}
+ button.btn.btn-primary(ng-click='createItem()') Add cache
+ hr
+ form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
+ div(bs-collapse data-start-collapsed='false')
+ .panel.panel-default
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) General
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ .settings-row(ng-repeat='field in general')
+ +form-row
+ div(bs-collapse data-start-collapsed='true')
+ .panel-title(ng-show='expanded')
+ h3
+ a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
+ .panel-collapse(bs-collapse-target)
+ .span(bs-collapse data-start-collapsed='true' data-allow-multiple='true')
+ .panel.panel-default(ng-repeat='group in advanced')
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) {{group.label}}
+ i.tipLabel.fa.fa-question-circle(ng-if='group.tip' bs-tooltip='joinTip(group.tip)' type='button')
+ i.tipLabel.fa.fa-question-circle.blank(ng-if='!group.tip')
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ .settings-row(ng-repeat='field in group.fields')
+ +form-row
+ .panel-title
+ h3
+ a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
+ button#save-btn.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
+ button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/configuration/clusters.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/clusters.jade b/modules/web-control-center/nodejs/views/configuration/clusters.jade
new file mode 100644
index 0000000..4f2488a
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/configuration/clusters.jade
@@ -0,0 +1,70 @@
+//-
+ 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.
+
+extends ../templates/layout-sidebar
+
+append scripts
+ script(src='/clusters-controller.js')
+
+include ../includes/controls
+
+block content
+ .docs-header
+ h1 Create and configure Ignite clusters
+ hr
+ .docs-body(ng-controller='clustersController')
+ .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.btn.btn-primary(ng-click='createItem()' ng-disabled='!create.template')  Add cluster
+ label(style='margin-left: 15px; margin-right: 10px') Use template:
+ 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)
+ i.tiplabel.fa.fa-question-circle(bs-tooltip data-title='{{joinTip(templateTip)}}' type='button')
+ hr
+ form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
+ div(bs-collapse data-start-collapsed='false')
+ .panel.panel-default
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) General
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ .settings-row(ng-repeat='field in general')
+ +form-row
+ div(bs-collapse data-start-collapsed='true')
+ .panel-title(ng-show='expanded')
+ h3
+ a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
+ .panel-collapse(bs-collapse-target)
+ .span(bs-collapse data-start-collapsed='true' data-allow-multiple='true')
+ .panel.panel-default(ng-repeat='group in advanced')
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) {{group.label}}
+ i.tipLabel.fa.fa-question-circle(ng-if='group.tip' bs-tooltip='joinTip(group.tip)' type='button')
+ i.tipLabel.fa.fa-question-circle.blank(ng-if='!group.tip')
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ .settings-row(ng-repeat='field in group.fields')
+ +form-row
+ .panel-title
+ h3
+ a(bs-collapse-toggle='0' ng-click='expanded = !expanded;') {{expanded ? 'Hide advanced settings...' : 'Show advanced settings...'}}
+ button#save-btn.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
+ button.btn.btn-primary(ng-show='backupItem._id' ng-click='removeItem()') Remove
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/configuration/persistence.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/persistence.jade b/modules/web-control-center/nodejs/views/configuration/persistence.jade
new file mode 100644
index 0000000..b0e23b6
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/configuration/persistence.jade
@@ -0,0 +1,114 @@
+//-
+ 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.
+
+extends ../templates/layout-sidebar
+
+append scripts
+ script(src='/persistences-controller.js')
+
+include ../includes/controls
+
+mixin dbcheck(chk)
+ input(type='checkbox' style='margin-left: 5px' ng-checked=chk)
+
+block content
+ .docs-header
+ h1 Create and configure Ignite persistence
+ hr
+ .docs-body(ng-controller='persistenceController')
+ .links(ng-hide='persistences.length == 0')
+ table.col-sm-12(st-table='persistences')
+ tbody
+ tr(ng-repeat='row in persistences 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.database | displayValue:databases:'Database not set'}}
+ button.btn.btn-primary(ng-click='createItem()') Add
+ hr
+ form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
+ div(bs-collapse data-start-collapsed='false')
+ .panel.panel-default
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) Connection
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ .settings-row(ng-repeat='field in connection')
+ +form-row
+ div(bs-collapse data-start-collapsed='true' ng-hide='data.tables.length == 0')
+ .panel.panel-default
+ .panel-heading
+ h3
+ a(bs-collapse-toggle) Metadata
+ .panel-collapse(bs-collapse-target)
+ .panel-body
+ div(ng-hide='data.tables.length == 0')
+ table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables')
+ thead
+ tr
+ th.col-sm-3 Schema/Table
+ th Key class
+ th Value class
+ tbody
+ tr(ng-repeat='row in data.tables')
+ td(colspan='{{row.tableName ? 1 : 3}}')
+ div.checkbox(ng-if='!row.tableName')
+ label(ng-click='selectSchema($index)')
+ input(type='checkbox' ng-checked='row.use')
+ | {{row.schemaName}}
+ div.checkbox(ng-if='row.tableName')
+ label(style='padding-left: 30px' ng-click='selectTable($index)')
+ input(type='checkbox' ng-checked = 'row.use')
+ | {{row.tableName}}
+ td(ng-if='row.tableName')
+ a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.keyClass}}
+ input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curKeyClass' placeholder='Key class full name')
+ td(ng-if='row.tableName')
+ a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.valueClass}}
+ input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curValueClass' placeholder='Value class full name')
+ div(ng-hide='data.curTableIdx < 0')
+ table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables[data.curTableIdx].fields')
+ thead
+ tr
+ th(style='width:45px') Use
+ th(style='width:45px') Key
+ th(style='width:45px') Ak
+ th DB Name
+ th DB Type
+ th Java Name
+ th Java Type
+ tbody
+ tr(ng-repeat='row in data.tables[data.curTableIdx].fields')
+ td
+ +dbcheck('row.use')
+ td
+ +dbcheck('row.key')
+ td
+ +dbcheck('row.ak')
+ td
+ label {{row.dbName}}
+ td
+ label {{row.dbType}}
+ td
+ a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaName}}
+ input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaName' placeholder='Field Java name')
+ td
+ a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaType}}
+ input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaType' placeholder='Field Java type')
+ button.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
+ button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
+ button.btn.btn-primary.btn-second(ng-click='reloadMetadata()') Reload
+
+
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/summary.jade b/modules/web-control-center/nodejs/views/configuration/summary.jade
new file mode 100644
index 0000000..c516b9e
--- /dev/null
+++ b/modules/web-control-center/nodejs/views/configuration/summary.jade
@@ -0,0 +1,95 @@
+//-
+ 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.
+
+extends ../templates/layout-sidebar
+
+append scripts
+ script(src='/summary-controller.js')
+
+ script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js')
+ script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.js')
+ script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.js')
+ script(src='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushPlain.js')
+ script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-animate.min.js")
+ script(src="//cdn.jsdelivr.net/angularjs/1.3.15/angular-sanitize.min.js")
+
+append css
+ link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css')
+ link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeDefault.css')
+
+block content
+ .docs-header
+ h1 Configurations summary
+ hr
+ .docs-body(ng-controller='summaryController')
+ div(ng-show='clusters.length == 0')
+ | No cluster configured. You can
+ a(href='clusters') configure
+ | it.
+ div(ng-show='clusters.length > 0')
+ p Following cluster configurations were created, you can download them as XML, java code or as docker file.
+ .links
+ 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='generate(row)') {{$index + 1}}) {{row.name}}
+ #cfgResult.configBox(ng-show='selectedItem && !generateError && !loading', style='margin-top: 20px')
+ ul.nav.nav-tabs
+ li(ng-class='{active: cfgLang == "xml"}')
+ a(href, ng-click='cfgLang = "xml"')
+ img(src='/images/xml.png', width='16px' height='16px')
+ | XML
+ li(ng-class='{active: cfgLang=="java"}')
+ a(href, ng-click='cfgLang = "java"')
+ img(src='/images/java.png', width='16px' height='16px')
+ | Java
+ li(ng-class="{active: cfgLang=='docker'}")
+ a(href, ng-click='cfgLang = "docker"')
+ img(src='/images/docker.png', width='16px' height='16px')
+ | Dockerfile
+ form.settings-row(method='post' action='summary/download')
+ input(type="hidden" name="_id" value="{{selectedItem._id}}")
+ input(type="hidden" name="javaClass" value="{{javaClass}}")
+ input(type="hidden" name="os" value="{{os}}")
+
+ #xmlResult(ng-show="cfgLang == 'xml'")
+ button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -45px' type='submit') Download
+ #xmlResultDiv
+ #javaResult(ng-show="cfgLang == 'java'")
+ .col-sm-1
+ label Generate:
+ .col-sm-3
+ button.form-control(type='button' ng-model='javaClass' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
+ button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -40px' type='submit') Download
+ #javaResultDiv
+ #dockerResult(ng-show="cfgLang == 'docker'")
+ button.btn.btn-primary.pull-right(style='margin-right: 0px;margin-top: -40px' type='submit') Download
+ p
+ a(style='color:#ec1c24' href='https://docs.docker.com/reference/builder' target="_blank") Docker
+ | 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
+ a(style='color:#ec1c24' href='https://ignite.incubator.apache.org/download.html#docker' target="_blank") Apache Ignite docker image
+ | . For more information about using Ignite with Docker please read
+ a(style='color:#ec1c24' href='http://apacheignite.readme.io/docs/docker-deployment' target="_blank") documentation
+ |.
+ .col-sm-2
+ label(for='os') Operation System:
+ .col-sm-4
+ input#os.form-control(type='text', ng-model='os' placeholder='debian:8' data-min-length="0" data-html="1" data-auto-select="true" data-animation="am-flip-x" bs-typeahead bs-options='os for os in oss')
+ .settings-row#dockerResultDiv(style='margin-top: 15px')
+ div(ng-show='generateError') {{generateError}}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/includes/controls.jade b/modules/web-control-center/nodejs/views/includes/controls.jade
index 6b92910..ef1a022 100644
--- a/modules/web-control-center/nodejs/views/includes/controls.jade
+++ b/modules/web-control-center/nodejs/views/includes/controls.jade
@@ -67,7 +67,7 @@ mixin details-row
+tipField('detail.tip')
div(ng-switch-when='table-simple')&attributes(detailCommon)
div(ng-if="detail.label")
- label {{detail.label}}:
+ label.table-header {{detail.label}}:
+tipLabel('detail.tableTip')
table.col-sm-12.links-edit-details(st-table='#{detailMdl}' ng-show='#{detailMdl}.length > 0')
tbody
@@ -151,7 +151,7 @@ mixin form-row
+details-row
div(ng-switch-when='table-simple')&attributes(fieldCommon)
div
- label {{field.label}}:
+ label.table-header {{field.label}}:
+tipLabel('field.tableTip')
table.links-edit.col-sm-12(st-table='#{fieldMdl}' ng-show='#{fieldMdl}.length > 0')
tbody
@@ -176,7 +176,7 @@ mixin form-row
div(ng-switch-when='indexedTypes')
- var tblMdl = 'backupItem.indexedTypes'
div
- label Index key-value type pairs:
+ label.table-header Index key-value type pairs:
+tipLabel('field.tip')
table.links-edit.col-sm-12(st-table=tblMdl ng-show='#{tblMdl}.length > 0')
tbody
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/includes/header.jade b/modules/web-control-center/nodejs/views/includes/header.jade
index 42b8d4f..681b3a2 100644
--- a/modules/web-control-center/nodejs/views/includes/header.jade
+++ b/modules/web-control-center/nodejs/views/includes/header.jade
@@ -22,8 +22,8 @@ header.header(id='header')
ul.nav.navbar-nav(ng-controller='activeLink' ng-show='loggedInUser')
li
a(ng-class="{active: isActive('/configuration')}" href='/configuration/clusters') Configuration
- li
- a(ng-class="{active: isActive('/sql')}" href='/sql') SQL
+ //li
+ // a(ng-class="{active: isActive('/sql')}" href='/sql') SQL
ul.nav.navbar-nav.pull-right
li(ng-show='loggedInUser')
a.dropdown-toggle(data-toggle='dropdown' aria-expanded='true' bs-dropdown data-template='user-dropdown' data-placement='bottom-right') {{loggedInUser.username}}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/persistence.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/persistence.jade b/modules/web-control-center/nodejs/views/persistence.jade
deleted file mode 100644
index 16ccb4b..0000000
--- a/modules/web-control-center/nodejs/views/persistence.jade
+++ /dev/null
@@ -1,114 +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.
-
-extends templates/layout-sidebar
-
-append scripts
- script(src='/persistences-controller.js')
-
-include includes/controls
-
-mixin dbcheck(chk)
- input(type='checkbox' style='margin-left: 5px' ng-checked=chk)
-
-block content
- .docs-header
- h1 Create and configure Ignite persistence
- hr
- .docs-body(ng-controller='persistenceController')
- .links(ng-hide='persistences.length == 0')
- table.col-sm-12(st-table='persistences')
- tbody
- tr(ng-repeat='row in persistences 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.database | displayValue:databases:'Database not set'}}
- button.btn.btn-primary(ng-click='createItem()') Add
- hr
- form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
- div(bs-collapse data-start-collapsed='false')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) Connection
- .panel-collapse(bs-collapse-target)
- .panel-body
- .settings-row(ng-repeat='field in connection')
- +form-row
- div(bs-collapse data-start-collapsed='true' ng-hide='data.tables.length == 0')
- .panel.panel-default
- .panel-heading
- h3
- a(bs-collapse-toggle) Metadata
- .panel-collapse(bs-collapse-target)
- .panel-body
- div(ng-hide='data.tables.length == 0')
- table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables')
- thead
- tr
- th.col-sm-3 Schema/Table
- th Key class
- th Value class
- tbody
- tr(ng-repeat='row in data.tables')
- td(colspan='{{row.tableName ? 1 : 3}}')
- div.checkbox(ng-if='!row.tableName')
- label(ng-click='selectSchema($index)')
- input(type='checkbox' ng-checked='row.use')
- | {{row.schemaName}}
- div.checkbox(ng-if='row.tableName')
- label(style='padding-left: 30px' ng-click='selectTable($index)')
- input(type='checkbox' ng-checked = 'row.use')
- | {{row.tableName}}
- td(ng-if='row.tableName')
- a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.keyClass}}
- input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curKeyClass' placeholder='Key class full name')
- td(ng-if='row.tableName')
- a(ng-show='data.curTableIdx != $index' ng-click='selectTable($index)') {{row.valueClass}}
- input.form-control(type='text' ng-show='data.curTableIdx == $index' ng-model='data.curValueClass' placeholder='Value class full name')
- div(ng-hide='data.curTableIdx < 0')
- table.table-bordered.table-condensed.links-edit-small-padding.col-sm-12(st-table='data.tables[data.curTableIdx].fields')
- thead
- tr
- th(style='width:45px') Use
- th(style='width:45px') Key
- th(style='width:45px') Ak
- th DB Name
- th DB Type
- th Java Name
- th Java Type
- tbody
- tr(ng-repeat='row in data.tables[data.curTableIdx].fields')
- td
- +dbcheck('row.use')
- td
- +dbcheck('row.key')
- td
- +dbcheck('row.ak')
- td
- label {{row.dbName}}
- td
- label {{row.dbType}}
- td
- a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaName}}
- input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaName' placeholder='Field Java name')
- td
- a(ng-show='data.curFieldIdx != $index' ng-click='selectField($index)') {{row.javaType}}
- input.form-control(type='text' ng-show='data.curFieldIdx == $index' ng-model='data.curJavaType' placeholder='Field Java type')
- button.btn.btn-primary(ng-disabled='inputForm.$invalid' ng-click='saveItem()') Save
- button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
- button.btn.btn-primary.btn-second(ng-click='reloadMetadata()') Reload
-
-
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/181fd985/modules/web-control-center/nodejs/views/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/profile.jade b/modules/web-control-center/nodejs/views/profile.jade
deleted file mode 100644
index 358d30c..0000000
--- a/modules/web-control-center/nodejs/views/profile.jade
+++ /dev/null
@@ -1,58 +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.
-
-extends templates/layout
-
-mixin lbl(txt)
- label.col-sm-2.required.labelFormField #{txt}
-
-append scripts
- script(src='/profile-controller.js')
-
-block container
- .row.greedy(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-sm-4
- input.form-control(type='text' ng-model='profileUser.username' placeholder='Input name' required)
- .details-row
- +lbl('Email:')
- .col-sm-4
- input.form-control(type='email' ng-model='profileUser.email' placeholder='you@domain.com' required)
- .details-row
- .checkbox
- label
- input(type="checkbox" ng-model='profileUser.changePassword')
- | Change password
- div(ng-show='profileUser.changePassword')
- .details-row
- +lbl('New password:')
- .col-sm-4
- input.form-control(type='password', ng-model='profileUser.newPassword' placeholder='New password' ng-required='profileUser.changePassword')
- .details-row
- +lbl('Confirm:')
- .col-sm-4
- input.form-control(type='password', ng-model='profileUser.confirmPassword' match='profileUser.newPassword' placeholder='Confirm new password' ng-required='profileUser.changePassword')
- .col-sm-12.details-row
- button#save-btn.btn.btn-primary(ng-disabled='profileForm.$invalid' ng-click='saveUser()') Save
-