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/08/11 18:29:28 UTC
incubator-ignite git commit: IGNITE-843 WIP on load metadata.
Repository: incubator-ignite
Updated Branches:
refs/heads/ignite-843 5b1643df9 -> d119b714b
IGNITE-843 WIP on load metadata.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/d119b714
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/d119b714
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/d119b714
Branch: refs/heads/ignite-843
Commit: d119b714bbfd90f6548d7d62147574e233271a31
Parents: 5b1643d
Author: AKuznetsov <ak...@gridgain.com>
Authored: Tue Aug 11 23:29:21 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Tue Aug 11 23:29:21 2015 +0700
----------------------------------------------------------------------
.../main/js/controllers/metadata-controller.js | 173 ++++---------------
.../src/main/js/routes/agent.js | 30 +++-
.../js/views/configuration/metadata-load.jade | 36 +++-
.../main/js/views/configuration/metadata.jade | 2 +-
.../src/main/js/views/templates/layout.jade | 2 +-
5 files changed, 87 insertions(+), 156 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d119b714/modules/control-center-web/src/main/js/controllers/metadata-controller.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/controllers/metadata-controller.js b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
index bd27777..1e146ef 100644
--- a/modules/control-center-web/src/main/js/controllers/metadata-controller.js
+++ b/modules/control-center-web/src/main/js/controllers/metadata-controller.js
@@ -109,143 +109,6 @@ controlCenterModule.controller('metadataController', [
{value: true, label: 'DESC'}
];
- $scope.tables = [
- {
- schemaName: 'Schema1',
- use: true,
- tableName: 'Table1',
- keyClass: 'KeyClass1',
- valueClass: 'ValueClass1',
- fields: [
- {
- use: true,
- key: true,
- ak: true,
- databaseName: 'name1',
- databaseType: 'dbType1',
- javaName: 'javaName1',
- javaType: 'javaType1'
- },
- {
- use: true,
- key: false,
- ak: false,
- databaseName: 'name2',
- databaseType: 'dbType2',
- javaName: 'javaName2',
- javaType: 'javaType2'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name3',
- databaseType: 'dbType3',
- javaName: 'javaName3',
- javaType: 'javaType3'
- }
- ]
- },
- {
- schemaName: 'Schema with very long name',
- use: false,
- tableName: 'Table2',
- keyClass: 'KeyClass2',
- valueClass: 'ValueClass2',
- fields: [
- {
- use: true,
- key: true,
- ak: true,
- databaseName: 'name4',
- databaseType: 'dbType4',
- javaName: 'javaName4',
- javaType: 'javaType4'
- },
- {
- use: true,
- key: false,
- ak: false,
- databaseName: 'name5',
- databaseType: 'dbType5',
- javaName: 'javaName5',
- javaType: 'javaType5'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name6',
- databaseType: 'dbType6',
- javaName: 'javaName6',
- javaType: 'javaType6'
- }
- ]
- },
- {
- schemaName: 'Schema3',
- use: false,
- tableName: 'Table3',
- keyClass: 'KeyClass3',
- valueClass: 'ValueClass3',
- fields: [
- {
- use: true,
- key: true,
- ak: true,
- databaseName: 'name7',
- databaseType: 'dbType7',
- javaName: 'javaName7',
- javaType: 'javaType7'
- },
- {
- use: true,
- key: false,
- ak: false,
- databaseName: 'name8',
- databaseType: 'dbType8',
- javaName: 'javaName8',
- javaType: 'javaType8'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name9',
- databaseType: 'dbType9',
- javaName: 'javaName9',
- javaType: 'javaType9'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name10',
- databaseType: 'dbType10',
- javaName: 'javaName10',
- javaType: 'javaType10'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name11',
- databaseType: 'dbType11',
- javaName: 'javaName11',
- javaType: 'javaType11'
- },
- {
- use: false,
- key: false,
- ak: false,
- databaseName: 'name12',
- databaseType: 'dbType12',
- javaName: 'javaName12',
- javaType: 'javaType12'
- }
- ]
- }];
-
$scope.panels = {activePanels: [0, 1]};
$scope.metadatas = [];
@@ -282,11 +145,27 @@ controlCenterModule.controller('metadataController', [
$scope.backupItem = bak;
}
+ $scope.loadMeta = {action: 'connect'};
+ $scope.loadMeta.tables = [];
+
+ $scope.loadMeta.selectAll = function() {
+ var allSelected = $scope.loadMeta.allSelected;
+
+ _.forEach($scope.loadMeta.tables, function (table) {
+ table.use = allSelected;
+ });
+ };
+
+ $scope.loadMeta.select = function () {
+ $scope.loadMeta.allSelected = _.every($scope.loadMeta.tables, 'use', true);
+ };
+
+
// Pre-fetch modal dialogs.
var loadMetaModal = $modal({scope: $scope, templateUrl: 'metadata/metadata-load', show: false});
// Show load metadata modal.
- $scope.loadFromDb = function () {
+ $scope.showLoadMetadataModal = function () {
$http.post('/agent/drivers')
.success(function (drivers) {
if (drivers && drivers.length > 0) {
@@ -297,6 +176,9 @@ controlCenterModule.controller('metadataController', [
$scope.preset.drvJar = drivers[0];
loadMetaModal.$promise.then(function () {
+ $scope.loadMeta.action = 'connect';
+ $scope.loadMeta.tables = [];
+
loadMetaModal.show();
$focus('db');
@@ -310,10 +192,21 @@ controlCenterModule.controller('metadataController', [
});
};
- $scope.saveMetadataLoadedFromDb = function (preset) {
+ $scope.loadMetadataFromDb = function () {
+ $http.post('/agent/metadata')
+ .success(function (tables) {
+ $scope.loadMeta.tables = tables;
+ $scope.loadMeta.action = 'tables';
+ })
+ .error(function (errMsg) {
+ $common.showError(errMsg);
+ });
+ };
+
+ $scope.saveSelectedMetadata = function (preset) {
loadMetaModal.hide();
- $common.showError("Load metadata from DB not ready yet!");
+ $common.showError("Saving selected metadatanot ready yet!");
};
// When landing on the page, get metadatas and show them.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d119b714/modules/control-center-web/src/main/js/routes/agent.js
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/routes/agent.js b/modules/control-center-web/src/main/js/routes/agent.js
index 74462b7..ddc0280 100644
--- a/modules/control-center-web/src/main/js/routes/agent.js
+++ b/modules/control-center-web/src/main/js/routes/agent.js
@@ -22,7 +22,7 @@ var apacheIgnite = require('apache-ignite');
var SqlFieldsQuery = apacheIgnite.SqlFieldsQuery;
/* Get grid topology. */
-router.post('/topology', function(req, res) {
+router.post('/topology', function (req, res) {
var client = agentManager.getAgentManager().findClient(req.currentUserId());
if (!client)
@@ -30,11 +30,11 @@ router.post('/topology', function(req, res) {
client.ignite().cluster().then(function (clusters) {
res.json(clusters.map(function (cluster) {
- var caches = Object.keys(cluster._caches).map(function(key) {
- return {"name" : key, "mode" : cluster._caches[key] }
+ var caches = Object.keys(cluster._caches).map(function (key) {
+ return {"name": key, "mode": cluster._caches[key]}
});
- return { nodeId: cluster._nodeId, caches: caches };
+ return {nodeId: cluster._nodeId, caches: caches};
}));
}, function (err) {
res.status(500).send(err);
@@ -42,7 +42,7 @@ router.post('/topology', function(req, res) {
});
/* Execute query. */
-router.post('/query', function(req, res) {
+router.post('/query', function (req, res) {
var client = agentManager.getAgentManager().findClient(req.currentUserId());
if (!client)
@@ -63,7 +63,7 @@ router.post('/query', function(req, res) {
});
/* Get next query page. */
-router.post('/next_page', function(req, res) {
+router.post('/next_page', function (req, res) {
var client = agentManager.getAgentManager().findClient(req.currentUserId());
if (!client)
@@ -82,7 +82,7 @@ router.post('/next_page', function(req, res) {
});
/* Get JDBC drivers list. */
-router.post('/drivers', function(req, res) {
+router.post('/drivers', function (req, res) {
res.json(['ojdbc6.jar', 'db2jcc4.jar', 'h2.jar']);
//var client = agentManager.getAgentManager().findClient(req.currentUserId());
@@ -93,8 +93,20 @@ router.post('/drivers', function(req, res) {
});
/** Get database metadata. */
-router.post('/metadata', function(req, res) {
- res.json(['TODO']);
+router.post('/metadata', function (req, res) {
+ var tables = [];
+
+ for (var i = 1; i < 17; i++) {
+ tables.push({
+ schemaName: 'Schema' + ((i / 5) + 1),
+ use: true,
+ tableName: 'Table' + i,
+ keyClass: 'KeyClass' + i,
+ valueClass: 'ValueClass' + i
+ })
+ }
+
+ res.json(tables);
//var client = agentManager.getAgentManager().findClient(req.currentUserId());
//
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d119b714/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade b/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade
index 78e5b2b..9eaeba6 100644
--- a/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/metadata-load.jade
@@ -22,9 +22,35 @@ include ../includes/controls
#errors-container.modal-header.header
button.close(type='button' ng-click='$hide()' aria-hidden='true') ×
h4.modal-title Load metadata from database
- form.form-horizontal(name='loadForm' novalidate)
- .modal-body
- .settings-row(ng-repeat='field in metadataDb')
- +form-row-custom(['col-xs-4 col-sm-3 col-md-3'], ['col-xs-8 col-sm-9 col-md-9'], 'preset')
+ div(ng-show='loadMeta.action == "connect"')
+ form.form-horizontal(name='loadForm' novalidate)
+ .modal-body
+ .settings-row(ng-repeat='field in metadataDb')
+ +form-row-custom(['col-xs-4 col-sm-3 col-md-3'], ['col-xs-8 col-sm-9 col-md-9'], 'preset')
+ div(ng-show='loadMeta.action == "tables"' style='margin: 15px')
+ table.table.table-condensed.table-stripped.admin(st-table='displayedTables' st-safe-src='loadMeta.tables')
+ thead
+ tr
+ th.header(colspan='5')
+ .col-sm-5
+ input.form-control(type='text' st-search='' placeholder='Filter tables...')
+ tr
+ th
+ input(type='checkbox' ng-model='loadMeta.allSelected' ng-change='loadMeta.selectAll()')
+ th
+ label Tables
+ tbody
+ tr(ng-repeat='table in displayedTables')
+ td
+ input(type='checkbox' ng-model='table.use' ng-change='loadMeta.select()')
+ td
+ label {{::table.schemaName}} / {{::table.tableName}}
+ tfoot
+ tr
+ td.text-right(colspan='2')
+ div(st-pagination st-items-by-page='10' st-displayed-pages='5')
+
.modal-footer
- button.btn.btn-primary(ng-disabled='loadForm.$invalid' ng-click='saveMetadataLoadedFromDb()') Load metadata
+ button.btn.btn-primary(ng-show='loadMeta.action == "connect"' ng-disabled='loadForm.$invalid' ng-click='loadMetadataFromDb()') Load metadata
+ button.btn.btn-primary(ng-show='loadMeta.action == "tables"' ng-click='loadMeta.action = "connect"') Prev
+ button.btn.btn-primary(ng-show='loadMeta.action == "tables"' ng-click='saveSelectedMetadata()') Save
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d119b714/modules/control-center-web/src/main/js/views/configuration/metadata.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/configuration/metadata.jade b/modules/control-center-web/src/main/js/views/configuration/metadata.jade
index 738083f..a5ad39a 100644
--- a/modules/control-center-web/src/main/js/views/configuration/metadata.jade
+++ b/modules/control-center-web/src/main/js/views/configuration/metadata.jade
@@ -37,7 +37,7 @@ block content
a(event-focus='defaultFocusId' ng-click='selectItem(row)') {{$index + 1}}) {{row.name}}
.padding-top-dflt
button.btn.btn-primary(ng-click='createItem()' event-focus='defaultFocusId') Add metadata
- button.btn.btn-primary(ng-click='loadFromDb()') Load from database
+ button.btn.btn-primary(ng-click='showLoadMetadataModal()') Load from database
hr
form.form-horizontal(name='inputForm' ng-if='backupItem' novalidate)
.panel-group(bs-collapse ng-model='panels.activePanels' data-allow-multiple='true' ng-click='triggerDigest = true')
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d119b714/modules/control-center-web/src/main/js/views/templates/layout.jade
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/views/templates/layout.jade b/modules/control-center-web/src/main/js/views/templates/layout.jade
index 91062ba..6a624b8 100644
--- a/modules/control-center-web/src/main/js/views/templates/layout.jade
+++ b/modules/control-center-web/src/main/js/views/templates/layout.jade
@@ -42,7 +42,7 @@ html(ng-app='ignite-web-control-center' ng-init='user = #{JSON.stringify(user)};
script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.1/angular-strap.js')
script(src='//cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.1/angular-strap.tpl.min.js')
- script(src='//cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.1.1/smart-table.js')
+ script(src='//cdnjs.cloudflare.com/ajax/libs/angular-smart-table/2.1.2/smart-table.js')
script(src='//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js')
script(src='//angular-ui.github.io/ui-ace/dist/ui-ace.min.js')