http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/controllers/cubeMeasures.js ----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/controllers/cubeSchema.js ---------------------------------------------------------------------- diff --cc webapp/app/js/controllers/cubeSchema.js index 2a47a8c,0af7cc2..5eed9b9 --- a/webapp/app/js/controllers/cubeSchema.js +++ b/webapp/app/js/controllers/cubeSchema.js @@@ -160,7 -160,24 +160,23 @@@ KylinApp.controller('CubeSchemaCtrl', f }); + var queryParam = {offset: 0, limit: 65535}; + + CubeService.list(queryParam, function (all_cubes) { + if($scope.allCubes.length > 0){ + $scope.allCubes.splice(0,$scope.allCubes.length); + } + + for (var i = 0; i < all_cubes.length; i++) { + $scope.allCubes.push(all_cubes[i].name.toUpperCase()); + } + }); + + // ~ public methods + $scope.filterProj = function(project){ + return $scope.userService.hasRole('ROLE_ADMIN') || $scope.hasPermission(project,$scope.permissions.ADMINISTRATION.mask); + }; - $scope.removeElement = function (arr, element) { var index = arr.indexOf(element); if (index > -1) { http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/controllers/modelSchema.js ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/controllers/page.js ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/controllers/query.js ---------------------------------------------------------------------- diff --cc webapp/app/js/controllers/query.js index 1c03684,f29cf58..ea45d88 --- a/webapp/app/js/controllers/query.js +++ b/webapp/app/js/controllers/query.js @@@ -21,8 -21,10 +21,11 @@@ KylinApp .controller('QueryCtrl', function ($scope, storage, $base64, $q, $location, $anchorScroll, $routeParams, QueryService, $modal, MessageService, $domUtilityService, $timeout, TableService, SweetAlert, VdmUtil) { $scope.mainPanel = 'query'; + if ($routeParams.queryPanel) { + $scope.mainPanel = $routeParams.queryPanel; + } $scope.rowsPerPage = 50000; + $scope.hasLimit = true; $scope.base64 = $base64; $scope.queryString = ""; $scope.queries = []; @@@ -433,10 -423,7 +432,9 @@@ }) - .controller('QueryResultCtrl', function ($scope, storage, $base64, $q, $location, $anchorScroll, $routeParams, QueryService, queryConfig) { + .controller('QueryResultCtrl', function ($scope, storage, $base64, $q, $location, $anchorScroll, $routeParams, QueryService, GraphService, kylinConfig) { + $scope.isAdminExportAllowed = kylinConfig.isAdminExportAllowed(); + $scope.isNonAdminExportAllowed = kylinConfig.isNonAdminExportAllowed(); - $scope.buildGraphMetadata = function (query) { if (!query.graph.show) { return; http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/js/services/kylinProperties.js ---------------------------------------------------------------------- diff --cc webapp/app/js/services/kylinProperties.js index 76d7763,e31dd6c..dc9b94d --- a/webapp/app/js/services/kylinProperties.js +++ b/webapp/app/js/services/kylinProperties.js @@@ -114,22 -114,22 +114,38 @@@ KylinApp.service('kylinConfig', functio } return true; } - ++ + this.isAdminExportAllowed = function(){ + var status = this.getProperty("kylin.web.export-allow-admin").trim(); + if(status!=='false'){ + return true; + } + return false; + } + this.isNonAdminExportAllowed = function(){ + var status = this.getProperty("kylin.web.export-allow-other").trim(); + if(status!=='false'){ + return true; + } + return false; + } ++ + this.getHiddenMeasures = function() { + var hide_measures = this.getProperty("kylin.web.hide-measures").replace(/\s/g,"").toUpperCase(); + return hide_measures.split(",") + } + + this.getQueryTimeout = function () { + var queryTimeout = parseInt(this.getProperty("kylin.web.query-timeout")); + if (isNaN(queryTimeout)) { + queryTimeout = 300000; + } + return queryTimeout; + } + this.isInitialized = function() { + return angular.isString(_config); - } ++ } }); http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/cubes/cube_detail.html ---------------------------------------------------------------------- diff --cc webapp/app/partials/cubes/cube_detail.html index 43772b4,38806e1..db1a874 --- a/webapp/app/partials/cubes/cube_detail.html +++ b/webapp/app/partials/cubes/cube_detail.html @@@ -26,15 -26,15 +26,15 @@@ <a href="" ng-click="cube.visiblePage='sql';getCubeSql(cube)">SQL</a> </li> <li class="{{cube.visiblePage=='json'? 'active':''}}" - ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(cube, 16) && !newAccess"> + ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, 16) && !newAccess"> <a href="" ng-click="cube.visiblePage='json';">JSON(Cube)</a> </li> - <li class="{{cube.visiblePage=='access'? 'active':''}}" - ng-if="!kylinConfig.isExternalAclEnabled()"> - <a href="" ng-click="cube.visiblePage='access';listAccess(cube, 'CubeInstance');">Access</a> - </li> + <!--<li class="{{cube.visiblePage=='access'? 'active':''}}"--> + <!--ng-if="!kylinConfig.isExternalAclEnabled()">--> + <!--<a href="" ng-click="cube.visiblePage='access';listAccess(cube, 'CubeInstance');">Access</a>--> + <!--</li>--> <li class="{{cube.visiblePage=='notification'? 'active':''}}" - ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(cube, 16) && !newAccess"> + ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, 16) && !newAccess"> <a href="" ng-click="cube.visiblePage='notification';getNotifyListString(cube);">Notification</a> </li> <li class="{{cube.visiblePage=='hbase'? 'active':''}}" http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/cubes/cubes.html ---------------------------------------------------------------------- diff --cc webapp/app/partials/cubes/cubes.html index 38c9342,3e7e961..8107730 --- a/webapp/app/partials/cubes/cubes.html +++ b/webapp/app/partials/cubes/cubes.html @@@ -84,13 -84,13 +84,13 @@@ <td> <div ng-click="$event.stopPropagation();" class="btn-group"> <button type="button" class="btn btn-default btn-xs dropdown-toggle" - data-toggle="dropdown" ng-click="listAccess(cube, 'CubeInstance')"> + data-toggle="dropdown"> Action <span class="ace-icon fa fa-caret-down icon-on-right"></span> </button> - <ul ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask,permissions.OPERATION.mask)" class="dropdown-menu" role="menu"> - <ul ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission(cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask)" class="dropdown-menu" role="menu" style="right:0;left:auto;"> - <li ng-if="cube.status!='READY' && userService.hasRole('ROLE_ADMIN') "> ++ <ul ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask,permissions.OPERATION.mask)" class="dropdown-menu" role="menu" style="right:0;left:auto;"> + <li ng-if="cube.status!='READY' && (userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"> <a ng-click="dropCube(cube)" tooltip="Drop the cube, related jobs and data permanently.">Drop</a></li> - <li ng-if="(userService.hasRole('ROLE_ADMIN') || hasPermission(cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"> + <li ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask)"> <a ng-click="cubeEdit(cube);">Edit</a></li> <li ng-if="cube.status!='DESCBROKEN'"><a ng-click="startJobSubmit(cube);">Build</a></li> <li ng-if="cube.status!='DESCBROKEN'"><a ng-click="startRefresh(cube)">Refresh</a></li> @@@ -106,12 -106,12 +106,12 @@@ </ul> </div> </td> - <td ng-if="userService.hasRole('ROLE_ADMIN')"> - <div ng-click="$event.stopPropagation();" class="btn-group"> - <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"> + <td > + <div ng-click="$event.stopPropagation();" class="btn-group" ng-if="userService.hasRole('ROLE_ADMIN') || hasPermission('cube',cube, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask)"> + <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" ng-click="listAccess(cube, 'CubeInstance')"> Action <span class="ace-icon fa fa-caret-down icon-on-right"></span> </button> - <ul class="dropdown-menu" role="menu"> + <ul class="dropdown-menu" role="menu" style="right:0;left:auto;"> <li ng-if="cube.status!='READY'"><a href="cubes/edit/{{cube.name}}/descriptionjson">Edit CubeDesc</a></li> <li><a href="cubes/view/{{cube.name}}/instancejson">View Cube</a></li> </ul> http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/models/models_tree.html ---------------------------------------------------------------------- diff --cc webapp/app/partials/models/models_tree.html index d8aae34,e0f25ff..4a91b00 --- a/webapp/app/partials/models/models_tree.html +++ b/webapp/app/partials/models/models_tree.html @@@ -49,10 -49,10 +49,10 @@@ <div class="pull-right" showonhoverparent style="display:none;" > <div ng-click="$event.stopPropagation();" class="btn-group"> - <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" ng-click="listModelAccess(model)"> + <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"> Action <span class="ace-icon fa fa-caret-down icon-on-right"></span> </button> - <ul class="dropdown-menu" role="menu" ng-if="(userService.hasRole('ROLE_ADMIN') || hasPermission('model',model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"> - <ul class="dropdown-menu" role="menu" style="right:0;left:auto;" ng-if="(userService.hasRole('ROLE_ADMIN') || hasPermission(model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask, permissions.OPERATION.mask))"> ++ <ul class="dropdown-menu" role="menu" style="right:0;left:auto;" ng-if="(userService.hasRole('ROLE_ADMIN') || hasPermission('model',model, permissions.ADMINISTRATION.mask, permissions.MANAGEMENT.mask))"> <li><a ng-click="editModel(model, false)" title="Edit Model" style="cursor:pointer;margin-right: 8px;" >Edit</a></li> <li><a ng-click="cloneModel(model)" title="Clone Model" style="cursor:pointer;margin-right: 8px;" >Clone </a></li> <li><a ng-click="dropModel(model)" title="Drop Model" style="cursor:pointer;margin-right: 8px;">Drop</a></li> http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/query/query_detail.html ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/tables/source_table_tree.html ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/4d50b269/webapp/app/partials/tables/table_detail.html ----------------------------------------------------------------------