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/09/07 13:34:30 UTC
ignite git commit: IGNITE-843 Load metadata minor fixes.
Repository: ignite
Updated Branches:
refs/heads/ignite-843 9882bc57c -> 0a978129e
IGNITE-843 Load metadata minor fixes.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0a978129
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0a978129
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0a978129
Branch: refs/heads/ignite-843
Commit: 0a978129eac8319ecaad6e009a05937a4c9b6128
Parents: 9882bc5
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Sep 7 18:34:31 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Sep 7 18:34:31 2015 +0700
----------------------------------------------------------------------
.../main/js/controllers/metadata-controller.js | 199 +++++++++++--------
.../control-center-web/src/main/js/package.json | 2 +-
.../js/views/configuration/metadata-load.jade | 8 +-
3 files changed, 122 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0a978129/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 f0173c9..5a9c3f7 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
@@ -282,7 +282,7 @@ controlCenterModule.controller('metadataController', [
$scope.loadMeta.action = 'connect';
$scope.loadMeta.tables = [];
- loadMetaModal.show();
+ $common.confirmUnsavedChanges($confirm, $scope.ui.inputForm, loadMetaModal.show);
$focus('jdbcUrl');
});
@@ -364,7 +364,7 @@ controlCenterModule.controller('metadataController', [
return javaName.charAt(0).toLocaleLowerCase() + javaName.slice(1);
}
- $scope.packageName = 'org.apache.ignite';
+ $scope.ui.packageName = 'org.apache.ignite';
function _saveMetadata() {
$scope.preset.space = $scope.spaces[0];
@@ -374,104 +374,136 @@ controlCenterModule.controller('metadataController', [
$common.showError(errMsg);
});
- loadMetaModal.hide();
+ var tables = [];
+ var isIntersections = false;
_.forEach($scope.loadMeta.tables, function (table) {
- if (table.use) {
- var qryFields = [];
- var ascFields = [];
- var descFields = [];
- var groups = [];
- var keyFields = [];
- var valFields = [];
+ if (table.use)
+ if (tables.indexOf(table.tbl) >= 0)
+ isIntersections = true;
+ else
+ tables.push(table.tbl)
+ });
- var tableName = table.tbl;
+ tables = [];
- var valType = $scope.packageName + '.' + toJavaClassName(tableName);
+ function saveImported() {
+ loadMetaModal.hide();
- function queryField(name, jdbcType) {
- return {name: toJavaName(name), className: jdbcType.javaType}
- }
+ _.forEach($scope.loadMeta.tables, function (table) {
+ if (table.use) {
+ if (tables.indexOf(table.tbl) == -1) {
+ var qryFields = [];
+ var ascFields = [];
+ var descFields = [];
+ var groups = [];
+ var keyFields = [];
+ var valFields = [];
- function dbField(name, jdbcType) {
- return {databaseName: name, databaseType: jdbcType.dbName,
- javaName: toJavaName(name), javaType: jdbcType.javaType}
- }
+ var tableName = table.tbl;
- function colType(colName) {
- var col = _.find(table.cols, function(col) {
- return col.name == colName;
- });
+ var valType = $scope.ui.packageName + '.' + toJavaClassName(tableName);
- if (col)
- return $common.findJdbcType(col.type).javaType;
+ function queryField(name, jdbcType) {
+ return {name: toJavaName(name), className: jdbcType.javaType}
+ }
- return 'Unknown';
- }
+ function dbField(name, jdbcType) {
+ return {databaseName: name, databaseType: jdbcType.dbName,
+ javaName: toJavaName(name), javaType: jdbcType.javaType}
+ }
+
+ function colType(colName) {
+ var col = _.find(table.cols, function (col) {
+ return col.name == colName;
+ });
- _.forEach(table.cols, function(col) {
- var colName = col.name;
- var jdbcType = $common.findJdbcType(col.type);
+ if (col)
+ return $common.findJdbcType(col.type).javaType;
- qryFields.push(queryField(colName, jdbcType));
+ return 'Unknown';
+ }
- if (_.includes(table.ascCols, colName))
- ascFields.push(queryField(colName, jdbcType));
+ _.forEach(table.cols, function (col) {
+ var colName = col.name;
+ var jdbcType = $common.findJdbcType(col.type);
- if (_.includes(table.descCols, colName))
- descFields.push(queryField(colName, jdbcType));
+ qryFields.push(queryField(colName, jdbcType));
- if (col.key)
- keyFields.push(dbField(colName, jdbcType));
- else
- valFields.push(dbField(colName, jdbcType));
- });
+ if (_.includes(table.ascCols, colName))
+ ascFields.push(queryField(colName, jdbcType));
- var idxs = table.idxs;
+ if (_.includes(table.descCols, colName))
+ descFields.push(queryField(colName, jdbcType));
- if (table.idxs) {
- var indexes = Object.keys(idxs);
+ if (col.key)
+ keyFields.push(dbField(colName, jdbcType));
+ else
+ valFields.push(dbField(colName, jdbcType));
+ });
- _.forEach(indexes, function (indexName) {
- var index = idxs[indexName];
+ var idxs = table.idxs;
- var fields = Object.keys(index);
+ if (table.idxs) {
+ var indexes = Object.keys(idxs);
- if (fields.length > 1)
- groups.push(
- {name: indexName, fields: _.map(fields, function (fieldName) {
- return {
- name: fieldName,
- className: colType(fieldName),
- direction: index[fieldName]
- };
- })});
- });
- }
+ _.forEach(indexes, function (indexName) {
+ var index = idxs[indexName];
- var metaName = toProperCase(tableName);
+ var fields = Object.keys(index);
- var meta = _.find($scope.metadatas, function (meta) {
- return meta.name == metaName;
- });
+ if (fields.length > 1)
+ groups.push(
+ {name: indexName, fields: _.map(fields, function (fieldName) {
+ return {
+ name: fieldName,
+ className: colType(fieldName),
+ direction: index[fieldName]
+ };
+ })});
+ });
+ }
- if (!meta)
- meta = {space: $scope.spaces[0], name: metaName};
-
- meta.databaseSchema = table.schema;
- meta.databaseTable = tableName;
- meta.keyType = valType + 'Key';
- meta.valueType = valType;
- meta.queryFields = qryFields;
- meta.ascendingFields = ascFields;
- meta.descendingFields = descFields;
- meta.groups = groups;
- meta.keyFields = keyFields;
- meta.valueFields = valFields;
-
- save(meta);
- }
- });
+ var metaName = toProperCase(tableName);
+
+ var meta = _.find($scope.metadatas, function (meta) {
+ return meta.name == metaName;
+ });
+
+ if (!meta)
+ meta = {space: $scope.spaces[0], name: metaName};
+
+ meta.databaseSchema = table.schema;
+ meta.databaseTable = tableName;
+ meta.keyType = valType + 'Key';
+ meta.valueType = valType;
+ meta.queryFields = qryFields;
+ meta.ascendingFields = ascFields;
+ meta.descendingFields = descFields;
+ meta.groups = groups;
+ meta.keyFields = keyFields;
+ meta.valueFields = valFields;
+
+ save(meta, true);
+
+ tables.push(table.tbl)
+ }
+ }
+ });
+
+ $common.showInfo('Cache type metadata loaded from database.');
+ }
+
+ if (isIntersections)
+ $confirm.show('<span>' +
+ 'Loaded metadata has intersections in schemas by table names.<br/>' +
+ 'Will be loaded only first table for every name.<br/><br/>' +
+ 'Continue to load metadata with skipping of repeat table names?' +
+ '</span>').then(function () {
+ saveImported();
+ });
+ else
+ saveImported();
}
$scope.loadMetadataNext = function () {
@@ -483,6 +515,10 @@ controlCenterModule.controller('metadataController', [
_saveMetadata();
};
+ $scope.nextAvailable = function () {
+ return $scope.loadMeta.action != 'tables' || $('#metadataTableData').find(':checked').length > 0;
+ };
+
$scope.loadMetadataPrev = function () {
if ($scope.loadMeta.action == 'tables') {
$scope.loadMeta.action = 'schemas';
@@ -674,7 +710,7 @@ controlCenterModule.controller('metadataController', [
}
// Save cache type metadata into database.
- function save(item) {
+ function save(item, quiet) {
var qry = queryConfigured(item);
var str = storeConfigured(item);
@@ -689,8 +725,6 @@ controlCenterModule.controller('metadataController', [
.success(function (_id) {
$common.markPristine($scope.ui.inputForm, 'metadataBackupItemChanged');
- $common.showInfo('Metadata "' + item.name + '" saved.');
-
var idx = _.findIndex($scope.metadatas, function (metadata) {
return metadata._id == _id;
});
@@ -705,7 +739,8 @@ controlCenterModule.controller('metadataController', [
$scope.selectItem(item);
- $common.showInfo('Cache type metadata"' + item.name + '" saved.');
+ if (!quiet)
+ $common.showInfo('Cache type metadata"' + item.name + '" saved.');
})
.error(function (errMsg) {
$common.showError(errMsg);
http://git-wip-us.apache.org/repos/asf/ignite/blob/0a978129/modules/control-center-web/src/main/js/package.json
----------------------------------------------------------------------
diff --git a/modules/control-center-web/src/main/js/package.json b/modules/control-center-web/src/main/js/package.json
index 2efdf65..501ef55 100644
--- a/modules/control-center-web/src/main/js/package.json
+++ b/modules/control-center-web/src/main/js/package.json
@@ -46,7 +46,7 @@
"devDependencies": {
"morgan": "~1.6.1",
"supertest": "^1.1.0",
- "mocha": "~2.3.0",
+ "mocha": "~2.3.1",
"should": "~7.1.0"
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0a978129/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 abac308..756fdee 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
@@ -42,7 +42,7 @@ include ../includes/controls
tr
td(colspan='2')
.metadata-scrollable(style='height: 184px')
- table
+ table(id='metadataSchemaData')
tbody
tr(ng-repeat='schema in displayedSchemas')
td(width='50px')
@@ -53,7 +53,7 @@ include ../includes/controls
.settings-row
label.col-sm-2.required Package:
.col-sm-10
- input.form-control(type="text" ng-model='packageName')
+ input.form-control(type="text" ng-model='ui.packageName')
table.table.table-condensed.table-stripped.metadata(st-table='displayedTables' st-safe-src='loadMeta.tables')
thead
tr
@@ -70,7 +70,7 @@ include ../includes/controls
tr
td(colspan='3')
.metadata-scrollable(style='height: 146px')
- table
+ table(id='metadataTableData')
tbody
tr(ng-repeat='table in displayedTables')
td(width='50px')
@@ -81,4 +81,4 @@ include ../includes/controls
label {{::table.tbl}}
.modal-footer
button.btn.btn-primary(ng-show='loadMeta.action != "connect"' ng-click='loadMetadataPrev()') Prev
- button.btn.btn-primary(ng-click='loadMetadataNext()') {{loadMeta.button}}
+ button.btn.btn-primary(ng-click='loadMetadataNext()' ng-disabled='!nextAvailable()') {{loadMeta.button}}