Repository: kylin
Updated Branches:
  refs/heads/yang-m1 41fb735de -> aef842442


KYLIN-1587 show cube level configuration overwrites properties in CubeDesigner


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/aef84244
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/aef84244
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/aef84244

Branch: refs/heads/yang-m1
Commit: aef842442a7d7e2ee1ad931a376b36dd36157ac5
Parents: 209aa66
Author: Jason <jiat...@163.com>
Authored: Mon Apr 18 22:50:32 2016 +0800
Committer: Jason <jiat...@163.com>
Committed: Mon Apr 18 22:50:51 2016 +0800

----------------------------------------------------------------------
 webapp/app/index.html                           |  1 +
 webapp/app/js/controllers/cubeOverwriteProp.js  | 71 ++++++++++++++++++++
 webapp/app/js/controllers/cubeSchema.js         | 49 +++++++-------
 .../cubeDesigner/cubeOverwriteProp.html         | 70 +++++++++++++++++++
 4 files changed, 166 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/aef84244/webapp/app/index.html
----------------------------------------------------------------------
diff --git a/webapp/app/index.html b/webapp/app/index.html
index 82cef34..a25f812 100644
--- a/webapp/app/index.html
+++ b/webapp/app/index.html
@@ -179,6 +179,7 @@
 <script src="js/controllers/cubeDimensions.js"></script>
 <script src="js/controllers/cubeRefresh.js"></script>
 <script src="js/controllers/cubeAdvanceSetting.js"></script>
+<script src="js/controllers/cubeOverwriteProp.js"></script>
 <script src="js/controllers/cubeMeasures.js"></script>
 <!--New GUI-->
 <script src="js/controllers/modelSchema.js"></script>

http://git-wip-us.apache.org/repos/asf/kylin/blob/aef84244/webapp/app/js/controllers/cubeOverwriteProp.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeOverwriteProp.js 
b/webapp/app/js/controllers/cubeOverwriteProp.js
new file mode 100644
index 0000000..25e99d5
--- /dev/null
+++ b/webapp/app/js/controllers/cubeOverwriteProp.js
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+
+'use strict';
+
+KylinApp.controller('CubeOverWriteCtrl', function ($scope, 
$modal,cubeConfig,MetaModel,cubesManager,CubeDescModel) {
+  $scope.cubesManager = cubesManager;
+
+
+  //rowkey
+  $scope.convertedProperties = [];
+
+  for(var key in $scope.cubeMetaFrame.override_kylin_properties){
+    $scope.convertedProperties.push({
+      name:key,
+      value:$scope.cubeMetaFrame.override_kylin_properties[key]
+    });
+  }
+
+
+  $scope.addNewProperty = function () {
+    if($scope.cubeMetaFrame.override_kylin_properties.hasOwnProperty('')){
+      return;
+    }
+    $scope.cubeMetaFrame.override_kylin_properties['']='';
+    $scope.convertedProperties.push({
+      name:'',
+      value:''
+    });
+
+  };
+
+  $scope.refreshPropertiesObj = function(){
+    $scope.cubeMetaFrame.override_kylin_properties = {};
+    angular.forEach($scope.convertedProperties,function(item,index){
+      $scope.cubeMetaFrame.override_kylin_properties[item.name] = item.value;
+    })
+  }
+
+
+  $scope.refreshProperty = function(list,index,item){
+    $scope.convertedProperties[index] = item;
+    $scope.refreshPropertiesObj();
+  }
+
+
+  $scope.removeProperty= function(arr,index,item){
+    if (index > -1) {
+      arr.splice(index, 1);
+    }
+    delete $scope.cubeMetaFrame.override_kylin_properties[item.name];
+  }
+
+
+
+});

http://git-wip-us.apache.org/repos/asf/kylin/blob/aef84244/webapp/app/js/controllers/cubeSchema.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeSchema.js 
b/webapp/app/js/controllers/cubeSchema.js
index 618e14e..f9d9dc1 100755
--- a/webapp/app/js/controllers/cubeSchema.js
+++ b/webapp/app/js/controllers/cubeSchema.js
@@ -35,6 +35,7 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, 
QueryService, UserServic
             $scope.wizardSteps.push({title: 'Advanced Setting', src: 
'partials/cubeDesigner/advanced_settings.html', isComplete: 
false,form:'cube_setting_form'});
     }
     //$scope.wizardSteps.push({title: 'Streaming', src: 
'partials/cubeDesigner/streamingConfig.html', isComplete: 
false,form:'cube_streaming_form'});
+    $scope.wizardSteps.push({title: 'Configuration Overwrites ', src: 
'partials/cubeDesigner/cubeOverwriteProp.html', isComplete: 
false,form:'cube_overwrite_prop_form'});
     $scope.wizardSteps.push({title: 'Overview', src: 
'partials/cubeDesigner/overview.html', isComplete: false,form:null});
 
     $scope.curStep = $scope.wizardSteps[0];
