You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/12/20 11:26:41 UTC
[45/50] [abbrv] kylin git commit: KYLIN 1875 minor,
update model ang cube designer
KYLIN 1875 minor,update model ang cube designer
Signed-off-by: zhongjian <ji...@163.com>
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/878107e3
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/878107e3
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/878107e3
Branch: refs/heads/master-hbase1.x
Commit: 878107e35bf4ac3a7963f22ac00a805eea9c323f
Parents: 6f563df
Author: chenzhx <34...@qq.com>
Authored: Mon Dec 19 14:16:47 2016 +0800
Committer: zhongjian <ji...@163.com>
Committed: Mon Dec 19 16:29:42 2016 +0800
----------------------------------------------------------------------
webapp/app/js/controllers/cubeAdvanceSetting.js | 31 +--------
webapp/app/js/controllers/cubeDimensions.js | 38 ++++-------
webapp/app/js/controllers/cubeEdit.js | 6 +-
webapp/app/js/controllers/cubeMeasures.js | 12 ++--
webapp/app/js/controllers/cubeSchema.js | 1 -
webapp/app/js/controllers/modelDataModel.js | 6 --
webapp/app/js/controllers/modelEdit.js | 2 +-
webapp/app/js/filters/filter.js | 17 ++++-
.../cubeDesigner/advanced_settings.html | 17 +----
.../app/partials/cubeDesigner/dimensions.html | 69 ++++++++++----------
webapp/app/partials/cubeDesigner/measures.html | 19 +++---
.../app/partials/modelDesigner/data_model.html | 34 ++++------
.../partials/modelDesigner/model_measures.html | 2 +-
13 files changed, 100 insertions(+), 154 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/cubeAdvanceSetting.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js
index 20af908..760133a 100644
--- a/webapp/app/js/controllers/cubeAdvanceSetting.js
+++ b/webapp/app/js/controllers/cubeAdvanceSetting.js
@@ -21,7 +21,7 @@
KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfig,MetaModel,cubesManager,CubeDescModel,SweetAlert) {
$scope.cubesManager = cubesManager;
$scope.getTypeVersion=function(typename){
- var searchResult=/\[v(\d+)\]/.exec(typename);
+ var searchResult=/\s*\(v(\d+)\)/.exec(typename);
if(searchResult&&searchResult.length){
return searchResult.length&&searchResult[1]||1;
}else{
@@ -30,7 +30,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi
}
$scope.removeVersion=function(typename){
if(typename){
- return typename.replace(/\[v\d+\]/g,"");
+ return typename.replace(/\s*\(v\d+\)/g,"");
}
return "";
}
@@ -49,7 +49,7 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi
_encoding=baseKey;
var rowkeyObj = {
column:item.column,
- encoding:_encoding+(item.encoding_version?"[v"+item.encoding_version+"]":"[v1]"),
+ encoding:_encoding+(item.encoding_version?" (v"+item.encoding_version+")":" (v1)"),
valueLength:_valueLength,
isShardBy:item.isShardBy,
encoding_version:item.encoding_version||1
@@ -109,31 +109,6 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi
}
}
- $scope.removeRowkey = function(arr,index,item){
- if (index > -1) {
- arr.splice(index, 1);
- }
- $scope.cubeMetaFrame.rowkey.rowkey_columns.splice(index,1);
- }
-
-
- $scope.addNewRowkeyColumn = function () {
- var rowkeyObj = {
- column:"",
- encoding:"dict",
- valueLength:0,
- isShardBy:"false"
- }
-
- $scope.convertedRowkeys.push(rowkeyObj);
- $scope.cubeMetaFrame.rowkey.rowkey_columns.push({
- column:'',
- encoding:'dict',
- isShardBy:'false'
- });
-
- };
-
$scope.addNewHierarchy = function(grp){
grp.select_rule.hierarchy_dims.push([]);
}
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/cubeDimensions.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeDimensions.js b/webapp/app/js/controllers/cubeDimensions.js
index e2787a5..80d54bb 100644
--- a/webapp/app/js/controllers/cubeDimensions.js
+++ b/webapp/app/js/controllers/cubeDimensions.js
@@ -206,9 +206,7 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub
});
modalInstance.result.then(function () {
- if (!$scope.dimState.editing) {
- $scope.doneAddDim();
- } else {
+ if ($scope.dimState.editing) {
$scope.doneEditDim();
}
@@ -268,31 +266,31 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub
};
- $scope.addDim = function (dimType) {
- $scope.newDimension = Dimension('', [], dimType);
-
- $scope.openDimModal(dimType);
- };
-
$scope.editDim = function (dim) {
$scope.dimState.editingIndex = dimList.indexOf(dim);
$scope.dimState.editing = true;
// Make a copy of model will be editing.
$scope.newDimension = angular.copy(dim);
+ if($scope.newDimension.derived&&$scope.newDimension.derived.length>0){
+ $scope.newDimension.normal="false";
+ }else{
+ $scope.newDimension.normal="true";
+ }
$scope.openDimModal($scope.getDimType(dim));
};
- $scope.doneAddDim = function () {
- // Push new dimension which bound user input data.
- dimList.push(angular.copy($scope.newDimension));
-
- $scope.resetParams();
- };
-
$scope.doneEditDim = function () {
// Copy edited model to destination model.
+ if($scope.newDimension.derived&&($scope.newDimension.normal=="true")){
+ $scope.newDimension.column=$scope.newDimension.derived[0];
+ $scope.newDimension.derived=null;
+ }
+ if(!$scope.newDimension.derived&&($scope.newDimension.normal=="false")){
+ $scope.newDimension.derived=[$scope.newDimension.column];
+ $scope.newDimension.column=null;
+ }
angular.copy($scope.newDimension, dimList[$scope.dimState.editingIndex]);
$scope.resetParams();
@@ -490,14 +488,6 @@ KylinApp.controller('CubeDimensionsCtrl', function ($scope, $modal,MetaModel,cub
}
}
- $scope.addNewDimension = function(newDimension){
- if(newDimension.derived==null){
- newDimension.derived=[];
- }
- newDimension.derived.push('');
- }
-
-
// Just reset the selected status of columns.
$scope.resetGenDims = function () {
var selectedCols = $scope.getSelectedCols();
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/cubeEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js
index a2b38f9..90cdbc0 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -60,7 +60,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
for(var s=1;s<=typeVersion;s++){
$scope.store.supportedEncoding.push({
"name":name+" (v"+s+","+(s==typeVersion&&typeVersion>1?"suggest)":")"),
- "value":value+"[v"+s+"]",
+ "value":value+" (v"+s+")",
"version":typeVersion,
"baseValue":value,
"suggest":s==typeVersion
@@ -70,7 +70,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
}else {
$scope.store.supportedEncoding.push({
"name": name,
- "value": value+"[v1]",
+ "value": value+" (v1)",
"encoding_version":1,
"version":typeVersion,
"baseValue":value,
@@ -103,7 +103,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
for(var s=0;s<$scope.cubeMetaFrame.rowkey.rowkey_columns.length;s++){
if(filterName==$scope.cubeMetaFrame.rowkey.rowkey_columns[s].column){
var version=$scope.cubeMetaFrame.rowkey.rowkey_columns[s].encoding_version;
- filterEncoding=VdmUtil.getFilterObjectListByOrFilterVal(encodings,'value',$scope.cubeMetaFrame.rowkey.rowkey_columns[s].encoding.replace(/:\d+/,"")+(version?"[v"+version+"]":"[v1]"),'suggest',true)
+ filterEncoding=VdmUtil.getFilterObjectListByOrFilterVal(encodings,'value',$scope.cubeMetaFrame.rowkey.rowkey_columns[s].encoding.replace(/:\d+/,"")+(version?" (v"+version+")":" (v1)"),'suggest',true)
}
}
}else{
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/cubeMeasures.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeMeasures.js b/webapp/app/js/controllers/cubeMeasures.js
index 67a107b..15c330a 100644
--- a/webapp/app/js/controllers/cubeMeasures.js
+++ b/webapp/app/js/controllers/cubeMeasures.js
@@ -32,12 +32,12 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes
var needLengthKeyList=['fixed_length','fixed_length_hex','int','integer'];
$scope.removeVersion=function(typename){
if(typename){
- return typename.replace(/\[v\d+\]/g,"");
+ return typename.replace(/\s*\(v\d+\)/g,"");
}
return "";
}
$scope.getTypeVersion=function(typename){
- var searchResult=/\[v(\d+)\]/.exec(typename);
+ var searchResult=/\s*\(v(\d+)\)/.exec(typename);
if(searchResult&&searchResult.length){
return searchResult.length&&searchResult[1]||1;
}else{
@@ -62,7 +62,7 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes
if($scope.isEdit) {
if (name && $scope.newMeasure.function.configuration&&$scope.newMeasure.function.configuration['topn.encoding.' + name]) {
var version = $scope.newMeasure.function.configuration['topn.encoding_version.' + name] || 1;
- filterEncoding = VdmUtil.getFilterObjectListByOrFilterVal(encodings, 'value', $scope.newMeasure.function.configuration['topn.encoding.' + name].replace(/:\d+/, "") + (version ? "[v" + version + "]" : "[v1]"), 'suggest', true);
+ filterEncoding = VdmUtil.getFilterObjectListByOrFilterVal(encodings, 'value', $scope.newMeasure.function.configuration['topn.encoding.' + name].replace(/:\d+/, "") + (version ? " (v" + version + ")" : " (v1)"), 'suggest', true);
}else{
filterEncoding=VdmUtil.getFilterObjectListByOrFilterVal(encodings,'suggest', true);
}
@@ -89,7 +89,7 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes
if($scope.newMeasure.function.configuration==null){
var GroupBy = {
name:$scope.newMeasure.function.parameter.next_parameter.value,
- encoding:"dict",
+ encoding:"dict (v1)",
valueLength:0,
}
$scope.convertedColumns.push(GroupBy);
@@ -110,7 +110,7 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes
_encoding=baseKey;
$scope.GroupBy = {
name:_name,
- encoding:_encoding+(version?"[v"+version+"]":"[v1]"),
+ encoding:_encoding+(version?" (v"+version+")":" (v1)"),
valueLength:_valueLength,
encoding_version:version||1
}
@@ -271,7 +271,7 @@ KylinApp.controller('CubeMeasuresCtrl', function ($scope, $modal,MetaModel,cubes
$scope.addNewGroupByColumn = function () {
$scope.nextGroupBy = {
name:null,
- encoding:"dict",
+ encoding:"dict (v1)",
valueLength:0,
}
$scope.convertedColumns.push($scope.nextGroupBy);
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/cubeSchema.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js
index d7dfc09..357b6af 100755
--- a/webapp/app/js/controllers/cubeSchema.js
+++ b/webapp/app/js/controllers/cubeSchema.js
@@ -109,7 +109,6 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic
};
$scope.goToStep = function(stepIndex){
- console.log($scope.cubeMode);
if($scope.cubeMode == "addNewCube"){
if(stepIndex+1>=$scope.curStep.step){
return;
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/modelDataModel.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/modelDataModel.js b/webapp/app/js/controllers/modelDataModel.js
index 3834e06..95c42c4 100644
--- a/webapp/app/js/controllers/modelDataModel.js
+++ b/webapp/app/js/controllers/modelDataModel.js
@@ -264,9 +264,6 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub
break;
}
}
- if($scope.aliasName.indexOf($scope.newLookup.alias)!=-1&&$scope.lookupState.editing == false){
- errors.push("Table Alias ["+$scope.newLookup.alias+"] already exist!");
- }
if($scope.aliasName.indexOf($scope.newLookup.alias)!=-1&&$scope.aliasName[$scope.lookupState.editingIndex+1] != $scope.newLookup.alias){
errors.push("Table Alias ["+$scope.newLookup.alias+"] already exist!");
}
@@ -281,7 +278,4 @@ KylinApp.controller('ModelDataModelCtrl', function ($location,$scope, $modal,cub
return true;
}
};
- $scope.filterNotRoot = function (item) {
- return item.name!==modelsManager.selectedModel.fact_table;
- };
});
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/controllers/modelEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/modelEdit.js b/webapp/app/js/controllers/modelEdit.js
index c504b52..351e779 100644
--- a/webapp/app/js/controllers/modelEdit.js
+++ b/webapp/app/js/controllers/modelEdit.js
@@ -209,7 +209,7 @@ KylinApp.controller('ModelEditCtrl', function ($scope, $q, $routeParams, $locati
$scope.state.modelSchema = request.modelSchema;
SweetAlert.swal('', 'Created the model successfully.', 'success');
$location.path("/models");
- location.reload();
+ // location.reload();
} else {
$scope.saveModelRollBack();
var message =request.message;
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/js/filters/filter.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/filters/filter.js b/webapp/app/js/filters/filter.js
index f9f7165..aff4e3a 100755
--- a/webapp/app/js/filters/filter.js
+++ b/webapp/app/js/filters/filter.js
@@ -190,4 +190,19 @@ KylinApp
return _day +" (Days)";
}
}
- });
+ }).filter('inDimNotInMea', function ($filter) {
+ return function (inputArr, table, arr) {
+ var out=[];
+ angular.forEach(arr,function(item){
+ if(item.table==table){
+ angular.forEach(inputArr,function(inputItem){
+ if(item.columns.indexOf(inputItem.name)==-1){
+ out.push(inputItem);
+ }
+ });
+ }
+ });
+ return out;
+ }
+ })
+ ;
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/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 438eb1f..f9e422c 100755
--- a/webapp/app/partials/cubeDesigner/advanced_settings.html
+++ b/webapp/app/partials/cubeDesigner/advanced_settings.html
@@ -202,11 +202,10 @@
<thead>
<tr>
<th>ID</th>
- <th class="col-xs-4">Column</th>
+ <th class="col-xs-5">Column</th>
<th>Encoding</th>
<th>Length</th>
<th>Shard By</th>
- <th ng-if="state.mode=='edit'"></th>
</tr>
</thead>
@@ -243,11 +242,11 @@
<!--Column Length -->
<input type="text" class="form-control" placeholder="Column Length.." ng-if="state.mode=='edit'"
tooltip="rowkey column length.." tooltip-trigger="focus"
- ng-disabled="rowkey_column.encoding=='dict'||rowkey_column.encoding=='date'||rowkey_column.encoding=='time'||rowkey_column.encoding=='boolean'||instance.status=='READY'"
+ ng-disabled="rowkey_column.encoding.indexOf('dict')>=0||rowkey_column.encoding.indexOf('date')>=0||rowkey_column.encoding.indexOf('time')>=0||instance.status=='READY'"
ng-change="refreshRowKey(convertedRowkeys,$index,rowkey_column);"
ng-model="rowkey_column.valueLength" class="form-control">
- <small class="help-block red" ng-show="state.mode=='edit' && rowkey_column.encoding=='int' && (rowkey_column.valueLength>8 || rowkey_column.valueLength<1)">int encoding column length should between 1 and 8</small>
+ <small class="help-block red" ng-show="state.mode=='edit' && rowkey_column.encoding.indexOf('integer')>=0 && (rowkey_column.valueLength>8 || rowkey_column.valueLength<1)">integer encoding column length should between 1 and 8</small>
<span ng-if="state.mode=='view'">{{rowkey_column.valueLength}}</span>
</td>
@@ -263,21 +262,11 @@
<small class="help-block red" ng-show="state.mode=='edit' && rule.shardColumnAvailable==false && rowkey_column.isShardBy == true">at most one 'shard by' column is allowed.</small>
<span ng-if="state.mode=='view'">{{rowkey_column.isShardBy}}</span>
</td>
-
- <td ng-if="state.mode=='edit'">
- <button class="btn btn-xs btn-info" ng-disabled="instance.status=='READY'"
- ng-click="removeRowkey(convertedRowkeys, $index,rowkey_column)"><i
- class="fa fa-minus"></i>
- </button>
- </td>
</tr>
</tbody>
</table>
</div>
</div>
- <button class="btn btn-sm btn-info" style="margin-left:42px" ng-disabled="instance.status=='READY'"
- ng-click="addNewRowkeyColumn()" ng-show="state.mode=='edit'">New Rowkey Column<i class="fa fa-plus"></i>
- </button>
</div>
<div class="form-group large-popover" style="overflow:auto">
<h3 style="margin-left:42px">Advanced Dictionaries <i kylinpopover placement="right" title="Advanced Dictionaries" template="AdvancedDictionariesTip.html" class="fa fa-info-circle"></i></h3>
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/partials/cubeDesigner/dimensions.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/dimensions.html b/webapp/app/partials/cubeDesigner/dimensions.html
index 7fedeb6..d8a8fce 100644
--- a/webapp/app/partials/cubeDesigner/dimensions.html
+++ b/webapp/app/partials/cubeDesigner/dimensions.html
@@ -24,7 +24,7 @@
<div class="col-xs-6" ng-if="state.mode=='edit'">
<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
+ <i class="fa fa-building-o"></i> Add Dimensions
</button>
</div>
<div ng-class="(state.mode=='edit')?'col-xs-6':'col-xs-12'">
@@ -57,7 +57,7 @@
</td>
<!--Table Name -->
<td>
- <span tooltip="{{availableFactTables.indexOf(dimension.table)==-1? 'Lookup Table':'Fact Table'}}">{{dimension.table}}</span>
+ <span>{{dimension.table}}</span>
</td>
<!--Type-->
<td>
@@ -109,7 +109,7 @@
<!-- Edit Dimension Form -->
<script type="text/ng-template" id="addEditDimension.html">
<div class="modal-header">
- <h4 class="box-title lighter">{{dimState.editing ? 'Edit' : 'Add'}} Dimension
+ <h4 class="box-title lighter">Edit Dimension
<span class="label label-primary" ng-repeat="t in dimType">{{t}}</span>
</h4>
</div>
@@ -138,17 +138,8 @@
<div class="form-group">
<div class="row">
<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 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 availableFactTables">
- <option value=""></option>
- </select>
+ <div class="col-xs-12 col-sm-6" >
+ <span>{{newDimension.table}}</span>
</div>
<div class="col-xs-12 col-sm-3">
<div class="text-info" ng-if="dimType.indexOf('derived') >= 0">
@@ -161,12 +152,11 @@
<!--Normal Dimension: choose one column-->
<div class="form-group" ng-if="dimType.indexOf('normal') >= 0">
<div class="row">
- <label class="control-label col-xs-12 col-sm-3 no-padding-right font-color-default"><b>Column Name</b></label>
+ <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 getDimColumnsByAlias(newDimension.table)">
- <option value=""></option>
- </select>
+ <span>{{newDimension.column}}</span>
</div>
</div>
</div>
@@ -174,27 +164,34 @@
<div ng-if="dimType.indexOf('derived') >= 0">
<div class="form-group">
<div class="row">
- <div class="col-sm-6 col-sm-offset-3">
+ <label class="control-label col-xs-12 col-sm-3 no-padding-right font-color-default">
+ <b>Column Name</b>
+ </label>
+ <div class="col-sm-6 ">
<div ng-repeat="derived in newDimension.derived track by $index">
- <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 getDimColumnsByAlias(newDimension.table)" >
- <option value=""></option>
- </select>
- <button class="pull-right btn btn-xs btn-danger" style="cursor: pointer " tooltip="Delete"
- ng-click="newDimension.derived.splice($index, 1);">
- <i class="fa fa-trash-o"></i>
- </button>
- <div class="space-4"></div>
- </div>
+ <span >
+ {{newDimension.derived[$index]}}
+ </span>
</div>
- <button class="btn btn-xs btn-info" ng-click="addNewDimension(newDimension);">
- <i class="fa fa-plus"></i> New Derived</button>
</div>
</div>
</div>
</div>
+ <div ng-if="availableLookupTables.indexOf(newDimension.table)!=-1">
+ <div class="row">
+ <label class="control-label col-xs-12 col-sm-3 no-padding-right font-color-default">
+ <b>Type</b>
+ </label>
+ <div class="col-xs-12 col-sm-6">
+ <label>
+ <input type="radio" ng-model="newDimension.normal" value="true" > Normal
+ </label>
+ <label>
+ <input type="radio" ng-model="newDimension.normal" value="false" > Derived
+ </label>
+ </div>
+ </div>
+ </div>
</div>
</div>
</ng-form>
@@ -221,7 +218,7 @@
<ul class="list-unstyled columns-region">
<!--FactTable-->
<div ng-repeat="table in availableFactTables track by $index" class="panel-default " >
- <h4>{{table}}[FactTable]</h4>
+ <h4>{{table}} [FactTable]</h4>
<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>
@@ -247,7 +244,7 @@
</div>
<!--LookUp Table-->
<div ng-repeat="table in availableLookupTables track by $index" class="panel-default" >
- <h4>{{table}}[LookupTable]</h4>
+ <h4>{{table}} [LookupTable]</h4>
<table class="table table-striped table-hover ng-scope">
<tr class="row" >
<td class="col-xs-2"><label><input type="checkbox" ng-model="selectedColumns[table].all" ng-change="autoChangeAll(table)">Select All</label></td>
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/partials/cubeDesigner/measures.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/measures.html b/webapp/app/partials/cubeDesigner/measures.html
index 492220c..9eb04c3 100755
--- a/webapp/app/partials/cubeDesigner/measures.html
+++ b/webapp/app/partials/cubeDesigner/measures.html
@@ -239,10 +239,10 @@
class="table table-hover table-bordered list">
<thead>
<tr>
- <th>ID</th>
- <th class="col-xs-5" >Column</th>
- <th>Encoding</th>
- <th>Length</th>
+ <th style="width:40px;">ID</th>
+ <th style="width:300px;">Column</th>
+ <th style="width:140px;">Encoding</th>
+ <th >Length</th>
<th ng-if="state.mode=='edit'"></th>
</tr>
</thead>
@@ -258,7 +258,7 @@
</td>
<!--Column Name -->
<td>
- <select class="form-control col-xs-12" chosen ng-if="nextPara.type !== 'constant'" required
+ <select class="form-control" chosen ng-if="nextPara.type !== 'constant'" required
ng-model="groupby_column.name"
ng-options="column as column for column in getAllModelDimColumns()" >
<option value="">--Select A Column--</option>
@@ -266,25 +266,22 @@
</td>
<!--Column Encoding -->
<td>
- <select ng-if="state.mode=='edit'" style="width:180px;"
+ <select ng-if="state.mode=='edit'"
chosen ng-model="groupby_column.encoding"
ng-change="refreshGroupBy(convertedColumns,$index,groupby_column)"
ng-options="dt.value as dt.name for dt in getEncodings(groupby_column.name)">
<option value=""></option>
</select>
- <span ng-if="state.mode=='view'">{{groupby_column.encoding}}</span>
-
</td>
<td>
<!--Column Length -->
<input type="text" class="form-control" placeholder="Column Length.." ng-if="state.mode=='edit'"
tooltip="group by column length.." tooltip-trigger="focus"
+ ng-disabled="groupby_column.encoding.indexOf('dict')>=0||groupby_column.encoding.indexOf('date')>=0||groupby_column.encoding.indexOf('time')>=0"
ng-change="refreshGroupBy(convertedColumns,$index,groupby_column);"
- ng-disabled="groupby_column.encoding=='dict'||groupby_column.encoding=='date'||groupby_column.encoding=='time'"
ng-model="groupby_column.valueLength" class="form-control">
- <small class="help-block red" ng-show="state.mode=='edit' && groupby_column.encoding=='int' && (groupby_column.valueLength>8 || groupby_column.valueLength<1)">int encoding column length should between 1 and 8</small>
- <span ng-if="state.mode=='view'">{{groupby_column.valueLength}}</span>
+ <small class="help-block red" ng-show="state.mode=='edit' && groupby_column.encoding.indexOf('integer')>=0 && (groupby_column.valueLength>8 || groupby_column.valueLength<1)">integer encoding column length should between 1 and 8</small>
</td>
<td ng-if="state.mode=='edit'">
<button class="btn btn-xs btn-info"
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/partials/modelDesigner/data_model.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/modelDesigner/data_model.html b/webapp/app/partials/modelDesigner/data_model.html
index 97d3c51..6e66e91 100644
--- a/webapp/app/partials/modelDesigner/data_model.html
+++ b/webapp/app/partials/modelDesigner/data_model.html
@@ -126,7 +126,7 @@
<div class="row">
<div class="col-xs-9">
<div>
- <select chosen ng-model="newLookup.joinTable" style="width: 45%"
+ <select chosen ng-model="newLookup.joinTable" class="col-sm-4"
ng-options="table as table for table in aliasName"
name="table_name" ng-disabled="lookupState.editing"
ng-required="true"
@@ -134,20 +134,21 @@
class="chosen-select">
<option value=""> -- Select Join Table -- </option>
</select>
- <small class="help-block" ng-show="lookup_form.table_name.$invalid && (lookup_form.table_name.$dirty||forms.model_info_form.$submitted)">Table name required</small>
- <b> </b>
- <select chosen ng-model="newLookup.table" style="width: 45%"
- ng-options="table.name as VdmUtil.removeNameSpace(table.name) for table in tableModel.selectProjectTables|filter:filterNotRoot"
+ <!--Join Type-->
+ <select class="form-control" chosen ng-model="newLookup.join.type" style="width:120px;"
+ ng-options="joinType.value as joinType.name for joinType in cubeConfig.joinTypes">
+ <option value=""></option>
+ </select>
+ <label class="control-label font-color-default"><b>Join</b></label>
+ <select chosen ng-model="newLookup.table" class="col-sm-4"
+ ng-options="table.name as VdmUtil.removeNameSpace(table.name) for table in tableModel.selectProjectTables"
name="table_name" ng-disabled="lookupState.editing"
ng-required="true" ng-change="changeJoinTable()"
data-placeholder="Join Table Name"
class="chosen-select">
<option value=""> -- Select Join Table -- </option>
</select>
- <small class="help-block" ng-show="lookup_form.table_name.$invalid && (lookup_form.table_name.$dirty||forms.model_info_form.$submitted)">Table name required</small>
-
</div>
- <div class="space-4"></div>
</div>
</div>
</div>
@@ -161,18 +162,7 @@
</div>
</div>
</div>
- <!--Join Type and Columns-->
- <div class="form-group">
- <div class="row">
- <label class="col-sm-3 control-label font-color-default"><b>Join Type</b></label>
- <div class="col-sm-6">
- <select class="form-control" chosen ng-model="newLookup.join.type"
- ng-options="joinType.value as joinType.name for joinType in cubeConfig.joinTypes">
- <option value=""></option>
- </select>
- </div>
- </div>
- </div>
+ <!--Table Type-->
<div class="form-group">
<div class="row">
<label class="col-sm-3 control-label font-color-default"><b>Table Type</b></label>
@@ -233,8 +223,8 @@
<div class="row">
<div class="col-xs-12">
<ol class="text-info">
- <li>Pick up lookup table at first</li>
- <li>Specify join relationship between fact table and chosen lookup table.</li>
+ <li>Pick up a table joins another table that already exist.</li>
+ <li>Specify join relationship between two tables.</li>
<li>Join Type have to be same as will be used in query</li>
</ol>
</div>
http://git-wip-us.apache.org/repos/asf/kylin/blob/878107e3/webapp/app/partials/modelDesigner/model_measures.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/modelDesigner/model_measures.html b/webapp/app/partials/modelDesigner/model_measures.html
index f34e3fb..271c04f 100644
--- a/webapp/app/partials/modelDesigner/model_measures.html
+++ b/webapp/app/partials/modelDesigner/model_measures.html
@@ -67,7 +67,7 @@
ng-model="selectedFactTables[table]" multiple>
<ui-select-match placeholder="Select Column...">{{$item.name}}</ui-select-match>
<ui-select-choices
- repeat="table+'.'+measure.name as measure in getColumnsByAlias(table) | filter:$select.search">
+ repeat="table+'.'+measure.name as measure in getColumnsByAlias(table) | filter:$select.search|inDimNotInMea:table:modelsManager.selectedModel.dimensions">
{{measure.name}}
</ui-select-choices>
</ui-select>