# ignite-843 revert

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

Branch: refs/heads/ignite-1121
Commit: 31e401c845a146b6fa44c19a004a7714ffd1cf51
Parents: fe43275
Author: Andrey <anovi...@gridgain.com>
Authored: Wed Jul 22 17:40:29 2015 +0700
Committer: Andrey <anovi...@gridgain.com>
Committed: Wed Jul 22 17:56:38 2015 +0700

----------------------------------------------------------------------
 .../nodejs/agents/agent-manager.js              |  4 -
 .../controllers/cache-viewer-controller.js      | 77 ----------------
 .../nodejs/controllers/models/sql.json          |  5 ++
 .../nodejs/controllers/sql-controller.js        | 60 +++++++++++++
 .../nodejs/controllers/summary-controller.js    |  6 ++
 .../nodejs/public/stylesheets/style.less        | 17 +++-
 .../web-control-center/nodejs/routes/agent.js   | 27 ++----
 .../nodejs/tests/routes/agent.js                | 94 ++++++++++++++++++++
 .../nodejs/views/configuration/summary.jade     | 80 ++++++++---------
 .../nodejs/views/includes/header.jade           |  2 +-
 .../nodejs/views/sql/sql.jade                   | 87 ++++++++++--------
 .../nodejs/views/templates/layout.jade          |  2 +-
 12 files changed, 277 insertions(+), 184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/agents/agent-manager.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/agents/agent-manager.js 
b/modules/web-control-center/nodejs/agents/agent-manager.js
index 39d81bb..252b984 100644
--- a/modules/web-control-center/nodejs/agents/agent-manager.js
+++ b/modules/web-control-center/nodejs/agents/agent-manager.js
@@ -17,10 +17,6 @@
 
 var WebSocketServer = require('ws').Server;
 
