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/31 04:28:40 UTC

[27/41] incubator-ignite git commit: # ignite-843 Rename

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/configuration/metadata.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/configuration/metadata.jade b/modules/web-control-center/src/main/js/views/configuration/metadata.jade
deleted file mode 100644
index e0cc76f..0000000
--- a/modules/web-control-center/src/main/js/views/configuration/metadata.jade
+++ /dev/null
@@ -1,121 +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 sidebar
-
-append scripts
-    script(src='/metadata-controller.js')
-
-include ../includes/controls
-
-block content
-    .docs-header
-        h1 Create and Configure Cache Type Metadata
-        hr
-    .docs-body(ng-controller='metadataController')
-        +block-callout('{{screenTip.workflowTitle}}', 'joinTip(screenTip.workflowContent)', '{{screenTip.whatsNextTitle}}', 'joinTip(screenTip.whatsNextContent)')
-        div(ng-hide='metadatas.length == 0')
-            .padding-dflt
-                lable.labelHeader Types metadata:
-                table.links(st-table='metadatas')
-                    tbody
-                        tr(ng-repeat='row in metadatas track by row._id')
-                            td.col-sm-6(ng-class='{active: row._id == selectedItem._id}')
-                                a(event-focus='click' event-focus-id='defaultFocusId' ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}
-        .padding-top-dflt
-            button.btn.btn-primary(event-focus='click' event-focus-id='defaultFocusId' ng-click='panels.activePanel = [0]; createItem()') &nbspAdd metadata
-            label(style='margin-left: 6px; margin-right: 10px') For:
-            button.btn.btn-default(ng-model='template' data-template='/select' data-placeholder='Choose metadata type' 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
-        .panel-group(bs-collapse ng-model='panels.activePanel' data-allow-multiple='false')
-            .panel.panel-default(ng-show='selectedItem || backupItem')
-                .panel-heading
-                    h3
-                        a(bs-collapse-toggle) Manual
-                .panel-collapse(role='tabpanel' bs-collapse-target)
-                    .panel-body
-                        form.form-horizontal(name='manualForm' ng-if='backupItem' novalidate)
-                            .settings-row(ng-repeat='field in metadataManual')
-                                +form-row
-                            button.btn.btn-primary(ng-disabled='manualForm.$invalid' ng-click='saveItem()') Save
-                            button.btn.btn-primary(ng-show='backupItem._id' ng-disabled='inputForm.$invalid' ng-click='saveItemAs()') Copy
-                            button.btn.btn-primary.btn-second(ng-show='backupItem._id' ng-click='removeItem()') Remove
-            .panel.panel-default
-                .panel-heading
-                    h3
-                        a(bs-collapse-toggle) Load from database
-                .panel-collapse(bs-collapse-target)
-                    .panel-body
-                        form.form-horizontal(name='dbForm' novalidate)
-                            .settings-row(ng-repeat='field in metadataDb')
-                                +form-row
-                        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.databaseName}}
-                        //                td
-                        //                    label {{row.databaseType}}
-                        //                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='dbForm.$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
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/configuration/sidebar.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/configuration/sidebar.jade b/modules/web-control-center/src/main/js/views/configuration/sidebar.jade
deleted file mode 100644
index 7289f3e..0000000
--- a/modules/web-control-center/src/main/js/views/configuration/sidebar.jade
+++ /dev/null
@@ -1,39 +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 sidebar-item(ref, num, txt)
-    li
-        a(ng-class='{active: isActive("#{ref}")}' href='#{ref}')
-            span.fa-stack
-                i.fa.fa-circle-thin.fa-stack-2x
-                i.fa.fa-stack-1x #{num}
-            | #{txt}
-
-block container
-    .row
-        .col-sm-2.border-right.section-left.greedy
-            .sidebar-nav(bs-affix)
-                ul.menu(ng-controller='activeLink')
-                    +sidebar-item('/configuration/clusters', 1, 'Clusters')
-                    +sidebar-item('/configuration/metadata', 2, 'Metadata')
-                    +sidebar-item('/configuration/caches', 3, 'Caches')
-                    +sidebar-item('/configuration/summary', 4, 'Summary')
-
-        .col-sm-10.border-left.section-right
-            .docs-content
-                block content
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/configuration/summary.jade b/modules/web-control-center/src/main/js/views/configuration/summary.jade
deleted file mode 100644
index ba63343..0000000
--- a/modules/web-control-center/src/main/js/views/configuration/summary.jade
+++ /dev/null
@@ -1,113 +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 sidebar
-
-append scripts
-    script(src='/summary-controller.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')
-
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/theme-chrome.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-xml.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-java.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-dockerfile.js')
-
-append css
-
-include ../includes/controls
-
-mixin hard-link(ref, txt)
-    a(style='color:#ec1c24' href=ref target='_blank') #{txt}
-
-block content
-    .docs-header
-        h1 Configurations Summary
-        hr
-    .docs-body(ng-controller='summaryController')
-        +block-callout('{{screenTip.workflowTitle}}', 'joinTip(screenTip.workflowContent)', '{{screenTip.whatsNextTitle}}', 'joinTip(screenTip.whatsNextContent)')
-        .padding-dflt(ng-if='clusters.length == 0')
-            | No cluster configured. You can&nbsp;
-            a(href='clusters') configure
-            | &nbsp;it.
-        .padding-dflt(ng-if='clusters.length > 0')
-            lable.labelHeader Clusters:
-            table.links(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}}
-        div(ng-show='selectedItem' role='tab' method='post' action='summary/download')
-            .padding-dflt(bs-collapse data-start-collapsed='false')
-                .panel.panel-default
-                    form.panel-heading(role='tab' method='post' action='summary/download')
-                        input(type='hidden' name='_id' value='{{selectedItem._id}}')
-                        input(type='hidden' name='os' value='{{os}}')
-                        input(type='hidden' name='javaClass' value='{{javaClassServer}}')
-                        h3
-                            a(bs-collapse-toggle) Server
-                            button.btn.btn-primary.pull-right(type='submit' style='margin-top: -5px') Download
-                    .panel-collapse(role='tabpanel' bs-collapse-target)
-                        div(ng-show='selectedItem' bs-tabs style='margin-top: 0.65em')
-                            div(title='<img src="/images/xml.png" width="16px" height="16px"/> XML' bs-pane)
-                                div(ui-ace='{ onLoad: aceInit, mode: "xml" }' ng-model='xmlServer')
-                            div(title='<img src="/images/java.png" width="16px" height="16px"/> Java' bs-pane)
-                                .details-row
-                                    .col-sm-1
-                                        label Generate:
-                                    .col-sm-3
-                                        button.form-control(type='button' ng-model='configServer.javaClassServer'  bs-select data-placeholder='{{detail.placeholder}}' 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(title='<img src="/images/docker.png" width="16px" height="16px"/> Dockerfile' bs-pane)
-                                .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.incubator.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-sm-2
-                                        label(for='os') Operation System:
-                                    .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' data-animation='am-flip-x' bs-typeahead bs-options='os for os in oss')
-                                div(ui-ace='{ onLoad: aceInit, mode: "dockerfile" }' ng-model='dockerServer')
-            .padding-dflt(bs-collapse data-start-collapsed='false')
-                .panel.panel-default
-                    form.panel-heading(role='tab' method='post' action='summary/download')
-                        input(type='hidden' name='_id' value='{{selectedItem._id}}')
-                        input(type='hidden' name='javaClass' value='{{javaClassClient}}')
-                        input(type='hidden' name='clientNearConfiguration' value='{{backupItem}}')
-                        h3
-                            a(bs-collapse-toggle) Client
-                            button.btn.btn-primary.pull-right(type='submit' style='margin-top: -5px') Download
-                    .panel-collapse(role='tabpanel' bs-collapse-target)
-                        div(ng-show='selectedItem')
-                            .details-row(ng-repeat='field in clientFields')
-                                +form-row-custom(['col-sm-3'], ['col-sm-3'])
-                            div(bs-tabs style='margin-top: 0.65em')
-                                div(title='<img src="/images/xml.png" width="16px" height="16px"/> XML' bs-pane)
-                                    div(ui-ace='{ onLoad: aceInit, mode: "xml" }' ng-model='xmlClient')
-                                div(title='<img src="/images/java.png" width="16px" height="16px"/> Java' bs-pane)
-                                    .details-row
-                                        .col-sm-1
-                                            label Generate:
-                                        .col-sm-4
-                                            button.form-control(type='button' ng-model='backupItem.javaClassClient' bs-select data-placeholder='{{detail.placeholder}}' bs-options='item.value as item.label for item in javaClassItems' data-sort='false')
-                                    div(ui-ace='{ onLoad: aceInit, mode: "java" }' ng-model='javaClient')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/error.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/error.jade b/modules/web-control-center/src/main/js/views/error.jade
deleted file mode 100644
index b458fb7..0000000
--- a/modules/web-control-center/src/main/js/views/error.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 templates/layout
-
-block container
-  h1= message
-  h2= error.status
-  pre #{error.stack}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/includes/controls.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/includes/controls.jade b/modules/web-control-center/src/main/js/views/includes/controls.jade
deleted file mode 100644
index e9fe71b..0000000
--- a/modules/web-control-center/src/main/js/views/includes/controls.jade
+++ /dev/null
@@ -1,350 +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.
-
-mixin block-callout(titleWorkflow, contentWorkflow, whatsNextWorkflow, whatsNextContent)
-    .block-callout-parent.block-callout-border.margin-bottom-dflt
-        .block-callout
-            i.fa.fa-check-square
-            label #{titleWorkflow}
-            p(ng-bind-html=contentWorkflow)
-        .block-callout
-            i.fa.fa-check-square
-            label #{whatsNextWorkflow}
-            p(ng-bind-html=whatsNextContent)
-
-
-mixin tipField(lines)
-    i.tipField.fa.fa-question-circle(ng-if=lines bs-tooltip='joinTip(#{lines})' type='button')
-    i.tipField.fa.fa-question-circle.blank(ng-if='!#{lines}')
-
-mixin tipLabel(lines)
-    i.tipLabel.fa.fa-question-circle(ng-if=lines bs-tooltip='joinTip(#{lines})' type='button')
-    i.tipLabel.fa.fa-question-circle.blank(ng-if='!#{lines}')
-
-mixin ico-exclamation(mdl, err, msg)
-    i.fa.fa-exclamation-triangle.form-control-feedback(ng-show='inputForm["#{mdl}"].$error.#{err}' bs-tooltip data-title='#{msg}' type='button')
-
-mixin btn-save(show, click)
-    i.tipField.fa.fa-floppy-o(ng-show=show ng-click=click bs-tooltip data-title='Save item')
-
-mixin btn-add(click, tip, focusId)
-    i.tipField.fa.fa-plus(ng-click=click bs-tooltip=tip event-focus='click' event-focus-id=focusId)
-
-mixin btn-remove(click, tip)
-    i.tipField.fa.fa-remove(ng-click=click bs-tooltip=tip data-trigger='hover')
-
-mixin btn-up(show, click)
-    i.tipField.fa.fa-arrow-up(ng-show=show ng-click=click bs-tooltip data-title='Move item up')
-
-mixin btn-down(show, click)
-    i.tipField.fa.fa-arrow-down(ng-show=show ng-click=click bs-tooltip data-title='Move item down')
-
-mixin table-pair-edit(keyModel, valModel, keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, focusId)
-    .col-sm-6(style='float: right')
-        if valueJavaBuildInTypes
-            input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-        else
-            input.form-control(type='text' ng-model=valModel placeholder=valPlaceholder ng-escape='tableReset()')
-    label.fieldSep /
-    .input-tip
-        if keyJavaBuildInTypes
-            input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-        else
-            input.form-control(id=focusId type='text' ng-model=keyModel placeholder=keyPlaceholder ng-escape='tableReset()')
-
-mixin table-pair(header, tblMdl, keyFld, valFld, keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes)
-    .col-sm-6
-        label.table-header #{header}:
-        +tipLabel('field.tip')
-        +btn-add('tableNewItem(field)', 'field.addTip', '{{::field.focusNewItemId}}')
-        .table-details(ng-show='(#{tblMdl} && #{tblMdl}.length > 0) || tableNewItemActive(field)')
-            table.links-edit.col-sm-12(st-table=tblMdl)
-                tbody
-                    tr(ng-repeat='item in #{tblMdl}')
-                        td.col-sm-12
-                            div(ng-show='!tableEditing(field, $index)')
-                                a.labelFormField(event-focus='click' event-focus-id='{{::field.focusCurItemId}}' ng-click='curPair = tableStartEdit(backupItem, field, $index); curKey = curPair.#{keyFld}; curValue = curPair.#{valFld}') {{$index + 1}}) {{item.#{keyFld}}} / {{item.#{valFld}}}
-                                +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
-                            div(ng-if='tableEditing(field, $index)')
-                                label.labelField {{$index + 1}})
-                                +btn-save('tablePairSaveVisible(curKey, curValue)', 'tablePairSave(tablePairValid, backupItem, field, curKey, curValue, $index)')
-                                +table-pair-edit('curKey', 'curValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusCurItemId}}')
-                tfoot(ng-show='tableNewItemActive(field)')
-                    tr
-                        td.col-sm-12
-                            +btn-save('tablePairSaveVisible(newKey, newValue)', 'tablePairSave(tablePairValid, backupItem, field, newKey, newValue, -1)')
-                            +table-pair-edit('newKey', 'newValue', keyPlaceholder, valPlaceholder, keyJavaBuildInTypes, valueJavaBuildInTypes, '{{::field.focusNewItemId}}')
-
-mixin details-row
-    - var lblDetailClasses = ['col-sm-4', 'details-label']
-
-    - var detailMdl = 'getModel(backupItem, detail)[detail.model]';
-    - var detailCommon = {'ng-model': detailMdl, 'ng-required': 'detail.required'};
-
-    - var customValidators = {'ng-attr-ipaddress': '{{detail.ipaddress}}'}
-
-    div(ng-switch='detail.type')
-        div(ng-switch-when='label')
-            label {{::detail.label}}
-        div.checkbox(ng-switch-when='check')
-            label
-                input(type='checkbox')&attributes(detailCommon)
-                |{{::detail.label}}
-                +tipLabel('detail.tip')
-        div(ng-switch-when='text')
-            label(class=lblDetailClasses ng-class='{required: detail.required}') {{::detail.label}}:
-            .col-sm-8
-                +tipField('detail.tip')
-                .input-tip
-                    input.form-control(type='text' placeholder='{{::detail.placeholder}}')&attributes(detailCommon)
-        div(ng-switch-when='number' )
-            label(class=lblDetailClasses ng-class='{required: detail.required}') {{::detail.label}}:
-            .col-sm-8
-                +tipField('detail.tip')
-                .input-tip
-                    input.form-control(name='{{detail.model}}' type='number' placeholder='{{::detail.placeholder}}' min='{{detail.min ? detail.min : 0}}' max='{{detail.max ? detail.max : Number.MAX_VALUE}}')&attributes(detailCommon)
-                    +ico-exclamation('{{detail.model}}', 'min', 'Value is less than allowable minimum.')
-                    +ico-exclamation('{{detail.model}}', 'max', 'Value is more than allowable maximum.')
-                    +ico-exclamation('{{detail.model}}', 'number', 'Invalid value. Only numbers allowed.')
-        div(ng-switch-when='dropdown')
-            label(class=lblDetailClasses ng-class='{required: detail.required}') {{::detail.label}}:
-            .col-sm-8
-                +tipField('detail.tip')
-                .input-tip
-                    button.form-control(bs-select data-placeholder='{{::detail.placeholder}}' bs-options='item.value as item.label for item in {{detail.items}}')&attributes(detailCommon)
-        div(ng-switch-when='dropdown-multiple')
-            label(class=lblDetailClasses ng-class='{required: detail.required}') {{::detail.label}}:
-            .col-sm-8
-                button.form-control(bs-select data-multiple='1' data-placeholder='{{::detail.placeholder}}' bs-options='item.value as item.label for item in {{detail.items}}')&attributes(detailCommon)
-            +tipField('detail.tip')
-        div(ng-switch-when='table-simple')&attributes(detailCommon)
-            div(ng-if='detail.label')
-                label.table-header {{::detail.label}}:
-                +tipLabel('detail.tableTip')
-            table.col-sm-12.links-edit-details(st-table='#{detailMdl}')
-                tbody
-                    tr(ng-repeat='item in #{detailMdl} track by $index')
-                        td
-                            div(ng-show='!tableEditing(detail, $index)')
-                                a.labelFormField(event-focus='click' event-focus-id='{{::detail.focusCurItemId}}' ng-click='curValue = tableStartEdit(backupItem, detail, $index)') {{$index + 1}}) {{item}}
-                                +btn-remove('tableRemove(backupItem, detail, $index)', 'detail.removeTip')
-                                +btn-down('detail.reordering && tableSimpleDownVisible(backupItem, detail, $index)', 'tableSimpleDown(backupItem, detail, $index)')
-                                +btn-up('detail.reordering && $index > 0', 'tableSimpleUp(backupItem, detail, $index)')
-                            div(ng-if='tableEditing(detail, $index)')
-                                label.labelField {{$index + 1}})
-                                +btn-save('tableSimpleSaveVisible(curValue)', 'tableSimpleSave(tableSimpleValid, backupItem, detail, curValue, $index)')
-                                .input-tip.form-group.has-feedback
-                                    input.form-control(id='{{::detail.focusCurItemId}}' name='{{detail.model}}.edit' type='text' ng-model='curValue' placeholder='{{::detail.placeholder}}' ng-escape='tableReset()')&attributes(customValidators)
-                                    +ico-exclamation('{{detail.model}}.edit', 'ipaddress', 'Invalid address, see help for format description.')
-            button.btn.btn-primary.fieldButton(ng-disabled='!newValue' ng-click='tableSimpleSave(tableSimpleValid, backupItem, detail, newValue, -1)') Add
-            +tipField('detail.tip')
-            .input-tip.form-group.has-feedback
-                input.form-control(name='{{detail.model}}' type='text' ng-model='newValue' ng-focus='tableNewItem(detail)' placeholder='{{::detail.placeholder}}')&attributes(customValidators)
-                +ico-exclamation('{{detail.model}}', 'ipaddress', 'Invalid address, see help for format description.')
-
-mixin table-db-field-edit(databaseName, databaseType, javaName, javaType)
-    div(style='width: 22%; float: right')
-        button.form-control(ng-model=javaType bs-select data-placeholder='Java type' bs-options='item.value as item.label for item in {{javaTypes}}')
-    label.fieldSep /
-    div(style='width: 20%; float: right')
-        input.form-control(type='text' ng-model=javaName placeholder='Java name' ng-escape='tableReset()')
-    label.fieldSep /
-    div(style='width: 22%; float: right')
-        button.form-control(ng-model=databaseType bs-select data-placeholder='JDBC type' bs-options='item.value as item.label for item in {{jdbcTypes}}')
-    label.fieldSep /
-    .input-tip
-        input.form-control(type='text' ng-model=databaseName placeholder='DB name' ng-escape='tableReset()')
-
-mixin table-group-item-edit(fieldName, className, direction, focusId)
-    div(style='width: 15%; float: right')
-        button.form-control(ng-model=direction bs-select data-placeholder='Sort' bs-options='item.value as item.label for item in {{sortDirections}}')
-    label.fieldSep /
-    div(style='width: 38%; float: right')
-        input.form-control(type='text' ng-model=className placeholder='Class name' bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes' ng-escape='tableReset()')
-    label.fieldSep /
-    .input-tip
-        input.form-control(id=focusId type='text' ng-model=fieldName placeholder='Field name' ng-escape='tableReset()')
-
-mixin form-row
-    +form-row-custom(['col-sm-2'], ['col-sm-4'])
-
-mixin form-row-custom(lblClasses, fieldClasses)
-    - var fieldMdl = 'getModel(backupItem, field)[field.model]';
-    - var fieldCommon = {'ng-model': fieldMdl, 'ng-required': 'field.required || required(field)'};
-    - var fieldRequiredClass = '{true: "required"}[field.required || required(field)]'
-    - var fieldHide = '{{field.hide}}'
-
-    div(ng-switch='field.type')
-        div.col-sm-6(ng-switch-when='label')
-            label {{::field.label}}
-        div.checkbox.col-sm-6(ng-switch-when='check' ng-hide=fieldHide)
-            label
-                input(type='checkbox')&attributes(fieldCommon)
-                | {{::field.label}}
-                +tipLabel('field.tip')
-        div(ng-switch-when='text' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    input.form-control(id='{{::field.id}}' type='text' placeholder='{{::field.placeholder}}')&attributes(fieldCommon)
-        div(ng-switch-when='withJavaBuildInTypes' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    input.form-control(type='text' placeholder='{{::field.placeholder}}' bs-typeahead data-min-length='1' bs-options='javaType for javaType in javaBuildInTypes')&attributes(fieldCommon)
-        div(ng-switch-when='password' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    input.form-control(type='password' placeholder='{{::field.placeholder}}')&attributes(fieldCommon)
-        div(ng-switch-when='number' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    input.form-control(name='{{field.model}}' type='number' placeholder='{{::field.placeholder}}' min='{{field.min ? field.min : 0}}' max='{{field.max ? field.max : Number.MAX_VALUE}}')&attributes(fieldCommon)
-                    +ico-exclamation('{{field.model}}', 'min', 'Value is less than allowable minimum.')
-                    +ico-exclamation('{{field.model}}', 'max', 'Value is more than allowable maximum.')
-                    +ico-exclamation('{{field.model}}', 'number', 'Invalid value. Only numbers allowed.')
-        div(ng-switch-when='dropdown' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    button.form-control(bs-select data-placeholder='{{::field.placeholder}}' bs-options='item.value as item.label for item in {{field.items}}')&attributes(fieldCommon)
-        div(ng-switch-when='dropdown-multiple' ng-hide=fieldHide)
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    button.form-control(bs-select ng-disabled='{{field.items}}.length == 0' data-multiple='1' data-placeholder='{{::field.placeholder}}' bs-options='item.value as item.label for item in {{field.items}}')&attributes(fieldCommon)
-            a.customize(ng-show='field.addLink' ng-href='{{field.addLink.ref}}') {{field.addLink.label}}
-        div(ng-switch-when='dropdown-details' ng-hide=fieldHide)
-            - var expanded = 'field.details[' + fieldMdl + '].expanded'
-
-            label(class=lblClasses ng-class=fieldRequiredClass) {{::field.label}}:
-            div(class=fieldClasses)
-                +tipField('field.tip')
-                .input-tip
-                    button.form-control(bs-select data-placeholder='{{::field.placeholder}}' bs-options='item.value as item.label for item in {{field.items}}')&attributes(fieldCommon)
-            a.customize(ng-show='#{fieldMdl} && field.details[#{fieldMdl}].fields' ng-click='#{expanded} = !#{expanded}') {{#{expanded} ? "Hide settings" : "Show settings"}}
-            .col-sm-6.panel-details(ng-show='#{expanded} && #{fieldMdl}')
-                .details-row(ng-repeat='detail in field.details[#{fieldMdl}].fields')
-                    +details-row
-        div(ng-switch-when='table-simple' ng-hide=fieldHide)&attributes(fieldCommon)
-            .col-sm-6
-                label.table-header {{::field.label}}:
-                +tipLabel('field.tableTip')
-                +btn-add('tableNewItem(field)', 'field.addTip', '{{::field.focusNewItemId}}')
-            .col-sm-12(ng-show='(#{fieldMdl} && #{fieldMdl}.length > 0) || tableNewItemActive(field)')
-                .col-sm-6
-                    .table-details
-                        table.links-edit.col-sm-12(st-table='#{fieldMdl}')
-                            tbody
-                                tr(ng-repeat='item in #{fieldMdl} track by $index')
-                                    td.col-sm-12
-                                        div(ng-show='!tableEditing(field, $index)')
-                                            a.labelFormField(event-focus='click' event-focus-id='{{::field.focusCurItemId}}' ng-click='curValue = tableStartEdit(backupItem, field, $index)') {{$index + 1}}) {{item | compact}}
-                                            +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
-                                            +btn-down('field.reordering && tableSimpleDownVisible(backupItem, field, $index)', 'tableSimpleDown(backupItem, field, $index)')
-                                            +btn-up('field.reordering && $index > 0', 'tableSimpleUp(backupItem, field, $index)')
-                                        div(ng-if='tableEditing(field, $index)')
-                                            label.labelField {{$index + 1}})
-                                            +btn-save('tableSimpleSaveVisible(curValue)', 'tableSimpleSave(tableSimpleValid, backupItem, field, curValue, $index)')
-                                            .input-tip
-                                                input.form-control(id='{{::field.focusCurItemId}}' type='text' ng-model='curValue' placeholder='{{::field.placeholder}}' ng-enter='tableSimpleSaveVisible(curValue) && tableSimpleSave(tableSimpleValid, backupItem, field, curValue, $index)' ng-escape='tableReset()')
-                            tfoot(ng-show='tableNewItemActive(field)')
-                                tr
-                                    td.col-sm-12
-                                        +btn-save('tableSimpleSaveVisible(newValue)', 'tableSimpleSave(tableSimpleValid, backupItem, field, newValue, -1)')
-                                        .input-tip
-                                            input.form-control(id='{{::field.focusNewItemId}}' type='text' ng-model='newValue' placeholder='{{::field.placeholder}}' ng-enter='tableSimpleSaveVisible(newValue) && tableSimpleSave(tableSimpleValid, backupItem, field, newValue, -1)' ng-escape='tableReset()')
-        div(ng-switch-when='indexedTypes')
-            +table-pair('Index key-value type pairs', fieldMdl, 'keyClass', 'valueClass', 'Key class full name', 'Value class full name', true, false)
-        div(ng-switch-when='queryFields' ng-hide=fieldHide)
-            +table-pair('{{::field.label}}', fieldMdl, 'name', 'className', 'Field name', 'Field class full name', false, true)
-        div(ng-switch-when='dbFields' ng-hide=fieldHide)
-            .col-sm-6
-                label.table-header {{::field.label}}:
-                +tipLabel('field.tip')
-                +btn-add('tableNewItem(field)', 'field.addTip', 'field.focusNewItemId')
-            .col-sm-12(ng-show='(#{fieldMdl} && #{fieldMdl}.length > 0) || tableNewItemActive(field)')
-                .col-sm-6
-                    .table-details
-                        table.links-edit.col-sm-12(st-table=fieldMdl)
-                            tbody
-                                tr(ng-repeat='item in #{fieldMdl}')
-                                    td.col-sm-12
-                                        div(ng-show='!tableEditing(field, $index)')
-                                            a.labelFormField(ng-click='curField = tableStartEdit(backupItem, field, $index); curDatabaseName = curField.databaseName; curDatabaseType = curField.databaseType; curJavaName = curField.javaName; curJavaType = curField.javaType') {{$index + 1}}) {{item.databaseName}} / {{item.databaseType}} / {{item.javaName}} / {{item.javaType}}
-                                            +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
-                                        div(ng-if='tableEditing(field, $index)')
-                                            label.labelField {{$index + 1}})
-                                            +btn-save('tableDbFieldSaveVisible(curDatabaseName, curDatabaseType, curJavaName, curJavaType)', 'tableDbFieldSave(field, curDatabaseName, curDatabaseType, curJavaName, curJavaType, $index)')
-                                            +table-db-field-edit('curDatabaseName', 'curDatabaseType', 'curJavaName', 'curJavaType')
-                            tfoot(ng-show='tableNewItemActive(field)')
-                                tr
-                                    td.col-sm-12
-                                        +btn-save('tableDbFieldSaveVisible(newDatabaseName, newDatabaseType, newJavaName, newJavaType)', 'tableDbFieldSave(field, newDatabaseName, newDatabaseType, newJavaName, newJavaType, -1)')
-                                        +table-db-field-edit('newDatabaseName', 'newDatabaseType', 'newJavaName', 'newJavaType')
-        div(ng-switch-when='queryGroups' ng-hide=fieldHide)
-            .col-sm-6
-                label.table-header {{::field.label}}:
-                +tipLabel('field.tip')
-                +btn-add('tableNewItem(field)', 'field.addTip', 'newGroupId')
-            .col-sm-12(ng-show='(#{fieldMdl} && #{fieldMdl}.length > 0) || tableNewItemActive(field)')
-                .col-sm-6
-                    .table-details
-                        table.links-edit.col-sm-12(st-table=fieldMdl ng-init='newDirection = false')
-                            tbody
-                                tr(ng-repeat='group in #{fieldMdl}')
-                                    td.col-sm-12
-                                        div
-                                            .col-sm-12(ng-show='!tableEditing(field, $index)')
-                                                a.labelFormField(event-focus='click' event-focus-id='curGroupId' ng-click='curGroup = tableStartEdit(backupItem, field, $index); curGroupName = curGroup.name; curFields = curGroup.fields') {{$index + 1}}) {{group.name}}
-                                                +btn-remove('tableRemove(backupItem, field, $index)', 'field.removeTip')
-                                                +btn-add('tableGroupNewItem($index)', 'field.addItemTip', 'newGroupItemId')
-                                            div(ng-if='tableEditing(field, $index)')
-                                                label.labelField {{$index + 1}})
-                                                +btn-save('tableGroupSaveVisible(curGroupName)', 'tableGroupSave(curGroupName, $index)')
-                                                .input-tip
-                                                    input#curGroupId.form-control(type='text' ng-model='curGroupName' placeholder='Index name' ng-enter='tableGroupSaveVisible(curGroupName) && tableGroupSave(curGroupName, $index)' ng-escape='tableReset()')
-                                            div
-                                                table.links-edit.col-sm-12(st-table='group.fields' ng-init='groupIndex = $index')
-                                                    tbody
-                                                        tr(ng-repeat='groupItem in group.fields')
-                                                            td
-                                                                div(ng-show='!tableGroupItemEditing(groupIndex, $index)')
-                                                                    a.labelFormField(event-focus='click' event-focus-id='curGroupItemId' ng-click='curGroupItem = tableGroupItemStartEdit(groupIndex, $index); curFieldName = curGroupItem.name; curClassName = curGroupItem.className; curDirection = curGroupItem.direction') {{$index + 1}}) {{groupItem.name}} / {{groupItem.className}} / {{groupItem.direction ? "DESC" : "ASC"}}
-                                                                    +btn-remove('tableRemoveGroupItem(group, $index)', 'field.removeItemTip')
-                                                                div(ng-if='tableGroupItemEditing(groupIndex, $index)')
-                                                                    label.labelField {{$index + 1}})
-                                                                    +btn-save('tableGroupItemSaveVisible(curFieldName, curClassName)', 'tableGroupItemSave(curFieldName, curClassName, curDirection, groupIndex, $index)')
-                                                                    +table-group-item-edit('curFieldName', 'curClassName', 'curDirection', 'curGroupItemId')
-                                                    tfoot(ng-if='tableGroupNewItemActive(groupIndex)')
-                                                        tr.col-sm-12(style='padding-left: 18px')
-                                                            td
-                                                                +btn-save('tableGroupItemSaveVisible(newFieldName, newClassName)', 'tableGroupItemSave(newFieldName, newClassName, newDirection, groupIndex, -1)')
-                                                                +table-group-item-edit('newFieldName', 'newClassName', 'newDirection', 'newGroupItemId')
-                            tfoot(ng-show='tableNewItemActive(field)')
-                                tr
-                                    td.col-sm-12
-                                        +btn-save('tableGroupSaveVisible(newGroupName)', 'tableGroupSave(newGroupName, -1)')
-                                        .input-tip
-                                            input#newGroupId.form-control(type='text' ng-model='newGroupName' placeholder='Group name' ng-enter='tableGroupSaveVisible(newGroupName) && tableGroupSave(newGroupName, -1)' ng-escape='tableReset()')
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/includes/footer.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/includes/footer.jade b/modules/web-control-center/src/main/js/views/includes/footer.jade
deleted file mode 100644
index d8ff5d7..0000000
--- a/modules/web-control-center/src/main/js/views/includes/footer.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.
-
-.container.container-footer
-    footer
-        center
-            p Apache Ignite Control Center, version 1.0.0
-            p © 2015 The Apache Software Foundation.
-            p Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are trademarks of The Apache Software Foundation.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/includes/header.jade b/modules/web-control-center/src/main/js/views/includes/header.jade
deleted file mode 100644
index bfd5275..0000000
--- a/modules/web-control-center/src/main/js/views/includes/header.jade
+++ /dev/null
@@ -1,39 +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.
-mixin header-item(active, ref, txt)
-    li
-        a(ng-class='{active: isActive("#{active}")}' href='#{ref}') #{txt}
-
-header.header(id='header')
-    .viewedUser(ng-show='becomeUsed') Currently assuming "
-        strong {{user.username}}
-        | ",&nbsp;&nbsp;
-        a(href='/admin/become') revert to your identity.
-    .container
-        h1.navbar-brand
-            a(href='/') Apache Ignite Web Configurator
-        .navbar-collapse.collapse(ng-controller='auth')
-            ul.nav.navbar-nav(ng-controller='activeLink' ng-show='user')
-                +header-item('/configuration', '/configuration/clusters', 'Configuration')
-                //+header-item('/monitoring', '/monitoring', 'Monitoring')
-                +header-item('/sql', '/sql', 'SQL')
-                //+header-item('/deploy', '/deploy', 'Deploy')
-            ul.nav.navbar-nav.pull-right
-                li(ng-if='user')
-                    a.dropdown-toggle(data-toggle='dropdown' bs-dropdown='userDropdown' data-placement='bottom-right') {{user.username}}
-                        span.caret
-                li.nav-login(ng-if='!user')
-                    a(ng-click='login()' href='#') Log In
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/index.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/index.jade b/modules/web-control-center/src/main/js/views/index.jade
deleted file mode 100644
index 999c4f8..0000000
--- a/modules/web-control-center/src/main/js/views/index.jade
+++ /dev/null
@@ -1,30 +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
-    .row
-        .docs-content
-            div
-                p
-                    | Apache Ignite<sup>tm</sup> In-Memory Data Fabric is a high-performance,
-                    | integrated and distributed in-memory platform for computing and transacting on large-scale data
-                    | sets in real-time, orders of magnitude faster than possible with traditional disk-based or flash technologies.
-        .block-image.block-display-image
-                img(ng-src='https://www.filepicker.io/api/file/lydEeGB6Rs9hwbpcQxiw' alt='Apache Ignite stack')
-        .text-center(ng-controller='auth')
-            button.btn.btn-primary(ng-click='login()' href='#') Configure Now

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/login.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/login.jade b/modules/web-control-center/src/main/js/views/login.jade
deleted file mode 100644
index a580c01..0000000
--- a/modules/web-control-center/src/main/js/views/login.jade
+++ /dev/null
@@ -1,55 +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.
-
-mixin lbl(txt)
-    label.col-sm-3.required #{txt}
-
-.modal.center(role='dialog')
-    .modal-dialog
-        .modal-content
-            .modal-header.header
-                div(id='errors-container')
-                button.close(type='button' ng-click='$hide()' aria-hidden='true') &times;
-                h1.navbar-brand
-                    a(href='/') Apache Ignite Web Configurator
-                h4.modal-title(style='padding-right: 55px') Authentication
-                p(style='padding-right: 55px') Log in or register in order to collaborate
-            form.form-horizontal(name='loginForm')
-                .modal-body.row
-                    .col-sm-9.login.col-sm-offset-1
-                        .details-row(ng-show='action == "register"')
-                            +lbl('Full Name:')
-                            .col-sm-9
-                                input.form-control(type='text' ng-model='user_info.username' placeholder='John Smith' focus-me='action=="register"' ng-required='action=="register"')
-                        .details-row
-                            +lbl('Email:')
-                            .col-sm-9
-                                input.form-control(type='email' ng-model='user_info.email' placeholder='you@domain.com' focus-me='action=="login"' required)
-                        .details-row
-                            +lbl('Password:')
-                            .col-sm-9
-                                input.form-control(type='password' ng-model='user_info.password' placeholder='Password' required ng-enter='action == "login" && auth(action, user_info)')
-                        .details-row(ng-show='action == "register"')
-                            +lbl('Confirm:')
-                            .col-sm-9.input-tip.has-feedback
-                                input.form-control(type='password' ng-model='user_info.confirm' match='user_info.password' placeholder='Confirm password' required ng-enter='auth(action, user_info)')
-
-            .modal-footer
-                a.show-signup.ng-hide(ng-show='action != "login"' ng-click='action = "login";') log in
-                a.show-signup(ng-show='action != "register"' ng-click='action = "register"') sign up
-                | &nbsp;or&nbsp;
-                button.btn.btn-primary(ng-show='action == "login"' ng-click='auth(action, user_info)') Log In
-                button.btn.btn-primary(ng-show='action == "register"' ng-disabled='loginForm.$invalid || user_info.password != user_info.confirm' ng-click='auth(action, user_info)') Sign Up

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/settings/admin.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/settings/admin.jade b/modules/web-control-center/src/main/js/views/settings/admin.jade
deleted file mode 100644
index 8345bb9..0000000
--- a/modules/web-control-center/src/main/js/views/settings/admin.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
-
-append scripts
-    script(src='/admin-controller.js')
-
-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;')
-                                a(ng-click='removeUser(row)' ng-show='row._id != user._id' bs-tooltip data-title='Remove user')
-                                    i.fa.fa-remove
-                                a(style='margin-left: 5px' ng-href='admin/become?viewedUserId={{row._id}}' ng-show='row._id != user._id' bs-tooltip data-title='Become this user')
-                                    i.fa.fa-eye
-                    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/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/settings/profile.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/settings/profile.jade b/modules/web-control-center/src/main/js/views/settings/profile.jade
deleted file mode 100644
index 6ddcafa..0000000
--- a/modules/web-control-center/src/main/js/views/settings/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(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.btn.btn-primary(ng-disabled='profileForm.$invalid' ng-click='saveUser()') Save
-

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/sql/sql.jade b/modules/web-control-center/src/main/js/views/sql/sql.jade
deleted file mode 100644
index 97d34de..0000000
--- a/modules/web-control-center/src/main/js/views/sql/sql.jade
+++ /dev/null
@@ -1,85 +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='/sql-controller.js')
-
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/theme-chrome.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/mode-sql.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ext-language_tools.js')
-
-block container
-    .row
-        .col-sm-12
-            .docs-content
-                .docs-header
-                    h1 Connect to Ignite and Execute SQL Queries
-                    hr
-                .docs-body(ng-controller='sqlController')
-                    - var tab = 'tabs[tabs.activeIdx]'
-
-                    .block-callout-parent.block-callout-border.margin-bottom-dflt
-                        .block-callout
-                            p(ng-bind-html='joinTip(screenTip)')
-                    .tabs-below(bs-tabs bs-active-pane='tabs.activeIdx' data-template='/tab')
-                        div(ng-repeat='tab in tabs' title='Query' bs-pane)
-                    .row
-                        .col-sm-9(style='border-right: 1px solid #eee')
-                            div(style='height: 200px' ui-ace='{ theme: "chrome", mode: "sql",' +
-                                'require: ["ace/ext/language_tools"],' +
-                                'rendererOptions: {showPrintMargin: false, highlightGutterLine: false, fontSize: 14},' +
-                                'advanced: {enableSnippets: false, enableBasicAutocompletion: true, enableLiveAutocompletion: true}}' ng-model='#{tab}.query')
-                        .col-sm-3
-                            div(ng-hide='caches.length == 0' style='margin-top: 0.65em')
-                                lable.labelHeader Caches:
-                                table.links(st-table='caches')
-                                    tbody
-                                        tr(ng-repeat='row in caches track by row._id')
-                                            td.col-sm-6(ng-class='{active: row._id == #{tab}.selectedItem._id}')
-                                                a(ng-click='#{tab}.selectedItem = row') {{$index + 1}}) {{row.name}}, {{row.mode | displayValue:modes:'Cache mode not set'}}
-                    hr(style='margin: 0')
-                    .settings-row
-                        label Page Size:&nbsp;
-                        button.btn.btn-default.base-control(ng-init='pageSize = pageSizes[0]' ng-model='pageSize' bs-options='item for item in pageSizes' bs-select)
-                    .settings-row
-                        button.btn.btn-primary(ng-click='') Explain
-                        button.btn.btn-primary(ng-click='') Execute
-                        button.btn.btn-primary(ng-click='' disabled) Scan
-
-                    div(ng-show='#{tab}.rows.length > 0' style='margin-top: 0.65em')
-                        hr
-                        div
-                            table.table.table-striped.col-sm-12.sql-results(st-table='rows' st-safe-src='#{tab}.rows')
-                                thead
-                                    tr(style='border-size: 0')
-                                        td(colspan='{{#{tab}.cols.length}}')
-                                            .col-sm-8
-                                                lable Page #:&nbsp;
-                                                b {{#{tab}.page}}&nbsp;&nbsp;&nbsp;
-                                                | Results:&nbsp;
-                                                b {{#{tab}.rows.length + #{tab}.total}}
-                                            .col-sm-4
-                                                button.btn.btn-primary.fieldButton(ng-click='') Next page
-                                                .input-tip
-                                                    input.form-control(type='text' st-search='' placeholder='Filter...')
-
-                                    tr
-                                        th(ng-repeat='column in #{tab}.cols' st-sort='{{column}}') {{column}}
-                                tbody
-                                    //tr
-                                    //    td(colspan='{{#{tab}.cols.length}}')
-                                    //        .loading-indicator
-                                    tr(ng-repeat='row in rows')
-                                        td(ng-repeat='column in #{tab}.cols') {{row[column]}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/templates/confirm.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/templates/confirm.jade b/modules/web-control-center/src/main/js/views/templates/confirm.jade
deleted file mode 100644
index 949318a..0000000
--- a/modules/web-control-center/src/main/js/views/templates/confirm.jade
+++ /dev/null
@@ -1,27 +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.
-
-.modal(tabindex='-1' role='dialog')
-    .modal-dialog
-        .modal-content
-            .modal-header
-                button.close(type='button' ng-click='$hide()') &times;
-                h4.modal-title Confirmation
-            .modal-body(ng-show='content')
-                p(ng-bind-html='content' style='text-align: center;')
-            .modal-footer
-                button.btn.btn-default(type='button' ng-click='$hide()') Cancel
-                button.btn.btn-primary(type='button' ng-click='ok()') Confirm
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/templates/copy.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/templates/copy.jade b/modules/web-control-center/src/main/js/views/templates/copy.jade
deleted file mode 100644
index 2ba9096..0000000
--- a/modules/web-control-center/src/main/js/views/templates/copy.jade
+++ /dev/null
@@ -1,31 +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.
-
-.modal(tabindex='-1' role='dialog')
-    .modal-dialog
-        .modal-content
-            .modal-header
-                button.close(type='button' ng-click='$hide()') &times;
-                h4.modal-title Copy
-            form.form-horizontal(name='inputForm' novalidate)
-                .modal-body.row
-                    .col-sm-9.login.col-sm-offset-1
-                        label.required.labelFormField() New name:&nbsp;
-                        .col-sm-9
-                            input.form-control(type='text' ng-model='newName' required)
-            .modal-footer
-                button.btn.btn-default(type='button' ng-click='$hide()') Cancel
-                button.btn.btn-primary(type='button' ng-disabled='inputForm.$invalid' ng-click='ok(newName)') Confirm
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/templates/layout.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/templates/layout.jade b/modules/web-control-center/src/main/js/views/templates/layout.jade
deleted file mode 100644
index 71d8936..0000000
--- a/modules/web-control-center/src/main/js/views/templates/layout.jade
+++ /dev/null
@@ -1,61 +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.
-
-doctype html
-html(ng-app='ignite-web-control-center' ng-init='user = #{JSON.stringify(user)}; becomeUsed = #{becomeUsed}')
-    head
-        title= title
-
-        block css
-            // Bootstrap
-            link(rel='stylesheet', href='//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css')
-
-            // Font Awesome Icons
-            link(rel='stylesheet', href='//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.css')
-
-            // Font
-            link(rel='stylesheet', href='//fonts.googleapis.com/css?family=Roboto+Slab:700:serif|Roboto+Slab:400:serif')
-
-            link(rel='stylesheet', href='/stylesheets/style.css')
-
-        block scripts
-            script(src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js')
-
-            script(src='//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.min.js')
-
-            script(src='//ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.js')
-            script(src='//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular-sanitize.js')
-            script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.0/angular-strap.js')
-            script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.0/angular-strap.tpl.min.js')
-
-            script(src='//cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js')
-
-            script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js')
-            script(src='//angular-ui.github.io/ui-ace/dist/ui-ace.min.js')
-
-            script(src='/common-module.js')
-            script(src='/data-structures.js')
-
-    body.theme-line.body-overlap.greedy
-        .wrapper
-            include ../includes/header
-
-            block main-container
-                .container.body-container
-                    .main-content
-                        block container
-
-            include ../includes/footer

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/templates/select.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/templates/select.jade b/modules/web-control-center/src/main/js/views/templates/select.jade
deleted file mode 100644
index b219f13..0000000
--- a/modules/web-control-center/src/main/js/views/templates/select.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.
-
-ul.select.dropdown-menu(tabindex='-1' ng-show='$isVisible()' role='select')
-    li(role='presentation' ng-repeat='match in $matches')
-        hr(ng-if='match.value == undefined' style='margin: 5px 0')
-        a(style='cursor: default; padding: 3px 6px;' role='menuitem' tabindex='-1' ng-class='{active: $isActive($index)}' ng-click='$select($index, $event)')
-            i(class='{{$iconCheckmark}}' ng-if='$isActive($index)' ng-class='{active: $isActive($index)}' style='color: #ec1c24; margin-left: 15px; line-height: 20px; float: right;background-color: transparent;')
-            span(ng-bind='match.label')
-    li(ng-if='$showAllNoneButtons || ($isMultiple && $matches.length > 5)')
-        hr(style='margin: 5px 0')
-        a(ng-click='$selectAll()') {{$allText}}
-        a(ng-click='$selectNone()') {{$noneText}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/96522874/modules/web-control-center/src/main/js/views/templates/tab.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/src/main/js/views/templates/tab.jade b/modules/web-control-center/src/main/js/views/templates/tab.jade
deleted file mode 100644
index 6c7afc5..0000000
--- a/modules/web-control-center/src/main/js/views/templates/tab.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.
-
-ul.nav(ng-class='$navClass', role='tablist')
-    li(role='presentation' ng-repeat='$pane in $panes track by $index' ng-class='[ $isActive($pane, $index) ? $activeClass : "", $pane.disabled ? "disabled" : "" ]')
-        a(ng-if='$index == 0' role='tab' data-toggle='tab' ng-click='!$pane.disabled && $setActive($pane.name || $index)' data-index='{{ $index }}' aria-controls='$pane.title') {{$pane.title}}
-            i.fa.fa-remove(ng-click='removeTab($index)' ng-if='$index > 0' style='margin-left: 5px')
-        a(ng-if='$index > 0' role='tab' data-toggle='tab' ng-click='!$pane.disabled && $setActive($pane.name || $index)' data-index='{{ $index }}' aria-controls='$pane.title') {{$pane.title}}: {{$index}}
-            i.fa.fa-remove(ng-click='removeTab($index)' style='margin-left: 5px')
-    li.pull-right(bs-tooltip data-title='Add new query')
-        a(role='tab' data-toggle='tab' ng-click='addTab()')
-            i.fa.fa-plus
-.tab-content(ng-transclude)