diff --git a/guacamole/src/main/webapp/app/home/styles/home.css b/guacamole/src/main/webapp/app/home/styles/home.css
index 4aca95213..d34ca6f1d 100644
--- a/guacamole/src/main/webapp/app/home/styles/home.css
+++ b/guacamole/src/main/webapp/app/home/styles/home.css
@@ -41,16 +41,6 @@ div.recent-connections {
text-align: center;
}
-.no-recent {
-
- color: rgba(255, 255, 255, 0.5);
- text-shadow: -1px -1px rgba(0, 0, 0, 0.5);
- opacity: 0.5;
-
- font-size: 2em;
- font-weight: bolder;
-}
-
div.recent-connections div.connection {
-moz-border-radius: 0.5em;
-webkit-border-radius: 0.5em;
diff --git a/guacamole/src/main/webapp/app/home/templates/guacRecentConnections.html b/guacamole/src/main/webapp/app/home/templates/guacRecentConnections.html
index 27e514daf..0f1985f48 100644
--- a/guacamole/src/main/webapp/app/home/templates/guacRecentConnections.html
+++ b/guacamole/src/main/webapp/app/home/templates/guacRecentConnections.html
@@ -22,7 +22,7 @@
-->
-
{{'HOME.INFO_NO_RECENT_CONNECTIONS' | translate}}
+ {{'HOME.INFO_NO_RECENT_CONNECTIONS' | translate}}
diff --git a/guacamole/src/main/webapp/app/index/styles/buttons.css b/guacamole/src/main/webapp/app/index/styles/buttons.css
index 748d0910c..fd49ea256 100644
--- a/guacamole/src/main/webapp/app/index/styles/buttons.css
+++ b/guacamole/src/main/webapp/app/index/styles/buttons.css
@@ -73,6 +73,12 @@ button.danger:active, a.button.danger:active {
background: #932;
}
+input[type="submit"]:disabled, button:disabled, button.danger:disabled {
+ background-color: #3C3C3C;
+ color: rgba(255, 255, 255, 0.5);
+ opacity: 0.75;
+}
+
.button.logout, .button.manage, .button.back, .button.home, .button.change-password {
background-repeat: no-repeat;
background-size: 1em;
diff --git a/guacamole/src/main/webapp/app/index/styles/lists.css b/guacamole/src/main/webapp/app/index/styles/lists.css
index 01c5ec318..25ca6d385 100644
--- a/guacamole/src/main/webapp/app/index/styles/lists.css
+++ b/guacamole/src/main/webapp/app/index/styles/lists.css
@@ -83,3 +83,14 @@ div.recent-connections .protocol {
margin-left: 0.25em;
}
+.placeholder {
+
+ color: rgba(255, 255, 255, 0.5);
+ text-shadow: -1px -1px rgba(0, 0, 0, 0.5);
+ text-align: center;
+ opacity: 0.5;
+
+ font-size: 2em;
+ font-weight: bolder;
+
+}
diff --git a/guacamole/src/main/webapp/app/index/styles/ui.css b/guacamole/src/main/webapp/app/index/styles/ui.css
index 4c8ca5fb9..87c407bcb 100644
--- a/guacamole/src/main/webapp/app/index/styles/ui.css
+++ b/guacamole/src/main/webapp/app/index/styles/ui.css
@@ -211,44 +211,6 @@ div.section {
background: inherit;
}
-/*
- * List element fields (editing)
- */
-
-.form .fields th,
-.form .permissions th {
- font-weight: normal;
- vertical-align: middle;
- text-align: left;
-}
-
-.form h2 {
- border-top: none;
-}
-
-.form h3 {
- font-size: 1em;
- margin-bottom: 0.25em;
-}
-
-.form {
- cursor: auto;
- animation-name: fadein;
- -webkit-animation-name: fadein;
- animation-duration: 0.125s;
- -webkit-animation-duration: 0.125s;
-}
-
-.object-buttons {
-
- text-align: right;
-
- border-top: 1px solid rgba(0, 0, 0, 0.1);
- padding-top: 0.5em;
- margin: 0.5em;
-
-}
-
/*
* List element icons
*/
diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageConnectionController.js b/guacamole/src/main/webapp/app/manage/controllers/manageConnectionController.js
index b4a4db2f8..9d5914910 100644
--- a/guacamole/src/main/webapp/app/manage/controllers/manageConnectionController.js
+++ b/guacamole/src/main/webapp/app/manage/controllers/manageConnectionController.js
@@ -291,7 +291,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
* Cancels all pending edits, returning to the management page.
*/
$scope.cancel = function cancel() {
- $location.url('/manage/');
+ $location.path('/manage/modules/connections/');
};
/**
@@ -313,7 +313,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
// Save the connection
connectionService.saveConnection($scope.connection)
.success(function savedConnection() {
- $location.path('/manage/');
+ $location.path('/manage/modules/connections/');
})
// Notify of any errors
@@ -363,7 +363,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
// Delete the connection
connectionService.deleteConnection($scope.connection)
.success(function deletedConnection() {
- $location.path('/manage/');
+ $location.path('/manage/modules/connections/');
})
// Notify of any errors
diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageConnectionGroupController.js b/guacamole/src/main/webapp/app/manage/controllers/manageConnectionGroupController.js
index 0c36166f6..559d9c0fe 100644
--- a/guacamole/src/main/webapp/app/manage/controllers/manageConnectionGroupController.js
+++ b/guacamole/src/main/webapp/app/manage/controllers/manageConnectionGroupController.js
@@ -171,7 +171,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
* Cancels all pending edits, returning to the management page.
*/
$scope.cancel = function cancel() {
- $location.path('/manage/');
+ $location.path('/manage/modules/connections/');
};
/**
@@ -183,7 +183,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
// Save the connection
connectionGroupService.saveConnectionGroup($scope.connectionGroup)
.success(function savedConnectionGroup() {
- $location.path('/manage/');
+ $location.path('/manage/modules/connections/');
})
// Notify of any errors
@@ -233,7 +233,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
// Delete the connection group
connectionGroupService.deleteConnectionGroup($scope.connectionGroup)
.success(function deletedConnectionGroup() {
- $location.path('/manage/');
+ $location.path('/manage/modules/connections/');
})
// Notify of any errors
diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
index fccda946c..a4beffedb 100644
--- a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
+++ b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
@@ -400,7 +400,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
* Cancels all pending edits, returning to the management page.
*/
$scope.cancel = function cancel() {
- $location.path('/manage/');
+ $location.path('/manage/modules/users/');
};
/**
@@ -426,7 +426,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
// Upon success, save any changed permissions
permissionService.patchPermissions($scope.user.username, permissionsAdded, permissionsRemoved)
.success(function patchedUserPermissions() {
- $location.path('/manage/');
+ $location.path('/manage/modules/users/');
})
// Notify of any errors
@@ -488,7 +488,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
// Delete the user
userService.deleteUser($scope.user)
.success(function deletedUser() {
- $location.path('/manage/');
+ $location.path('/manage/modules/users/');
})
// Notify of any errors
diff --git a/guacamole/src/main/webapp/app/manage/styles/forms.css b/guacamole/src/main/webapp/app/manage/styles/forms.css
index d8d63fd3c..0724562e2 100644
--- a/guacamole/src/main/webapp/app/manage/styles/forms.css
+++ b/guacamole/src/main/webapp/app/manage/styles/forms.css
@@ -30,12 +30,3 @@
text-align: center;
margin-bottom: 1em;
}
-
-.manage .user-add-form {
- margin-bottom: 0.5em;
-}
-
-.manage .user-add-form input.name {
- max-width: 80%;
- width: 20em;
-}
diff --git a/guacamole/src/main/webapp/app/manage/styles/sessions.css b/guacamole/src/main/webapp/app/manage/styles/sessions.css
new file mode 100644
index 000000000..102546183
--- /dev/null
+++ b/guacamole/src/main/webapp/app/manage/styles/sessions.css
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2015 Glyptodon LLC
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+.manage table.session-list {
+ width: 100%;
+ border-collapse: collapse;
+}
+
+.manage table.session-list tr.session:hover {
+ background: #CDA;
+}
+
+.manage table.session-list th {
+ background: rgba(0, 0, 0, 0.125);
+}
+
+.manage table.session-list th,
+.manage table.session-list td {
+ border: 1px solid #AAA;
+ padding: 0.5em 1em;
+}
+
+.manage table.session-list .select-session {
+ min-width: 2em;
+ text-align: center;
+}
diff --git a/guacamole/src/main/webapp/app/manage/templates/connection.html b/guacamole/src/main/webapp/app/manage/templates/connection.html
index 2b65ee7d6..cd0950b92 100644
--- a/guacamole/src/main/webapp/app/manage/templates/connection.html
+++ b/guacamole/src/main/webapp/app/manage/templates/connection.html
@@ -33,7 +33,7 @@
- {{'MANAGE.INFO_ACTIVE_USER_COUNT' | translate:'{USERS: item.activeConnections}'}}
+ {{'MANAGE_CONNECTION.INFO_ACTIVE_USER_COUNT' | translate:'{USERS: item.activeConnections}'}}
diff --git a/guacamole/src/main/webapp/app/manage/templates/manageConnections.html b/guacamole/src/main/webapp/app/manage/templates/manageConnections.html
index 3404fa47a..e314e299a 100644
--- a/guacamole/src/main/webapp/app/manage/templates/manageConnections.html
+++ b/guacamole/src/main/webapp/app/manage/templates/manageConnections.html
@@ -28,32 +28,29 @@ THE SOFTWARE.
-
-
+
+
{{'MANAGE_CONNECTION.HELP_CONNECTIONS' | translate}}
-
{{'MANAGE_CONNECTION.HELP_CONNECTIONS' | translate}}
+
+
-
-
-
-
-
+
+
+
diff --git a/guacamole/src/main/webapp/app/manage/templates/manageSessions.html b/guacamole/src/main/webapp/app/manage/templates/manageSessions.html
index 144b09024..741d47ce4 100644
--- a/guacamole/src/main/webapp/app/manage/templates/manageSessions.html
+++ b/guacamole/src/main/webapp/app/manage/templates/manageSessions.html
@@ -28,57 +28,45 @@ THE SOFTWARE.
-
-
+
+
{{'MANAGE_SESSION.HELP_SESSIONS' | translate}}
-
{{'MANAGE_SESSION.HELP_SESSIONS' | translate}}
-
-
-
- {{'MANAGE_SESSION.ACTION_DELETE' | translate}}
-
-
-
-
-
+
+
+ {{'MANAGE_SESSION.ACTION_DELETE' | translate}}
+
+
+
+
+
+
+ {{'MANAGE_SESSION.INFO_NO_SESSIONS' | translate}}
+
+
+
+
\ No newline at end of file
diff --git a/guacamole/src/main/webapp/app/manage/templates/manageUsers.html b/guacamole/src/main/webapp/app/manage/templates/manageUsers.html
index a0e231191..e61cc3564 100644
--- a/guacamole/src/main/webapp/app/manage/templates/manageUsers.html
+++ b/guacamole/src/main/webapp/app/manage/templates/manageUsers.html
@@ -28,33 +28,29 @@ THE SOFTWARE.
-
-
-
-
{{'MANAGE_USER.HELP_USERS' | translate}}
-
-
-
-
- {{'MANAGE_USER.ACTION_NEW_USER' | translate}}
-
-
-
-
-
-
-
+
+
{{'MANAGE_USER.HELP_USERS' | translate}}
+
+
+
+ {{'MANAGE_USER.ACTION_NEW_USER' | translate}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/guacamole/src/main/webapp/app/userMenu/directives/guacUserMenu.js b/guacamole/src/main/webapp/app/userMenu/directives/guacUserMenu.js
index 6ae882977..942644253 100644
--- a/guacamole/src/main/webapp/app/userMenu/directives/guacUserMenu.js
+++ b/guacamole/src/main/webapp/app/userMenu/directives/guacUserMenu.js
@@ -97,29 +97,30 @@ angular.module('userMenu').directive('guacUserMenu', [function guacUserMenu() {
* @type Boolean
*/
$scope.manageUsersDisabled =
- ($location.path() === '/manage/modules/user');
+ ($location.path() === '/manage/modules/users/');
/**
- * Whether the option to go to the connection management interface is
- * disabled. Note that shis is different from canManageConnections,
- * which deals with whether permission to manage is granted. A user
- * may have permission, yet see this option as currently disabled.
+ * Whether the option to go to the connection management interface
+ * is disabled. Note that shis is different from
+ * canManageConnections, which deals with whether permission to
+ * manage is granted. A user may have permission, yet see this
+ * option as currently disabled.
*
* @type Boolean
*/
$scope.manageConnectionsDisabled =
- ($location.path() === '/manage/modules/connections');
+ ($location.path() === '/manage/modules/connections/');
/**
* Whether the option to go to the session management interface is
- * disabled. Note that shis is different from canManageConnections,
+ * disabled. Note that shis is different from canManageSessions,
* which deals with whether permission to manage is granted. A user
* may have permission, yet see this option as currently disabled.
*
* @type Boolean
*/
$scope.manageSessionsDisabled =
- ($location.path() === '/manage/modules/sessions');
+ ($location.path() === '/manage/modules/sessions/');
/**
* Whether the current user has sufficient permissions to use the
@@ -350,21 +351,21 @@ angular.module('userMenu').directive('guacUserMenu', [function guacUserMenu() {
* Navigates to the user management interface.
*/
$scope.manageUsers = function manageUsers() {
- $location.path('/manage/modules/users');
+ $location.path('/manage/modules/users/');
};
/**
* Navigates to the connection management interface.
*/
$scope.manageConnections = function manageConnections() {
- $location.path('/manage/modules/connections');
+ $location.path('/manage/modules/connections/');
};
/**
* Navigates to the user session management interface.
*/
$scope.manageSessions = function manageSessions() {
- $location.path('/manage/modules/sessions');
+ $location.path('/manage/modules/sessions/');
};
/**
diff --git a/guacamole/src/main/webapp/app/userMenu/templates/guacUserMenu.html b/guacamole/src/main/webapp/app/userMenu/templates/guacUserMenu.html
index 4cb556468..4f8d8bf52 100644
--- a/guacamole/src/main/webapp/app/userMenu/templates/guacUserMenu.html
+++ b/guacamole/src/main/webapp/app/userMenu/templates/guacUserMenu.html
@@ -30,35 +30,43 @@
-
+
{{'USER_MENU.ACTION_NAVIGATE_HOME' | translate}}
-
+
{{'USER_MENU.ACTION_MANAGE_USERS' | translate}}
-
+
{{'USER_MENU.ACTION_MANAGE_CONNECTIONS' | translate}}
-
+
{{'USER_MENU.ACTION_MANAGE_SESSIONS' | translate}}
-
+
{{'USER_MENU.ACTION_CHANGE_PASSWORD' | translate}}
diff --git a/guacamole/src/main/webapp/translations/en_US.json b/guacamole/src/main/webapp/translations/en_US.json
index 0f85ddd09..7348958d9 100644
--- a/guacamole/src/main/webapp/translations/en_US.json
+++ b/guacamole/src/main/webapp/translations/en_US.json
@@ -11,8 +11,8 @@
"ACTION_LOGIN" : "Login",
"ACTION_LOGOUT" : "Logout",
"ACTION_MANAGE_CONNECTIONS" : "Manage Connections",
- "ACTION_MANAGE_SESSIONS" : "Manage Sessions",
- "ACTION_MANAGE_USERS" : "Manage Users",
+ "ACTION_MANAGE_SESSIONS" : "Active Sessions",
+ "ACTION_MANAGE_USERS" : "Users",
"ACTION_NAVIGATE_BACK" : "Back",
"ACTION_NAVIGATE_HOME" : "Home",
"ACTION_SAVE" : "Save",
@@ -165,7 +165,7 @@
"INFO_CONNECTION_ACTIVE_NOW" : "Active Now",
"INFO_CONNECTION_NOT_USED" : "This connection has not yet been used.",
- "SECTION_HEADER_CONNECTIONS" : "Connections",
+ "SECTION_HEADER_CONNECTIONS" : "Manage Connections",
"SECTION_HEADER_EDIT_CONNECTION" : "Edit Connection",
"SECTION_HEADER_HISTORY" : "Usage History",
"SECTION_HEADER_PARAMETERS" : "Parameters",
@@ -245,10 +245,12 @@
"HELP_SESSIONS" : "All currently-active Guacamole sessions are listed here. If you wish to kill one or more sessions, check the box next to those sessions and click \"Kill Sessions\". Killing a session will immediately disconnect the user from the associated connection.",
- "SECTION_HEADER_SESSIONS" : "Sessions",
+ "INFO_NO_SESSIONS" : "No active sessions",
+
+ "SECTION_HEADER_SESSIONS" : "Active Sessions",
"TABLE_HEADER_SESSION_USERNAME" : "Username",
- "TABLE_HEADER_SESSION_STARTDATE" : "Start date",
+ "TABLE_HEADER_SESSION_STARTDATE" : "Active since",
"TABLE_HEADER_SESSION_REMOTEHOST" : "Remote host",
"TABLE_HEADER_SESSION_CONNECTION_NAME" : "Connection name",