You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/08/29 14:08:11 UTC
[kylin] branch master updated: Add time filter for current day jobs
This is an automated email from the ASF dual-hosted git repository.
nic pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push:
new ebff43a Add time filter for current day jobs
ebff43a is described below
commit ebff43a81eeac79429138d2be1ab7a9a0d5f41f3
Author: liupan010 <li...@ke.com>
AuthorDate: Fri Aug 9 18:36:55 2019 +0800
Add time filter for current day jobs
---
.../main/java/org/apache/kylin/common/KylinConfigBase.java | 2 +-
core-common/src/main/resources/kylin-defaults.properties | 3 +++
.../java/org/apache/kylin/job/constant/JobTimeFilterEnum.java | 2 +-
examples/test_case_data/sandbox/kylin.properties | 3 +++
.../main/java/org/apache/kylin/rest/service/JobService.java | 6 ++++++
webapp/app/js/controllers/dashboard.js | 9 ++++-----
webapp/app/js/controllers/page.js | 3 ++-
webapp/app/js/model/jobConfig.js | 11 ++++++-----
webapp/app/js/model/jobListModel.js | 7 ++++---
webapp/app/js/services/kylinProperties.js | 10 ++++++++++
10 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index be37c55..ac3ce04 100644
--- a/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -1906,7 +1906,7 @@ public abstract class KylinConfigBase implements Serializable {
+ "kylin.security.profile,"
+ "kylin.htrace.show-gui-trace-toggle,kylin.web.export-allow-admin,kylin.web.export-allow-other,"
+ "kylin.cube.cubeplanner.enabled,kylin.web.dashboard-enabled,kylin.tool.auto-migrate-cube.enabled,"
- + "kylin.job.scheduler.default");
+ + "kylin.job.scheduler.default,kylin.web.default-time-filter");
}
// ============================================================================
diff --git a/core-common/src/main/resources/kylin-defaults.properties b/core-common/src/main/resources/kylin-defaults.properties
index 8beea6c..10ca8e6 100644
--- a/core-common/src/main/resources/kylin-defaults.properties
+++ b/core-common/src/main/resources/kylin-defaults.properties
@@ -77,6 +77,9 @@ kylin.web.link-diagnostic=
kylin.web.contact-mail=
kylin.server.external-acl-provider=
+# Default time filter for job list, 0->current day, 1->last one day, 2->last one week, 3->last one year, 4->all
+kylin.web.default-time-filter=1
+
### SOURCE ###
# Hive client, valid value [cli, beeline]
diff --git a/core-job/src/main/java/org/apache/kylin/job/constant/JobTimeFilterEnum.java b/core-job/src/main/java/org/apache/kylin/job/constant/JobTimeFilterEnum.java
index c4787f7..da2ce92 100644
--- a/core-job/src/main/java/org/apache/kylin/job/constant/JobTimeFilterEnum.java
+++ b/core-job/src/main/java/org/apache/kylin/job/constant/JobTimeFilterEnum.java
@@ -19,7 +19,7 @@
package org.apache.kylin.job.constant;
public enum JobTimeFilterEnum {
- LAST_ONE_DAY(0), LAST_ONE_WEEK(1), LAST_ONE_MONTH(2), LAST_ONE_YEAR(3), ALL(4);
+ CURRENT_DAY(0), LAST_ONE_DAY(1), LAST_ONE_WEEK(2), LAST_ONE_MONTH(3), LAST_ONE_YEAR(4), ALL(5);
private final int code;
diff --git a/examples/test_case_data/sandbox/kylin.properties b/examples/test_case_data/sandbox/kylin.properties
index d8a787e..b7f358f 100644
--- a/examples/test_case_data/sandbox/kylin.properties
+++ b/examples/test_case_data/sandbox/kylin.properties
@@ -171,6 +171,9 @@ kylin.web.export-allow-other=true
# Hide measures in measure list of cube designer, separate by comma
kylin.web.hide-measures=RAW
+# Default time filter for job list, 0->current day, 1->last one day, 2->last one week, 3->last one year, 4->all
+kylin.web.default-time-filter=0
+
### OTHER ###
# kylin query metrics percentiles intervals default=60, 300, 3600
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
index 46f0143..82738ab 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -194,6 +194,12 @@ public class JobService extends BasicService implements InitializingBean {
case LAST_ONE_YEAR:
calendar.add(Calendar.YEAR, -1);
return calendar.getTimeInMillis();
+ case CURRENT_DAY:
+ calendar.add(Calendar.DAY_OF_MONTH, 0);
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ return calendar.getTimeInMillis();
case ALL:
return 0;
default:
diff --git a/webapp/app/js/controllers/dashboard.js b/webapp/app/js/controllers/dashboard.js
index 3114919..f27ceb0 100644
--- a/webapp/app/js/controllers/dashboard.js
+++ b/webapp/app/js/controllers/dashboard.js
@@ -22,7 +22,6 @@ KylinApp.controller('DashboardCtrl', function ($scope, $location, storage, kylin
$scope.init = function(){
$scope.timezone = 'GMT';
-
// Init date range
storage.bind($scope, 'dateRange', {defaultValue: {
startDate: moment().subtract(7, 'days').clone().tz($scope.timezone).startOf('day').format('x'),
@@ -183,12 +182,12 @@ KylinApp.controller('DashboardCtrl', function ($scope, $location, storage, kylin
value.color = '#ddd';
}
});
- }
+ }
}, function(e) {
SweetAlert.swal('Oops...', 'Failed to load bar chart.', 'error');
console.error('bar chart error:', e.data);
});
- }
+ }
};
// Clean and remove chart
@@ -210,7 +209,7 @@ KylinApp.controller('DashboardCtrl', function ($scope, $location, storage, kylin
// Click query count square
$scope.queryCountChart = function() {
- $scope.currentSquare = 'queryCount';
+ $scope.currentSquare = 'queryCount';
$scope.barchartCategory = dashboardConfig.categories[0];
$scope.barchartMetric = dashboardConfig.metrics[0];
$scope.linechartCategory = dashboardConfig.categories[0];
@@ -293,4 +292,4 @@ KylinApp.controller('DashboardCtrl', function ($scope, $location, storage, kylin
$scope.selectedCube = undefined;
};
-});
\ No newline at end of file
+});
diff --git a/webapp/app/js/controllers/page.js b/webapp/app/js/controllers/page.js
index 5416013..4324dd7 100644
--- a/webapp/app/js/controllers/page.js
+++ b/webapp/app/js/controllers/page.js
@@ -25,7 +25,8 @@ KylinApp.controller('PageCtrl', function ($scope, $q, AccessService, $modal, $lo
$log.debug(data);
kylinConfig.initWebConfigInfo();
$rootScope.isShowCubeplanner = kylinConfig.getProperty('kylin.cube.cubeplanner.enabled') === 'true';
- $rootScope.isShowDashboard = kylinConfig.getProperty('kylin.web.dashboard-enabled') === 'true'
+ $rootScope.isShowDashboard = kylinConfig.getProperty('kylin.web.dashboard-enabled') === 'true';
+ JobList.jobFilter.timeFilterId = kylinConfig.getJobTimeFilterId();
});
$rootScope.userAction = {
'islogout': false
diff --git a/webapp/app/js/model/jobConfig.js b/webapp/app/js/model/jobConfig.js
index cb07e1f..d840fb1 100644
--- a/webapp/app/js/model/jobConfig.js
+++ b/webapp/app/js/model/jobConfig.js
@@ -27,11 +27,12 @@ KylinApp.constant('jobConfig', {
{name: 'DISCARDED', value: 16}
],
timeFilter: [
- {name: 'LAST ONE DAY', value: 0},
- {name: 'LAST ONE WEEK', value: 1},
- {name: 'LAST ONE MONTH', value: 2},
- {name: 'LAST ONE YEAR', value: 3},
- {name: 'ALL', value: 4},
+ {name: 'CURRENT DAY', value: 0},
+ {name: 'LAST ONE DAY', value: 1},
+ {name: 'LAST ONE WEEK', value: 2},
+ {name: 'LAST ONE MONTH', value: 3},
+ {name: 'LAST ONE YEAR', value: 4},
+ {name: 'ALL', value: 5},
],
theaditems: [
{attr: 'name', name: 'Job Name'},
diff --git a/webapp/app/js/model/jobListModel.js b/webapp/app/js/model/jobListModel.js
index 197532c..f32fecf 100755
--- a/webapp/app/js/model/jobListModel.js
+++ b/webapp/app/js/model/jobListModel.js
@@ -20,12 +20,12 @@
*jobListModel will manage data in list job page
*/
-KylinApp.service('JobList',function(JobService,$q){
+KylinApp.service('JobList',function(JobService, $q, kylinConfig){
var _this = this;
this.jobs={};
this.jobFilter = {
cubeName : null,
- timeFilterId : 1,
+ timeFilterId : kylinConfig.getJobTimeFilterId(),
searchModeId: 2,
statusIds: []
};
@@ -33,7 +33,7 @@ KylinApp.service('JobList',function(JobService,$q){
this.clearJobFilter = function(){
this.jobFilter = {
cubeName : null,
- timeFilterId : 1,
+ timeFilterId : kylinConfig.getJobTimeFilterId(),
searchModeId: 2,
statusIds: []
};
@@ -41,6 +41,7 @@ KylinApp.service('JobList',function(JobService,$q){
this.list = function(jobRequest){
var defer = $q.defer();
+ console.log();
JobService.list(jobRequest, function (jobs) {
angular.forEach(jobs, function (job) {
var id = job.uuid;
diff --git a/webapp/app/js/services/kylinProperties.js b/webapp/app/js/services/kylinProperties.js
index fed071b..dc5b885 100644
--- a/webapp/app/js/services/kylinProperties.js
+++ b/webapp/app/js/services/kylinProperties.js
@@ -20,6 +20,7 @@ KylinApp.service('kylinConfig', function (AdminService, $log) {
var _config;
var timezone;
var deployEnv;
+ var jobTimeFilterId;
this.init = function () {
return AdminService.publicConfig({}, function (config) {
@@ -169,6 +170,15 @@ KylinApp.service('kylinConfig', function (AdminService, $log) {
}
return this.sourceType;
}
+
+ this.getJobTimeFilterId = function() {
+ var jobTimeFilterId = parseInt(this.getProperty("kylin.web.default-time-filter"));
+ if(isNaN(jobTimeFilterId)) {
+ jobTimeFilterId = 2;
+ }
+ return jobTimeFilterId;
+ }
+
this.getSecurityType = function () {
this.securityType = this.getProperty("kylin.security.profile").trim();
return this.securityType;