Merge pull request #296 from glyptodon/connection-perm-filter

GUAC-1406: Filter connections/groups within user edit screen.
This commit is contained in:
James Muehlner
2015-12-08 14:26:43 -08:00
11 changed files with 149 additions and 91 deletions

View File

@@ -53,18 +53,3 @@ div.recent-connections div.connection {
max-width: 75%;
overflow: hidden;
}
.connection-list-ui .header .filter {
margin: 0;
padding: 0.75em 0.5em;
}
.connection-list-ui .header .filter input {
-moz-border-radius: 0;
-webkit-border-radius: 0;
-khtml-border-radius: 0;
border-radius: 0;
border: none;
border-left: 1px solid rgba(0, 0, 0, 0.125);
background-color: transparent;
}

View File

@@ -0,0 +1,107 @@
/*
* 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.
*/
h1 {
margin: 0;
padding: 0.5em;
font-size: 2em;
vertical-align: middle;
text-align: center;
}
h2 {
font-size: 1.25em;
font-weight: bold;
text-transform: uppercase;
padding: 0.75em 0.5em;
margin: 0;
}
.header {
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
background: rgba(0, 0, 0, 0.04);
margin-bottom: 1em;
margin-top: 0;
border-top: none;
width: 100%;
/* IE10 */
display: -ms-flexbox;
-ms-flex-align: stretch;
-ms-flex-direction: row;
/* Ancient Mozilla */
display: -moz-box;
-moz-box-align: stretch;
-moz-box-orient: horizontal;
/* Ancient WebKit */
display: -webkit-box;
-webkit-box-align: stretch;
-webkit-box-orient: horizontal;
/* Old WebKit */
display: -webkit-flex;
-webkit-align-items: stretch;
-webkit-flex-direction: row;
/* W3C */
display: flex;
align-items: stretch;
flex-direction: row;
}
.header ~ * .header,
.header ~ .header {
margin-top: 1em;
border-top: 1px solid rgba(0, 0, 0, 0.125);
}
.header h2 {
-ms-flex: 1 1 auto;
-moz-box-flex: 1;
-webkit-box-flex: 1;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
.header .filter {
margin: 0;
padding: 0.75em 0.5em;
}
.header .filter input {
-moz-border-radius: 0;
-webkit-border-radius: 0;
-khtml-border-radius: 0;
border-radius: 0;
border: none;
border-left: 1px solid rgba(0, 0, 0, 0.125);
background-color: transparent;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2013 Glyptodon LLC
* 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
@@ -39,77 +39,6 @@ img {
vertical-align: middle;
}
h1 {
margin: 0;
padding: 0.5em;
font-size: 2em;
vertical-align: middle;
text-align: center;
}
h2 {
font-size: 1.25em;
font-weight: bold;
text-transform: uppercase;
padding: 0.75em 0.5em;
margin: 0;
}
.header {
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
background: rgba(0, 0, 0, 0.04);
margin-bottom: 1em;
margin-top: 0;
border-top: none;
width: 100%;
/* IE10 */
display: -ms-flexbox;
-ms-flex-align: stretch;
-ms-flex-direction: row;
/* Ancient Mozilla */
display: -moz-box;
-moz-box-align: stretch;
-moz-box-orient: horizontal;
/* Ancient WebKit */
display: -webkit-box;
-webkit-box-align: stretch;
-webkit-box-orient: horizontal;
/* Old WebKit */
display: -webkit-flex;
-webkit-align-items: stretch;
-webkit-flex-direction: row;
/* W3C */
display: flex;
align-items: stretch;
flex-direction: row;
}
.header ~ * .header,
.header ~ .header {
margin-top: 1em;
border-top: 1px solid rgba(0, 0, 0, 0.125);
}
.header h2 {
-ms-flex: 1 1 auto;
-moz-box-flex: 1;
-webkit-box-flex: 1;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
div.section {
margin: 1em;
padding: 0;

View File

@@ -36,7 +36,6 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
// Required services
var $location = $injector.get('$location');
var $routeParams = $injector.get('$routeParams');
var $q = $injector.get('$q');
var authenticationService = $injector.get('authenticationService');
var connectionGroupService = $injector.get('connectionGroupService');
var dataSourceService = $injector.get('dataSourceService');
@@ -120,7 +119,26 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
* @type Object.<String, ConnectionGroup>
*/
$scope.rootGroups = null;
/**
* Array of all connection properties that are filterable.
*
* @type String[]
*/
$scope.filteredConnectionProperties = [
'name',
'protocol'
];
/**
* Array of all connection group properties that are filterable.
*
* @type String[]
*/
$scope.filteredConnectionGroupProperties = [
'name'
];
/**
* A map of data source identifiers to the set of all permissions
* associated with the current user under that data source, or null if the

View File

@@ -87,11 +87,18 @@ THE SOFTWARE.
<!-- Connection permissions section -->
<div class="connection-permissions" ng-show="canChangePermissions()">
<h2 class="header">{{'MANAGE_USER.SECTION_HEADER_CONNECTIONS' | translate}}</h2>
<div class="header">
<h2>{{'MANAGE_USER.SECTION_HEADER_CONNECTIONS' | translate}}</h2>
<guac-group-list-filter connection-groups="rootGroups"
filtered-connection-groups="filteredRootGroups"
placeholder="'MANAGE_USER.FIELD_PLACEHOLDER_FILTER' | translate"
connection-properties="filteredConnectionProperties"
connection-group-properties="filteredConnectionGroupProperties"></guac-group-list-filter>
</div>
<div class="section">
<guac-group-list
context="groupListContext"
connection-groups="rootGroups"
connection-groups="filteredRootGroups"
connection-template="'app/manage/templates/connectionPermission.html'"
connection-group-template="'app/manage/templates/connectionGroupPermission.html'"
page-size="20"/>

View File

@@ -254,6 +254,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Benutzername:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"INFO_READ_ONLY" : "Dieses Benutzerkonto kann nicht bearbeitet werden.",
"SECTION_HEADER_CONNECTIONS" : "Verbindungen",

View File

@@ -254,6 +254,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Username:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"INFO_READ_ONLY" : "Sorry, but this user account cannot be edited.",
"SECTION_HEADER_CONNECTIONS" : "Connections",

View File

@@ -245,6 +245,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Identifiant:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"SECTION_HEADER_CONNECTIONS" : "Connexions",
"SECTION_HEADER_EDIT_USER" : "Modifier Utilisateur",
"SECTION_HEADER_PERMISSIONS" : "Permissions",

View File

@@ -242,6 +242,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Username:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"SECTION_HEADER_CONNECTIONS" : "Connessioni",
"SECTION_HEADER_EDIT_USER" : "Modifica Utente",
"SECTION_HEADER_PERMISSIONS" : "Permessi",

View File

@@ -254,6 +254,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Gebruikersnaam:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"INFO_READ_ONLY" : "Sorry, maar dit gebruikers account kan niet gewijzigd worden",
"SECTION_HEADER_CONNECTIONS" : "Verbindingen",

View File

@@ -242,6 +242,8 @@
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USERNAME" : "Имя пользователя:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
"SECTION_HEADER_CONNECTIONS" : "Подключения",
"SECTION_HEADER_EDIT_USER" : "Редактировать пользователя",
"SECTION_HEADER_PERMISSIONS" : "Разрешения",