Repository: incubator-ignite Updated Branches: refs/heads/ignite-843 e77e24567 -> 8a4334838
IGNITE-843 WIP generate metadata from db tables meta. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8a433483 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8a433483 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8a433483 Branch: refs/heads/ignite-843 Commit: 8a43348381d577d3dc2a2ef278ffbcc49936e003 Parents: e77e245 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Thu Aug 20 00:37:45 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Thu Aug 20 00:37:45 2015 +0700 ---------------------------------------------------------------------- .../main/js/controllers/metadata-controller.js | 109 ++++++++++++++++--- .../js/views/configuration/metadata-load.jade | 2 +- 2 files changed, 96 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a433483/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 3bedebe..2d9b251 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 @@ -47,6 +47,53 @@ controlCenterModule.controller('metadataController', [ $scope.hidePopover = $common.hidePopover; var showPopoverMessage = $common.showPopoverMessage; + var JDBC_TYPES = [ + {dbName: 'BIT', dbType: -7, javaType: 'Boolean'}, + {dbName: 'TINYINT', dbType: -6, javaType: 'Byte'}, + {dbName: 'SMALLINT', dbType: 5, javaType: 'Short'}, + {dbName: 'INTEGER', dbType: 4, javaType: 'Integer'}, + {dbName: 'BIGINT', dbType: -5, javaType: 'Long'}, + {dbName: 'FLOAT', dbType: 6, javaType: 'Float'}, + {dbName: 'REAL', dbType: 7, javaType: 'Double'}, + {dbName: 'DOUBLE', dbType: 8, javaType: 'Double'}, + {dbName: 'NUMERIC', dbType: 2, javaType: 'BigDecimal'}, + {dbName: 'DECIMAL', dbType: 3, javaType: 'BigDecimal'}, + {dbName: 'CHAR', dbType: 1, javaType: 'String'}, + {dbName: 'VARCHAR', dbType: 12, javaType: 'String'}, + {dbName: 'LONGVARCHAR', dbType: -1, javaType: 'String'}, + {dbName: 'DATE', dbType: 91, javaType: 'Date'}, + {dbName: 'TIME', dbType: 92, javaType: 'Time'}, + {dbName: 'TIMESTAMP', dbType: 93, javaType: 'Timestamp'}, + {dbName: 'BINARY', dbType: -2, javaType: 'Object'}, + {dbName: 'VARBINARY', dbType: -3, javaType: 'Object'}, + {dbName: 'LONGVARBINARY', dbType: -4, javaType: 'Object'}, + {dbName: 'NULL', dbType: 0, javaType: 'Object'}, + {dbName: 'OTHER', dbType: 1111, javaType: 'Object'}, + {dbName: 'JAVA_OBJECT', dbType: 2000, javaType: 'Object'}, + {dbName: 'DISTINCT', dbType: 2001, javaType: 'Object'}, + {dbName: 'STRUCT', dbType: 2002, javaType: 'Object'}, + {dbName: 'ARRAY', dbType: 2003, javaType: 'Object'}, + {dbName: 'BLOB', dbType: 2004, javaType: 'Object'}, + {dbName: 'CLOB', dbType: 2005, javaType: 'String'}, + {dbName: 'REF', dbType: 2006, javaType: 'Object'}, + {dbName: 'DATALINK', dbType: 70, javaType: 'Object'}, + {dbName: 'BOOLEAN', dbType: 16, javaType: 'Boolean'}, + {dbName: 'ROWID', dbType: -8, javaType: 'Object'}, + {dbName: 'NCHAR', dbType: -15, javaType: 'String'}, + {dbName: 'NVARCHAR', dbType: -9, javaType: 'String'}, + {dbName: 'LONGNVARCHAR', dbType: -16, javaType: 'String'}, + {dbName: 'NCLOB', dbType: 2011, javaType: 'String'}, + {dbName: 'SQLXML', dbType: 2009, javaType: 'Object'} + ]; + + function _findJdbcType(jdbcType) { + var res = _.find(JDBC_TYPES, function (item) { + return item.code == jdbcCode; + }); + + return res ? res : {dbName: 'Unknown', javaType: 'Unknown'} + } + var presets = [ { db: 'oracle', @@ -239,9 +286,7 @@ controlCenterModule.controller('metadataController', [ $http.post('/agent/metadata', $scope.preset) .success(function (tables) { - $scope.loadMeta.tables = _.map(tables, function (tbl) { - return {schemaName: tbl.schema, tableName: tbl.tbl}; - }); + $scope.loadMeta.tables = tables; $scope.loadMeta.action = 'tables'; }) .error(function (errMsg) { @@ -249,21 +294,57 @@ controlCenterModule.controller('metadataController', [ }); }; + function toProperCase(name) { + var properName = name.toLocaleLowerCase(); + + return properName.charAt(0).toLocaleUpperCase() + properName.slice(1) + } + + function toJavaClassName(name) { + var len = name.length; + + var buf = ''; + + var capitalizeNext = true; + + for (var i = 0; i < len; i++) { + var ch = name.charAt(i); + + if (ch == ' ' || ch == '_') + capitalizeNext = true; + else if (capitalizeNext) { + buf += ch.toLocaleUpperCase(); + + capitalizeNext = false; + } + else + buf += ch.toLocaleLowerCase(); + } + + return buf; + } + + function toJavaName(dbName) { + return dbName; + } + $scope.saveSelectedMetadata = function () { loadMetaModal.hide(); _.forEach($scope.loadMeta.tables, function (table) { - var newItem = { - name: table.tableName, - databaseSchema: table.schemaName, - databaseTable: table.tableName, - keyType: table.tableName + 'Key', - valueType: table.tableName, - keyFields: [], - valueFields: [] - }; - - save(newItem); + if (table.use) { + var newItem = { + name: toProperCase(table.tbl), + databaseSchema: table.schema, + databaseTable: table.tbl, + keyType: table.tableName + 'Key', + valueType: table.tableName, + keyFields: [], + valueFields: [] + }; + + save(newItem); + } }); }; http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8a433483/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 71ad06a..21cf3a1 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 @@ -35,7 +35,7 @@ include ../includes/controls table.table.table-condensed.table-stripped.metadata(st-table='displayedTables' st-safe-src='loadMeta.tables') thead tr - th.header(colspan='5') + th.header(colspan='2') input.form-control(type='text' st-search='' placeholder='Filter tables...') tr th