http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/index.html ---------------------------------------------------------------------- diff --git a/webapp/app/index.html b/webapp/app/index.html index 36245f1..282567c 100644 --- a/webapp/app/index.html +++ b/webapp/app/index.html @@ -20,54 +20,54 @@ <!doctype html> <html id="ng-app"> <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> - <base href="/kylin/"> - <link rel="icon" href="image/favicon.ico" type="image/x-icon"> - <link rel="shortcut icon" href="image/favicon.ico" type="image/x-icon"> - <title>Kylin</title> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <base href="/kylin/"> + <link rel="icon" href="image/favicon.ico" type="image/x-icon"> + <link rel="shortcut icon" href="image/favicon.ico" type="image/x-icon"> + <title>Kylin</title> - <!-- ref:css css/styles.min.<%= buildNumber %>.css --> - <link rel="stylesheet" type="text/css" href="components/bootstrap/dist/css/bootstrap.min.css"> - <link rel="stylesheet" type="text/css" href="components/components-font-awesome/css/font-awesome.css"> + <!-- ref:css css/styles.min.<%= buildNumber %>.css --> + <link rel="stylesheet" type="text/css" href="components/bootstrap/dist/css/bootstrap.min.css"> + <link rel="stylesheet" type="text/css" href="components/components-font-awesome/css/font-awesome.css"> - <link rel="stylesheet" type="text/css" href="components/angular-tree-control/css/tree-control.css"> - <link rel="stylesheet" type="text/css" href="components/angular-tree-control/css/tree-control-attribute.css"> - <link rel="stylesheet" type="text/css" href="components/messenger/build/css/messenger.css"> - <link rel="stylesheet" type="text/css" href="components/messenger/build/css/messenger-theme-ice.css"> - <link rel="stylesheet" type="text/css" href="components/ng-grid/ng-grid.css"> - <link rel="stylesheet" type="text/css" href="components/angular-ui-grid/ui-grid.min.css"> - <link rel="stylesheet" type="text/css" href="components/chosen/chosen.css"> - <link rel="stylesheet" type="text/css" href="components/angular-chosen-localytics/chosen-spinner.css"> - <link rel="stylesheet" type="text/css" href="components/animate.css/animate.css"> - <link rel="stylesheet" type="text/css" href="components/nvd3/nv.d3.min.css"> + <link rel="stylesheet" type="text/css" href="components/angular-tree-control/css/tree-control.css"> + <link rel="stylesheet" type="text/css" href="components/angular-tree-control/css/tree-control-attribute.css"> + <link rel="stylesheet" type="text/css" href="components/messenger/build/css/messenger.css"> + <link rel="stylesheet" type="text/css" href="components/messenger/build/css/messenger-theme-ice.css"> + <link rel="stylesheet" type="text/css" href="components/ng-grid/ng-grid.css"> + <link rel="stylesheet" type="text/css" href="components/angular-ui-grid/ui-grid.min.css"> + <link rel="stylesheet" type="text/css" href="components/chosen/chosen.css"> + <link rel="stylesheet" type="text/css" href="components/angular-chosen-localytics/chosen-spinner.css"> + <link rel="stylesheet" type="text/css" href="components/animate.css/animate.css"> + <link rel="stylesheet" type="text/css" href="components/nvd3/nv.d3.min.css"> - <link rel="stylesheet" type="text/css" href="css/AdminLTE.css"> - <link rel="stylesheet" type="text/css" href="components/bootstrap-sweetalert/lib/sweet-alert.css"> - <link rel="stylesheet" type="text/css" href="components/angular-bootstrap-nav-tree/dist/abn_tree.css"> - <link rel="stylesheet" type="text/css" href="components/angular-toggle-switch/angular-toggle-switch.css"> - <link rel="stylesheet" type="text/css" href="components/angular-ui-select/dist/select.css"> - <link rel="stylesheet" type="text/css" href="components/angular-bootstrap-datetimepicker/src/css/datetimepicker.css"> + <link rel="stylesheet" type="text/css" href="css/AdminLTE.css"> + <link rel="stylesheet" type="text/css" href="components/bootstrap-sweetalert/lib/sweet-alert.css"> + <link rel="stylesheet" type="text/css" href="components/angular-bootstrap-nav-tree/dist/abn_tree.css"> + <link rel="stylesheet" type="text/css" href="components/angular-toggle-switch/angular-toggle-switch.css"> + <link rel="stylesheet" type="text/css" href="components/angular-ui-select/dist/select.css"> + <link rel="stylesheet" type="text/css" href="components/angular-bootstrap-datetimepicker/src/css/datetimepicker.css"> - <link rel="stylesheet/less" href="less/build.less"> - <!-- endref --> + <link rel="stylesheet/less" href="less/build.less"> + <!-- endref --> - <!-- This has to be at the top to make it works in IE --> - <!--[if lte IE 8]> - <script> - document.createElement('loading'); - document.createElement('pagination'); - </script> - <![endif]--> + <!-- This has to be at the top to make it works in IE --> + <!--[if lte IE 8]> + <script> + document.createElement('loading'); + document.createElement('pagination'); + </script> + <![endif]--> </head> <body ng-controller="PageCtrl"> <div class="navbar navbar-default navbar-fixed-top" ng-include="'partials/header.html'"></div> <div id="main" class="main-container"> - <div class="main-content"> - <div class="page-content" ng-view></div> - </div> + <div class="main-content"> + <div class="page-content" ng-view></div> + </div> </div> <footer class="navbar-fixed-bottom navbar-footer" ng-include="'partials/footer.html'"></footer> @@ -205,39 +205,39 @@ <!--template--> <!-- static template for cube save/update result notification --> <script type="text/ng-template" id="cubeResultError.html"> - <div class="callout"> - <h4>Error Message</h4> - <p>{{text}}</p> - </div> - <div class="callout callout-danger"> - <h4>Cube Schema</h4> - <pre>{{schema}}</pre> - </div> + <div class="callout"> + <h4>Error Message</h4> + <p>{{text}}</p> + </div> + <div class="callout callout-danger"> + <h4>Cube Schema</h4> + <pre>{{schema}}</pre> + </div> </script> <script type="text/ng-template" id="cubeResultSuccess.html"> - <div class="callout callout-info"> - <p>{{text}}</p> - </div> + <div class="callout callout-info"> + <p>{{text}}</p> + </div> </script> <!--template--> <!-- static template for cube save/update result notification --> <script type="text/ng-template" id=" modelResultError.html"> - <div class="callout callout-info"> - <h4>Error Message</h4> - <p>{{text}}</p> - </div> - <div class="callout callout-danger"> - <h4>Model Schema</h4> - <pre>{{schema}}</pre> - </div> + <div class="callout callout-info"> + <h4>Error Message</h4> + <p>{{text}}</p> + </div> + <div class="callout callout-danger"> + <h4>Model Schema</h4> + <pre>{{schema}}</pre> + </div> </script> <script type="text/ng-template" id="modelResultSuccess.html"> - <div class="callout callout-info"> - <p>{{text}}</p> - </div> + <div class="callout callout-info"> + <p>{{text}}</p> + </div> </script> <!-- static template for cube save/update result notification -->
http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/js/app.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/app.js b/webapp/app/js/app.js index 3691b82..3708037 100644 --- a/webapp/app/js/app.js +++ b/webapp/app/js/app.js @@ -14,7 +14,7 @@ * 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. -*/ + */ //Kylin Application Module -KylinApp = angular.module('kylin', ['ngRoute', 'ngResource', 'ngGrid', 'ui.grid', 'ui.grid.resizeColumns', 'ui.bootstrap', 'ui.ace', 'base64', 'angularLocalStorage', 'localytics.directives', 'treeControl', 'nvd3ChartDirectives','ngLoadingRequest','oitozero.ngSweetAlert','ngCookies','angular-underscore', 'ngAnimate', 'ui.sortable','angularBootstrapNavTree','toggle-switch','ngSanitize','ui.select','ui.bootstrap.datetimepicker']); +KylinApp = angular.module('kylin', ['ngRoute', 'ngResource', 'ngGrid', 'ui.grid', 'ui.grid.resizeColumns', 'ui.bootstrap', 'ui.ace', 'base64', 'angularLocalStorage', 'localytics.directives', 'treeControl', 'nvd3ChartDirectives', 'ngLoadingRequest', 'oitozero.ngSweetAlert', 'ngCookies', 'angular-underscore', 'ngAnimate', 'ui.sortable', 'angularBootstrapNavTree', 'toggle-switch', 'ngSanitize', 'ui.select', 'ui.bootstrap.datetimepicker']); http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/js/config.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/config.js b/webapp/app/js/config.js index 46fdecd..ce4531e 100644 --- a/webapp/app/js/config.js +++ b/webapp/app/js/config.js @@ -39,61 +39,61 @@ var Config = { // Angular module to load routes. KylinApp.config(function ($routeProvider, $httpProvider, $locationProvider, $logProvider) { - // Set debug to true by default. - if (angular.isUndefined(Config.debug) || Config.debug !== false) { - Config.debug = true; - } - - // Set development to true by default. - if (angular.isUndefined(Config.development) || Config.development !== false) { - Config.development = true; - } - - // Disable logging if debug is off. - if (Config.debug === false) { - $logProvider.debugEnabled(false); - } + // Set debug to true by default. + if (angular.isUndefined(Config.debug) || Config.debug !== false) { + Config.debug = true; + } - // Loop over routes and add to router. - angular.forEach(Config.routes, function (route) { - $routeProvider.when(route.url, route.params).otherwise({redirectTo:'/'}); - }); + // Set development to true by default. + if (angular.isUndefined(Config.development) || Config.development !== false) { + Config.development = true; + } - // Set to use HTML5 mode, which removes the #! from modern browsers. - $locationProvider.html5Mode(true); - - //configure $http to view a login whenever a 401 unauthorized response arrives - $httpProvider.responseInterceptors.push(function ($rootScope, $q) { - return function (promise) { - return promise.then( - //success -> don't intercept - function (response) { - return response; - }, - //error -> if 401 save the request and broadcast an event - function (response) { - if (response.status === 401 && !(response.config.url.indexOf("user/authentication") !== -1 && response.config.method === 'POST')) { - var deferred = $q.defer(), - req = { - config: response.config, - deferred: deferred - }; - $rootScope.requests401.push(req); - $rootScope.$broadcast('event:loginRequired'); - return deferred.promise; - } + // Disable logging if debug is off. + if (Config.debug === false) { + $logProvider.debugEnabled(false); + } - if (response.status === 403) { - $rootScope.$broadcast('event:forbidden', response.data.exception); + // Loop over routes and add to router. + angular.forEach(Config.routes, function (route) { + $routeProvider.when(route.url, route.params).otherwise({redirectTo: '/'}); + }); + + // Set to use HTML5 mode, which removes the #! from modern browsers. + $locationProvider.html5Mode(true); + + //configure $http to view a login whenever a 401 unauthorized response arrives + $httpProvider.responseInterceptors.push(function ($rootScope, $q) { + return function (promise) { + return promise.then( + //success -> don't intercept + function (response) { + return response; + }, + //error -> if 401 save the request and broadcast an event + function (response) { + if (response.status === 401 && !(response.config.url.indexOf("user/authentication") !== -1 && response.config.method === 'POST')) { + var deferred = $q.defer(), + req = { + config: response.config, + deferred: deferred + }; + $rootScope.requests401.push(req); + $rootScope.$broadcast('event:loginRequired'); + return deferred.promise; + } + + if (response.status === 403) { + $rootScope.$broadcast('event:forbidden', response.data.exception); + } + + return $q.reject(response); } - - return $q.reject(response); - } - ); - }; - }); - httpHeaders = $httpProvider.defaults.headers; -}) + ); + }; + }); + httpHeaders = $httpProvider.defaults.headers; + }) .run(function ($location) { if (angular.isUndefined(Config.uri)) { http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/js/listeners.js ---------------------------------------------------------------------- diff --git a/webapp/app/js/listeners.js b/webapp/app/js/listeners.js index ab32a0d..e5c40fb 100644 --- a/webapp/app/js/listeners.js +++ b/webapp/app/js/listeners.js @@ -16,7 +16,7 @@ * limitations under the License. */ -KylinApp.run(function ($rootScope, $http, $location, UserService, AuthenticationService, MessageService, $cookieStore,ProjectService,ProjectModel,AccessService,SweetAlert,loadingRequest) { +KylinApp.run(function ($rootScope, $http, $location, UserService, AuthenticationService, MessageService, $cookieStore, ProjectService, ProjectModel, AccessService, SweetAlert, loadingRequest) { $rootScope.permissions = { READ: {name: 'CUBE QUERY', value: 'READ', mask: 1}, @@ -28,17 +28,17 @@ KylinApp.run(function ($rootScope, $http, $location, UserService, Authentication $rootScope.$on("$routeChangeStart", function () { AuthenticationService.ping(function (data) { UserService.setCurUser(data); - if(!data.userDetails){ + if (!data.userDetails) { $location.path(UserService.getHomePage()); - }else{ + } else { //get project info when login - if (!ProjectModel.projects.length&&!$rootScope.userAction.islogout) { + if (!ProjectModel.projects.length && !$rootScope.userAction.islogout) { loadingRequest.show(); ProjectService.listReadable({}, function (projects) { loadingRequest.hide(); - if(!projects.length){ + if (!projects.length) { return; } @@ -48,15 +48,15 @@ KylinApp.run(function ($rootScope, $http, $location, UserService, Authentication }); ProjectModel.setProjects(_projects); var projectInCookie = $cookieStore.get("project"); - if(projectInCookie&&ProjectModel.getIndex(projectInCookie)==-1){ + if (projectInCookie && ProjectModel.getIndex(projectInCookie) == -1) { projectInCookie = null; } var selectedProject = projectInCookie != null ? projectInCookie : null; - if(projectInCookie!=null){ + if (projectInCookie != null) { selectedProject = projectInCookie; - }else if(UserService.hasRole('ROLE_ADMIN')){ + } else if (UserService.hasRole('ROLE_ADMIN')) { selectedProject = null; - }else{ + } else { selectedProject = ProjectModel.projects[0].name } @@ -70,7 +70,7 @@ KylinApp.run(function ($rootScope, $http, $location, UserService, Authentication }); }); - },function(e){ + }, function (e) { loadingRequest.hide(); $location.path(UserService.getHomePage()); }); http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/app.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/app.less b/webapp/app/less/app.less index cc52b41..5aa2a25 100644 --- a/webapp/app/less/app.less +++ b/webapp/app/less/app.less @@ -785,25 +785,25 @@ input:-moz-placeholder { text-overflow: ellipsis; } -.dropdown-menu{ - z-index:9999; +.dropdown-menu { + z-index: 9999; } -.panel-group .panel{ +.panel-group .panel { overflow: auto !important; } -.middle-popover .popover{ +.middle-popover .popover { width: 360px; max-width: 360px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.428571429; - color:#808080; + color: #808080; background-color: #ffffff; } -.middle-popover .popover-content, .large-popover .popover-content{ +.middle-popover .popover-content, .large-popover .popover-content { font-size: 13px; font-weight: normal; line-height: 18px; @@ -812,19 +812,21 @@ input:-moz-placeholder { word-break: normal; } -.middle-popover .popover-content ol, .large-popover .popover-content ol{ +.middle-popover .popover-content ol, .large-popover .popover-content ol { -webkit-padding-start: 20px; padding-start: 20px; } -.large-popover .popover{ + +.large-popover .popover { width: 600px; max-width: 600px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; - color:#808080; + color: #808080; line-height: 1.428571429; background-color: #ffffff; } + pre { white-space: pre-wrap; white-space: -moz-pre-wrap; http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/build.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/build.less b/webapp/app/less/build.less index be8f7df..4271bac 100644 --- a/webapp/app/less/build.less +++ b/webapp/app/less/build.less @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - @import 'layout.less'; @import 'navbar.less'; @import 'home.less'; http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/component.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/component.less b/webapp/app/less/component.less index 929006f..e23859d 100644 --- a/webapp/app/less/component.less +++ b/webapp/app/less/component.less @@ -16,278 +16,365 @@ */ /** table related **/ -.dataTables_wrapper>.row:first-child { +.dataTables_wrapper > .row:first-child { padding-top: 12px; padding-bottom: 12px; background-color: #EFF3F8; } -.dataTables_wrapper>.row { - margin: 0!important; +.dataTables_wrapper > .row { + margin: 0 !important; } /** utilities **/ .dark { color: #333333 !important; } + .white { color: #ffffff !important; } + .red { color: #dd5a43 !important; } + .red2 { color: #e08374 !important; } + .light-red { color: #ff7777 !important; } + .blue { color: #478fca !important; } + .light-blue { color: #93cbf9 !important; } + .green { color: #69aa46 !important; } + .light-green { color: #b0d877 !important; } + .orange { color: #ff892a !important; } + .orange2 { color: #feb902 !important; } + .light-orange { color: #fcac6f !important; } + .purple { color: #a069c3 !important; } + .pink { color: #c6699f !important; } + .pink2 { color: #d6487e !important; } + .brown { color: #a52a2a !important; } + .grey { color: #777777 !important; } + .light-grey { color: #bbbbbb !important; } + .bigger-110 { font-size: 110% !important; } + .bigger-120 { font-size: 120% !important; } + .bigger-130 { font-size: 130% !important; } + .bigger-140 { font-size: 140% !important; } + .bigger-150 { font-size: 150% !important; } + .bigger-160 { font-size: 160% !important; } + .bigger-170 { font-size: 170% !important; } + .bigger-180 { font-size: 180% !important; } + .bigger-190 { font-size: 190% !important; } + .bigger-200 { font-size: 200% !important; } + .bigger-210 { font-size: 210% !important; } + .bigger-220 { font-size: 220% !important; } + .bigger-230 { font-size: 230% !important; } + .bigger-240 { font-size: 240% !important; } + .bigger-250 { font-size: 250% !important; } + .bigger-260 { font-size: 260% !important; } + .bigger-270 { font-size: 270% !important; } + .bigger-280 { font-size: 280% !important; } + .bigger-290 { font-size: 290% !important; } + .bigger-300 { font-size: 300% !important; } + .bigger-115 { font-size: 115% !important; } + .bigger-125 { font-size: 125% !important; } + .bigger-175 { font-size: 175% !important; } + .bigger-225 { font-size: 225% !important; } + .bigger-275 { font-size: 275% !important; } + .smaller-90 { font-size: 90% !important; } + .smaller-80 { font-size: 80% !important; } + .smaller-70 { font-size: 70% !important; } + .smaller-60 { font-size: 60% !important; } + .smaller-50 { font-size: 50% !important; } + .smaller-40 { font-size: 40% !important; } + .smaller-30 { font-size: 30% !important; } + .smaller-20 { font-size: 20% !important; } + .smaller-75 { font-size: 75% !important; } + .width-20 { width: 20% !important; } + .width-25 { width: 25% !important; } + .width-30 { width: 30% !important; } + .width-35 { width: 35% !important; } + .width-40 { width: 40% !important; } + .width-45 { width: 45% !important; } + .width-50 { width: 50% !important; } + .width-55 { width: 55% !important; } + .width-60 { width: 60% !important; } + .width-65 { width: 65% !important; } + .width-70 { width: 70% !important; } + .width-75 { width: 75% !important; } + .width-80 { width: 80% !important; } + .width-85 { width: 85% !important; } + .width-90 { width: 90% !important; } + .width-95 { width: 95% !important; } + .width-100 { width: 100% !important; } + .width-75 { width: 75% !important; } + .width-25 { width: 25% !important; } + .width-auto { width: auto !important; } + .height-auto { height: auto !important; } + .no-padding { padding: 0 !important; } + .no-padding-bottom { padding-bottom: 0 !important; } + .no-padding-top { padding-top: 0 !important; } + .no-padding-left { padding-left: 0 !important; } + .no-padding-right { padding-right: 0 !important; } + .no-margin { margin: 0 !important; } + .no-margin-bottom { margin-bottom: 0 !important; } + .no-margin-top { margin-top: 0 !important; } + .no-margin-left { margin-left: 0 !important; } + .no-margin-right { margin-right: 0 !important; } + .no-border { border-width: 0; } + .no-border-bottom { border-bottom-width: 0; } + .no-border-top { border-top-width: 0; } + .no-border-left { border-left-width: 0; } + .no-border-right { border-right-width: 0; } @@ -304,25 +391,25 @@ span.input-icon { .nav-search .nav-search-input { border: 1px solid #6fb3e0; width: 152px; - height: 28px!important; + height: 28px !important; padding-top: 2px; padding-bottom: 2px; - border-radius: 4px!important; + border-radius: 4px !important; font-size: 13px; line-height: 1.3; - color: #666!important; + color: #666 !important; z-index: 11; -webkit-transition: width ease .15s; -o-transition: width ease .15s; transition: width ease .15s; } -.input-icon>input { +.input-icon > input { padding-left: 24px; padding-right: 6px; } -.input-icon.input-icon-right>input { +.input-icon.input-icon-right > input { padding-left: 6px; padding-right: 24px; } @@ -331,7 +418,7 @@ span.input-icon { text-align: center; } -.input-icon>.ace-icon { +.input-icon > .ace-icon { padding: 0 3px; z-index: 2; position: absolute; @@ -344,7 +431,7 @@ span.input-icon { font-size: 16px; } -.input-icon.input-icon-right>.ace-icon { +.input-icon.input-icon-right > .ace-icon { left: auto; right: 3px; } @@ -360,6 +447,7 @@ span.input-icon { margin: 12px 0; border-top-color: rgba(0, 0, 0, 0.11); } + .hr-double { height: 3px; border-top: 1px solid #E3E3E3; @@ -367,83 +455,103 @@ span.input-icon { border-top-color: rgba(0, 0, 0, 0.11); border-bottom-color: rgba(0, 0, 0, 0.11); } + .hr.dotted, .hr-dotted { border-style: dotted; } + .hr-32, .hr32 { margin: 32px 0; } + .hr-30, .hr30 { margin: 30px 0; } + .hr-28, .hr28 { margin: 28px 0; } + .hr-26, .hr26 { margin: 26px 0; } + .hr-24, .hr24 { margin: 24px 0; } + .hr-22, .hr22 { margin: 22px 0; } + .hr-20, .hr20 { margin: 20px 0; } + .hr-18, .hr18 { margin: 18px 0; } + .hr-16, .hr16 { margin: 16px 0; } + .hr-14, .hr14 { margin: 14px 0; } + .hr-12, .hr12 { margin: 12px 0; } + .hr-10, .hr10 { margin: 10px 0; } + .hr-8, .hr8 { margin: 8px 0; } + .hr-6, .hr6 { margin: 6px 0; } + .hr-4, .hr4 { margin: 4px 0; } + .hr-2, .hr2 { margin: 2px 0; } + .space { max-height: 1px; min-height: 1px; overflow: hidden; margin: 12px 0; } + [class*="vspace-"] { display: none; } + .space-32 { max-height: 1px; min-height: 1px; @@ -451,6 +559,7 @@ span.input-icon { margin: 12px 0; margin: 32px 0 31px; } + [class*="vspace-32"] { max-height: 1px; min-height: 1px; @@ -458,6 +567,7 @@ span.input-icon { margin: 12px 0; margin: 32px 0 31px 0; } + .space-30 { max-height: 1px; min-height: 1px; @@ -465,6 +575,7 @@ span.input-icon { margin: 12px 0; margin: 30px 0 29px; } + [class*="vspace-30"] { max-height: 1px; min-height: 1px; @@ -472,6 +583,7 @@ span.input-icon { margin: 12px 0; margin: 30px 0 29px 0; } + .space-28 { max-height: 1px; min-height: 1px; @@ -479,6 +591,7 @@ span.input-icon { margin: 12px 0; margin: 28px 0 27px; } + [class*="vspace-28"] { max-height: 1px; min-height: 1px; @@ -486,6 +599,7 @@ span.input-icon { margin: 12px 0; margin: 28px 0 27px 0; } + .space-26 { max-height: 1px; min-height: 1px; @@ -493,6 +607,7 @@ span.input-icon { margin: 12px 0; margin: 26px 0 25px; } + [class*="vspace-26"] { max-height: 1px; min-height: 1px; @@ -500,6 +615,7 @@ span.input-icon { margin: 12px 0; margin: 26px 0 25px 0; } + .space-24 { max-height: 1px; min-height: 1px; @@ -507,6 +623,7 @@ span.input-icon { margin: 12px 0; margin: 24px 0 23px; } + [class*="vspace-24"] { max-height: 1px; min-height: 1px; @@ -514,6 +631,7 @@ span.input-icon { margin: 12px 0; margin: 24px 0 23px 0; } + .space-22 { max-height: 1px; min-height: 1px; @@ -521,6 +639,7 @@ span.input-icon { margin: 12px 0; margin: 22px 0 21px; } + [class*="vspace-22"] { max-height: 1px; min-height: 1px; @@ -528,6 +647,7 @@ span.input-icon { margin: 12px 0; margin: 22px 0 21px 0; } + .space-20 { max-height: 1px; min-height: 1px; @@ -535,6 +655,7 @@ span.input-icon { margin: 12px 0; margin: 20px 0 19px; } + [class*="vspace-20"] { max-height: 1px; min-height: 1px; @@ -542,6 +663,7 @@ span.input-icon { margin: 12px 0; margin: 20px 0 19px 0; } + .space-18 { max-height: 1px; min-height: 1px; @@ -549,6 +671,7 @@ span.input-icon { margin: 12px 0; margin: 18px 0 17px; } + [class*="vspace-18"] { max-height: 1px; min-height: 1px; @@ -556,6 +679,7 @@ span.input-icon { margin: 12px 0; margin: 18px 0 17px 0; } + .space-16 { max-height: 1px; min-height: 1px; @@ -563,6 +687,7 @@ span.input-icon { margin: 12px 0; margin: 16px 0 15px; } + [class*="vspace-16"] { max-height: 1px; min-height: 1px; @@ -570,6 +695,7 @@ span.input-icon { margin: 12px 0; margin: 16px 0 15px 0; } + .space-14 { max-height: 1px; min-height: 1px; @@ -577,6 +703,7 @@ span.input-icon { margin: 12px 0; margin: 14px 0 13px; } + [class*="vspace-14"] { max-height: 1px; min-height: 1px; @@ -584,6 +711,7 @@ span.input-icon { margin: 12px 0; margin: 14px 0 13px 0; } + .space-12 { max-height: 1px; min-height: 1px; @@ -591,6 +719,7 @@ span.input-icon { margin: 12px 0; margin: 12px 0 11px; } + [class*="vspace-12"] { max-height: 1px; min-height: 1px; @@ -598,6 +727,7 @@ span.input-icon { margin: 12px 0; margin: 12px 0 11px 0; } + .space-10 { max-height: 1px; min-height: 1px; @@ -605,6 +735,7 @@ span.input-icon { margin: 12px 0; margin: 10px 0 9px; } + [class*="vspace-10"] { max-height: 1px; min-height: 1px; @@ -612,6 +743,7 @@ span.input-icon { margin: 12px 0; margin: 10px 0 9px 0; } + .space-8 { max-height: 1px; min-height: 1px; @@ -619,6 +751,7 @@ span.input-icon { margin: 12px 0; margin: 8px 0 7px; } + [class*="vspace-8"] { max-height: 1px; min-height: 1px; @@ -626,6 +759,7 @@ span.input-icon { margin: 12px 0; margin: 8px 0 7px 0; } + .space-6 { max-height: 1px; min-height: 1px; @@ -633,6 +767,7 @@ span.input-icon { margin: 12px 0; margin: 6px 0 5px; } + [class*="vspace-6"] { max-height: 1px; min-height: 1px; @@ -640,6 +775,7 @@ span.input-icon { margin: 12px 0; margin: 6px 0 5px 0; } + .space-4 { max-height: 1px; min-height: 1px; @@ -647,6 +783,7 @@ span.input-icon { margin: 12px 0; margin: 4px 0 3px; } + [class*="vspace-4"] { max-height: 1px; min-height: 1px; @@ -654,6 +791,7 @@ span.input-icon { margin: 12px 0; margin: 4px 0 3px 0; } + .space-2 { max-height: 1px; min-height: 1px; @@ -661,6 +799,7 @@ span.input-icon { margin: 12px 0; margin: 2px 0 1px; } + [class*="vspace-2"] { max-height: 1px; min-height: 1px; @@ -668,6 +807,7 @@ span.input-icon { margin: 12px 0; margin: 2px 0 1px 0; } + .space-0, [class*="vspace-0"] { max-height: 1px; @@ -676,21 +816,25 @@ span.input-icon { margin: 12px 0; margin: 0; } + @media only screen and (max-width: 479px) { [class*="vspace-"][class*="-xs"] { display: block; } } + @media only screen and (max-width: 767px) { [class*="vspace-"][class*="-sm"] { display: block; } } + @media only screen and (max-width: 991px) { [class*="vspace-"][class*="-md"] { display: block; } } + @media only screen and (max-width: 1199px) { [class*="vspace-"][class*="-lg"] { display: block; @@ -706,11 +850,13 @@ span.input-icon { margin: 0; position: relative; } + .wizard-steps li { display: table-cell; text-align: center; width: 1%; } + .wizard-steps li .step { border: 5px solid #ced1d6; color: #546474; @@ -725,6 +871,7 @@ span.input-icon { line-height: 30px; text-align: center; } + .wizard-steps li:before { display: block; content: ""; @@ -737,20 +884,24 @@ span.input-icon { top: 21px; z-index: 1; } + .wizard-steps li:last-child:before { max-width: 50%; width: 50%; } + .wizard-steps li:first-child:before { max-width: 51%; left: 50%; } + .wizard-steps li.active:before, .wizard-steps li.complete:before, .wizard-steps li.active .step, .wizard-steps li.complete .step { border-color: #5293c4; } + .wizard-steps li.complete .step { cursor: default; color: #FFF; @@ -758,6 +909,7 @@ span.input-icon { -o-transition: transform ease 0.1s; transition: transform ease 0.1s; } + .wizard-steps li.complete .step:before { display: block; position: absolute; @@ -775,6 +927,7 @@ span.input-icon { font-size: 17px; color: #87ba21; } + .wizard-steps li.complete:hover .step { -moz-transform: scale(1.1); -webkit-transform: scale(1.1); @@ -783,9 +936,11 @@ span.input-icon { transform: scale(1.1); border-color: #80afd4; } + .wizard-steps li.complete:hover:before { border-color: #80afd4; } + .wizard-steps li .title { display: block; margin-top: 4px; @@ -797,24 +952,30 @@ span.input-icon { table-layout: fixed; word-wrap: break-word; } + .wizard-steps li.complete .title, .wizard-steps li.active .title { color: #2b3d53; } + .step-content { position: relative; } + .step-content .step-pane { display: none; min-height: 200px; padding: 4px 8px 12px; } + .step-content .step-pane.active { display: block; } + .wizard-actions { text-align: right; } + @media only screen and (max-width: 767px) { .wizard-steps li .step { width: 30px; @@ -822,37 +983,43 @@ span.input-icon { line-height: 24px; border-width: 3px; } + .wizard-steps li:before, .wizard-steps li:after { border-width: 3px; } + .wizard-steps li.complete .step:before { line-height: 24px; font-size: 13px; } + .wizard-steps li:before { top: 16px; } + .step-content .step-pane { padding: 4px 4px 6px; min-height: 150px; } } -.progress-bar-inverse{ + +.progress-bar-inverse { background-color: #000000; } -.progress-bar-pending{ + +.progress-bar-pending { background-color: #C6C41D; } .sort-item { - padding: 2px; - width: 50px; - height: 20px; - cursor: move; + padding: 2px; + width: 50px; + height: 20px; + cursor: move; } -.cube-dimension .dl-horizontal{ +.cube-dimension .dl-horizontal { margin-top: 0px !important; margin-bottom: 0px !important; } @@ -863,12 +1030,15 @@ span.input-icon { border-radius: 3px; border: 1px solid #CCCCCC; } + .chosen-container-single .chosen-single span { padding-top: 2px; } + .chosen-container-single .chosen-single div b { margin-top: 2px; } + .chosen-container-active .chosen-single, .chosen-container-active.chosen-with-drop .chosen-single { border-color: #ccc; @@ -879,14 +1049,13 @@ span.input-icon { box-shadow: 0 0 8px rgba(82, 168, 236, .6) } - //override callout info in AdinLTE.css .callout { - margin: 0 0 20px 0 !important; - padding: 15px 30px 15px 15px !important; - border-left: 5px solid #eee !important; - color: black !important; - } + margin: 0 0 20px 0 !important; + padding: 15px 30px 15px 15px !important; + border-left: 5px solid #eee !important; + color: black !important; +} .callout.callout-info { background-color: #f0f7fd !important; @@ -895,8 +1064,8 @@ span.input-icon { } .callout.callout-danger { - background-color: #fcf2f2 !important; - border-color: #dFb5b4 !important; + background-color: #fcf2f2 !important; + border-color: #dFb5b4 !important; color: black !important; } @@ -906,18 +1075,18 @@ span.input-icon { color: black !important; } -ul.messenger-theme-ice .messenger-message{ - color:#666667 !important; +ul.messenger-theme-ice .messenger-message { + color: #666667 !important; } -.messenger-message.alert{ + +.messenger-message.alert { background-color: #f6f6f6 !important; } -.model-dimension-edit .chosen-container{ - width:100% !important; +.model-dimension-edit .chosen-container { + width: 100% !important; } - //overwrite style for abn-tree .abn-tree-animate-enter, li.abn-tree-row.ng-enter { @@ -925,12 +1094,13 @@ li.abn-tree-row.ng-enter { position: relative; display: block; opacity: 0; - max-height:0px; + max-height: 0px; } + .abn-tree-animate-enter.abn-tree-animate-enter-active, -li.abn-tree-row.ng-enter-active{ +li.abn-tree-row.ng-enter-active { opacity: 1; - max-height:30px; + max-height: 30px; } .abn-tree-animate-leave, @@ -938,65 +1108,69 @@ li.abn-tree-row.ng-leave { transition: 200ms linear all; position: relative; display: block; - height:30px; + height: 30px; max-height: 30px; opacity: 1; } + .abn-tree-animate-leave.abn-tree-animate-leave-active, li.abn-tree-row.ng-leave-active { height: 0px; - max-height:0px; + max-height: 0px; opacity: 0; } - /* ------------------------------------------ Angular 1.2.0 Animation */ - -.abn-tree-animate.ng-enter{ +.abn-tree-animate.ng-enter { } -.abn-tree-animate.ng-enter{ + +.abn-tree-animate.ng-enter { } -.abn-tree .indented { +.abn-tree .indented { font-size: 13px; color: #3a87ad; } -ul.abn-tree li.abn-tree-row a{ - word-break: break-all; + +ul.abn-tree li.abn-tree-row a { + word-break: break-all; } -.model-design .btn-box-tool{ + +.model-design .btn-box-tool { font-size: 13px !important; } -.dropdown-menu a{ + +.dropdown-menu a { cursor: pointer; } -.box-2px{ - border-top:solid 2px #3c8dbc !important; +.box-2px { + border-top: solid 2px #3c8dbc !important; } -.abn-tree i.indented{ - font-size:14px !important; +.abn-tree i.indented { + font-size: 14px !important; } //form validate -.has-feedback{ +.has-feedback { } -.highlight-bule{ - color:#428bca !important; + +.highlight-bule { + color: #428bca !important; } -.sweet-alert .lead.text-muted{ - word-break:break-all; +.sweet-alert .lead.text-muted { + word-break: break-all; } -.modal-body.streaming-source .ace_editor{ +.modal-body.streaming-source .ace_editor { height: 600px !important; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/home.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/home.less b/webapp/app/less/home.less index ed7a0a4..e123976 100644 --- a/webapp/app/less/home.less +++ b/webapp/app/less/home.less @@ -18,7 +18,7 @@ /** Home page style **/ .bg-holder { position: absolute; - top:0; + top: 0; left: 0; width: 100%; } @@ -80,7 +80,7 @@ } /** Login page **/ -.login-backgroud{ +.login-backgroud { background-color: #FFF; } @@ -89,7 +89,7 @@ margin: 0 auto; } -.mylogin-body{ +.mylogin-body { margin-top: 100px; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/layout.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/layout.less b/webapp/app/less/layout.less index 2553ab2..d9501f2 100644 --- a/webapp/app/less/layout.less +++ b/webapp/app/less/layout.less @@ -15,15 +15,16 @@ * limitations under the License. */ -.navbar-fixed-top+.main-container { +.navbar-fixed-top + .main-container { padding-top: 45px; } -body{ +body { overflow: auto !important; min-width: 960px; } + .main-container { padding-bottom: 45px; min-width: 960px; http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/less/navbar.less ---------------------------------------------------------------------- diff --git a/webapp/app/less/navbar.less b/webapp/app/less/navbar.less index d56b98a..b3e4eeb 100644 --- a/webapp/app/less/navbar.less +++ b/webapp/app/less/navbar.less @@ -46,48 +46,49 @@ padding-right: 12px; } -@media only screen and (max-height: 320px){ +@media only screen and (max-height: 320px) { .navbar-fixed-top .navbar-collapse { max-height: 200px; } } -@media only screen and (max-height: 360px){ +@media only screen and (max-height: 360px) { .navbar-fixed-top .navbar-collapse { max-height: 240px; } } -@media only screen and (max-height: 400px){ +@media only screen and (max-height: 400px) { .navbar-fixed-top .navbar-collapse { max-height: 280px; } } -@media only screen and (max-width: 991px){ +@media only screen and (max-width: 991px) { .navbar .navbar-nav { margin: 0 -6px; } } -@media only screen and (max-width: 991px){ - .navbar .navbar-nav>li:first-child { +@media only screen and (max-width: 991px) { + .navbar .navbar-nav > li:first-child { border-top-width: 0; } } -@media only screen and (max-width: 991px){ - .navbar .navbar-nav>li, .navbar .navbar-nav>li:first-child { + +@media only screen and (max-width: 991px) { + .navbar .navbar-nav > li, .navbar .navbar-nav > li:first-child { border-width: 1px 0 0; } } -@media only screen and (max-width: 991px){ - .navbar .navbar-nav .dropdown-menu>li>a { - color: #FFF!important; +@media only screen and (max-width: 991px) { + .navbar .navbar-nav .dropdown-menu > li > a { + color: #FFF !important; } } -@media only screen and (max-width: 991px){ +@media only screen and (max-width: 991px) { .navbar .navbar-nav .dropdown-menu { float: none; position: relative; @@ -97,24 +98,24 @@ } } -@media only screen and (max-width: 767px){ +@media only screen and (max-width: 767px) { .user-menu.dropdown-close.dropdown-menu-right { - right: 0!important; + right: 0 !important; } } -.navbar .navbar-nav>li:first-child { +.navbar .navbar-nav > li:first-child { border-width: 0 1px; } -.navbar .navbar-nav>li { - border: 1px solid rgba(0,0,0,.2); +.navbar .navbar-nav > li { + border: 1px solid rgba(0, 0, 0, .2); border-width: 0 1px 0 0; } -.navbar .navbar-nav>li.open>a, .navbar .navbar-nav>li>a:focus, .navbar .navbar-nav>li>a:hover { - background-color: rgba(0,0,0,.1)!important; - color: #fff!important; +.navbar .navbar-nav > li.open > a, .navbar .navbar-nav > li > a:focus, .navbar .navbar-nav > li > a:hover { + background-color: rgba(0, 0, 0, .1) !important; + color: #fff !important; } .navbar .navbar-brand:focus, .navbar .navbar-brand:hover { @@ -130,38 +131,42 @@ height: auto; } -.navbar .navbar-nav>li>a { +.navbar .navbar-nav > li > a { padding-top: 12px; padding-bottom: 11px; height: 45px; background-color: transparent; font-size: 13px; color: #fff; - text-shadow: 0 1px 0 rgba(0,0,0,.25); + text-shadow: 0 1px 0 rgba(0, 0, 0, .25); } -.navbar-nav:not(.navbar-right)> li > a { +.navbar-nav:not(.navbar-right) > li > a { font-size: 16px !important; } -.navbar-nav> li.purple > a { + +.navbar-nav > li.purple > a { background-color: #892e65; } -.navbar-nav> li.purple > a:link { + +.navbar-nav > li.purple > a:link { + background-color: #892e65 !important; +} + +.navbar-nav > li.purple > a:visited { background-color: #892e65 !important; - } -.navbar-nav> li.purple > a:visited { - background-color: #892e65 !important; } -.navbar-nav>li.purple>a:hover { - background-color: #762c59 !important; + +.navbar-nav > li.purple > a:hover { + background-color: #762c59 !important; } -.navbar-nav> li.green > a { +.navbar-nav > li.green > a { background-color: #2e8965; } -.navbar-nav>li.green>a:hover { - background-color: #2c7659 !important; +.navbar-nav > li.green > a:hover { + background-color: #2c7659 !important; } .user-info { @@ -195,11 +200,11 @@ margin-left: 7px; } -.navbar .navbar-nav>li>.dropdown-menu>li>a { +.navbar .navbar-nav > li > .dropdown-menu > li > a { line-height: 2; } -.dropdown-menu>li>a { +.dropdown-menu > li > a { font-size: 13px; padding-left: 11px; padding-right: 11px; @@ -207,7 +212,7 @@ margin-top: 1px; } -.user-menu>li>a { +.user-menu > li > a { padding: 4px 12px; } @@ -215,7 +220,8 @@ left: auto; right: -5px; } -.navbar-nav>li>.dropdown-menu { + +.navbar-nav > li > .dropdown-menu { z-index: 1033; } http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/partials/footer.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/footer.html b/webapp/app/partials/footer.html index d0a513a..ca42ed0 100644 --- a/webapp/app/partials/footer.html +++ b/webapp/app/partials/footer.html @@ -17,12 +17,13 @@ --> <nav class="navbar-inner"> - <div class="container"> - <div class="copyright"> + <div class="container"> + <div class="copyright"> <span> <a href="http://kylin.apache.org" style="color:#808080;"><i class="fa fa-home"></i> Apache Kylin</a> | - <a href="http://kylin.apache.org/community/" style="color:#808080;"><i class="fa fa-users"></i> Apache Kylin Community</a> + <a href="http://kylin.apache.org/community/" style="color:#808080;"><i class="fa fa-users"></i> Apache + Kylin Community</a> </span> - </div> </div> + </div> </nav> http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/partials/header.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/header.html b/webapp/app/partials/header.html index b87fea1..6249f51 100644 --- a/webapp/app/partials/header.html +++ b/webapp/app/partials/header.html @@ -17,61 +17,68 @@ --> <div class="navbar-container" id="navbar-container"> - <div class="navbar navbar-default" role="navigation"> - <div class="container-fluid"> - <div class="navbar-header"> - <a class="navbar-brand" href="query" style="padding: 2px 10px 0px 0px"><img src="image/logo.png" height="40px" width="40px"/><small> Kylin </small></a> - </div> + <div class="navbar navbar-default" role="navigation"> + <div class="container-fluid"> + <div class="navbar-header"> + <a class="navbar-brand" href="query" style="padding: 2px 10px 0px 0px"><img src="image/logo.png" height="40px" + width="40px"/> + <small> Kylin</small> + </a> + </div> - <div class="navbar-collapse collapse" collapse="isCollapsed"> - <ul class="nav navbar-nav"> - <li class="project-cntnr" style="padding:7px 15px;background-color:#2e8965;" ng-if="userService.isAuthorized()"> - <select chosen ng-model="projectModel.selectedProject" ng-init="newAccess.permission=permissions.READ.value;" - ng-options="project.name as project.name for project in projectModel.projects" - style="width: 180px" - data-placeholder="select a project" - class="chosen-select"> - <option ng-if="userService.hasRole('ROLE_ADMIN')" ng-selected="projectModel.selectedProject==null" value=""> -- Choose Project -- </option> - </select> - </li> - <li class="{{activeTab=='query'?'purple':'green'}}" ng-if="userService.isAuthorized()"> - <a href="query">Insight</a> - </li> - <li class="{{activeTab=='models'?'purple':'green'}}" ng-if="userService.isAuthorized()"> - <a href="models">Model</a> - </li> - <li class="{{activeTab=='jobs'?'purple':'green'}}" ng-if="userService.isAuthorized()"> - <a href="jobs">Monitor</a> - </li> - <li class="{{activeTab=='admin'?'purple':'green'}}" ng-if="userService.isAuthorized()"> - <a href="admin">System</a> - </li> - </ul> - <ul class="nav navbar-nav navbar-right"> - <li class="dropdown light-blue" ng-if="config.documents.length > 0"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-book"></i> Help <i class="ace-icon fa fa-caret-down"></i></a> - <ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close"> - <li ng-repeat="document in config.documents" ng-if="document.link"> - <a target="_blank" href="{{document.link}}" >{{document.displayName}}</a> - </li> - </ul> - </li> - <li class="purple" ng-if="!userService.isAuthorized()"><a href="login">Login</a></li> - <li class="dropdown light-blue" ng-if="userService.isAuthorized()"> - <a href="#" class="dropdown-toggle" data-toggle="dropdown"> - <span class="user-info"><small>Welcome,</small> {{userService.getCurUser().userDetails.username}}</span> - <i class="ace-icon fa fa-caret-down"></i> - </a> - <ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close" role="menu"> - <li> <a ng-click="logout()"><i class="ace-icon fa fa-power-off"></i> Logout</a> </li> - </ul> - </li> - </ul> - </div> - </div> + <div class="navbar-collapse collapse" collapse="isCollapsed"> + <ul class="nav navbar-nav"> + <li class="project-cntnr" style="padding:7px 15px;background-color:#2e8965;" + ng-if="userService.isAuthorized()"> + <select chosen ng-model="projectModel.selectedProject" + ng-init="newAccess.permission=permissions.READ.value;" + ng-options="project.name as project.name for project in projectModel.projects" + style="width: 180px" + data-placeholder="select a project" + class="chosen-select"> + <option ng-if="userService.hasRole('ROLE_ADMIN')" ng-selected="projectModel.selectedProject==null" + value=""> -- Choose Project -- + </option> + </select> + </li> + <li class="{{activeTab=='query'?'purple':'green'}}" ng-if="userService.isAuthorized()"> + <a href="query">Insight</a> + </li> + <li class="{{activeTab=='models'?'purple':'green'}}" ng-if="userService.isAuthorized()"> + <a href="models">Model</a> + </li> + <li class="{{activeTab=='jobs'?'purple':'green'}}" ng-if="userService.isAuthorized()"> + <a href="jobs">Monitor</a> + </li> + <li class="{{activeTab=='admin'?'purple':'green'}}" ng-if="userService.isAuthorized()"> + <a href="admin">System</a> + </li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li class="dropdown light-blue" ng-if="config.documents.length > 0"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-book"></i> Help <i + class="ace-icon fa fa-caret-down"></i></a> + <ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close"> + <li ng-repeat="document in config.documents" ng-if="document.link"> + <a target="_blank" href="{{document.link}}">{{document.displayName}}</a> + </li> + </ul> + </li> + <li class="purple" ng-if="!userService.isAuthorized()"><a href="login">Login</a></li> + <li class="dropdown light-blue" ng-if="userService.isAuthorized()"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown"> + <span class="user-info"><small>Welcome,</small> {{userService.getCurUser().userDetails.username}}</span> + <i class="ace-icon fa fa-caret-down"></i> + </a> + <ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close" + role="menu"> + <li><a ng-click="logout()"><i class="ace-icon fa fa-power-off"></i> Logout</a></li> + </ul> + </li> + </ul> + </div> </div> - - + </div> </div> http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/partials/home.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/home.html b/webapp/app/partials/home.html index f6c63d0..1e5cf02 100644 --- a/webapp/app/partials/home.html +++ b/webapp/app/partials/home.html @@ -18,48 +18,48 @@ <!--Big Background Image--> <div class="bg-holder"> - <img src="image/Himg.png" /> + <img src="image/Himg.png"/> </div> <!--Carousel Part--> <div style="height: 442px;"> - <carousel interval="myInterval"> - <slide ng-repeat="slide in slides" active="slide.active"> - <img ng-src="{{slide.image}}" /> - <div class="carousel-caption"> - <h1>{{slide.caption}}</h1> - <p>{{slide.text}}</p> - </div> - </slide> - </carousel> + <carousel interval="myInterval"> + <slide ng-repeat="slide in slides" active="slide.active"> + <img ng-src="{{slide.image}}"/> + <div class="carousel-caption"> + <h1>{{slide.caption}}</h1> + <p>{{slide.text}}</p> + </div> + </slide> + </carousel> </div> <!--Features Part--> <div id="features" class="container marketing"> - <div class="row"> - <div class="col-xs-12 col-sm-4 feature"> - <a><i class="fa fa-cubes fa-5x"></i></a> - <h2>Create Cube</h2> - <p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies - vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo - cursus magna.</p> - <p><a class="btn btn-default" href="cubes" role="button">View details »</a></p> - </div> - <div class="col-xs-12 col-sm-4 feature"> - <a><i class="fa fa-tasks fa-5x"></i></a> - <h2>Query Online</h2> - <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras - mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris - condimentum nibh.</p> - <p><a class="btn btn-default" href="query" role="button">View details »</a></p> - </div> - <div class="col-xs-12 col-sm-4 feature"> - <a><i class="fa fa-sort-amount-asc fa-5x"></i></a> - <h2>Jobs</h2> - <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula - porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, - ut fermentum massa justo sit amet risus.</p> - <p><a class="btn btn-default" href="jobs" role="button">View details »</a></p> - </div> + <div class="row"> + <div class="col-xs-12 col-sm-4 feature"> + <a><i class="fa fa-cubes fa-5x"></i></a> + <h2>Create Cube</h2> + <p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies + vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo + cursus magna.</p> + <p><a class="btn btn-default" href="cubes" role="button">View details »</a></p> </div> + <div class="col-xs-12 col-sm-4 feature"> + <a><i class="fa fa-tasks fa-5x"></i></a> + <h2>Query Online</h2> + <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras + mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris + condimentum nibh.</p> + <p><a class="btn btn-default" href="query" role="button">View details »</a></p> + </div> + <div class="col-xs-12 col-sm-4 feature"> + <a><i class="fa fa-sort-amount-asc fa-5x"></i></a> + <h2>Jobs</h2> + <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula + porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, + ut fermentum massa justo sit amet risus.</p> + <p><a class="btn btn-default" href="jobs" role="button">View details »</a></p> + </div> + </div> </div> http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/partials/login.html ---------------------------------------------------------------------- diff --git a/webapp/app/partials/login.html b/webapp/app/partials/login.html index 452257b..faffb87 100644 --- a/webapp/app/partials/login.html +++ b/webapp/app/partials/login.html @@ -17,45 +17,47 @@ --> <div class="my-light-login login-layout login-backgroud"> - <div class="main-container "> - <div class="main-content row"> - <div class="col-sm-10 col-sm-offset-1"> - <div class="login-container mylogin-body"> - <div class="login-box box box-solid"> - <div class="box-header"> - <div class="box-title"> - <h4 class="header blue lighter bigger"> <i class="ace-icon fa fa-coffee green"></i> Sign in </h4> - </div> - </div> - <div class="box-body"> - <div class="alert alert-danger animated fadeIn" ng-if="error">{{error}}</div> - <form name="login_form" ng-submit="login()"> - <div class="form-group"> + <div class="main-container "> + <div class="main-content row"> + <div class="col-sm-10 col-sm-offset-1"> + <div class="login-container mylogin-body"> + <div class="login-box box box-solid"> + <div class="box-header"> + <div class="box-title"> + <h4 class="header blue lighter bigger"><i class="ace-icon fa fa-coffee green"></i> Sign in </h4> + </div> + </div> + <div class="box-body"> + <div class="alert alert-danger animated fadeIn" ng-if="error">{{error}}</div> + <form name="login_form" ng-submit="login()"> + <div class="form-group"> <span class="width-100 input-icon input-icon-right"> - <input id="username" class="form-control" ng-model="username" type="text" autofocus="autofocus" ng-required placeholder="Username" auto-fill-sync /> + <input id="username" class="form-control" ng-model="username" type="text" + autofocus="autofocus" ng-required placeholder="Username" auto-fill-sync/> <i class="ace-icon fa fa-user"></i> </span> - </div> - <div class="form-group"> + </div> + <div class="form-group"> <span class="width-100 input-icon input-icon-right"> - <input id="password" class="form-control" ng-model="password" type="password" ng-required placeholder="Password" auto-fill-sync /> + <input id="password" class="form-control" ng-model="password" type="password" + ng-required placeholder="Password" auto-fill-sync/> <i class="ace-icon fa fa-lock"></i> </span> - </div> - <div class="space"></div> - <div class="form-group"> - <a href="http://kylin.apache.org/community/" target="_blank" class="text-muted">Login Issue?</a> - <button class="pull-right btn btn-sm btn-primary" type="submit" ng-disabled="login_form.$invalid"> - <i class="ace-icon fa fa-key"></i> - <span class="bigger-110">{{loading? 'Logging In...': 'Log In'}}</span> - </button> - </div> - <div class="space-4"></div> - </form> - </div> - </div> </div> + <div class="space"></div> + <div class="form-group"> + <a href="http://kylin.apache.org/community/" target="_blank" class="text-muted">Login Issue?</a> + <button class="pull-right btn btn-sm btn-primary" type="submit" ng-disabled="login_form.$invalid"> + <i class="ace-icon fa fa-key"></i> + <span class="bigger-110">{{loading? 'Logging In...': 'Log In'}}</span> + </button> + </div> + <div class="space-4"></div> + </form> </div> + </div> </div> + </div> </div> + </div> </div> http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/app/routes.json ---------------------------------------------------------------------- diff --git a/webapp/app/routes.json b/webapp/app/routes.json index f4a2e91..75be448 100644 --- a/webapp/app/routes.json +++ b/webapp/app/routes.json @@ -1,100 +1,100 @@ [ - { - "url": "/jobs", - "params": { - "templateUrl": "partials/jobs/jobs.html", - "tab": "jobs", - "controller": "JobCtrl" - } - }, - { - "url": "/projects", - "params": { - "templateUrl": "partials/projects/projects.html", - "tab": "query", - "controller": "ProjectCtrl" - } - }, - { - "url": "/cubes/add/", - "params": { - "templateUrl": "partials/cubes/cube_edit.html", - "tab": "models", - "controller": "CubeEditCtrl" - } - }, - { - "url": "/cubes/edit/:cubeName/json", - "params": { - "templateUrl": "partials/cubes/cube_json_edit.html", - "tab": "models", - "controller": "CubeEditCtrl" - } - }, - { - "url": "/cubes/edit/:cubeName", - "params": { - "templateUrl": "partials/cubes/cube_edit.html", - "tab": "models", - "controller": "CubeEditCtrl" - } - }, - { - "url": "/sourceMeta", - "params": { - "templateUrl": "partials/tables/source_metadata.html", - "tab": "sourceMeta", - "controller": "SourceMetaCtrl" - } - }, - { - "url": "/query", - "params": { - "templateUrl": "partials/query/query.html", - "tab": "query", - "controller": "QueryCtrl", - "reloadOnSearch": false - } - }, - { - "url": "/admin", - "params": { - "templateUrl": "partials/admin/admin.html", - "tab": "admin", - "controller": "AdminCtrl", - "reloadOnSearch": false - } - }, - { - "url": "/login", - "params": { - "templateUrl": "partials/login.html", - "controller": "LoginCtrl", - "reloadOnSearch": false - } - }, - { - "url": "/models", - "params": { - "templateUrl": "partials/models/models.html", - "tab": "models", - "controller": "ModelsCtrl" - } - }, - { - "url": "/models/add", - "params": { - "templateUrl": "partials/models/model_edit.html", - "tab": "models", - "controller": "ModelEditCtrl" - } - }, - { - "url": "/models/edit/:modelName", - "params": { - "templateUrl": "partials/models/model_edit.html", - "tab": "models", - "controller": "ModelEditCtrl" - } + { + "url": "/jobs", + "params": { + "templateUrl": "partials/jobs/jobs.html", + "tab": "jobs", + "controller": "JobCtrl" } + }, + { + "url": "/projects", + "params": { + "templateUrl": "partials/projects/projects.html", + "tab": "query", + "controller": "ProjectCtrl" + } + }, + { + "url": "/cubes/add/", + "params": { + "templateUrl": "partials/cubes/cube_edit.html", + "tab": "models", + "controller": "CubeEditCtrl" + } + }, + { + "url": "/cubes/edit/:cubeName/json", + "params": { + "templateUrl": "partials/cubes/cube_json_edit.html", + "tab": "models", + "controller": "CubeEditCtrl" + } + }, + { + "url": "/cubes/edit/:cubeName", + "params": { + "templateUrl": "partials/cubes/cube_edit.html", + "tab": "models", + "controller": "CubeEditCtrl" + } + }, + { + "url": "/sourceMeta", + "params": { + "templateUrl": "partials/tables/source_metadata.html", + "tab": "sourceMeta", + "controller": "SourceMetaCtrl" + } + }, + { + "url": "/query", + "params": { + "templateUrl": "partials/query/query.html", + "tab": "query", + "controller": "QueryCtrl", + "reloadOnSearch": false + } + }, + { + "url": "/admin", + "params": { + "templateUrl": "partials/admin/admin.html", + "tab": "admin", + "controller": "AdminCtrl", + "reloadOnSearch": false + } + }, + { + "url": "/login", + "params": { + "templateUrl": "partials/login.html", + "controller": "LoginCtrl", + "reloadOnSearch": false + } + }, + { + "url": "/models", + "params": { + "templateUrl": "partials/models/models.html", + "tab": "models", + "controller": "ModelsCtrl" + } + }, + { + "url": "/models/add", + "params": { + "templateUrl": "partials/models/model_edit.html", + "tab": "models", + "controller": "ModelEditCtrl" + } + }, + { + "url": "/models/edit/:modelName", + "params": { + "templateUrl": "partials/models/model_edit.html", + "tab": "models", + "controller": "ModelEditCtrl" + } + } ] http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/bower.json ---------------------------------------------------------------------- diff --git a/webapp/bower.json b/webapp/bower.json index 9fd080f..4d5a311 100755 --- a/webapp/bower.json +++ b/webapp/bower.json @@ -31,7 +31,7 @@ "angular-bootstrap-nav-tree": "*", "components-font-awesome": "~4.3.0", "bootstrap-sweetalert": "~0.4.3", - "angular-toggle-switch":"1.3.0", + "angular-toggle-switch": "1.3.0", "angular-ui-select": "0.13.2", "angular-sanitize": "1.2.18", "angular-tree-control": "0.2.8", http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/grunt.json ---------------------------------------------------------------------- diff --git a/webapp/grunt.json b/webapp/grunt.json index 7a7e4c8..3c2cbf8 100755 --- a/webapp/grunt.json +++ b/webapp/grunt.json @@ -1,75 +1,81 @@ { - "bump": { - "options": { - "files": ["package.json"], - "commitFiles": ["package.json", "bower.json", "CHANGELOG.md"] - } + "bump": { + "options": { + "files": [ + "package.json" + ], + "commitFiles": [ + "package.json", + "bower.json", + "CHANGELOG.md" + ] + } + }, + "concat": { + "components": { + "src": [ + "app/components/jquery/dist/jquery.min.js", + "app/components/bootstrap/dist/js/bootstrap.min.js", + "app/components/angular/angular.js", + "app/components/angular-animate/angular-animate.min.js", + "app/components/angular-route/angular-route.min.js", + "app/components/angular-resource/angular-resource.js", + "app/components/angular-bootstrap/ui-bootstrap-tpls.min.js", + "app/components/angular-cookies/angular-cookies.js", + "app/components/angularLocalStorage/src/angularLocalStorage.js", + "app/components/angular-base64/angular-base64.min.js", + "app/components/ng-grid/build/ng-grid.js", + "app/components/ace-builds/src-min-noconflict/ace.js", + "app/components/ace-builds/src-min-noconflict/ext-language_tools.js", + "app/components/ace-builds/src-min-noconflict/mode-json.js", + "app/components/ace-builds/src-min-noconflict/mode-sql.js", + "app/components/ace-builds/src-min-noconflict/theme-chrome.js", + "app/components/angular-ui-ace/ui-ace.min.js", + "app/components/messenger/build/js/messenger.min.js", + "app/components/messenger/build/js/messenger-theme-future.js", + "app/components/chosen/chosen.jquery.min.js", + "app/components/angular-chosen-localytics/chosen.js", + "app/components/moment/min/moment.min.js", + "app/components/d3/d3.min.js", + "app/components/nvd3/nv.d3.min.js", + "app/components/angularjs-nvd3-directives/dist/angularjs-nvd3-directives.js", + "app/components/bootstrap-sweetalert/lib/sweet-alert.js", + "app/components/angular-sweetalert/SweetAlert.js", + "app/components/underscore/underscore.js", + "app/components/angular-underscore/angular-underscore.js", + "app/components/jquery-ui/jquery-ui.min.js", + "app/components/angular-ui-sortable/sortable.js", + "app/components/angular-toggle-switch/angular-toggle-switch.js", + "app/components/angular-ui-select/dist/select.js", + "app/components/angular-sanitize/angular-sanitize.js", + "tmp/js/scripts.js" + ], + "dest": "tmp/js/scripts.min.js" }, - "concat": { - "components": { - "src": [ - "app/components/jquery/dist/jquery.min.js", - "app/components/bootstrap/dist/js/bootstrap.min.js", - "app/components/angular/angular.js", - "app/components/angular-animate/angular-animate.min.js", - "app/components/angular-route/angular-route.min.js", - "app/components/angular-resource/angular-resource.js", - "app/components/angular-bootstrap/ui-bootstrap-tpls.min.js", - "app/components/angular-cookies/angular-cookies.js", - "app/components/angularLocalStorage/src/angularLocalStorage.js", - "app/components/angular-base64/angular-base64.min.js", - "app/components/ng-grid/build/ng-grid.js", - "app/components/ace-builds/src-min-noconflict/ace.js", - "app/components/ace-builds/src-min-noconflict/ext-language_tools.js", - "app/components/ace-builds/src-min-noconflict/mode-json.js", - "app/components/ace-builds/src-min-noconflict/mode-sql.js", - "app/components/ace-builds/src-min-noconflict/theme-chrome.js", - "app/components/angular-ui-ace/ui-ace.min.js", - "app/components/messenger/build/js/messenger.min.js", - "app/components/messenger/build/js/messenger-theme-future.js", - "app/components/chosen/chosen.jquery.min.js", - "app/components/angular-chosen-localytics/chosen.js", - "app/components/moment/min/moment.min.js", - "app/components/d3/d3.min.js", - "app/components/nvd3/nv.d3.min.js", - "app/components/angularjs-nvd3-directives/dist/angularjs-nvd3-directives.js", - "app/components/bootstrap-sweetalert/lib/sweet-alert.js", - "app/components/angular-sweetalert/SweetAlert.js", - "app/components/underscore/underscore.js", - "app/components/angular-underscore/angular-underscore.js", - "app/components/jquery-ui/jquery-ui.min.js", - "app/components/angular-ui-sortable/sortable.js", - "app/components/angular-toggle-switch/angular-toggle-switch.js", - "app/components/angular-ui-select/dist/select.js", - "app/components/angular-sanitize/angular-sanitize.js", - "tmp/js/scripts.js" - ], - "dest": "tmp/js/scripts.min.js" - }, - "css": { - "src": [ - "app/components/bootstrap/dist/css/bootstrap.min.css", - "app/components/components-font-awesome/css/font-awesome.css", - "app/components/ng-grid/ng-grid.css", - "app/components/angular-tree-control/css/tree-control.css", - "app/components/angular-tree-control/css/tree-control-attribute.css", - "app/components/angular-ui-grid/ui-grid.min.css", - "app/components/animate.css/animate.min.css", - "app/components/messenger/build/css/messenger.css", - "app/components/messenger/build/css/messenger-theme-ice.css", - "app/components/chosen/chosen.css", - "app/components/angular-chosen-localytics/chosen-spinner.css", - "app/components/nvd3/nv.d3.min.css", - "app/css/AdminLTE.css", - "app/css/skins/_all-skins.min.css", - "app/components/bootstrap-sweetalert/lib/sweet-alert.css", - "app/components/angular-bootstrap-nav-tree/dist/abn_tree.css", - "app/components/angular-toggle-switch/angular-toggle-switch.css", - "app/components/angular-ui-select/dist/select.css", - "app/components/angular-bootstrap-datetimepicker/src/css/datetimepicker.css", - "tmp/css/styles.css" - ], - "dest": "tmp/css/styles.min.css" - } + "css": { + "src": [ + "app/components/bootstrap/dist/css/bootstrap.min.css", + "app/components/components-font-awesome/css/font-awesome.css", + "app/components/ng-grid/ng-grid.css", + "app/components/angular-tree-control/css/tree-control.css", + "app/components/angular-tree-control/css/tree-control-attribute.css", + "app/components/angular-ui-grid/ui-grid.min.css", + "app/components/animate.css/animate.min.css", + "app/components/messenger/build/css/messenger.css", + "app/components/messenger/build/css/messenger-theme-ice.css", + "app/components/chosen/chosen.css", + "app/components/angular-chosen-localytics/chosen-spinner.css", + "app/components/nvd3/nv.d3.min.css", + "app/css/AdminLTE.css", + "app/css/skins/_all-skins.min.css", + "app/components/bootstrap-sweetalert/lib/sweet-alert.css", + "app/components/angular-bootstrap-nav-tree/dist/abn_tree.css", + "app/components/angular-toggle-switch/angular-toggle-switch.css", + "app/components/angular-ui-select/dist/select.css", + "app/components/angular-bootstrap-datetimepicker/src/css/datetimepicker.css", + "tmp/css/styles.css" + ], + "dest": "tmp/css/styles.min.css" } + } } http://git-wip-us.apache.org/repos/asf/kylin/blob/e3b8be38/webapp/package.json ---------------------------------------------------------------------- diff --git a/webapp/package.json b/webapp/package.json index a588a75..b11a162 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -1,22 +1,22 @@ { - "name": "base", - "version": "0.0.1", - "description": "Client Base Applicaion", - "author": "DataHub", - "repository": { - "type:": "git", - "url": "https://github.com/KylinOLAP/Kylin.git" - }, - "devDependencies": { - "grunt": "~0.4.x", - "grunt-cli": "~0.1.13", - "grunt-contrib": "~0.7.0", - "grunt-html2js": "~0.1.3", - "grunt-bump": "0.0.6", - "grunt-htmlrefs": "~0.4.1", - "grunt-regex-replace": "~0.2.5", - "grunt-lesslint": "~0.8.0", - "grunt-manifest": "~0.4.0", - "grunt-conventional-changelog": "~0.1.2" - } + "name": "base", + "version": "0.0.1", + "description": "Client Base Applicaion", + "author": "DataHub", + "repository": { + "type:": "git", + "url": "https://github.com/KylinOLAP/Kylin.git" + }, + "devDependencies": { + "grunt": "~0.4.x", + "grunt-cli": "~0.1.13", + "grunt-contrib": "~0.7.0", + "grunt-html2js": "~0.1.3", + "grunt-bump": "0.0.6", + "grunt-htmlrefs": "~0.4.1", + "grunt-regex-replace": "~0.2.5", + "grunt-lesslint": "~0.8.0", + "grunt-manifest": "~0.4.0", + "grunt-conventional-changelog": "~0.1.2" + } }