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') &times;
                 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')