@@ -200,8 +201,8 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, 
QueryService, UserServic
                         break;
                     case 'cube_setting_form':
                         return $scope.check_cube_setting();
-                    case 'cube_streaming_form':
-                        return $scope.kafka_ad_config_form();
+                    case 'cube_overwrite_prop_form':
+                        return $scope.cube_overwrite_prop_check();
                     default:
                         return true;
                         break;
@@ -290,31 +291,29 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, 
QueryService, UserServic
         }
     }
 
-  $scope.kafka_ad_config_form = function(){
-    if(!$scope.cubeState.isStreaming){
-      return true;
-    }
-    var errors = [];
-    if(!$scope.kafkaMeta.clusters.length){
-      errors.push("Cluster can't be null");
-    }
-    angular.forEach($scope.kafkaMeta.clusters,function(cluster,index){
-      if(!cluster.brokers.length){
-        errors.push("No broker under Cluster-"+(index+1));
+    $scope.cube_overwrite_prop_check = function(){
+      var errors = [];
+
+      for(var key in $scope.cubeMetaFrame.override_kylin_properties){
+        if(key==''){
+          errors.push("Property name is required.");
+        }
+        if($scope.cubeMetaFrame.override_kylin_properties[key] == ''){
+          errors.push("Property value is required.");
+        }
       }
-    })
-    var errorInfo = "";
-    angular.forEach(errors,function(item){
-      errorInfo+="\n"+item;
-    });
-    if(errors.length){
-      SweetAlert.swal('', errorInfo, 'warning');
-      return false;
-    }else{
-      return true;
-    }
-  }
 
+      var errorInfo = "";
+      angular.forEach(errors,function(item){
+        errorInfo+="\n"+item;
+      });
+      if(errors.length){
+        SweetAlert.swal('', errorInfo, 'warning');
+        return false;
+      }else{
+        return true;
+      }
+    }
 
     // ~ private methods
     function initProject() {

http://git-wip-us.apache.org/repos/asf/kylin/blob/aef84244/webapp/app/partials/cubeDesigner/cubeOverwriteProp.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubeDesigner/cubeOverwriteProp.html 
b/webapp/app/partials/cubeDesigner/cubeOverwriteProp.html
new file mode 100644
index 0000000..c1a1648
--- /dev/null
+++ b/webapp/app/partials/cubeDesigner/cubeOverwriteProp.html
@@ -0,0 +1,70 @@
+<!--
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+-->
+
+<div class="row" ng-controller="CubeOverWriteCtrl" style="padding-left:40px;">
+    <div class="col-xs-8">
+        <ng-form name="forms.cube_overwrite_prop_form" novalidate>
+            <!--Project-->
+            <div ng-repeat=" prop in convertedProperties track by $index " 
class="form-group">
+                <div class="row">
+                  <label class="col-xs-12 col-sm-6 control-label 
no-padding-right" ng-class="{'has-error':prop.name==''}">
+                    <b ng-if="state.mode=='view'">{{prop.name}}</b>
+                    <input ng-model="prop.name" placeholder="key" 
ng-change="refreshProperty(convertedProperties,$index,prop)" 
class="form-control" ng-if="state.mode=='edit'"/>
+                    <small style="font-weight: normal !important;" 
class="help-block" ng-show="prop.name==''">Property name is required.</small>
+                  </label>
+                  <div class="col-xs-12 col-sm-5" 
ng-class="{'has-error':prop.value==''}">
+                    <input ng-model="prop.value" placeholder="value" 
ng-change="refreshProperty(convertedProperties,$index,prop)" 
class="form-control" ng-if="state.mode=='edit'"/>
+                    <small class="help-block" 
ng-show="prop.value==''">Property value is required.</small>
+                    <span ng-if="state.mode=='view'">{{prop.value}}</span>
+                  </div>
+                  <div class="col-sm-1" ng-if="state.mode=='edit'">
+                    <button class="btn btn-xs btn-info" 
ng-click="removeProperty(convertedProperties,$index,prop)"><i class="fa 
fa-minus"></i>
+                    </button>
+                  </div>
+
+                </div>
+            </div>
+        </ng-form>
+        <!--Add Measures Property-->
+        <div class="form-group">
+          <button class="btn btn-sm btn-info" ng-click="addNewProperty();" 
ng-show="state.mode=='edit'">
+            <i class="fa fa-plus"></i> Property
+          </button>
+        </div>
+
+    </div>
+
+  <!--Tips-->
+  <div class="col-xs-4">
+    <div class="box box-solid">
+      <div class="box-header widget-header-flat">
+        <h4 class="box-title">Tips</h4>
+      </div>
+      <div class="box-body">
+        <div class="row">
+          <div class="col-xs-12">
+            <ol class="text-info">
+              <li>Cube level properties will overwrite configuration in 
kylin.prperties</li>
+            </ol>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+</div>

Reply via email to