-var config = require('../helpers/configuration-loader.js');
-
-var https = require('https');
-
 var ignite = require('apache-ignite');
 
 var db = require('../db');

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/controllers/cache-viewer-controller.js
----------------------------------------------------------------------
diff --git 
a/modules/web-control-center/nodejs/controllers/cache-viewer-controller.js 
b/modules/web-control-center/nodejs/controllers/cache-viewer-controller.js
deleted file mode 100644
index 6e0c130..0000000
--- a/modules/web-control-center/nodejs/controllers/cache-viewer-controller.js
+++ /dev/null
@@ -1,77 +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.
- */
-
-var demoResults = [
-    {
-        id: 256,
-        s: 'com.foo.User@3213',
-        fields: {
-            id: 256,
-            firstName: 'Ivan',
-            lastName: 'Ivanov',
-            old: 23
-        }
-    },
-
-    {
-        id: 384,
-        s: 'com.foo.User@23214',
-        fields: {
-            id: 384,
-            firstName: 'Sergey',
-            lastName: 'Petrov',
-            old: 28
-        }
-    },
-
-    {
-        id: 923,
-        s: 'com.foo.User@93494',
-        fields: {
-            id: 923,
-            firstName: 'Andrey',
-            lastName: 'Sidorov',
-            old: 28
-        }
-    }
-];
-
-var demoCaches = ['Users', 'Organizations', 'Cities'];
-
-controlCenterModule.controller('cacheViewerController', ['$scope', '$http', 
'$common', function ($scope, $http, $common) {
-    $scope.results = demoResults;
-
-    $scope.caches = demoCaches;
-
-    $scope.defCache = $scope.caches.length > 0 ? $scope.caches[0] : null;
-
-    var sqlEditor = ace.edit('querySql');
-
-    sqlEditor.setOptions({
-        highlightActiveLine: false,
-        showPrintMargin: false,
-        showGutter: true,
-        theme: "ace/theme/chrome",
-        mode: "ace/mode/sql",
-        fontSize: 14
-    });
-
-    sqlEditor.setValue("select u.id from User u where u.name like 'aaaa';");
-
-    sqlEditor.selection.clearSelection()
-
-}]);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/controllers/models/sql.json
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/models/sql.json 
b/modules/web-control-center/nodejs/controllers/models/sql.json
new file mode 100644
index 0000000..b00e5dd
--- /dev/null
+++ b/modules/web-control-center/nodejs/controllers/models/sql.json
@@ -0,0 +1,5 @@
+{
+  "screenTip": [
+    "Execute SQL queries."
+  ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/controllers/sql-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/controllers/sql-controller.js 
b/modules/web-control-center/nodejs/controllers/sql-controller.js
new file mode 100644
index 0000000..2562117
--- /dev/null
+++ b/modules/web-control-center/nodejs/controllers/sql-controller.js
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+
+var demoResults = [
+    {
+        id: 256,
+        firstName: 'Ivan',
+        lastName: 'Ivanov'
+    },
+    {
+        id: 384,
+        firstName: 'Sergey',
+        lastName: 'Petrov'
+    },
+    {
+        id: 923,
+        firstName: 'Andrey',
+        lastName: 'Sidorov'
+    }
+];
+
+var demoCaches = [{_id: '1', name: 'Users', mode: 'LOCAL'}, {_id: '2', name: 
'Organizations', mode: 'REPLICATED'}, {_id: '3', name: 'Cities', mode: 
'PARTITIONED'}];
+
+controlCenterModule.controller('sqlController', ['$scope', '$http', '$common', 
function ($scope, $http, $common) {
+    $scope.joinTip = $common.joinTip;
+
+    $scope.modes = [
+        {value: 'PARTITIONED', label: 'PARTITIONED'},
+        {value: 'REPLICATED', label: 'REPLICATED'},
+        {value: 'LOCAL', label: 'LOCAL'}
+    ];
+
+    $http.get('/models/sql.json')
+        .success(function (data) {
+            $scope.screenTip = data.screenTip;
+        })
+        .error(function (errMsg) {
+            $common.showError(errMsg);
+        });
+
+    $scope.query = "select u.id, u.firstName, u.lastName from User u where 
u.name like 'aaaa';";
+
+    $scope.results = demoResults;
+
+    $scope.caches = demoCaches;
+}]);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/controllers/summary-controller.js
----------------------------------------------------------------------
diff --git 
a/modules/web-control-center/nodejs/controllers/summary-controller.js 
b/modules/web-control-center/nodejs/controllers/summary-controller.js
index 2872a58..208166c 100644
--- a/modules/web-control-center/nodejs/controllers/summary-controller.js
+++ b/modules/web-control-center/nodejs/controllers/summary-controller.js
@@ -53,6 +53,12 @@ controlCenterModule.controller('summaryController', 
['$scope', '$http', '$common
         editor.setReadOnly(true);
         editor.setOption("highlightActiveLine", false);
 
+        var renderer = editor.renderer;
+
+        renderer.setHighlightGutterLine(false);
+        renderer.setShowPrintMargin(false);
+        renderer.setOption('fontSize', '14px');
+
         editor.setTheme('ace/theme/chrome');
     };
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/public/stylesheets/style.less
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/public/stylesheets/style.less 
b/modules/web-control-center/nodejs/public/stylesheets/style.less
index f858df5..d180988 100644
--- a/modules/web-control-center/nodejs/public/stylesheets/style.less
+++ b/modules/web-control-center/nodejs/public/stylesheets/style.less
@@ -593,7 +593,7 @@ h1.ignite-logo {
 }
 
 .greedy {
-  min-height: 200px;
+  min-height: 100%;
   height: ~"calc(100vh - 290px)";
 }
 
@@ -1052,7 +1052,7 @@ input.ng-dirty.ng-invalid, button.ng-dirty.ng-invalid {
   margin-top: 10px;
 }
 
-.configBox .nav > li > a {
+.nav-tabs > li > a {
   padding: 5px 5px;
 }
 
@@ -1107,8 +1107,19 @@ a {
 }
 
 .ace_editor, #ace_document {
+  margin:  0.65em 0 0 0;
+
   width: 100%;
   height: 400px;
-}
 
+  .ace_gutter {
+    background: transparent !important;
+    border: 1px #ddd;
+    border-right-style: solid;
+  }
 
+  .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell {
+    padding-left: 0.65em;
+    padding-right: 0.9em;
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/routes/agent.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/routes/agent.js 
b/modules/web-control-center/nodejs/routes/agent.js
index 1d3c199..19379e2 100644
--- a/modules/web-control-center/nodejs/routes/agent.js
+++ b/modules/web-control-center/nodejs/routes/agent.js
@@ -18,32 +18,19 @@
 var router = require('express').Router();
 var agentManager = require('../agents/agent-manager');
 
-
-
 /* GET summary page. */
-router.get('/', function(req, res) {
+router.post('/topology', function(req, res) {
     var c = agentManager.getAgentManager().getOneClient();
 
-    if (!c) {
-        return res.send("Client not found");
-    }
-
-    var html = "";
+    if (!c)
+        return res.status(500).send("Client not found");
 
     var ignite = c.ignite();
 
-    ignite.version().then(function (ver) {
-        html += "version: " + ver + "<br>";
-
-        return ignite.cluster()
-    }).then(function (cluster) {
-        html += "cluster size: " + cluster.length + "<br>";
-
-        for (var i = 0; i < cluster.length; i++) {
-            html += "#" + cluster[i].nodeId();
-        }
-
-        res.send(html);
+    ignite.cluster().then(function (cluster) {
+        res.json(cluster);
+    }, function (err) {
+        res.send(err);
     });
 });
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/tests/routes/agent.js
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/tests/routes/agent.js 
b/modules/web-control-center/nodejs/tests/routes/agent.js
new file mode 100644
index 0000000..6a7fa2c
--- /dev/null
+++ b/modules/web-control-center/nodejs/tests/routes/agent.js
@@ -0,0 +1,94 @@
+/*
+ * 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.
+ */
+
+var request = require('supertest'),
+    should = require('should'),
+    app = require('../../app'),
+    fs = require('fs'),
+    https = require('https'),
+    config = require('../../helpers/configuration-loader.js'),
+    agentManager = require('../../agents/agent-manager');
+
+/**
+ * Create HTTP server.
+ */
+/**
+ * Start agent server.
+ */
+var agentServer = https.createServer({
+    key: fs.readFileSync(config.get('monitor:server:key')),
+    cert: fs.readFileSync(config.get('monitor:server:cert')),
+    passphrase: config.get('monitor:server:keyPassphrase')
+});
+
+agentServer.listen(config.get('monitor:server:port'));
+
+agentManager.createManager(agentServer);
+
+describe('request from agent', function() {
+    var agent = request.agent(app);
+
+    before(function (done) {
+        this.timeout(10000);
+
+        agent
+            .post('/login')
+            .send({email: 'anovi...@gridgain.com', password: 'extHB2aXgb'})
+            .expect(302)
+            .end(function (err) {
+                if (err)
+                    throw err;
+
+                setTimeout(done, 5000);
+            });
+    });
+
+    it('should return topology snapshot', function(done){
+        agent
+            .post('/agent/topology')
+            .send({})
+            .end(function(err, nodes) {
+                if (err) {
+                    console.log(err.response.text);
+
+                    throw err;
+                }
+
+                console.log(nodes);
+
+                done();
+            });
+    });
+
+    //it('should query result', function(done){
+    //    agent
+    //        .post('/agent/query')
+    //        .send({
+    //            username: 'nva',
+    //            password: 'nva.141',
+    //            host: 'localhost',
+    //            port: '5432',
+    //            dbName: 'ggmonitor'
+    //        })
+    //        .end(function(err, res) {
+    //            if (err)
+    //                throw err;
+    //
+    //            done();
+    //        });
+    //});
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/views/configuration/summary.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/configuration/summary.jade 
b/modules/web-control-center/nodejs/views/configuration/summary.jade
index 0b5a298..2fe679f 100644
--- a/modules/web-control-center/nodejs/views/configuration/summary.jade
+++ b/modules/web-control-center/nodejs/views/configuration/summary.jade
@@ -63,33 +63,32 @@ block content
                             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)
-                        .panel-body
-                            .configBox(ng-show='selectedItem' bs-tabs)
-                                div(title='<img src="/images/xml.png" 
width="16px" height="16px"/> XML' bs-pane)
-                                    .configBox(ui-ace='{ onLoad: aceInit, 
mode: "xml" }' ng-model='xmlServer' style='margin: 0.65em 0;')
-                                div(title='<img src="/images/java.png" 
width="16px" height="16px"/> Java' bs-pane)
-                                    .settings-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')
-                                    .configBox(ui-ace='{ onLoad: aceInit, 
mode: "java" }' ng-model='javaServer')
-                                div(title='<img src="/images/docker.png" 
width="16px" height="16px"/> Dockerfile' bs-pane)
-                                    .settings-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')
+                        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')
             div(bs-collapse data-start-collapsed='false')
                 .panel.panel-default
                     form.panel-heading(role='tab' method='post' 
action='summary/download')
@@ -101,17 +100,16 @@ block content
                             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)
-                        .panel-body
-                            div(ng-show='selectedItem')
-                                .settings-row(ng-repeat='field in 
clientFields')
-                                    +form-row-custom(['col-sm-3'], 
['col-sm-3'])
-                                .configBox(bs-tabs)
-                                    div(title='<img src="/images/xml.png" 
width="16px" height="16px"/> XML' bs-pane)
-                                        .configBox(ui-ace='{ onLoad: aceInit, 
mode: "xml" }' ng-model='xmlClient' style='margin: 0.65em 0;')
-                                    div(title='<img src="/images/java.png" 
width="16px" height="16px"/> Java' bs-pane)
-                                        .settings-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')
+                        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/31e401c8/modules/web-control-center/nodejs/views/includes/header.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/includes/header.jade 
b/modules/web-control-center/nodejs/views/includes/header.jade
index ab2d31e..bfd5275 100644
--- a/modules/web-control-center/nodejs/views/includes/header.jade
+++ b/modules/web-control-center/nodejs/views/includes/header.jade
@@ -29,7 +29,7 @@ header.header(id='header')
             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('/sql', '/sql', 'SQL')
                 //+header-item('/deploy', '/deploy', 'Deploy')
             ul.nav.navbar-nav.pull-right
                 li(ng-if='user')

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/views/sql/sql.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/sql/sql.jade 
b/modules/web-control-center/nodejs/views/sql/sql.jade
index 7c4ddaf..9ba3056 100644
--- a/modules/web-control-center/nodejs/views/sql/sql.jade
+++ b/modules/web-control-center/nodejs/views/sql/sql.jade
@@ -1,4 +1,3 @@
-
 //-
     Licensed to the Apache Software Foundation (ASF) under one or more
     contributor license agreements.  See the NOTICE file distributed with
@@ -15,43 +14,57 @@
 extends ../templates/layout
 
 append scripts
-    script(src='/cache-viewer-controller.js')
-    script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.1.9/ace.js')
+    script(src='/sql-controller.js')
 
-append css
-    link(rel='stylesheet', href='/stylesheets/sql-console.css')
+    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
-    .docs-header
-        h1 Connect to Ignite and execute SQL queries
-        hr
-    div(ng-controller='cacheViewerController')
-        h4 Sql console
-
-        table#queryTable(cellpadding=0, cellspacing=0, ng-init='queryType = 
"sql"')
-            tr
-                td
-                    label(for='queryTypeSelect') Query&nbsp;type:
-                    select#queryTypeSelect(ng-model='queryType')
-                        option(value='sql') Sql query
-                        option(value='id') Get by ID
-                        option(value='scane') Scan cache
-
-                td.queryTd
-                    div(ng-show='queryType == "sql"')
-                        #querySql
-
-                td
-                    | Default&nbsp;cache:
-                    div#defCacheSelect
-                        div(ng-repeat='c in caches', ng-class='{def: defCache 
== c}', ng-click='defCache = c') {{c}}
-
-        #resultPanel
-            strong Results
-
-            #queryResult
-                div(ng-repeat='r in results')
-                    .resultRow
-                        | {{r.id}} -> {{r.s}}
-                        span.props  {{r.fields}}
+    .row
+        .col-sm-12
+            .docs-content
+                .docs-header
+                    h1 Connect to Ignite and execute SQL queries
+                    hr
+                .docs-body(ng-controller='sqlController')
+                    .block-callout
+                        p(ng-bind-html='joinTip(screenTip)')
+                    .tabs-below(bs-tabs bs-active-pane='tabs.activeTab')
+                        div(title='Query #1' bs-pane)
+                            .row
+                                .col-sm-9
+                                    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='query')
+                                .col-sm-3
+                                    .links(ng-hide='caches.length == 0' 
style='margin-top: 0.65em')
+                                        lable.labelHeader Caches:
+                                        table(st-table='caches')
+                                            tbody
+                                                tr(ng-repeat='row in caches 
track by row._id')
+                                                    
td.col-sm-6(ng-class='{active: row._id == selectedItem._id}')
+                                                        
a(ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}, {{row.mode | 
displayValue:modes:'Cache mode not set'}}
+                        div(title='Query #2' bs-pane)
+                            .row
+                    .settings-row
+                        button.btn.btn-primary(ng-click='') Explain
+                        button.btn.btn-primary(ng-click='') Execute
+                        button.btn.btn-primary(ng-click='' disabled) Scan
+                    //#resultPanel
+                    //    strong Results
+                    //
+                    //    #queryResult
+                    //        div(ng-repeat='r in results')
+                    //            .resultRow
+                    //                | {{r.id}} -> {{r.s}}
+                    //                span.props  {{r.fields}}
 
+                    div(ng-hide='results.length == 0' style='margin-top: 
0.65em')
+                        lable.labelHeader Results:
+                        table.table-bordered(st-table='results')
+                            tbody
+                                tr(ng-repeat='row in results')
+                                    td
+                                        a(ng-click='selectItem(row)') {{$index 
+ 1}}) {{row.name}}, {{row.mode | displayValue:modes:'Cache mode not set'}}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/31e401c8/modules/web-control-center/nodejs/views/templates/layout.jade
----------------------------------------------------------------------
diff --git a/modules/web-control-center/nodejs/views/templates/layout.jade 
b/modules/web-control-center/nodejs/views/templates/layout.jade
index a4191ae..8fbcd7e 100644
--- a/modules/web-control-center/nodejs/views/templates/layout.jade
+++ b/modules/web-control-center/nodejs/views/templates/layout.jade
@@ -49,7 +49,7 @@ html(ng-app='ignite-web-control-center', ng-init='user = 
#{JSON.stringify(user)}
             script(src='/common-module.js')
             script(src='/data-structures.js')
 
-    body.theme-line.body-overlap
+    body.theme-line.body-overlap.greedy
         .wrapper
             include ../includes/header
 

Reply via email to