From 72f9ad917c27b0e7d206495c2c4f6b2091a84c03 Mon Sep 17 00:00:00 2001 From: "peng.jianhua" Date: Mon, 25 Dec 2017 20:15:06 +0800 Subject: [PATCH 1/1] KYLIN-3131 After refresh the page,the cubes can't sort by 'create_time' --- core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java | 6 +++++- .../src/main/java/org/apache/kylin/rest/service/CubeService.java | 3 ++- webapp/app/js/controllers/cubes.js | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java index 70477eb28..078a69e36 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java @@ -65,7 +65,7 @@ import com.google.common.collect.Lists; @SuppressWarnings("serial") @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) -public class CubeInstance extends RootPersistentEntity implements IRealization, IBuildable { +public class CubeInstance extends RootPersistentEntity implements IRealization, IBuildable, Comparable { public static final int COST_WEIGHT_MEASURE = 1; public static final int COST_WEIGHT_DIMENSION = 10; public static final int COST_WEIGHT_INNER_JOIN = 100; @@ -583,4 +583,8 @@ public class CubeInstance extends RootPersistentEntity implements IRealization, return newCube; } + @Override + public int compareTo(CubeInstance o) { + return o.createTimeUTC < this.createTimeUTC ? -1 : o.createTimeUTC > this.createTimeUTC ? 1 : 0; + } } diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java index 435b874b8..e5a38e262 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java +++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java @@ -131,6 +131,7 @@ public class CubeService extends BasicService implements InitializingBean { if (null == project) { cubeInstances = getCubeManager().listAllCubes(); + Collections.sort(cubeInstances); aclEvaluate.checkIsGlobalAdmin(); } else { cubeInstances = listAllCubes(projectName); @@ -226,7 +227,7 @@ public class CubeService extends BasicService implements InitializingBean { if (projectDataModel.getType() == RealizationType.CUBE) { CubeInstance cube = getCubeManager().getCube(projectDataModel.getRealization()); if (cube != null) - result.add(cube); + result.add(0, cube); else logger.error("Cube instance " + projectDataModel.getRealization() + " is failed to load"); } diff --git a/webapp/app/js/controllers/cubes.js b/webapp/app/js/controllers/cubes.js index dfa26a4c5..cca6bdc15 100644 --- a/webapp/app/js/controllers/cubes.js +++ b/webapp/app/js/controllers/cubes.js @@ -36,7 +36,7 @@ KylinApp.controller('CubesCtrl', function ($scope, $q, $routeParams, $location, $scope.action = {}; $scope.state = { - filterAttr: 'create_time', filterReverse: true, reverseColumn: 'create_time', + filterAttr: 'create_time_utc', filterReverse: true, reverseColumn: 'create_time_utc', dimensionFilter: '', measureFilter: '' }; -- 2.11.0.windows.1