diff --git a/guacamole/src/main/webapp/app/index/styles/buttons.css b/guacamole/src/main/webapp/app/index/styles/buttons.css index fd49ea256..5990761e3 100644 --- a/guacamole/src/main/webapp/app/index/styles/buttons.css +++ b/guacamole/src/main/webapp/app/index/styles/buttons.css @@ -79,29 +79,35 @@ input[type="submit"]:disabled, button:disabled, button.danger:disabled { opacity: 0.75; } -.button.logout, .button.manage, .button.back, .button.home, .button.change-password { +.button.logout, .button.manage, .button.back, .button.home, .button.change-password, +button.logout, button.manage, button.back, button.home, button.change-password { background-repeat: no-repeat; background-size: 1em; background-position: 0.5em 0.45em; padding-left: 1.8em; } -.button.logout { +.button.logout, +button.logout { background-image: url('images/action-icons/guac-logout.png'); } -.button.manage { +.button.manage, +button.manage { background-image: url('images/action-icons/guac-config.png'); } -.button.back { +.button.back, +button.back { background-image: url('images/action-icons/guac-back.png'); } -.button.home { +.button.home, +button.home { background-image: url('images/action-icons/guac-home.png'); } -.button.change-password { +.button.change-password, +button.change-password { background-image: url('images/action-icons/guac-key.png'); } diff --git a/guacamole/src/main/webapp/app/navigation/directives/guacUserMenu.js b/guacamole/src/main/webapp/app/navigation/directives/guacUserMenu.js index aff6fff4a..4d3b3047e 100644 --- a/guacamole/src/main/webapp/app/navigation/directives/guacUserMenu.js +++ b/guacamole/src/main/webapp/app/navigation/directives/guacUserMenu.js @@ -45,30 +45,12 @@ angular.module('navigation').directive('guacUserMenu', [function guacUserMenu() templateUrl: 'app/navigation/templates/guacUserMenu.html', controller: ['$scope', '$injector', '$element', function guacUserMenuController($scope, $injector, $element) { - // Get required types - var PermissionSet = $injector.get('PermissionSet'); - // Get required services var $document = $injector.get('$document'); var $location = $injector.get('$location'); var authenticationService = $injector.get('authenticationService'); - var guacNotification = $injector.get('guacNotification'); - var permissionService = $injector.get("permissionService"); - var userService = $injector.get('userService'); var userPageService = $injector.get('userPageService'); - /** - * An action to be provided along with the object sent to - * showStatus which closes the currently-shown status dialog. - */ - var ACKNOWLEDGE_ACTION = { - name : 'USER_MENU.ACTION_ACKNOWLEDGE', - // Handle action - callback : function acknowledgeCallback() { - guacNotification.showStatus(false); - } - }; - /** * The outermost element of the user menu directive. * @@ -83,28 +65,6 @@ angular.module('navigation').directive('guacUserMenu', [function guacUserMenu() */ var document = $document[0]; - /** - * Whether the password edit dialog should be shown. - * - * @type Boolean - */ - $scope.showPasswordDialog = false; - - /** - * The new password for the user. - * - * @type String - */ - $scope.newPassword = null; - - /** - * The password match for the user. The update password action will - * fail if $scope.newPassword !== $scope.passwordMatch. - * - * @type String - */ - $scope.newPasswordMatch = null; - /** * Whether the contents of the user menu are currently shown. * @@ -139,81 +99,6 @@ angular.module('navigation').directive('guacUserMenu', [function guacUserMenu() $scope.menuShown = !$scope.menuShown; }; - /** - * Show the password update dialog. - */ - $scope.showPasswordUpdate = function showPasswordUpdate() { - - // Show the dialog - $scope.showPasswordDialog = true; - }; - - /** - * Close the password update dialog. - */ - $scope.closePasswordUpdate = function closePasswordUpdate() { - - // Clear the password fields and close the dialog - $scope.oldPassword = null; - $scope.newPassword = null; - $scope.newPasswordMatch = null; - $scope.showPasswordDialog = false; - }; - - /** - * Update the current user's password to the password currently set within - * the password change dialog. - */ - $scope.updatePassword = function updatePassword() { - - // Verify passwords match - if ($scope.newPasswordMatch !== $scope.newPassword) { - guacNotification.showStatus({ - className : 'error', - title : 'USER_MENU.DIALOG_HEADER_ERROR', - text : 'USER_MENU.ERROR_PASSWORD_MISMATCH', - actions : [ ACKNOWLEDGE_ACTION ] - }); - return; - } - - // Verify that the new password is not blank - if (!$scope.newPassword) { - guacNotification.showStatus({ - className : 'error', - title : 'USER_MENU.DIALOG_HEADER_ERROR', - text : 'USER_MENU.ERROR_PASSWORD_BLANK', - actions : [ ACKNOWLEDGE_ACTION ] - }); - return; - } - - // Save the user with the new password - userService.updateUserPassword($scope.username, $scope.oldPassword, $scope.newPassword) - .success(function passwordUpdated() { - - // Close the password update dialog - $scope.closePasswordUpdate(); - - // Indicate that the password has been changed - guacNotification.showStatus({ - text : 'USER_MENU.PASSWORD_CHANGED', - actions : [ ACKNOWLEDGE_ACTION ] - }); - }) - - // Notify of any errors - .error(function passwordUpdateFailed(error) { - guacNotification.showStatus({ - className : 'error', - title : 'USER_MENU.DIALOG_HEADER_ERROR', - 'text' : error.message, - actions : [ ACKNOWLEDGE_ACTION ] - }); - }); - - }; - /** * Logs out the current user, redirecting them to back to the login * screen after logout completes. @@ -234,34 +119,11 @@ angular.module('navigation').directive('guacUserMenu', [function guacUserMenu() callback : $scope.logout }; - /** - * Action which shows the password update dialog. - */ - var CHANGE_PASSWORD_ACTION = { - name : 'USER_MENU.ACTION_CHANGE_PASSWORD', - className : 'change-password', - callback : $scope.showPasswordUpdate - }; - /** * All available actions for the current user. */ $scope.actions = [ LOGOUT_ACTION ]; - // Retrieve current permissions - permissionService.getPermissions(authenticationService.getCurrentUserID()) - .success(function permissionsRetrieved(permissions) { - - // Add action for changing password if permission is granted - if (PermissionSet.hasUserPermission(permissions, - PermissionSet.ObjectPermissionType.UPDATE, - authenticationService.getCurrentUserID())) - $scope.actions.unshift(CHANGE_PASSWORD_ACTION); - - - }); - - // Close menu when use clicks anywhere else document.body.addEventListener('click', function clickOutsideMenu() { $scope.$apply(function closeMenu() { diff --git a/guacamole/src/main/webapp/app/navigation/styles/user-menu.css b/guacamole/src/main/webapp/app/navigation/styles/user-menu.css index 708c37efc..d5dd37946 100644 --- a/guacamole/src/main/webapp/app/navigation/styles/user-menu.css +++ b/guacamole/src/main/webapp/app/navigation/styles/user-menu.css @@ -201,10 +201,6 @@ background-image: url('images/action-icons/guac-config-dark.png'); } -.user-menu .options li a.change-password { - background-image: url('images/action-icons/guac-key-dark.png'); -} - .user-menu .options li a.logout { background-image: url('images/action-icons/guac-logout-dark.png'); } @@ -218,45 +214,3 @@ .user-menu .options li a.danger:hover { background-color: #C54; } - -.user-menu .password-dialog { - visibility: hidden; - opacity: 0; - -webkit-transition: visibility 0.125s, opacity 0.125s; - -moz-transition: visibility 0.125s, opacity 0.125s; - -ms-transition: visibility 0.125s, opacity 0.125s; - -o-transition: visibility 0.125s, opacity 0.125s; - transition: visibility 0.125s, opacity 0.125s; - position: absolute; - background: white; - padding: 1em; - border: 1px solid rgba(0, 0, 0, 0.25); - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.25); - margin: 1em; - right: 0; - top: 0; - z-index: 8; -} - -.user-menu .password-dialog .fields { - text-align: right; -} - -.user-menu .password-dialog .action-buttons { - text-align: center; - margin: 0; -} - -.user-menu .password-dialog.shown { - visibility: visible; - opacity: 1; - -webkit-transition: opacity 0.125s; - -moz-transition: opacity 0.125s; - -ms-transition: opacity 0.125s; - -o-transition: opacity 0.125s; - transition: opacity 0.125s; -} - -.user-menu .password-dialog .fields { - width: 100%; -} diff --git a/guacamole/src/main/webapp/app/navigation/templates/guacUserMenu.html b/guacamole/src/main/webapp/app/navigation/templates/guacUserMenu.html index ab5d1d9bf..8df34a53f 100644 --- a/guacamole/src/main/webapp/app/navigation/templates/guacUserMenu.html +++ b/guacamole/src/main/webapp/app/navigation/templates/guacUserMenu.html @@ -52,31 +52,4 @@ - -
{{'USER_MENU.FIELD_HEADER_PASSWORD_OLD' | translate}} | -- |
---|---|
{{'USER_MENU.FIELD_HEADER_PASSWORD_NEW' | translate}} | -- |
{{'USER_MENU.FIELD_HEADER_PASSWORD_NEW_AGAIN' | translate}} | -- |
TODO
+ +{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_OLD' | translate}} | ++ |
---|---|
{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW' | translate}} | ++ |
{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW_AGAIN' | translate}} | ++ |