mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUACAMOLE-338: Allow guacGroupList and guacGroupListFilter to accept GroupListItems in addition to ConnectionGroups.
This commit is contained in:
@@ -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,15 +167,23 @@ 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,
|
||||
$scope.isVisible(GroupListItem.Type.CONNECTION),
|
||||
$scope.isVisible(GroupListItem.Type.SHARING_PROFILE),
|
||||
countActiveConnections);
|
||||
else
|
||||
rootItem = GroupListItem.fromConnectionGroup(dataSource, connectionGroup,
|
||||
$scope.isVisible(GroupListItem.Type.CONNECTION),
|
||||
$scope.isVisible(GroupListItem.Type.SHARING_PROFILE),
|
||||
countActiveConnections);
|
||||
|
||||
// If root group is to be shown, add it as a root item
|
||||
if ($scope.showRootGroup)
|
||||
|
@@ -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);
|
||||
|
||||
|
Reference in New Issue
Block a user