You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2015/07/02 10:48:34 UTC

[48/50] [abbrv] incubator-ignite git commit: IGNITE-843 Cleanup module.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/80a5a7ab/modules/webconfig/src/main/webapp/persistence.html
----------------------------------------------------------------------
diff --git a/modules/webconfig/src/main/webapp/persistence.html b/modules/webconfig/src/main/webapp/persistence.html
deleted file mode 100644
index bc04893..0000000
--- a/modules/webconfig/src/main/webapp/persistence.html
+++ /dev/null
@@ -1,377 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="ignite-web-configurator">
-  <head>
-    <title></title>
-    <!-- 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">
-    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.min.js"></script>
-    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.tpl.min.js"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js"></script>
-    <script src="/javascripts/controllers/common.js"></script>
-    <script src="/javascripts/dataStructures.js"></script>
-    <script src="/javascripts/bundle.js"></script>
-    <script src="/javascripts/controllers/persistences.js"></script>
-  </head>
-  <body class="theme-line body-overlap">
-    <div class="wrapper">
-      <header id="header" class="header">
-        <div class="container">
-          <h1 class="navbar-brand"><a href="/">Apache Ignite Web Configurator</a></h1>
-          <div ng-controller="auth" class="navbar-collapse collapse">
-            <ul ng-controller="activeLink" class="nav navbar-nav">
-              <li><a ng-class="{active: isActive('/clusters')}" href="/clusters">Configuration</a></li>
-              <li><a ng-class="{active: isActive('/sql')}" href="/sql">SQL</a></li>
-            </ul>
-            <ul ng-init="user = undefined" class="nav navbar-nav pull-right">
-              <li ng-show="user"><a data-toggle="dropdown" aria-expanded="true" bs-dropdown data-template="user-dropdown" data-placement="bottom-right" class="dropdown-toggle">{{user.username}}<span class="caret"></span></a>
-                <script id="user-dropdown" type="text/ng-template">
-                  <ul class="dropdown-menu">
-                    <li><a href="/rest/auth/logout">Log Out</a></li>
-                  </ul>
-                </script>
-              </li>
-              <li ng-show="!user" class="nav-login"><a ng-click="login()" href="#">Log In</a></li>
-            </ul>
-          </div>
-        </div>
-      </header>
-      <div class="container body-container">
-        <div class="main-content">
-          <div class="main-head">
-            <div class="row">
-              <div class="col-sm-2 border-right section-left greedy">
-                <div class="sidebar-nav">
-                  <ul ng-controller="activeLink" class="menu">
-                    <li><a ng-class="{active: isActive('/clusters')}" href="/clusters">Clusters</a></li>
-                    <li><a ng-class="{active: isActive('/caches')}" href="/caches">Caches</a></li>
-                    <li><a ng-class="{active: isActive('/persistence')}" href="/persistence">Persistence</a></li>
-                    <li><a ng-class="{active: isActive('/clients')}" href="/clients">Clients</a></li>
-                    <li>
-                      <p></p><a ng-class="{active: isActive('/summary')}" href="/summary">Summary</a>
-                    </li>
-                  </ul>
-                </div>
-              </div>
-              <div class="col-sm-10 border-left section-right">
-                <div class="docs-content">
-                  <div class="docs-header">
-                    <h1>Persistence</h1>
-                    <p>Create and configure Ignite persistence.</p>
-                    <hr>
-                  </div>
-                  <div ng-controller="persistenceController" class="docs-body">
-                    <div ng-hide="persistences.length == 0" class="links">
-                      <table st-table="persistences" class="col-sm-12">
-                        <tbody>
-                          <tr ng-repeat="row in persistences track by row._id">
-                            <td ng-class="{active: row._id == selectedItem._id}" class="col-sm-6"><a ng-click="selectItem(row)">{{$index + 1}}. {{row.name}}, {{row.database | displayValue:databases:'Database not set'}}</a></td>
-                          </tr>
-                        </tbody>
-                      </table>
-                    </div>
-                    <button ng-click="createItem()" class="btn btn-primary">Add</button>
-                    <hr>
-                    <form name="inputForm" ng-if="backupItem" novalidate class="form-horizontal">
-                      <div bs-collapse data-start-collapsed="false">
-                        <div class="panel panel-default">
-                          <div class="panel-heading">
-                            <h3><a bs-collapse-toggle>Connection</a></h3>
-                          </div>
-                          <div bs-collapse-target class="panel-collapse">
-                            <div class="panel-body">
-                              <div ng-repeat="field in connection" class="settings-row">
-                                <div ng-switch="field.type">
-                                  <div ng-switch-when="check" class="checkbox col-sm-6">
-                                    <label>
-                                      <input type="checkbox" ng-model="getModel(backupItem, field.path)[field.model]"/>{{field.label}}<i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipLabel fa fa-question-circle"></i><i ng-if="!field.tip" class="tipLabel fa fa-question-circle blank"></i>
-                                    </label>
-                                  </div>
-                                  <div ng-switch-when="text">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <input type="text" placeholder="{{field.placeholder}}" ng-required="field.required" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"/>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="password">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <input type="password" placeholder="{{field.placeholder}}" ng-required="field.required" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"/>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="number">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <input name="{{field.model}}" type="number" placeholder="{{field.placeholder}}" min="{{field.min ? field.min : 0}}" max="{{field.max ? field.max : Number.MAX_VALUE}}" ng-required="field.required" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"/><i ng-show="inputForm[&quot;{{field.model}}&quot;].$error.min" bs-tooltip="bs-tooltip" data-title="Value is less than allowable minimum." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i><i ng-show="inputForm[&quot;{{field.model}}&quot;].$error.max" bs-tooltip="bs-tooltip" data-title="Value is more than allowable maximum." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i><i ng-show="inputForm[&quot;{{field.model}}&quot;].$error.number" bs-tooltip="bs-tooltip" data-title="Invalid value. Only numbers allowed." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="dropdown">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <button bs-select="bs-select" ng-required="field.required" data-placeholder="{{field.placeholder}}" bs-options="item.value as item.label for item in {{field.items}}" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"></button>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="dropdown-multiple">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <button bs-select="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}}" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"></button>
-                                      </div>
-                                    </div><a ng-show="field.addLink" ng-href="{{field.addLink.ref}}" class="customize">{{field.addLink.label}}</a>
-                                  </div>
-                                  <div ng-switch-when="dropdown-details">
-                                    <label ng-class="{required: field.required}" class="col-sm-2">{{field.label}}:</label>
-                                    <div class="col-sm-4"><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <button bs-select="bs-select" ng-required="field.required" data-placeholder="{{field.placeholder}}" bs-options="item.value as item.label for item in {{field.items}}" class="form-control" ng-model="getModel(backupItem, field.path)[field.model]"></button>
-                                      </div>
-                                    </div><a ng-show="getModel(backupItem, field.path)[field.model] &amp;&amp; field.details[getModel(backupItem, field.path)[field.model]].fields" ng-click="field.details[getModel(backupItem, field.path)[field.model]].expanded = !field.details[getModel(backupItem, field.path)[field.model]].expanded" class="customize">{{field.details[getModel(backupItem, field.path)[field.model]].expanded ? "Hide settings" : "Show settings"}}</a>
-                                    <div ng-show="field.details[getModel(backupItem, field.path)[field.model]].expanded &amp;&amp; getModel(backupItem, field.path)[field.model]" class="col-sm-6 panel-details">
-                                      <div ng-repeat="detail in field.details[getModel(backupItem, field.path)[field.model]].fields" class="details-row">
-                                        <div ng-switch="detail.type">
-                                          <div ng-switch-when="check" class="checkbox">
-                                            <label>
-                                              <input type="checkbox" ng-model="getModel(backupItem, detail.path)[detail.model]"/>{{detail.label}}<i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipLabel fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipLabel fa fa-question-circle blank"></i>
-                                            </label>
-                                          </div>
-                                          <div ng-switch-when="text">
-                                            <label class="col-sm-4 details-label">{{detail.label}}:</label>
-                                            <div class="col-sm-8"><i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipField fa fa-question-circle blank"></i>
-                                              <div class="input-tip">
-                                                <input type="text" placeholder="{{detail.placeholder}}" class="form-control" ng-model="getModel(backupItem, detail.path)[detail.model]"/>
-                                              </div>
-                                            </div>
-                                          </div>
-                                          <div ng-switch-when="number">
-                                            <label class="col-sm-4 details-label">{{detail.label}}:</label>
-                                            <div class="col-sm-8"><i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipField fa fa-question-circle blank"></i>
-                                              <div class="input-tip">
-                                                <input name="{{detail.model}}" type="number" placeholder="{{detail.placeholder}}" min="{{detail.min ? detail.min : 0}}" max="{{detail.max ? detail.max : Number.MAX_VALUE}}" class="form-control" ng-model="getModel(backupItem, detail.path)[detail.model]"/><i ng-show="inputForm[&quot;{{detail.model}}&quot;].$error.min" bs-tooltip="bs-tooltip" data-title="Value is less than allowable minimum." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i><i ng-show="inputForm[&quot;{{detail.model}}&quot;].$error.max" bs-tooltip="bs-tooltip" data-title="Value is more than allowable maximum." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i><i ng-show="inputForm[&quot;{{detail.model}}&quot;].$error.number" bs-tooltip="bs-tooltip" data-title="Invalid value. Only numbers allowed." type="button" class="fa fa-exclamation-triangle form-control-feedback"></i>
-                                              </div>
-                                            </div>
-                                          </div>
-                                          <div ng-switch-when="dropdown">
-                                            <label class="col-sm-4 details-label">{{detail.label}}:</label>
-                                            <div class="col-sm-8"><i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipField fa fa-question-circle blank"></i>
-                                              <div class="input-tip">
-                                                <button bs-select="bs-select" data-placeholder="{{detail.placeholder}}" bs-options="item.value as item.label for item in {{detail.items}}" class="form-control" ng-model="getModel(backupItem, detail.path)[detail.model]"></button>
-                                              </div>
-                                            </div>
-                                          </div>
-                                          <div ng-switch-when="dropdown-multiple">
-                                            <label class="col-sm-4 details-label">{{detail.label}}:</label>
-                                            <div class="col-sm-8">
-                                              <button bs-select="bs-select" data-multiple="1" data-placeholder="{{detail.placeholder}}" bs-options="item.value as item.label for item in {{detail.items}}" class="form-control" ng-model="getModel(backupItem, detail.path)[detail.model]"></button>
-                                            </div><i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipField fa fa-question-circle blank"></i>
-                                          </div>
-                                          <div ng-switch-when="table-simple" style="margin-right: 5px; margin-top: -0.65em" ng-model="getModel(backupItem, detail.path)[detail.model]">
-                                            <table st-table="getModel(backupItem, detail.path)[detail.model]" ng-show="getModel(backupItem, detail.path)[detail.model].length &gt; 0" class="col-sm-12 links-edit">
-                                              <tbody>
-                                                <tr ng-repeat="item in getModel(backupItem, detail.path)[detail.model] track by $index">
-                                                  <td class="col-sm-11">
-                                                    <div ng-show="detail.editIdx != {{$index}}"><a ng-click="detail.editIdx = $index; curValue = getModel(backupItem, detail.path)[detail.model][$index]">{{$index + 1}}) {{item}}</a><i ng-click="detail.editIdx = -1; getModel(backupItem, detail.path)[detail.model].splice($index, 1)" class="tipField fa fa-remove"></i></div>
-                                                    <div ng-show="detail.editIdx == {{$index}}">
-                                                      <label class="labelField">{{$index + 1}})</label><i ng-click="detail.editIdx = -1; getModel(backupItem, detail.path)[detail.model][$index]=curValue" class="tipField fa fa-floppy-o"></i>
-                                                      <div class="input-tip">
-                                                        <input type="text" ng-model="curValue" placeholder="{{detail.placeholder}}" class="form-control"/>
-                                                      </div>
-                                                    </div>
-                                                  </td>
-                                                  <td ng-if="detail.reordering" class="col-sm-1"><i ng-show="$index &gt; 0" ng-click="swapSimpleItems(detailMdl, $index, $index - 1); detail.editIdx = -1;" class="fa fa-arrow-up"></i><i ng-show="$index &lt; getModel(backupItem, detail.path)[detail.model].length - 1" ng-click="swapSimpleItems(getModel(backupItem, detail.path)[detail.model], $index, $index + 1); detail.editIdx = -1;" class="fa fa-arrow-down"></i></td>
-                                                </tr>
-                                              </tbody>
-                                            </table>
-                                            <button ng-disabled="!newValue || getModel(backupItem, detail.path)[detail.model].indexOf(newValue) &gt;= 0" ng-click="detail.editIdx = -1; getModel(backupItem, detail.path)[detail.model] ? getModel(backupItem, detail.path)[detail.model].push(newValue) : getModel(backupItem, detail.path)[detail.model] = [newValue];" class="btn btn-primary fieldButton">Add</button><i ng-if="detail.tip" bs-tooltip="joinTip(detail.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!detail.tip" class="tipField fa fa-question-circle blank"></i>
-                                            <div class="input-tip">
-                                              <input type="text" ng-model="newValue" ng-focus="detail.editIdx = -1" placeholder="{{detail.placeholder}}" class="form-control"/>
-                                            </div>
-                                          </div>
-                                        </div>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="table-simple" ng-model="getModel(backupItem, field.path)[field.model]">
-                                    <div>
-                                      <label>{{field.tableLabel}}: {{getModel(backupItem, field.path)[field.model].length}}</label><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipLabel fa fa-question-circle"></i><i ng-if="!field.tip" class="tipLabel fa fa-question-circle blank"></i>
-                                    </div>
-                                    <table st-table="getModel(backupItem, field.path)[field.model]" ng-show="getModel(backupItem, field.path)[field.model].length &gt; 0" class="links-edit col-sm-12">
-                                      <tbody>
-                                        <tr ng-repeat="item in getModel(backupItem, field.path)[field.model] track by $index" class="col-sm-12">
-                                          <td class="col-sm-6">
-                                            <div ng-show="field.editIdx != {{$index}}"><a ng-click="field.editIdx = $index; curValue = getModel(backupItem, field.path)[field.model][$index]">{{$index + 1}}) {{item | compact}}</a><i ng-click="field.editIdx = -1; getModel(backupItem, field.path)[field.model].splice($index, 1)" class="tipField fa fa-remove"></i></div>
-                                            <div ng-show="field.editIdx == {{$index}}">
-                                              <label class="labelField">{{$index + 1}})</label><i ng-click="field.editIdx = -1; getModel(backupItem, field.path)[field.model][$index]=curValue" class="tipField fa fa-floppy-o"></i>
-                                              <div class="input-tip">
-                                                <input type="text" ng-model="curValue" placeholder="{{field.placeholder}}" class="form-control"/>
-                                              </div>
-                                            </div>
-                                          </td>
-                                          <td ng-if="field.reordering" class="col-sm-1"><i ng-show="$index &gt; 0" ng-click="swapSimpleItems(fieldMdl, $index, $index - 1); field.editIdx = -1;" class="fa fa-arrow-up"></i><i ng-show="$index &lt; getModel(backupItem, field.path)[field.model].length - 1" ng-click="swapSimpleItems(getModel(backupItem, field.path)[field.model], $index, $index + 1); field.editIdx = -1;" class="fa fa-arrow-down"></i></td>
-                                        </tr>
-                                      </tbody>
-                                    </table>
-                                    <div class="col-sm-6">
-                                      <button ng-disabled="!newValue || getModel(backupItem, field.path)[field.model].indexOf(newValue) &gt;= 0" ng-click="field.editIdx = -1; getModel(backupItem, field.path)[field.model] ? getModel(backupItem, field.path)[field.model].push(newValue) : getModel(backupItem, field.path)[field.model] = [newValue];" class="btn btn-primary fieldButton">Add</button><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipField fa fa-question-circle"></i><i ng-if="!field.tip" class="tipField fa fa-question-circle blank"></i>
-                                      <div class="input-tip">
-                                        <input type="text" ng-model="newValue" ng-focus="field.editIdx = -1" placeholder="{{field.placeholder}}" class="form-control"/>
-                                      </div>
-                                    </div>
-                                  </div>
-                                  <div ng-switch-when="indexedTypes">
-                                    <div>
-                                      <label>Indexed types: {{backupItem.indexedTypes.length}}</label><i ng-if="field.tip" bs-tooltip="joinTip(field.tip)" type="button" class="tipLabel fa fa-question-circle"></i><i ng-if="!field.tip" class="tipLabel fa fa-question-circle blank"></i>
-                                    </div>
-                                    <table st-table="backupItem.indexedTypes" ng-show="backupItem.indexedTypes.length &gt; 0" class="links-edit col-sm-12">
-                                      <tbody>
-                                        <tr ng-repeat="item in backupItem.indexedTypes" class="col-sm-12">
-                                          <td class="col-sm-6">
-                                            <div ng-show="field.editIdx != {{$index}}"><a ng-click="field.editIdx = $index; curKeyClass = backupItem.indexedTypes[$index].keyClass; curValueClass = backupItem.indexedTypes[$index].valueClass">{{$index + 1}}) {{item.keyClass}} / {{item.valueClass}}</a><i ng-click="field.editIdx = -1; backupItem.indexedTypes.splice($index, 1)" class="tipField fa fa-remove"></i></div>
-                                            <div ng-show="field.editIdx == {{$index}}">
-                                              <label class="labelField">{{$index + 1}})</label><i ng-click="field.editIdx = -1; backupItem.indexedTypes[$index]={keyClass: curKeyClass, valueClass: curValueClass}" class="tipField fa fa-floppy-o"></i>
-                                              <div class="input-tip">
-                                                <div class="col-sm-12">
-                                                  <input type="text" ng-model="curKeyClass" placeholder="Key class full name" class="form-control table-form-control"/>
-                                                  <label>&nbsp;/&nbsp;</label>
-                                                  <input type="text" ng-model="curValueClass" placeholder="Value class full name" class="form-control table-form-control"/>
-                                                </div>
-                                              </div>
-                                            </div>
-                                          </td>
-                                        </tr>
-                                      </tbody>
-                                    </table>
-                                    <div class="col-sm-6">
-                                      <input type="text" ng-model="newKeyClass" ng-focus="field.editIdx = -1" placeholder="Key class full name" class="form-control"/>
-                                      <div class="settings-row">
-                                        <input type="text" ng-model="newValueClass" ng-focus="field.editIdx = -1" placeholder="Value class full name" class="form-control"/>
-                                      </div>
-                                      <button ng-click="field.editIdx = -1; addIndexedTypes(newKeyClass, newValueClass)" class="btn btn-primary fieldButton">Add</button>
-                                    </div>
-                                  </div>
-                                </div>
-                              </div>
-                            </div>
-                          </div>
-                        </div>
-                      </div>
-                      <div bs-collapse data-start-collapsed="true" ng-hide="data.tables.length == 0">
-                        <div class="panel panel-default">
-                          <div class="panel-heading">
-                            <h3><a bs-collapse-toggle>Metadata</a></h3>
-                          </div>
-                          <div bs-collapse-target class="panel-collapse">
-                            <div class="panel-body">
-                              <div ng-hide="data.tables.length == 0">
-                                <table st-table="data.tables" class="table-bordered table-condensed links-edit-small-padding col-sm-12">
-                                  <thead>
-                                    <tr>
-                                      <th class="col-sm-3">Schema/Table</th>
-                                      <th>Key class</th>
-                                      <th>Value class</th>
-                                    </tr>
-                                  </thead>
-                                  <tbody>
-                                    <tr ng-repeat="row in data.tables">
-                                      <td colspan="{{row.tableName ? 1 : 3}}">
-                                        <div ng-if="!row.tableName" class="checkbox">
-                                          <label ng-click="selectSchema($index)">
-                                            <input type="checkbox" ng-checked="row.use">{{row.schemaName}}
-                                          </label>
-                                        </div>
-                                        <div ng-if="row.tableName" class="checkbox">
-                                          <label style="padding-left: 30px" ng-click="selectTable($index)">
-                                            <input type="checkbox" ng-checked="row.use">{{row.tableName}}
-                                          </label>
-                                        </div>
-                                      </td>
-                                      <td ng-if="row.tableName"><a ng-show="data.curTableIdx != $index" ng-click="selectTable($index)">{{row.keyClass}}</a>
-                                        <input type="text" ng-show="data.curTableIdx == $index" ng-model="data.curKeyClass" placeholder="Key class full name" class="form-control">
-                                      </td>
-                                      <td ng-if="row.tableName"><a ng-show="data.curTableIdx != $index" ng-click="selectTable($index)">{{row.valueClass}}</a>
-                                        <input type="text" ng-show="data.curTableIdx == $index" ng-model="data.curValueClass" placeholder="Value class full name" class="form-control">
-                                      </td>
-                                    </tr>
-                                  </tbody>
-                                </table>
-                              </div>
-                              <div ng-hide="data.curTableIdx &lt; 0">
-                                <table st-table="data.tables[data.curTableIdx].fields" class="table-bordered table-condensed links-edit-small-padding col-sm-12">
-                                  <thead>
-                                    <tr>
-                                      <th style="width:45px">Use</th>
-                                      <th style="width:45px">Key</th>
-                                      <th style="width:45px">Ak</th>
-                                      <th>DB Name</th>
-                                      <th>DB Type</th>
-                                      <th>Java Name</th>
-                                      <th>Java Type</th>
-                                    </tr>
-                                  </thead>
-                                  <tbody>
-                                    <tr ng-repeat="row in data.tables[data.curTableIdx].fields">
-                                      <td>
-                                        <input type="checkbox" style="margin-left: 5px" ng-checked="row.use"/>
-                                      </td>
-                                      <td>
-                                        <input type="checkbox" style="margin-left: 5px" ng-checked="row.key"/>
-                                      </td>
-                                      <td>
-                                        <input type="checkbox" style="margin-left: 5px" ng-checked="row.ak"/>
-                                      </td>
-                                      <td>
-                                        <label>{{row.dbName}}</label>
-                                      </td>
-                                      <td>
-                                        <label>{{row.dbType}}</label>
-                                      </td>
-                                      <td><a ng-show="data.curFieldIdx != $index" ng-click="selectField($index)">{{row.javaName}}</a>
-                                        <input type="text" ng-show="data.curFieldIdx == $index" ng-model="data.curJavaName" placeholder="Field Java name" class="form-control">
-                                      </td>
-                                      <td><a ng-show="data.curFieldIdx != $index" ng-click="selectField($index)">{{row.javaType}}</a>
-                                        <input type="text" ng-show="data.curFieldIdx == $index" ng-model="data.curJavaType" placeholder="Field Java type" class="form-control">
-                                      </td>
-                                    </tr>
-                                  </tbody>
-                                </table>
-                              </div>
-                            </div>
-                          </div>
-                        </div>
-                      </div>
-                    </form>
-                    <button ng-disabled="inputForm.$invalid" ng-click="saveItem()" class="btn btn-primary">Save</button>
-                    <button ng-show="backupItem._id" ng-click="removeItem()" class="btn btn-primary btn-second">Remove</button>
-                    <button ng-click="reloadMetadata()" class="btn btn-primary btn-second">Reload</button>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="container container-footer">
-        <footer>
-          <center>
-            <p>Powered by<a href="http://ignite.incubator.apache.org"> Apache Ignite</a>, version 1.1.0</p>
-          </center>
-        </footer>
-      </div>
-    </div>
-  </body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/80a5a7ab/modules/webconfig/src/main/webapp/sql.html
----------------------------------------------------------------------
diff --git a/modules/webconfig/src/main/webapp/sql.html b/modules/webconfig/src/main/webapp/sql.html
deleted file mode 100644
index 6107486..0000000
--- a/modules/webconfig/src/main/webapp/sql.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="ignite-web-configurator">
-  <head>
-    <title></title>
-    <!-- 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">
-    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.min.js"></script>
-    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.tpl.min.js"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js"></script>
-    <script src="/javascripts/controllers/common.js"></script>
-    <script src="/javascripts/dataStructures.js"></script>
-    <script src="/javascripts/bundle.js"></script>
-  </head>
-  <body class="theme-line body-overlap">
-    <div class="wrapper">
-      <header id="header" class="header">
-        <div class="container">
-          <h1 class="navbar-brand"><a href="/">Apache Ignite Web Configurator</a></h1>
-          <div ng-controller="auth" class="navbar-collapse collapse">
-            <ul ng-controller="activeLink" class="nav navbar-nav">
-              <li><a ng-class="{active: isActive('/clusters')}" href="/clusters">Configuration</a></li>
-              <li><a ng-class="{active: isActive('/sql')}" href="/sql">SQL</a></li>
-            </ul>
-            <ul ng-init="user = undefined" class="nav navbar-nav pull-right">
-              <li ng-show="user"><a data-toggle="dropdown" aria-expanded="true" bs-dropdown data-template="user-dropdown" data-placement="bottom-right" class="dropdown-toggle">{{user.username}}<span class="caret"></span></a>
-                <script id="user-dropdown" type="text/ng-template">
-                  <ul class="dropdown-menu">
-                    <li><a href="/rest/auth/logout">Log Out</a></li>
-                  </ul>
-                </script>
-              </li>
-              <li ng-show="!user" class="nav-login"><a ng-click="login()" href="#">Log In</a></li>
-            </ul>
-          </div>
-        </div>
-      </header>
-      <div class="container body-container">
-        <div class="main-content">
-          <div class="main-head">
-            <div class="docs-header">
-              <h1>SQL</h1>
-              <p>Connect to Zeppelin and execute SQL queries.</p>
-              <hr>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="container container-footer">
-        <footer>
-          <center>
-            <p>Powered by<a href="http://ignite.incubator.apache.org"> Apache Ignite</a>, version 1.1.0</p>
-          </center>
-        </footer>
-      </div>
-    </div>
-  </body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/80a5a7ab/modules/webconfig/src/main/webapp/stylesheets/style.css
----------------------------------------------------------------------
diff --git a/modules/webconfig/src/main/webapp/stylesheets/style.css b/modules/webconfig/src/main/webapp/stylesheets/style.css
deleted file mode 100644
index fb21a65..0000000
--- a/modules/webconfig/src/main/webapp/stylesheets/style.css
+++ /dev/null
@@ -1 +0,0 @@
-.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:25px}.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 .sidebar-nav{color:#474a54;padding-bottom:30px}.theme-line .sidebar-nav ul{padding:0;list-style:none;font-size:13px;margin:3px 0 0}.theme-line .sidebar-nav ul li a{padding:3px 0;display:block;color:#666;position:relative;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis}.theme-line .sidebar-nav ul li a:before{top:0;content:" ";display:block;width:6px;height:100%;position:absolute;left:-30px}.theme-line .sidebar-nav ul li a:hover{text-decoration:none}.theme-line .select li a{color:#666}.theme-line .select li a:hover,.theme-line
  .select .active{color:#ec1c24;background-color:white}.theme-line .sidebar-nav ul li .subcategory{padding-left:15px}.theme-line .sidebar-nav h4{margin-top:2em;font-weight:normal;text-transform:uppercase;font-size:11px;margin-bottom:10px;color:#bbb}.theme-line .sidebar-nav h4:first-child{margin-top:0}.theme-line .sidebar-nav .ask{width:100%;text-align:center;padding:10px}.theme-line .border-left .sidebar-nav{padding-left:15px}.theme-line .suggest{padding:4px;display:inline-block;font-size:12px}.header{padding:15px}.header .has-github{padding-right:136px}.header h1.navbar-brand{height:40px;width:200px;padding:0;margin: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:contain}.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-na
 v .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 .n
 avbar-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.body-threes .section-rig
 ht .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}.ng-table-p
 ager{display:none}.container-footer{margin-top:20px}.vcenter{display:inline-block;vertical-align:middle;float:none}.vcenter2{position:relative;top:50%;transform:translateY(-50%)}.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 10px}.modal .modal-content .modal-footer{margin-top:0}.modal-body{padding-top:30px}h1.ignite-logo{background-image:url(
 "https://www.filepicker.io/api/file/QagunjDGRFul2JgNCAli")}.st-sort-ascent:after{font-family:FontAwesome, serif;content:'\f077'}.st-sort-descent:after{font-family:FontAwesome, serif;content:'\f078'}.block-display-image img{max-width:100%;max-height:450px;margin:auto;display:block}.greedy{min-height:200px;height:calc(100vh - 230px)}@media (min-width:768px){.navbar-nav>li>a{padding-top:20px;padding-bottom:10px}}.details-row{padding-left:1.3em}.details-table-row{padding:0}.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-heig
 ht:1}h3{color:black;font-size:1.2em;margin-top:0;margin-bottom:1.5em}table tr:hover{cursor:pointer}.input-group{display:inline-block}.input-group .form-control{width:auto;margin-left:0;margin-right:0}.form-control{display:inline-block;text-align:left;padding:3px 3px;height:28px}.form-control button{text-align:left}.table-form-control{width:auto}.form-horizontal .control-label{padding-top:4px}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;cursor:pointer}.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{color:#ec1c24;cursor:pointer}.theme-line .panel-collapse{margin:0}.theme-line .links table,.theme-line table.links-edit,.theme-line table.links-edit-small-padding{display:table;table-layout:fixed;margin-bottom:10px}.
 theme-line .links table td,.theme-line table.links-edit td,.theme-line table.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-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-small-padding a:hover{color:#950d12}.theme-line .links table a,.theme-line table.links-edit a,.theme-line table.links-edit-small-padding a{color:#666}.theme-line table.links-edit label{line-height:28px;color:#666}.btn{padding:3px 6px}.panel-title a{font-size:14px}.panel-details{margin-top:1.3em;margin-bottom:0.65em;padding:0.65em;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;line-height:14px;margin-bottom:0}.form-horizontal .checkbox{padding-top:0}.
 input-tip{display:block;overflow:hidden;padding-right:4px}.labelField{float:left;margin-right:4px}.tipField{float:right;line-height:28px;margin-right:5px}.tipLabel{font-size:14px;margin-left:4px}.fieldButton{float:right;margin-left:4px;margin-right:0}.table-nowrap{table-layout:fixed}.td-overflow{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fa-edit{cursor:pointer}.fa-remove{color:#ec1c24;margin-left:5px;margin-right:5px;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-invalid{border-color:#ec1c24}input.ng-invalid :focus{border-color:#ec1c24}.form-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:4px}.theme-line table.links-edit-small-padding .checkbox label{li
 ne-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}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/80a5a7ab/modules/webconfig/src/main/webapp/summary.html
----------------------------------------------------------------------
diff --git a/modules/webconfig/src/main/webapp/summary.html b/modules/webconfig/src/main/webapp/summary.html
deleted file mode 100644
index b45b86d..0000000
--- a/modules/webconfig/src/main/webapp/summary.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<html ng-app="ignite-web-configurator">
-  <head>
-    <title></title>
-    <!-- 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">
-    <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shCore.css">
-    <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/styles/shThemeMidnight.css">
-    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.min.js"></script>
-    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-sanitize.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.2.2/angular-strap.tpl.min.js"></script>
-    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.0.3/smart-table.js"></script>
-    <script src="/javascripts/controllers/common.js"></script>
-    <script src="/javascripts/dataStructures.js"></script>
-    <script src="/javascripts/bundle.js"></script>
-    <script src="/javascripts/controllers/summary.js"></script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shCore.min.js">   </script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushXml.js">   </script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83/scripts/shBrushJava.js">   </script>
-    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
-  </head>
-  <body class="theme-line body-overlap">
-    <div class="wrapper">
-      <header id="header" class="header">
-        <div class="container">
-          <h1 class="navbar-brand"><a href="/">Apache Ignite Web Configurator</a></h1>
-          <div ng-controller="auth" class="navbar-collapse collapse">
-            <ul ng-controller="activeLink" class="nav navbar-nav">
-              <li><a ng-class="{active: isActive('/clusters')}" href="/clusters">Configuration</a></li>
-              <li><a ng-class="{active: isActive('/sql')}" href="/sql">SQL</a></li>
-            </ul>
-            <ul ng-init="user = undefined" class="nav navbar-nav pull-right">
-              <li ng-show="user"><a data-toggle="dropdown" aria-expanded="true" bs-dropdown data-template="user-dropdown" data-placement="bottom-right" class="dropdown-toggle">{{user.username}}<span class="caret"></span></a>
-                <script id="user-dropdown" type="text/ng-template">
-                  <ul class="dropdown-menu">
-                    <li><a href="/rest/auth/logout">Log Out</a></li>
-                  </ul>
-                </script>
-              </li>
-              <li ng-show="!user" class="nav-login"><a ng-click="login()" href="#">Log In</a></li>
-            </ul>
-          </div>
-        </div>
-      </header>
-      <div class="container body-container">
-        <div class="main-content">
-          <div class="main-head">
-            <div class="row">
-              <div class="col-sm-2 border-right section-left greedy">
-                <div class="sidebar-nav">
-                  <ul ng-controller="activeLink" class="menu">
-                    <li><a ng-class="{active: isActive('/clusters')}" href="/clusters">Clusters</a></li>
-                    <li><a ng-class="{active: isActive('/caches')}" href="/caches">Caches</a></li>
-                    <li><a ng-class="{active: isActive('/persistence')}" href="/persistence">Persistence</a></li>
-                    <li><a ng-class="{active: isActive('/clients')}" href="/clients">Clients</a></li>
-                    <li>
-                      <p></p><a ng-class="{active: isActive('/summary')}" href="/summary">Summary</a>
-                    </li>
-                  </ul>
-                </div>
-              </div>
-              <div class="col-sm-10 border-left section-right">
-                <div class="docs-content">
-                  <div class="docs-header">
-                    <h1>Summary</h1>
-                    <p>Configurations summary.</p>
-                    <hr>
-                  </div>
-                  <div ng-controller="summaryController" class="docs-body">
-                    <div ng-hide="clusters.length &gt; 0">No cluster configured. You can&nbsp;<a href="clusters">configure</a> it.</div>
-                    <div ng-hide="clusters.length == 0">
-                      <p>Following cluster configurations are created, you can download its as xml, java code or as docker file</p>
-                      <div class="links">
-                        <table st-table="clusters" class="col-sm-12">
-                          <tbody>
-                            <tr ng-repeat="row in clusters track by row._id">
-                              <td ng-class="{active: row._id == selectedItem._id}" class="col-sm-6"><a ng-click="selectItem(row)">{{$index + 1}}. {{row.name}}</a></td>
-                            </tr>
-                          </tbody>
-                        </table>
-                      </div>
-                      <div id="cfgResult" ng-show="selectedItem &amp;&amp; !generateError &amp;&amp; !loading" style="margin-top: 20px" class="configBox">
-                        <ul class="nav nav-tabs">
-                          <li ng-class="{active: cfgLang == &quot;xml&quot;}"><a href ng-click="cfgLang = &quot;xml&quot;"><img src="images/xml.png" width="16px" height="16px"> XML</a></li>
-                          <li ng-class="{active: cfgLang==&quot;java&quot;}"><a href ng-click="cfgLang = &quot;java&quot;"><img src="images/java.png" width="16px" height="16px"> Java</a></li>
-                          <li ng-class="{active: cfgLang=='docker'}"><a href ng-click="cfgLang = &quot;docker&quot;"><img src="images/docker.png" width="16px" height="16px"> Dockerfile</a></li>
-                        </ul>
-                        <div style="padding-top: 10px">       
-                          <div id="xmlResult" ng-show="cfgLang == 'xml'">
-                            <div id="xmlResultDiv"></div>
-                          </div>
-                          <div id="javaResult" ng-show="cfgLang == 'java'">
-                            <label>
-                              <input type="checkbox" ng-model="generateJavaClass">generate java class.
-                            </label>
-                            <div id="javaResultDiv"></div>
-                          </div>
-                          <div id="dockerResult" ng-show="cfgLang == 'docker'">
-                            <p><a href="https://docs.docker.com/reference/builder">Dockerfile</a>is a text file with instructions to create Docker image. To build image you have to
-                              store following Docker file with your xml ignite configurations to the same directory. 
-                            </p>
-                            <form class="form-horizontal">
-                              <div class="form-group">
-                                <label for="os" class="control-label col-sm-3">Operation System</label>
-                                <div class="col-sm-6">
-                                  <input id="os" type="text" ng-model="dockerArg.os" placeholder="debian:8" class="form-control">
-                                </div>
-                              </div>
-                              <div class="form-group">Download as <a href ng-click="downloadDocker()">file</a>
-                                <textarea rows="30" readonly class="form-control">{{ dockerFile() }}</textarea>
-                              </div>
-                            </form>
-                          </div>
-                        </div>
-                        <div ng-show="generateError">{{generateError}}</div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="container container-footer">
-        <footer>
-          <center>
-            <p>Powered by<a href="http://ignite.incubator.apache.org"> Apache Ignite</a>, version 1.1.0</p>
-          </center>
-        </footer>
-      </div>
-    </div>
-  </body>
-</html>
\ No newline at end of file