KYLIN 1875 update cube designer Signed-off-by: zhongjian <jiat...@163.com>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/a9230473 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/a9230473 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/a9230473 Branch: refs/heads/KYLIN-2283 Commit: a9230473e3c3bad774f930ad90f4479dcbe34fa0 Parents: 076fbcf Author: chenzhx <346839...@qq.com> Authored: Tue Dec 13 15:32:54 2016 +0800 Committer: Li Yang <liy...@apache.org> Committed: Thu Dec 15 18:57:36 2016 +0800 ---------------------------------------------------------------------- webapp/app/js/controllers/cubeAdvanceSetting.js | 5 -- webapp/app/js/controllers/cubeDimensions.js | 75 ++++++++++---------- webapp/app/js/controllers/cubeEdit.js | 60 +++++++++------- webapp/app/js/controllers/cubeMeasures.js | 21 +----- webapp/app/js/controllers/modelDataModel.js | 11 ++- .../cubeDesigner/advanced_settings.html | 3 +- .../app/partials/cubeDesigner/dimensions.html | 46 ++++-------- webapp/app/partials/cubeDesigner/measures.html | 7 +- 8 files changed, 104 insertions(+), 124 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeAdvanceSetting.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js index 8192419..e557afa 100644 --- a/webapp/app/js/controllers/cubeAdvanceSetting.js +++ b/webapp/app/js/controllers/cubeAdvanceSetting.js @@ -38,12 +38,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi //rowkey $scope.convertedRowkeys = []; angular.forEach($scope.cubeMetaFrame.rowkey.rowkey_columns,function(item){ - //var _isDictionaries = item.encoding === "dict"?"true":"false"; - //var version=$scope.getTypeVersion(encoding); item.encoding=$scope.removeVersion(item.encoding); - //var _isFixedLength = item.encoding.substring(0,12) === "fixed_length"?"true":"false";//fixed_length:12 - //var _isIntegerLength = item.encoding.substring(0,7) === "integer"?"true":"false"; - //var _isIntLength = item.encoding.substring(0,3) === "int"?"true":"false"; var _encoding = item.encoding; var _valueLength ; var baseKey=item.encoding.replace(/:\d+/,''); http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeDimensions.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeDimensions.js b/webapp/app/js/controllers/cubeDimensions.js index 7cb850b..e2787a5 100644 --- a/webapp/app/js/controllers/cubeDimensions.js +++ b/webapp/app/js/controllers/cubeDimensions.js @@ -18,7 +18,7 @@ 'use strict'; -KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cubesManager,SweetAlert) { +KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cubesManager,SweetAlert, VdmUtil) { $scope.cubeManager = cubesManager; // Available columns list derived from cube data model. @@ -27,10 +27,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub // Columns selected and disabled status bound to UI, group by table. $scope.selectedColumns = {}; - // Available tables cache: 1st is the fact table, next are lookup tables. - $scope.availableTables = []; - - /** * Helper func to get columns that dimensions based on, three cases: * 1. normal dimension: column array. @@ -40,17 +36,10 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub var dimCols = function (dim) { var referredCols = []; - // Case 3. if (dim.derived && dim.derived.length) { referredCols = referredCols.concat(dim.derived); } - // Case 2. - //if (dim.hierarchy && dim.column.length) { - // referredCols = referredCols.concat(dim.column); - //} - - // Case 1. if (!dim.derived && dim.column) { referredCols.push(dim.column); } @@ -60,52 +49,66 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub // Dump available columns plus column table name, whether is from lookup table. $scope.initColumns = function () { - var factTable = $scope.metaModel.model.fact_table; + var rootFactTable = VdmUtil.removeNameSpace($scope.metaModel.model.fact_table); + + if($scope.aliasName.length==0){ + $scope.aliasName.push(rootFactTable); + $scope.aliasTableMap[rootFactTable]=$scope.metaModel.model.fact_table; + $scope.tableAliasMap[$scope.metaModel.model.fact_table]=rootFactTable; + angular.forEach($scope.metaModel.model.lookups,function(joinTable){ + if(!joinTable.alias){ + joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); + } + $scope.aliasTableMap[joinTable.alias]=joinTable.table; + $scope.tableAliasMap[joinTable.table]=joinTable.alias; + $scope.aliasName.push(joinTable.alias); + }); + } // At first dump the columns of fact table. -// var cols = $scope.getColumnsByTable(factTable); - var cols = $scope.getDimColumnsByTable(factTable); + + var cols = $scope.getDimColumnsByAlias(rootFactTable); // Initialize selected available. var factSelectAvailable = {}; for (var i = 0; i < cols.length; i++) { - cols[i].table = factTable; - cols[i].isLookup = false; + cols[i].table = rootFactTable; // Default not selected and not disabled. factSelectAvailable[cols[i].name] = {name:cols[i].name ,selected: false}; } - $scope.availableColumns[factTable] = cols; + $scope.availableColumns[rootFactTable] = cols; factSelectAvailable.all=false; - $scope.selectedColumns[factTable] = factSelectAvailable; - $scope.availableTables.push(factTable); - + $scope.selectedColumns[rootFactTable] = factSelectAvailable; +// $scope.availableTables.push(rootFactTable); + $scope.availableFactTables.push(rootFactTable); // Then dump each lookup tables. var lookups = $scope.metaModel.model.lookups; for (var j = 0; j < lookups.length; j++) { - var cols2 = $scope.getDimColumnsByTable(lookups[j].table); + if(lookups[j].kind=="FACT"){ + $scope.availableFactTables.push(lookups[j].alias); + }else{ + $scope.availableLookupTables.push(lookups[j].alias); + } + var cols2 = $scope.getDimColumnsByAlias(lookups[j].alias); // Initialize selected available. var lookupSelectAvailable = {}; for (var k = 0; k < cols2.length; k++) { - cols2[k].table = lookups[j].table; - cols2[k].isLookup = true; + cols2[k].table = lookups[j].alias; // Default not selected and not disabled. lookupSelectAvailable[cols2[k].name] = {name:cols2[k].name,selected: false}; } - $scope.availableColumns[lookups[j].table] = cols2; + $scope.availableColumns[lookups[j].alias] = cols2; lookupSelectAvailable.all=false; - $scope.selectedColumns[lookups[j].table] = lookupSelectAvailable; - if($scope.availableTables.indexOf(lookups[j].table)==-1){ - $scope.availableTables.push(lookups[j].table); - } + $scope.selectedColumns[lookups[j].alias] = lookupSelectAvailable; } }; @@ -178,10 +181,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub types.push('derived'); } - //if (dim.hierarchy && dim.column.length) { - // types.push('hierarchy'); - //} - if (!types.length) { types.push('normal'); } @@ -259,7 +258,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub errorInfo+="\n"+item; }); if(errors.length){ -// SweetAlert.swal('Warning!', errorInfo, ''); SweetAlert.swal('', errorInfo, 'warning'); return false; }else{ @@ -384,7 +382,7 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub var selectedCols = $scope.getSelectedCols(); dimList=[]; angular.forEach(selectedCols, function (cols, table) { - if ($scope.metaModel.model.fact_table == table) { + if ($scope.availableFactTables.indexOf(table)!=-1) { // Fact table: for each selected column, create one normal dimension. for (var i = 0; i < cols.length; i++) { dimList.push(Dimension(cols[i].name, table, [cols[i].col], 'normal')); @@ -404,8 +402,8 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub }; - $scope.autoChange= function(table,name){ - if($scope.metaModel.model.fact_table==table){ + $scope.autoChange = function(table,name){ + if($scope.availableFactTables.indexOf(table)!=-1){ if($scope.selectedColumns[table][name].selected==false){ $scope.selectedColumns[table].all=false; }else{ @@ -437,8 +435,9 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub } } } + $scope.autoChangeAll= function(table){ - if($scope.metaModel.model.fact_table==table){ + if($scope.availableFactTables.indexOf(table)!=-1){ if($scope.selectedColumns[table].all==true){ angular.forEach($scope.selectedColumns[table],function(col){ if(typeof col==="object"){ http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeEdit.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js index b901e48..d58f08f 100755 --- a/webapp/app/js/controllers/cubeEdit.js +++ b/webapp/app/js/controllers/cubeEdit.js @@ -22,6 +22,11 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $location, $templateCache, $interpolate, MessageService, TableService, CubeDescService, CubeService, loadingRequest, SweetAlert, $log, cubeConfig, CubeDescModel, MetaModel, TableModel, ModelDescService, modelsManager, cubesManager, ProjectModel, StreamingModel, StreamingService,VdmUtil) { $scope.cubeConfig = cubeConfig; $scope.metaModel = {}; + $scope.tableAliasMap={}; + $scope.aliasTableMap={}; + $scope.aliasName=[]; + $scope.availableFactTables = []; + $scope.availableLookupTables = []; $scope.modelsManager = modelsManager; //add or edit ? @@ -112,7 +117,15 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio } return filterEncoding; } - + $scope.getColumnsByAlias = function (alias) { + var temp = []; + angular.forEach(TableModel.selectProjectTables, function (table) { + if (table.name == $scope.aliasTableMap[alias]) { + temp = table.columns; + } + }); + return temp; + }; $scope.getColumnsByTable = function (tableName) { var temp = []; angular.forEach(TableModel.selectProjectTables, function (table) { @@ -124,13 +137,13 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio }; //get columns from model - $scope.getDimColumnsByTable = function (tableName) { - if (!tableName) { + $scope.getDimColumnsByAlias = function (alias) { + if (!alias) { return []; } - var tableColumns = $scope.getColumnsByTable(tableName); + var tableColumns = $scope.getColumnsByAlias(alias); var tableDim = _.find($scope.metaModel.model.dimensions, function (dimension) { - return dimension.table == tableName + return dimension.table == alias }); if(!tableDim){ return []; @@ -169,17 +182,18 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio $scope.getAllModelDimMeasureColumns = function () { var me_columns = []; if($scope.metaModel.model.metrics){ - angular.forEach($scope.metaModel.model.metrics,function(metric,index){ + angular.forEach($scope.metaModel.model.metrics,function(metric){ me_columns.push(metric); }) } - angular.forEach($scope.metaModel.model.dimensions,function(dimension,index){ + angular.forEach($scope.metaModel.model.dimensions,function(dimension){ if(dimension.columns){ - me_columns = me_columns.concat(dimension.columns); + angular.forEach(dimension.columns,function(column){ + me_columns = me_columns.concat(dimension.table+"."+column); + }); } - }) - + }); return distinct_array(me_columns); }; @@ -187,7 +201,9 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var me_columns = []; angular.forEach($scope.metaModel.model.dimensions,function(dimension,index){ if(dimension.columns){ - me_columns = me_columns.concat(dimension.columns); + angular.forEach(dimension.columns,function(column){ + me_columns = me_columns.concat(dimension.table+"."+column); + }); } }) @@ -209,11 +225,11 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var me_columns = []; //add cube dimension column for specific measure angular.forEach($scope.cubeMetaFrame.dimensions,function(dimension,index){ - if($scope.metaModel.model.fact_table !== dimension.table){ + if($scope.availableFactTables.indexOf(dimension.table)==-1){ return; } if(dimension.column && dimension.derived == null){ - me_columns.push(dimension.column); + me_columns.push(dimension.table+"."+dimension.column); } }); return me_columns; @@ -224,12 +240,12 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var me_columns = []; angular.forEach($scope.cubeMetaFrame.dimensions,function(dimension,index){ if(dimension.column && dimension.derived == null){ - me_columns.push(dimension.column); + me_columns.push(dimension.table+"."+dimension.column); } else{ angular.forEach(dimension.derived,function(derived){ - me_columns.push(derived); + me_columns.push(dimension.table+"."+derived); }); } @@ -256,8 +272,8 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio - $scope.getColumnType = function (_column, table) { - var columns = $scope.getColumnsByTable(table); + $scope.getColumnType = function (_column, alias) { + var columns = $scope.getColumnsByAlias(alias); var type; angular.forEach(columns, function (column) { if (_column === column.name) { @@ -314,10 +330,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio $scope.metaModel.model = _model; }); } - $scope.state.cubeSchema = angular.toJson($scope.cubeMetaFrame, true); - - } }); @@ -520,7 +533,6 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio } function reGenerateRowKey() { - $log.log("reGen rowkey & agg group"); //var fk_pk = {}; var tmpRowKeyColumns = []; var tmpAggregationItems = [];//put all aggregation item @@ -530,7 +542,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio for( var i=0;i<$scope.metaModel.model.lookups.length;i++){ var lookup = $scope.metaModel.model.lookups[i]; - var table = lookup.table; + var table = lookup.alias; pfkMap[table] = {}; for(var j=0;j<lookup.join.primary_key.length;j++){ var pk = lookup.join.primary_key[j]; @@ -543,7 +555,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio //derived column if (dimension.derived && dimension.derived.length) { var lookup = _.find($scope.metaModel.model.lookups, function (lookup) { - return lookup.table == dimension.table + return lookup.alias == dimension.table }); angular.forEach(lookup.join.foreign_key, function (fk, index) { for (var i = 0; i < tmpRowKeyColumns.length; i++) { @@ -568,7 +580,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio var tableName = dimension.table; var columnName = dimension.column; - var rowkeyColumn = dimension.column; + var rowkeyColumn = dimension.table+"."+dimension.column; if(pfkMap[tableName]&&pfkMap[tableName][columnName]){ //lookup table primary key column as dimension rowkeyColumn = pfkMap[tableName][columnName]; http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/cubeMeasures.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/cubeMeasures.js b/webapp/app/js/controllers/cubeMeasures.js index 18f53c2..67a107b 100644 --- a/webapp/app/js/controllers/cubeMeasures.js +++ b/webapp/app/js/controllers/cubeMeasures.js @@ -98,24 +98,8 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes if(/topn\.encoding\./.test(configuration)){ var _name=configuration.slice(14); var item=$scope.newMeasure.function.configuration[configuration]; - //var _isFixedLength = item.substring(0,12) === "fixed_length"?"true":"false";//fixed_length:12 - //var _isIntegerLength = item.substring(0,7) === "integer"?"true":"false"; - //var _isIntLength = item.substring(0,3) === "int"?"true":"false"; var _encoding = item; var _valueLength = 0 ; - //if(_isFixedLength !=="false"){ - // _valueLength = item.substring(13,item.length); - // _encoding = "fixed_length"; - //} - //if(_isIntLength!="false" && _isIntegerLength=="false" ){ - // _valueLength = item.substring(4,item.length); - // _encoding = "int"; - //} - // - //if(_isIntegerLength!="false" ){ - // _valueLength = item.substring(8,item.length); - // _encoding = "integer"; - //} var version=$scope.newMeasure.function.configuration['topn.encoding_version.'+_name]||1; item=$scope.removeVersion(item); var baseKey=item.replace(/:\d+/,''); @@ -369,8 +353,9 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes if($scope.newMeasure.function.parameter.type=="column"&&$scope.newMeasure.function.expression!=="COUNT_DISTINCT"){ var column = $scope.newMeasure.function.parameter.value; - var colType = $scope.getColumnType(column, $scope.metaModel.model.fact_table); // $scope.getColumnType defined in cubeEdit.js - + if(column){ + var colType = $scope.getColumnType(VdmUtil.removeNameSpace(column), VdmUtil.getNameSpaceAliasName(column)); // $scope.getColumnType defined in cubeEdit.js + } if(colType==""||!colType){ $scope.newMeasure.function.returntype = ""; return; http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/js/controllers/modelDataModel.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/controllers/modelDataModel.js b/webapp/app/js/controllers/modelDataModel.js index 95a4c70..a09101b 100644 --- a/webapp/app/js/controllers/modelDataModel.js +++ b/webapp/app/js/controllers/modelDataModel.js @@ -20,15 +20,20 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cubeConfig,MetaModel,SweetAlert,ModelGraphService,$log,TableModel,ModelService,loadingRequest,modelsManager,VdmUtil) { $scope.modelsManager = modelsManager; + angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){ + if(!joinTable.alias){ + joinTable.alias=VdmUtil.removeNameSpace(joinTable.table); + } + }); $scope.init = function (){ $scope.FactTable={root:$scope.modelsManager.selectedModel.fact_table}; $scope.aliasTableMap[VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)]=$scope.modelsManager.selectedModel.fact_table; $scope.tableAliasMap[$scope.modelsManager.selectedModel.fact_table]=VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table); $scope.aliasName.push(VdmUtil.removeNameSpace($scope.modelsManager.selectedModel.fact_table)); angular.forEach($scope.modelsManager.selectedModel.lookups,function(joinTable){ - $scope.aliasTableMap[joinTable.alias]=joinTable.table; - $scope.tableAliasMap[joinTable.table]=joinTable.alias; - $scope.aliasName.push(joinTable.alias); + $scope.aliasTableMap[joinTable.alias]=joinTable.table; + $scope.tableAliasMap[joinTable.table]=joinTable.alias; + $scope.aliasName.push(joinTable.alias); }); } if($scope.state.mode=='edit'){ http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/partials/cubeDesigner/advanced_settings.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/advanced_settings.html b/webapp/app/partials/cubeDesigner/advanced_settings.html index 2728240..438eb1f 100755 --- a/webapp/app/partials/cubeDesigner/advanced_settings.html +++ b/webapp/app/partials/cubeDesigner/advanced_settings.html @@ -63,7 +63,6 @@ {{rowkey_column.column}} </ui-select-choices> </ui-select> - <p ng-if="state.mode=='view'"> {{aggregation_group.includes}}</p> </td> @@ -203,7 +202,7 @@ <thead> <tr> <th>ID</th> - <th style="width:200px;">Column</th> + <th class="col-xs-4">Column</th> <th>Encoding</th> <th>Length</th> <th>Shard By</th> http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/partials/cubeDesigner/dimensions.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/dimensions.html b/webapp/app/partials/cubeDesigner/dimensions.html index ed265c4..8c1cdab 100644 --- a/webapp/app/partials/cubeDesigner/dimensions.html +++ b/webapp/app/partials/cubeDesigner/dimensions.html @@ -22,16 +22,6 @@ <div class="dataTables_wrapper form-inline no-footer"> <div class="row"> <div class="col-xs-6" ng-if="state.mode=='edit'"> - <div class="btn-group"> - <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" ng-disabled="instance.status=='READY'"> - <i class="fa fa-plus"></i> Add Dimension <span class="ace-icon fa fa-caret-down icon-on-right"></span> - </button> - <ul class="dropdown-menu" role="menu"> - <li><a ng-click="addDim('normal')">Normal</a></li> - <!--<li><a ng-click="addDim('hierarchy')">Hierarchy</a></li>--> - <li><a ng-click="addDim('derived')">Derived</a></li> - </ul> - </div> <button type="button" class="btn btn-default" ng-disabled="!metaModel.model.fact_table.length||instance.status=='READY'" ng-click="openAutoGenModal()" > <i class="fa fa-building-o"></i> Auto Generator @@ -51,7 +41,7 @@ <th>Name</th> <th>Table Name</th> <th>Type</th> - <th></th> + <th>Column</th> <th ng-if="state.mode=='edit'">Actions</th> </tr> </thead> @@ -67,7 +57,7 @@ </td> <!--Table Name --> <td> - <span tooltip="{{dimension.table == metaModel.model.fact_table ? 'Fact Table' : 'Lookup Table'}}">{{dimension.table}}</span> + <span>{{dimension.table}}</span> </td> <!--Type--> <td> @@ -77,18 +67,12 @@ <td> <div ng-repeat="t in getDimType(dimension)"> <div ng-switch="t"> - <!--<dl class="dl-horizontal" ng-switch-when="hierarchy">--> - <!--<dt>Hierarchy</dt>--> - <!--<dd>{{dimension.column}}</dd>--> - <!--</dl>--> - <dl class="dl-horizontal" ng-switch-when="derived"> - <dt>Derived</dt> - <dd>{{dimension.derived}}</dd> - </dl> - <dl class="dl-horizontal" ng-switch-when="normal"> - <dt>Column</dt> - <dd>{{dimension.column}}</dd> - </dl> + <span ng-switch-when="derived"> + {{dimension.derived}} + </span> + <span ng-switch-when="normal"> + {{dimension.column}} + </span> </div> </div> </td> @@ -156,13 +140,13 @@ <label class="control-label col-xs-12 col-sm-3 no-padding-right font-color-default"><b>Table Name</b></label> <div class="col-xs-12 col-sm-6" ng-if="dimType.indexOf('derived') >= 0"> <select class="form-control" required="true" chosen data-placeholder="Select a lookup table" - ng-model="newDimension.table" ng-options="table for table in availableTables.slice(1)"> + ng-model="newDimension.table" ng-options="table for table in availableLookupTables"> <option value=""></option> </select> </div> <div class="col-xs-12 col-sm-6" ng-if="dimType.indexOf('derived') == -1"> <select class="form-control" required="true" chosen data-placeholder="Select a table" - ng-model="newDimension.table" ng-options="table for table in availableTables"> + ng-model="newDimension.table" ng-options="table for table in availableFactTables"> <option value=""></option> </select> </div> @@ -180,7 +164,7 @@ <label class="control-label col-xs-12 col-sm-3 no-padding-right font-color-default"><b>Column Name</b></label> <div class="col-xs-12 col-sm-6"> <select class="form-control" required="true" chosen data-placeholder="Select a column" - ng-model="newDimension.column" ng-options="column.name as column.name for column in getDimColumnsByTable(newDimension.table)"> + ng-model="newDimension.column" ng-options="column.name as column.name for column in getDimColumnsByAlias(newDimension.table)"> <option value=""></option> </select> </div> @@ -195,7 +179,7 @@ <div> <select chosen style="width: 80%;" data-placeholder="Derived Columns.." ng-model="newDimension.derived[$index]" - ng-options="columns.name as columns.name for columns in getDimColumnsByTable(newDimension.table)" > + ng-options="columns.name as columns.name for columns in getDimColumnsByAlias(newDimension.table)" > <option value=""></option> </select> <button class="pull-right btn btn-xs btn-danger" style="cursor: pointer " tooltip="Delete" @@ -236,9 +220,9 @@ <div class="box-body"> <ul class="list-unstyled columns-region"> <!--FactTable--> - <div ng-repeat="table in availableTables track by $index" ng-if="$index == 0" class="panel-default " > + <div ng-repeat="table in availableFactTables track by $index" class="panel-default " > <h4>{{table}}[FactTable]</h4> - <table class="table table-striped table-hover ng-scope" > + <table class="table table-striped table-hover ng-scope"> <tr > <td class="col-xs-2"><label><input type="checkbox" ng-model="selectedColumns[table].all" ng-change="autoChangeAll(table)">Select All</label></td> <td class="col-xs-4"><label>Name</label></td> @@ -262,7 +246,7 @@ </table> </div> <!--LookUp Table--> - <div ng-repeat="table in availableTables track by $index" ng-if="$index > 0" class="panel-default" > + <div ng-repeat="table in availableLookupTables track by $index" class="panel-default" > <h4>{{table}}[LookupTable]</h4> <table class="table table-striped table-hover ng-scope"> <tr class="row" > http://git-wip-us.apache.org/repos/asf/kylin/blob/a9230473/webapp/app/partials/cubeDesigner/measures.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/cubeDesigner/measures.html b/webapp/app/partials/cubeDesigner/measures.html index 8961cc6..492220c 100755 --- a/webapp/app/partials/cubeDesigner/measures.html +++ b/webapp/app/partials/cubeDesigner/measures.html @@ -148,6 +148,7 @@ ng-if="newMeasure.function.parameter.type == 'constant'" ng-init="newMeasure.function.parameter.value = 1"><b> 1</b></span> <!--!COUNT_DISTINCT--> + <select class="form-control" chosen ng-if="newMeasure.function.parameter.type == 'column' && (newMeasure.function.expression == 'COUNT_DISTINCT'||newMeasure.function.expression == 'RAW')" ng-model="newMeasure.function.parameter.value" required @@ -239,7 +240,7 @@ <thead> <tr> <th>ID</th> - <th>Column</th> + <th class="col-xs-5" >Column</th> <th>Encoding</th> <th>Length</th> <th ng-if="state.mode=='edit'"></th> @@ -257,9 +258,9 @@ </td> <!--Column Name --> <td> - <select class="form-control" chosen ng-if="nextPara.type !== 'constant'" required + <select class="form-control col-xs-12" chosen ng-if="nextPara.type !== 'constant'" required ng-model="groupby_column.name" - ng-options="column as column for column in getAllModelDimColumns()" style="width:200px;"> + ng-options="column as column for column in getAllModelDimColumns()" > <option value="">--Select A Column--</option> </select> </td>