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>

Reply via email to