Repository: guacamole-client Updated Branches: refs/heads/master c170612cd -> e7cb654c2
GUACAMOLE-394: List users in a table displaying last active time. Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/138ea40d Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/138ea40d Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/138ea40d Branch: refs/heads/master Commit: 138ea40dc947f8ff32f82737e7c2d74adcc07718 Parents: 67fc77a Author: Michael Jumper <mjum...@apache.org> Authored: Mon Sep 18 12:36:35 2017 -0700 Committer: Michael Jumper <mjum...@apache.org> Committed: Mon Dec 11 20:44:28 2017 -0800 ---------------------------------------------------------------------- .../settings/directives/guacSettingsUsers.js | 33 ++++++++++++++- .../webapp/app/settings/styles/user-list.css | 42 ++++++++++++++++++++ .../app/settings/templates/settingsUsers.html | 35 +++++++++++----- guacamole/src/main/webapp/translations/de.json | 6 ++- guacamole/src/main/webapp/translations/en.json | 7 +++- guacamole/src/main/webapp/translations/fr.json | 6 ++- guacamole/src/main/webapp/translations/it.json | 6 ++- guacamole/src/main/webapp/translations/nl.json | 6 ++- guacamole/src/main/webapp/translations/no.json | 6 ++- guacamole/src/main/webapp/translations/ru.json | 6 ++- 10 files changed, 134 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/app/settings/directives/guacSettingsUsers.js ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/app/settings/directives/guacSettingsUsers.js b/guacamole/src/main/webapp/app/settings/directives/guacSettingsUsers.js index cc134fa..1ac9fad 100644 --- a/guacamole/src/main/webapp/app/settings/directives/guacSettingsUsers.js +++ b/guacamole/src/main/webapp/app/settings/directives/guacSettingsUsers.js @@ -36,9 +36,11 @@ angular.module('settings').directive('guacSettingsUsers', [function guacSettings // Required types var ManageableUser = $injector.get('ManageableUser'); var PermissionSet = $injector.get('PermissionSet'); + var SortOrder = $injector.get('SortOrder'); // Required services var $location = $injector.get('$location'); + var $translate = $injector.get('$translate'); var authenticationService = $injector.get('authenticationService'); var dataSourceService = $injector.get('dataSourceService'); var guacNotification = $injector.get('guacNotification'); @@ -98,10 +100,38 @@ angular.module('settings').directive('guacSettingsUsers', [function guacSettings * @type String[] */ $scope.filteredUserProperties = [ + 'user.lastActive', 'user.username' ]; /** + * The date format for use for the last active date. + * + * @type String + */ + $scope.dateFormat = null; + + /** + * SortOrder instance which stores the sort order of the listed + * users. + * + * @type SortOrder + */ + $scope.order = new SortOrder([ + 'user.username', + '-user.lastActive' + ]); + + // Get session date format + $translate('SETTINGS_USERS.FORMAT_DATE') + .then(function dateFormatReceived(retrievedDateFormat) { + + // Store received date format + $scope.dateFormat = retrievedDateFormat; + + }); + + /** * Returns whether critical data has completed being loaded. * * @returns {Boolean} @@ -110,7 +140,8 @@ angular.module('settings').directive('guacSettingsUsers', [function guacSettings */ $scope.isLoaded = function isLoaded() { - return $scope.manageableUsers !== null + return $scope.dateFormat !== null + && $scope.manageableUsers !== null && $scope.permissions !== null; }; http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/app/settings/styles/user-list.css ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/app/settings/styles/user-list.css b/guacamole/src/main/webapp/app/settings/styles/user-list.css new file mode 100644 index 0000000..6c0edd5 --- /dev/null +++ b/guacamole/src/main/webapp/app/settings/styles/user-list.css @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, 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. + */ + +.settings.users table.user-list { + width: 100%; +} + +.settings.users table.user-list th.last-active, +.settings.users table.user-list td.last-active { + white-space: nowrap; + width: 0; +} + +.settings.users table.user-list th.username, +.settings.users table.user-list td.username { + width: 100%; +} + +.settings.users table.user-list tr.user td.username a[href] { + display: block; + padding: .5em 1em; +} + +.settings.users table.user-list tr.user td.username { + padding: 0; +} http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/app/settings/templates/settingsUsers.html ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/app/settings/templates/settingsUsers.html b/guacamole/src/main/webapp/app/settings/templates/settingsUsers.html index 41dac6c..67f6760 100644 --- a/guacamole/src/main/webapp/app/settings/templates/settingsUsers.html +++ b/guacamole/src/main/webapp/app/settings/templates/settingsUsers.html @@ -21,19 +21,32 @@ </div> <!-- List of users this user has access to --> - <div class="user-list"> - <div ng-repeat="manageableUser in manageableUserPage" class="user list-item"> - <a ng-href="#/manage/{{manageableUser.dataSource}}/users/{{manageableUser.user.username}}"> - <div class="caption"> - <div class="icon user"></div> - <span class="name">{{manageableUser.user.username}}</span> - </div> - </a> - </div> - </div> + <table class="sorted user-list"> + <thead> + <tr> + <th guac-sort-order="order" guac-sort-property="'user.username'" class="username"> + {{'SETTINGS_USERS.TABLE_HEADER_USERNAME' | translate}} + </th> + <th guac-sort-order="order" guac-sort-property="'user.lastActive'" class="last-active"> + {{'SETTINGS_USERS.TABLE_HEADER_LAST_ACTIVE' | translate}} + </th> + </tr> + </thead> + <tbody ng-class="{loading: !isLoaded()}"> + <tr ng-repeat="manageableUser in manageableUserPage" class="user"> + <td class="username"> + <a ng-href="#/manage/{{manageableUser.dataSource}}/users/{{manageableUser.user.username}}"> + <div class="icon user"></div> + <span class="name">{{manageableUser.user.username}}</span> + </a> + </td> + <td class="last-active">{{manageableUser.user.lastActive | date : dateFormat}}</td> + </tr> + </tbody> + </table> <!-- Pager controls for user list --> <guac-pager page="manageableUserPage" page-size="25" - items="filteredManageableUsers | orderBy : 'user.username'"></guac-pager> + items="filteredManageableUsers | orderBy : order.predicate"></guac-pager> </div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/de.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/de.json b/guacamole/src/main/webapp/translations/de.json index 9403402..90953e5 100644 --- a/guacamole/src/main/webapp/translations/de.json +++ b/guacamole/src/main/webapp/translations/de.json @@ -598,9 +598,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Klicke oder Tippe auf einen Benutzer um diesen zu verwalten. Abhänig von Ihrer Zugriffsebene können Benutzer hinzugefügt, gelöscht bzw. dessen Passwort geändert werden.", - "SECTION_HEADER_USERS" : "Benutzer" + "SECTION_HEADER_USERS" : "Benutzer", + + "TABLE_HEADER_USERNAME" : "Benutzername" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/en.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/en.json b/guacamole/src/main/webapp/translations/en.json index 2b4fb5d..a64f64c 100644 --- a/guacamole/src/main/webapp/translations/en.json +++ b/guacamole/src/main/webapp/translations/en.json @@ -675,9 +675,14 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Click or tap on a user below to manage that user. Depending on your access level, users can be added and deleted, and their passwords can be changed.", - "SECTION_HEADER_USERS" : "Users" + "SECTION_HEADER_USERS" : "Users", + + "TABLE_HEADER_LAST_ACTIVE" : "Last active", + "TABLE_HEADER_USERNAME" : "Username" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/fr.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/fr.json b/guacamole/src/main/webapp/translations/fr.json index d59c384..8ebbd36 100644 --- a/guacamole/src/main/webapp/translations/fr.json +++ b/guacamole/src/main/webapp/translations/fr.json @@ -601,9 +601,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Cliquer ou appuyer sur un utilisateur en dessous pour le gérer. Selon vos permissions, les utilisateurs peuvent être ajoutés, supprimés, leur mot de passe changé.", - "SECTION_HEADER_USERS" : "Utilisateur" + "SECTION_HEADER_USERS" : "Utilisateur", + + "TABLE_HEADER_USERNAME" : "Identifiant" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/it.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/it.json b/guacamole/src/main/webapp/translations/it.json index e84e67f..5b3f641 100644 --- a/guacamole/src/main/webapp/translations/it.json +++ b/guacamole/src/main/webapp/translations/it.json @@ -543,9 +543,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Click or tap on a user below to manage that user. Depending on your access level, users can be added and deleted, and their passwords can be changed.", - "SECTION_HEADER_USERS" : "Utenti" + "SECTION_HEADER_USERS" : "Utenti", + + "TABLE_HEADER_USERNAME" : "Username" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/nl.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/nl.json b/guacamole/src/main/webapp/translations/nl.json index 7cc867b..69a789a 100644 --- a/guacamole/src/main/webapp/translations/nl.json +++ b/guacamole/src/main/webapp/translations/nl.json @@ -631,9 +631,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Klik of tik op een van de onderstaande gebruikers om die te beheren. Afhankelijk van uw toegangsniveau kunnen gebruikers worden toegevoegd, verwijderd en hun wachtwoorden gewijzigd.", - "SECTION_HEADER_USERS" : "Gebruikers" + "SECTION_HEADER_USERS" : "Gebruikers", + + "TABLE_HEADER_USERNAME" : "Gebruikersnaam" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/no.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/no.json b/guacamole/src/main/webapp/translations/no.json index 8b20b5d..30ea871 100644 --- a/guacamole/src/main/webapp/translations/no.json +++ b/guacamole/src/main/webapp/translations/no.json @@ -612,9 +612,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "Klikk pÃ¥ en bruker under for Ã¥ administrere den brukeren. Avhengig av din tilgang kan brukere legges til, slettes og passordet kan endres.", - "SECTION_HEADER_USERS" : "Brukere" + "SECTION_HEADER_USERS" : "Brukere", + + "TABLE_HEADER_USERNAME" : "Brukernavn" }, http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/138ea40d/guacamole/src/main/webapp/translations/ru.json ---------------------------------------------------------------------- diff --git a/guacamole/src/main/webapp/translations/ru.json b/guacamole/src/main/webapp/translations/ru.json index 0e47f60..4f04525 100644 --- a/guacamole/src/main/webapp/translations/ru.json +++ b/guacamole/src/main/webapp/translations/ru.json @@ -524,9 +524,13 @@ "FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER", + "FORMAT_DATE" : "@:APP.FORMAT_DATE_TIME_PRECISE", + "HELP_USERS" : "ÐажмиÑе на полÑзоваÑелÑ, ÑÑÐ¾Ð±Ñ ÑпÑавлÑÑÑ Ð¸Ð¼. РзавиÑимоÑÑи Ð¾Ñ Ð¿Ñав доÑÑÑпа возможно добавление и Ñдаление полÑзоваÑелей, а Ñакже изменение паÑолей.", - "SECTION_HEADER_USERS" : "ÐолÑзоваÑели" + "SECTION_HEADER_USERS" : "ÐолÑзоваÑели", + + "TABLE_HEADER_USERNAME" : "ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ" },