GUACAMOLE-338: Allow guacGroupList and guacGroupListFilter to accept GroupListItems in addition to ConnectionGroups.

This commit is contained in:
Michael Jumper
2017-07-03 16:07:24 -07:00
parent 303be24cc1
commit 5648c36c26
2 changed files with 19 additions and 6 deletions

View File

@@ -32,7 +32,7 @@ angular.module('groupList').directive('guacGroupList', [function guacGroupList()
* The connection groups to display as a map of data source
* identifier to corresponding root group.
*
* @type Object.<String, ConnectionGroup>
* @type Object.<String, ConnectionGroup|GroupListItem>
*/
connectionGroups : '=',
@@ -167,12 +167,20 @@ angular.module('groupList').directive('guacGroupList', [function guacGroupList()
// Add each provided connection group
angular.forEach(connectionGroups, function addConnectionGroup(connectionGroup, dataSource) {
var rootItem;
// Prepare data source for active connection counting
dataSources.push(dataSource);
connectionCount[dataSource] = {};
// If the provided connection group is already a
// GroupListItem, no need to create a new item
if (connectionGroup instanceof GroupListItem)
rootItem = connectionGroup;
// Create root item for current connection group
var rootItem = GroupListItem.fromConnectionGroup(dataSource, connectionGroup,
else
rootItem = GroupListItem.fromConnectionGroup(dataSource, connectionGroup,
$scope.isVisible(GroupListItem.Type.CONNECTION),
$scope.isVisible(GroupListItem.Type.SHARING_PROFILE),
countActiveConnections);

View File

@@ -49,7 +49,7 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
* identifier to corresponding root group. A subset of this map
* will be exposed as filteredConnectionGroups.
*
* @type Object.<String, ConnectionGroup>
* @type Object.<String, ConnectionGroup|GroupListItem>
*/
connectionGroups : '&',
@@ -81,6 +81,7 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
// Required types
var ConnectionGroup = $injector.get('ConnectionGroup');
var FilterPattern = $injector.get('FilterPattern');
var GroupListItem = $injector.get('GroupListItem');
/**
* The pattern object to use when filtering connections.
@@ -176,6 +177,10 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
if (connectionGroups) {
angular.forEach(connectionGroups, function updateFilteredConnectionGroup(connectionGroup, dataSource) {
// Unwrap GroupListItem
if (connectionGroup instanceof GroupListItem)
connectionGroup = connectionGroup.wrappedItem;
// Flatten hierarchy of connection group
var filteredGroup = flattenConnectionGroup(connectionGroup);