Repository: kylin Updated Branches: refs/heads/1.3.x e02970f3f -> dff0c381c
KYLIN-1569 Select any column when adding a custom aggregation in GUI Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/dff0c381 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/dff0c381 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/dff0c381 Branch: refs/heads/1.3.x Commit: dff0c381cc024556931eaed4a16ce22fcaa776a9 Parents: e02970f Author: Jason <[email protected]> Authored: Thu Apr 28 14:11:59 2016 +0800 Committer: Jason <[email protected]> Committed: Thu Apr 28 14:11:59 2016 +0800 ---------------------------------------------------------------------- webapp/app/js/controllers/cubeEdit.js | 35 +++++++++++++++++++- .../app/partials/cubeDesigner/incremental.html | 2 +- webapp/app/partials/cubeDesigner/measures.html | 4 +-- 3 files changed, 37 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/dff0c381/webapp/app/js/controllers/cubeEdit.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index 0095fde..cde0c9f 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -42,7 +42,40 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio return temp; }; - $scope.getPartitonColumns = function (tableName) { + $scope.getColumnsByMeasureTable = function (measure,tableName) { + var factColumns = [],me_columns = []; + angular.forEach(TableModel.selectProjectTables, function (table) { + if (table.name == tableName) { + factColumns = table.columns; + } + }); + + angular.forEach(factColumns,function(column){ + me_columns.push(column.name); + }) + + + var nonCustomMeasures = ['SUM','MIN','MAX','COUNT']; + var expression = measure.function.expression; + + if(nonCustomMeasures.indexOf(expression)==-1){ + //add cube dimension column for specific measure + angular.forEach($scope.cubeMetaFrame.dimensions,function(dimension,index){ + if(dimension.column && dimension.derived == null && me_columns.indexOf(dimension.column[0] == -1)){ + me_columns.concat(dimension.column[0]); + } + + if(dimension.derived && dimension.derived.length>=1){ + me_columns = me_columns.concat(dimension.derived); + } + + }); + + } + return me_columns; + }; + + $scope.getPartitionColumns = function (tableName) { var columns = _.filter($scope.getColumnsByTable(tableName), function (column) { return column.datatype === "date" || column.datatype === "string"; }); http://git-wip-us.apache.org/repos/asf/kylin/blob/dff0c381/webapp/app/partials/cubeDesigner/incremental.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/incremental.html b/webapp/app/partials/cubeDesigner/incremental.html index 1531abd..d5fad8b 100755 --- a/webapp/app/partials/cubeDesigner/incremental.html +++ b/webapp/app/partials/cubeDesigner/incremental.html @@ -47,7 +47,7 @@ ng-model="metaModel.model.partition_desc.partition_date_column" ng-if="state.mode=='edit'" data-placement="" - ng-options="metaModel.model.fact_table+'.'+columns.name as metaModel.model.fact_table+'.'+columns.name for columns in getPartitonColumns(metaModel.model.fact_table)" > + ng-options="metaModel.model.fact_table+'.'+columns.name as metaModel.model.fact_table+'.'+columns.name for columns in getPartitionColumns(metaModel.model.fact_table)" > <option value="">--Select Partition Column--</option> </select> <span ng-if="state.mode=='view'"> http://git-wip-us.apache.org/repos/asf/kylin/blob/dff0c381/webapp/app/partials/cubeDesigner/measures.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/measures.html b/webapp/app/partials/cubeDesigner/measures.html index a11e6a1..b3cb5eb 100755 --- a/webapp/app/partials/cubeDesigner/measures.html +++ b/webapp/app/partials/cubeDesigner/measures.html @@ -149,8 +149,8 @@ ng-if="newMeasure.function.parameter.type == 'column'" ng-model="newMeasure.function.parameter.value" ng-change="measureReturnTypeUpdate();" - ng-options="columns.name as columns.name for columns in getColumnsByTable(metaModel.model.fact_table)" > - <option value="">-- Select a Fact Table Column --</option> + ng-options="column as column for column in getColumnsByMeasureTable(newMeasure,metaModel.model.fact_table)" > + <option value="">-- Select a Column --</option> </select> </div> </div>
