You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by zh...@apache.org on 2015/09/15 04:48:19 UTC

incubator-kylin git commit: KYLIN-910, enable edit 'auto merge time range' from UI

Repository: incubator-kylin
Updated Branches:
  refs/heads/2.x-staging 8ac3f08b5 -> 56054e636


KYLIN-910, enable edit 'auto merge time range' from UI


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

Branch: refs/heads/2.x-staging
Commit: 56054e63604be1e8596216f10070e25f1f4b6ea9
Parents: 8ac3f08
Author: jiazhong <ji...@ebay.com>
Authored: Tue Sep 15 10:47:23 2015 +0800
Committer: jiazhong <ji...@ebay.com>
Committed: Tue Sep 15 10:47:59 2015 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubeAdvanceSetting.js | 55 +++++++++++++++++++-
 webapp/app/js/controllers/cubeRefresh.js        |  4 +-
 webapp/app/js/directives/directives.js          |  2 -
 webapp/app/js/filters/filter.js                 | 13 ++++-
 .../cubeDesigner/advanced_settings.html         | 52 +++++++++++++++---
 webapp/app/partials/cubes/cubes.html            |  1 +
 6 files changed, 114 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/webapp/app/js/controllers/cubeAdvanceSetting.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeAdvanceSetting.js b/webapp/app/js/controllers/cubeAdvanceSetting.js
index 5ced1bd..fb9c019 100644
--- a/webapp/app/js/controllers/cubeAdvanceSetting.js
+++ b/webapp/app/js/controllers/cubeAdvanceSetting.js
@@ -31,6 +31,30 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi
     //edit model
     if($scope.state.mode==="edit") {
         $scope.metaModel = MetaModel;
+      if(!$scope.cubeMetaFrame.auto_merge_time_ranges){
+        $scope.cubeMetaFrame.auto_merge_time_ranges = [604800000,2419200000];
+      }
+      $scope._auto_merge_time_ranges = [];
+      angular.forEach($scope.cubeMetaFrame.auto_merge_time_ranges,function(item){
+        var _day = Math.floor(item/86400000);
+        var _hour = (item%86400000)/3600000;
+
+        var rangeObj = {
+          type:'days',
+          range:0,
+          mills:0
+        }
+        if(_day==0){
+          rangeObj.type = 'hours';
+          rangeObj.range = _hour;
+          rangeObj.mills = rangeObj.range*3600000;
+         }else{
+          rangeObj.type = 'days';
+          rangeObj.range = _day;
+          rangeObj.mills = rangeObj.range*86400000;
+        }
+        $scope._auto_merge_time_ranges.push(rangeObj);
+      })
     }
 
 
@@ -41,10 +65,37 @@ KylinApp.controller('CubeAdvanceSettingCtrl', function ($scope, $modal,cubeConfi
 
     }
 
+  $scope.addNewMergeTimeRange = function(){
+    $scope._auto_merge_time_ranges.push({
+      type:'days',
+      range:0,
+      mills:0
+    })
+    $scope.updateAutoMergeRange();
+  }
+
+  $scope.removeTimeRange = function(arr,index,item){
+    if (index > -1) {
+      arr.splice(index, 1);
+    }
+    $scope.cubeMetaFrame.auto_merge_time_ranges.splice(index,1);
+  }
+
+
   $scope.refreshAutoMergeTimeRanges = function(list,index,item){
-    if (item) {
-      list[index] = item;
+    if(item.type=='hours'){
+      item.mills = item.range*3600000;
+    }else{
+      item.mills = item.range*86400000;
     }
+    $scope.cubeMetaFrame.auto_merge_time_ranges[index] = item.mills;
+  }
+
+  $scope.updateAutoMergeRange = function(){
+    $scope.cubeMetaFrame.auto_merge_time_ranges = [];
+    angular.forEach($scope._auto_merge_time_ranges,function(item){
+      $scope.cubeMetaFrame.auto_merge_time_ranges.push(item.mills);
+    })
   }
 
 });

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/webapp/app/js/controllers/cubeRefresh.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeRefresh.js b/webapp/app/js/controllers/cubeRefresh.js
index 39a63c7..23cab43 100644
--- a/webapp/app/js/controllers/cubeRefresh.js
+++ b/webapp/app/js/controllers/cubeRefresh.js
@@ -18,6 +18,6 @@
 
 'use strict';
 
-KylinApp.controller('CubeRefreshCtrl', function ($scope, $modal,cubeConfig,MetaModel) {
-
+KylinApp.controller('CubeRefreshCtrl', function ($scope, $modal,cubeConfig,MetaModel,UserService) {
+  $scope.userService = UserService;
 });

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/webapp/app/js/directives/directives.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/directives/directives.js b/webapp/app/js/directives/directives.js
index 6e6daf8..f9f5dff 100644
--- a/webapp/app/js/directives/directives.js
+++ b/webapp/app/js/directives/directives.js
@@ -221,5 +221,3 @@ KylinApp.directive('kylinPagination', function ($parse, $q) {
       }
     }
   });
