mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 05:31:22 +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
|
* The connection groups to display as a map of data source
|
||||||
* identifier to corresponding root group.
|
* identifier to corresponding root group.
|
||||||
*
|
*
|
||||||
* @type Object.<String, ConnectionGroup>
|
* @type Object.<String, ConnectionGroup|GroupListItem>
|
||||||
*/
|
*/
|
||||||
connectionGroups : '=',
|
connectionGroups : '=',
|
||||||
|
|
||||||
@@ -167,15 +167,23 @@ angular.module('groupList').directive('guacGroupList', [function guacGroupList()
|
|||||||
// Add each provided connection group
|
// Add each provided connection group
|
||||||
angular.forEach(connectionGroups, function addConnectionGroup(connectionGroup, dataSource) {
|
angular.forEach(connectionGroups, function addConnectionGroup(connectionGroup, dataSource) {
|
||||||
|
|
||||||
|
var rootItem;
|
||||||
|
|
||||||
// Prepare data source for active connection counting
|
// Prepare data source for active connection counting
|
||||||
dataSources.push(dataSource);
|
dataSources.push(dataSource);
|
||||||
connectionCount[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
|
// Create root item for current connection group
|
||||||
var rootItem = GroupListItem.fromConnectionGroup(dataSource, connectionGroup,
|
else
|
||||||
$scope.isVisible(GroupListItem.Type.CONNECTION),
|
rootItem = GroupListItem.fromConnectionGroup(dataSource, connectionGroup,
|
||||||
$scope.isVisible(GroupListItem.Type.SHARING_PROFILE),
|
$scope.isVisible(GroupListItem.Type.CONNECTION),
|
||||||
countActiveConnections);
|
$scope.isVisible(GroupListItem.Type.SHARING_PROFILE),
|
||||||
|
countActiveConnections);
|
||||||
|
|
||||||
// If root group is to be shown, add it as a root item
|
// If root group is to be shown, add it as a root item
|
||||||
if ($scope.showRootGroup)
|
if ($scope.showRootGroup)
|
||||||
|
@@ -49,7 +49,7 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
|
|||||||
* identifier to corresponding root group. A subset of this map
|
* identifier to corresponding root group. A subset of this map
|
||||||
* will be exposed as filteredConnectionGroups.
|
* will be exposed as filteredConnectionGroups.
|
||||||
*
|
*
|
||||||
* @type Object.<String, ConnectionGroup>
|
* @type Object.<String, ConnectionGroup|GroupListItem>
|
||||||
*/
|
*/
|
||||||
connectionGroups : '&',
|
connectionGroups : '&',
|
||||||
|
|
||||||
@@ -81,6 +81,7 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
|
|||||||
// Required types
|
// Required types
|
||||||
var ConnectionGroup = $injector.get('ConnectionGroup');
|
var ConnectionGroup = $injector.get('ConnectionGroup');
|
||||||
var FilterPattern = $injector.get('FilterPattern');
|
var FilterPattern = $injector.get('FilterPattern');
|
||||||
|
var GroupListItem = $injector.get('GroupListItem');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The pattern object to use when filtering connections.
|
* The pattern object to use when filtering connections.
|
||||||
@@ -176,6 +177,10 @@ angular.module('groupList').directive('guacGroupListFilter', [function guacGroup
|
|||||||
if (connectionGroups) {
|
if (connectionGroups) {
|
||||||
angular.forEach(connectionGroups, function updateFilteredConnectionGroup(connectionGroup, dataSource) {
|
angular.forEach(connectionGroups, function updateFilteredConnectionGroup(connectionGroup, dataSource) {
|
||||||
|
|
||||||
|
// Unwrap GroupListItem
|
||||||
|
if (connectionGroup instanceof GroupListItem)
|
||||||
|
connectionGroup = connectionGroup.wrappedItem;
|
||||||
|
|
||||||
// Flatten hierarchy of connection group
|
// Flatten hierarchy of connection group
|
||||||
var filteredGroup = flattenConnectionGroup(connectionGroup);
|
var filteredGroup = flattenConnectionGroup(connectionGroup);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user