# 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') - | 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 - +hard-link('https://ignite.incubator.apache.org/download.html#docker', 'Apache Ignite docker image') - | . For more information about using Ignite with Docker please read - +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') + | 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 + +hard-link('https://ignite.incubator.apache.org/download.html#docker', 'Apache Ignite docker image') + | . For more information about using Ignite with Docker please read + +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 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 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