Repository: ignite Updated Branches: refs/heads/ignite-843 1e0010447 -> 963fa3de3
ignite-843 Fixed chart axis column selection. Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/963fa3de Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/963fa3de Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/963fa3de Branch: refs/heads/ignite-843 Commit: 963fa3de3611a7f6933e17d6cfea95a325daeb36 Parents: 1e00104 Author: Andrey <[email protected]> Authored: Thu Oct 8 16:42:34 2015 +0700 Committer: Andrey <[email protected]> Committed: Thu Oct 8 16:42:34 2015 +0700 ---------------------------------------------------------------------- .../src/main/js/controllers/sql-controller.js | 60 +++++++++++++------- .../src/main/js/views/sql/sql.jade | 8 ++- 2 files changed, 45 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/963fa3de/modules/control-center-web/src/main/js/controllers/sql-controller.js ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/controllers/sql-controller.js b/modules/control-center-web/src/main/js/controllers/sql-controller.js index 5f724d7..b37d98b 100644 --- a/modules/control-center-web/src/main/js/controllers/sql-controller.js +++ b/modules/control-center-web/src/main/js/controllers/sql-controller.js @@ -50,7 +50,7 @@ consoleModule.controller('sqlController', } }; - var TIME_LINE = 'TIME_LINE'; + var TIME_LINE = {value: -1, type: 'java.sql.Date', label: 'TIME_LINE'}; var chartHistory = []; @@ -68,14 +68,8 @@ consoleModule.controller('sqlController', _chartApplySettings(paragraph, true); }; - function _chartAcceptableColumn(cols, newCol) { - return _.findIndex(cols, function (col) { - return col.label == newCol.label; - }) < 0; - } - $scope.chartAcceptKeyColumn = function(paragraph, item) { - var accepted = _chartAcceptableColumn(paragraph.chartKeyCols, item); + var accepted = !_.includes(paragraph.chartKeyCols, item); if (accepted) { paragraph.chartKeyCols = [item]; @@ -87,7 +81,7 @@ consoleModule.controller('sqlController', }; $scope.chartAcceptValColumn = function(paragraph, item) { - var accepted = _chartAcceptableColumn(paragraph.chartValCols, item) && item.label != TIME_LINE; + var accepted = !_.includes(paragraph.chartValCols, item) && item != TIME_LINE && _numberType(item.type); if (accepted) { paragraph.chartValCols.push(item); @@ -130,7 +124,7 @@ consoleModule.controller('sqlController', }; paragraph.chartTimeLineEnabled = function () { - return !$common.isEmptyArray(this.chartKeyCols) && this.chartKeyCols[0].label == TIME_LINE; + return !$common.isEmptyArray(this.chartKeyCols) && this.chartKeyCols[0] == TIME_LINE; }; paragraph.timeLineSupported = function () { @@ -364,12 +358,24 @@ consoleModule.controller('sqlController', return paragraph.disabledSystemColumns || paragraph.systemColumns ? _allColumn : _hideColumn; }; + var _notObjectType = function(cls) { + return $common.isJavaBuildInClass(cls); + }; + + var _numberClasses = ['java.math.BigDecimal', 'java.lang.Byte', 'java.lang.Double', + 'java.lang.Float', 'java.lang.Integer', 'java.lang.Long', 'java.lang.Short']; + + var _numberType = function(cls) { + return _.contains(_numberClasses, cls); + }; + var _rebuildColumns = function (paragraph) { var columnDefs = []; _.forEach(paragraph.meta, function (meta, idx) { if (paragraph.columnFilter(meta)) { - paragraph.chartColumns.push({value: idx, label: meta.fieldName}); + if (_notObjectType(meta.fieldTypeName)) + paragraph.chartColumns.push({value: idx, type: meta.fieldTypeName, label: meta.fieldName}); // Index for explain, execute and fieldName for scan. var colValue = 'data[' + (paragraph.queryArgs.query ? idx : '"' + meta.fieldName + '"') + ']'; @@ -383,11 +389,14 @@ consoleModule.controller('sqlController', paragraph.gridOptions.api.setColumnDefs(columnDefs); - paragraph.chartKeyCols = _retainColumns(paragraph.chartColumns, paragraph.chartKeyCols, 0); - paragraph.chartValCols = _retainColumns(paragraph.chartColumns, paragraph.chartValCols, 1); + // Not object. + paragraph.chartKeyCols = _retainColumns(paragraph.chartColumns, paragraph.chartKeyCols, _notObjectType); + + // Numeric. + paragraph.chartValCols = _retainColumns(paragraph.chartColumns, paragraph.chartValCols, _numberType, paragraph.chartKeyCols[0]); if (paragraph.chartColumns.length > 0) - paragraph.chartColumns.push({value: -1, label: TIME_LINE}); + paragraph.chartColumns.push(TIME_LINE); }; $scope.toggleSystemColumns = function (paragraph) { @@ -407,23 +416,32 @@ consoleModule.controller('sqlController', }); }; - function _retainColumns(allCols, curCols, dfltIdx) { + function _retainColumns(allCols, curCols, acceptableType, dfltCol) { var retainedCols = []; var allColsLen = allCols.length; if (allColsLen > 0) { curCols.forEach(function (curCol) { - var idx = _.findIndex(allCols, function (allCol) { - return allCol.label == curCol.label; - }); + var col = _.find(allCols, {label: curCol.label}); - if (idx >= 0) - retainedCols.push(allCols[idx]); + if (col && acceptableType(col.type)) + retainedCols.push(col); }); if ($common.isEmptyArray(retainedCols)) - retainedCols.push(allCols[dfltIdx < allColsLen ? dfltIdx : 0]); + for (idx = 0; idx < allColsLen; idx++) { + var col = allCols[idx]; + + if (acceptableType(col.type) && col != dfltCol) { + retainedCols.push(col); + + break; + } + } + + if ($common.isEmptyArray(retainedCols) && dfltCol && acceptableType(dfltCol.type)) + retainedCols.push(dfltCol); } return retainedCols; http://git-wip-us.apache.org/repos/asf/ignite/blob/963fa3de/modules/control-center-web/src/main/js/views/sql/sql.jade ---------------------------------------------------------------------- diff --git a/modules/control-center-web/src/main/js/views/sql/sql.jade b/modules/control-center-web/src/main/js/views/sql/sql.jade index fcbaf2b..58b5198 100644 --- a/modules/control-center-web/src/main/js/views/sql/sql.jade +++ b/modules/control-center-web/src/main/js/views/sql/sql.jade @@ -147,8 +147,12 @@ block container .sql-table.ag-bootstrap(ag-grid='paragraph.gridOptions') div(ng-show='paragraph.chart() && paragraph.nonEmpty()') div(ng-show='paragraph.queryExecute()') - .sql-empty-result(ng-hide='paragraph.chartColumnsConfigured()') Can't display chart. Need configure axis using  - b Chart settings + div(ng-hide='paragraph.chartColumnsConfigured()') + .chart-settings-link + i.fa.fa-chevron-circle-down + a(ng-show='paragraph.chart' ng-click='$event.stopPropagation()' bs-popover data-template-url='chart-settings' data-placement='bottom' data-auto-close='1' data-trigger='click') Chart settings + .sql-empty-result Can't display chart. Need configure axis using  + b Chart settings div(ng-show='paragraph.chartColumnsConfigured()') div(ng-show='paragraph.timeLineSupported() || !paragraph.chartTimeLineEnabled()') .chart-settings-link