-
-;

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/webapp/app/js/filters/filter.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/filters/filter.js b/webapp/app/js/filters/filter.js
index 0f38cc5..98f7235 100755
--- a/webapp/app/js/filters/filter.js
+++ b/webapp/app/js/filters/filter.js
@@ -164,4 +164,15 @@ KylinApp
     return function (item) {
         return item/86400000;
     }
-  });;
+  }).filter('timeRangeFormat', function ($filter) {
+    //backend store GMT+0 timezone ,by default front will show local,so convert to GMT+0 Date String format
+    return function (item) {
+      var _day = Math.floor(item/86400000);
+      var _hour = (item%86400000)/3600000;
+      if(_day==0){
+        return _hour +" (Hours)"
+      }else{
+        return _day +" (Days)";
+      }
+    }
+  });

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/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 037a003..222edf2 100755
--- a/webapp/app/partials/cubeDesigner/advanced_settings.html
+++ b/webapp/app/partials/cubeDesigner/advanced_settings.html
@@ -33,13 +33,53 @@
                   <div class="col-xs-12 col-sm-6">
                     <!--retention range is store in CubeInstance, will convert to cubeMetaFrame for front end-->
                     <div class="row"  ng-if="state.mode=='edit'">
-                      <div class="col-xs-3" ng-repeat="timeRange in cubeMetaFrame.auto_merge_time_ranges">
-                        <input type="text" retention-format  ng-change="refreshAutoMergeTimeRanges(cubeMetaFrame.auto_merge_time_ranges,$index,timeRange)" class="form-control" placeholder=".col-xs-3" ng-model="timeRange">
-                      </div>
+                      <table class="table">
+                        <tbody>
+                          <tr ng-repeat="timeRange in _auto_merge_time_ranges">
+                            <td class="col-xs-4">
+                              <select  ng-if="timeRange.type=='hours'"
+                                       chosen ng-model="timeRange.range"
+                                       ng-options="rangeTypes as rangeTypes for rangeTypes in [0.5,1,2,4,8] "
+                                       ng-change="refreshAutoMergeTimeRanges(_auto_merge_time_ranges,$index,timeRange)"
+                                       style="width: 100% !important;"
+                                       data-placeholder="hours range"
+                                       class="chosen-select">
+                              </select>
+                              <input type="text" ng-if="timeRange.type=='days'"  ng-change="refreshAutoMergeTimeRanges(_auto_merge_time_ranges,$index,timeRange)" class="form-control input-sm" placeholder="days range" ng-model="timeRange.range">
+                            </td>
+                            <td class="col-xs-4">
+                              <select  chosen ng-model="timeRange.type"
+                                       ng-options="rangeTypes as rangeTypes for rangeTypes in ['hours','days'] "
+                                       ng-change="refreshAutoMergeTimeRanges(_auto_merge_time_ranges,$index,timeRange)"
+                                       style="width: 200px !important;"
+                                       data-placeholder="select a project"
+                                       class="chosen-select">
+                              </select>
+                            </td>
+                            <td>
+                              <button class="btn btn-xs btn-info" ng-show="state.mode=='edit'" ng-click="removeTimeRange(_auto_merge_time_ranges,$index, timeRange)">
+                                <i class="fa fa-minus"></i>
+                              </button>
+                            </td>
+                          </tr>
+                        </tbody>
+                      </table>
+                      <button class="btn btn-xs btn-info" ng-show="state.mode=='edit'" ng-click="addNewMergeTimeRange()">
+                        New Merge Range<i class="fa fa-plus"></i>
+                      </button>
                     </div>
-                    <span ng-if="state.mode=='view'">{{cubeMetaFrame.auto_merge_time_ranges[0] | millisecondsToDay}}</span>
-                    <span  ng-if="state.mode=='view'">,</span>
-                    <span ng-if="state.mode=='view'">{{cubeMetaFrame.auto_merge_time_ranges[1] | millisecondsToDay}}</span>
+                    <div class="row"  ng-if="state.mode=='view'">
+                      <table class="table">
+                        <tbody>
+                        <tr ng-repeat="timeRange in cubeMetaFrame.auto_merge_time_ranges">
+                          <td>
+                            {{timeRange | timeRangeFormat}}
+                          </td>
+                        </tr>
+                        </tbody>
+                      </table>
+                    </div>
+
                   </div>
                 </div>
               </div>

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/56054e63/webapp/app/partials/cubes/cubes.html
----------------------------------------------------------------------
diff --git a/webapp/app/partials/cubes/cubes.html b/webapp/app/partials/cubes/cubes.html
index c09e3f1..3c8c2e7 100644
--- a/webapp/app/partials/cubes/cubes.html
+++ b/webapp/app/partials/cubes/cubes.html
@@ -129,5 +129,6 @@
 <div ng-include="'partials/jobs/job_refresh.html'"></div>
 <div ng-include="'partials/jobs/job_merge.html'"></div>
 <div ng-include="'partials/projects/project_create.html'"></div>
+<div ng-include="'partials/models/model_detail.html'"></div>
 
 </div>