diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/WebDriverManager.java b/zeppelin-server/src/test/java/org/apache/zeppelin/WebDriverManager.java index 49d6f1e93e5..2d12c31eebc 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/WebDriverManager.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/WebDriverManager.java @@ -125,8 +125,7 @@ public static WebDriver getWebDriver() { (new WebDriverWait(driver, 5)).until(new ExpectedCondition() { @Override public Boolean apply(WebDriver d) { - return d.findElement(By.xpath( - "//div[contains(@class, 'navbar-collapse')]//li//a[contains(.,'Connected')]")) + return d.findElement(By.xpath("//i[@tooltip='WebSocket Connected']")) .isDisplayed(); } }); diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/AuthenticationIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/AuthenticationIT.java index 3b1088e8b23..dd11a5452b9 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/AuthenticationIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/AuthenticationIT.java @@ -158,8 +158,8 @@ public void testGroupPermission() throws Exception { String noteId = driver.getCurrentUrl().substring(driver.getCurrentUrl().lastIndexOf("/") + 1); - pollingWait(By.xpath("//button[@tooltip='Note permissions']"), - MAX_BROWSER_TIMEOUT_SEC).sendKeys(Keys.ENTER); + pollingWait(By.xpath("//span[@tooltip='Note permissions']"), + MAX_BROWSER_TIMEOUT_SEC).click(); pollingWait(By.xpath("//input[@ng-model='permissions.owners']"), MAX_BROWSER_TIMEOUT_SEC) .sendKeys("finance"); pollingWait(By.xpath("//input[@ng-model='permissions.readers']"), MAX_BROWSER_TIMEOUT_SEC) diff --git a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java index b3bb99fbb36..c3d3566f77e 100644 --- a/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java +++ b/zeppelin-server/src/test/java/org/apache/zeppelin/integration/ZeppelinIT.java @@ -196,7 +196,9 @@ public void testSparkInterpreterDependencyLoading() throws Exception { } try { // navigate to interpreter page - WebElement interpreterLink = driver.findElement(By.xpath("//a[contains(.,'Interpreter')]")); + WebElement settingButton = driver.findElement(By.xpath("//button[@class='nav-btn dropdown-toggle ng-scope']")); + settingButton.click(); + WebElement interpreterLink = driver.findElement(By.xpath("//a[@href='#/interpreter']")); interpreterLink.click(); // add new dependency to spark interpreter @@ -235,6 +237,7 @@ public void testSparkInterpreterDependencyLoading() throws Exception { sleep(1000, false); // reset dependency + settingButton.click(); interpreterLink.click(); driver.findElement(By.xpath("//div[@id='spark']//button[contains(.,'edit')]")).sendKeys(Keys.ENTER); WebElement testDepRemoveBtn = pollingWait(By.xpath("//tr[descendant::text()[contains(.,'" + diff --git a/zeppelin-web/src/app/home/home.css b/zeppelin-web/src/app/home/home.css index 02b4d04fc1c..75f25216834 100644 --- a/zeppelin-web/src/app/home/home.css +++ b/zeppelin-web/src/app/home/home.css @@ -242,10 +242,6 @@ a.navbar-brand:hover { background: #080808; } - .server-status { - float: right; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { background: #3071A9; } @@ -272,20 +268,43 @@ a.navbar-brand:hover { } } -i.server-status { - font-size: 12px; - top: -2px; - position: relative; +.nav-component { + margin-top: 8px; +} + +.nav-btn { + color: #fff; + background-color: transparent; + border-color: transparent; + font-size: 14px; +} + +.nav-login-btn, +.nav-login-btn:hover, +.nav-login-btn:focus { + color: #fff; + background-color: #428bca; + border-color: #357ebd; +} + +.username { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 120px; + display: inline-block; } .server-connected { + padding-top: 12px; color: #00CC00; + font-size: 12px !important; } .server-disconnected { + padding-top: 12px; color: rgba(240, 48, 0, 1); font-size: 12px !important; - font-weight: bold !important; } .box { diff --git a/zeppelin-web/src/app/notebook/notebook-actionBar.html b/zeppelin-web/src/app/notebook/notebook-actionBar.html index 0466c31b75c..16cb71a26a3 100644 --- a/zeppelin-web/src/app/notebook/notebook-actionBar.html +++ b/zeppelin-web/src/app/notebook/notebook-actionBar.html @@ -153,26 +153,24 @@

- - - - + diff --git a/zeppelin-web/src/app/notebook/notebook.css b/zeppelin-web/src/app/notebook/notebook.css index 6c9a190d552..c86eb9db986 100644 --- a/zeppelin-web/src/app/notebook/notebook.css +++ b/zeppelin-web/src/app/notebook/notebook.css @@ -223,6 +223,13 @@ padding-left: 5px; } +.setting-btn { + position: relative; + top: 2px; + margin-right: 4px; + cursor: pointer; +} + .cron-preset-container { padding: 10px 20px 0 20px; font-weight: normal; diff --git a/zeppelin-web/src/components/navbar/navbar.controller.js b/zeppelin-web/src/components/navbar/navbar.controller.js index e2f40c86b68..cb1d91cb898 100644 --- a/zeppelin-web/src/components/navbar/navbar.controller.js +++ b/zeppelin-web/src/components/navbar/navbar.controller.js @@ -63,7 +63,6 @@ angular.module('zeppelinWebApp') }, 500); }; - var vm = this; vm.notes = notebookListDataFactory; vm.connected = websocketMsgSrv.isConnected(); @@ -71,13 +70,6 @@ angular.module('zeppelinWebApp') vm.arrayOrderingSrv = arrayOrderingSrv; $scope.searchForm = searchService; - if ($rootScope.ticket) { - $rootScope.fullUsername = $rootScope.ticket.principal; - $rootScope.truncatedUsername = $rootScope.ticket.principal; - } - - var MAX_USERNAME_LENGTH=16; - angular.element('#notebook-list').perfectScrollbar({suppressScrollX: true}); $scope.$on('setNoteMenu', function(event, notes) { @@ -88,22 +80,7 @@ angular.module('zeppelinWebApp') vm.connected = param; }); - $scope.checkUsername = function () { - if ($rootScope.ticket) { - if ($rootScope.ticket.principal.length <= MAX_USERNAME_LENGTH) { - $rootScope.truncatedUsername = $rootScope.ticket.principal; - } - else { - $rootScope.truncatedUsername = $rootScope.ticket.principal.substr(0, MAX_USERNAME_LENGTH) + '..'; - } - } - if (_.isEmpty($rootScope.truncatedUsername)) { - $rootScope.truncatedUsername = 'Connected'; - } - }; - $scope.$on('loginSuccess', function(event, param) { - $scope.checkUsername(); loadNotes(); }); @@ -146,7 +123,6 @@ angular.module('zeppelinWebApp') }; function getZeppelinVersion() { - console.log('version'); $http.get(baseUrlSrv.getRestApiBase() + '/version').success( function(data, status, headers, config) { $rootScope.zeppelinVersion = data.body; @@ -161,6 +137,5 @@ angular.module('zeppelinWebApp') getZeppelinVersion(); vm.loadNotes(); - $scope.checkUsername(); }); diff --git a/zeppelin-web/src/components/navbar/navbar.html b/zeppelin-web/src/components/navbar/navbar.html index 5e7de3bf61f..9ba2cb14d95 100644 --- a/zeppelin-web/src/components/navbar/navbar.html +++ b/zeppelin-web/src/components/navbar/navbar.html @@ -44,24 +44,15 @@
  • -
  • +
  • -
  • - Interpreter -
  • -
  • - Credential -
  • -
  • - Configuration -
  • -
    + -
  • +
  • -
  • -
  • -