diff --git a/guacamole/src/main/webapp/app/groupList/groupListModule.js b/guacamole/src/main/webapp/app/groupList/groupListModule.js index 14f470651..eb37ac5c7 100644 --- a/guacamole/src/main/webapp/app/groupList/groupListModule.js +++ b/guacamole/src/main/webapp/app/groupList/groupListModule.js @@ -21,4 +21,8 @@ * Module for displaying the contents of a connection group, allowing the user * to select individual connections or groups. */ -angular.module('groupList', ['list', 'rest']); +angular.module('groupList', [ + 'navigation', + 'list', + 'rest' +]); diff --git a/guacamole/src/main/webapp/app/groupList/types/GroupListItem.js b/guacamole/src/main/webapp/app/groupList/types/GroupListItem.js index e6629728d..29bf91bd3 100644 --- a/guacamole/src/main/webapp/app/groupList/types/GroupListItem.js +++ b/guacamole/src/main/webapp/app/groupList/types/GroupListItem.js @@ -20,7 +20,11 @@ /** * Provides the GroupListItem class definition. */ -angular.module('groupList').factory('GroupListItem', ['ConnectionGroup', function defineGroupListItem(ConnectionGroup) { +angular.module('groupList').factory('GroupListItem', ['$injector', function defineGroupListItem($injector) { + + // Required types + var ClientIdentifier = $injector.get('ClientIdentifier'); + var ConnectionGroup = $injector.get('ConnectionGroup'); /** * Creates a new GroupListItem, initializing the properties of that @@ -109,14 +113,50 @@ angular.module('groupList').factory('GroupListItem', ['ConnectionGroup', functio /** * Returns the number of currently active users for this connection, - * connection group, or sharing profile, if known. + * connection group, or sharing profile, if known. If unknown, null may + * be returned. * - * @type Number + * @returns {Number} + * The number of currently active users for this connection, + * connection group, or sharing profile. */ this.getActiveConnections = template.getActiveConnections || (function getActiveConnections() { return null; }); + /** + * Returns the unique string identifier that must be used when + * connecting to a connection or connection group represented by this + * GroupListItem. + * + * @returns {String} + * The client identifier associated with the connection or + * connection group represented by this GroupListItem, or null if + * this GroupListItem cannot have an associated client identifier. + */ + this.getClientIdentifier = template.getClientIdentifier || function getClientIdentifier() { + + // If the item is a connection, generate a connection identifier + if (this.type === GroupListItem.Type.CONNECTION) + return ClientIdentifier.toString({ + dataSource : this.dataSource, + type : ClientIdentifier.Types.CONNECTION, + id : this.identifier + }); + + // If the item is a connection group, generate a connection group identifier + if (this.type === GroupListItem.Type.CONNECTION_GROUP) + return ClientIdentifier.toString({ + dataSource : this.dataSource, + type : ClientIdentifier.Types.CONNECTION_GROUP, + id : this.identifier + }); + + // Otherwise, no such identifier can exist + return null; + + }; + /** * The connection, connection group, or sharing profile whose data is * exposed within this GroupListItem. If the type of this GroupListItem diff --git a/guacamole/src/main/webapp/app/home/controllers/homeController.js b/guacamole/src/main/webapp/app/home/controllers/homeController.js index 6c2bd6922..a6d359e7f 100644 --- a/guacamole/src/main/webapp/app/home/controllers/homeController.js +++ b/guacamole/src/main/webapp/app/home/controllers/homeController.js @@ -25,7 +25,6 @@ angular.module('home').controller('homeController', ['$scope', '$injector', // Get required types var ConnectionGroup = $injector.get('ConnectionGroup'); - var ClientIdentifier = $injector.get('ClientIdentifier'); var GroupListItem = $injector.get('GroupListItem'); // Get required services @@ -74,51 +73,6 @@ angular.module('home').controller('homeController', ['$scope', '$injector', }; - /** - * Object passed to the guacGroupList directive, providing context-specific - * functions or data. - */ - $scope.context = { - - /** - * Returns the unique string identifier which must be used when - * connecting to a connection or connection group represented by the - * given GroupListItem. - * - * @param {GroupListItem} item - * The GroupListItem to determine the client identifier of. - * - * @returns {String} - * The client identifier associated with the connection or - * connection group represented by the given GroupListItem, or null - * if the GroupListItem cannot have an associated client - * identifier. - */ - getClientIdentifier : function getClientIdentifier(item) { - - // If the item is a connection, generate a connection identifier - if (item.type === GroupListItem.Type.CONNECTION) - return ClientIdentifier.toString({ - dataSource : item.dataSource, - type : ClientIdentifier.Types.CONNECTION, - id : item.identifier - }); - - // If the item is a connection group, generate a connection group identifier - if (item.type === GroupListItem.Type.CONNECTION_GROUP) - return ClientIdentifier.toString({ - dataSource : item.dataSource, - type : ClientIdentifier.Types.CONNECTION_GROUP, - id : item.identifier - }); - - // Otherwise, no such identifier can exist - return null; - - } - - }; - // Retrieve root groups and all descendants dataSourceService.apply( connectionGroupService.getConnectionGroupTree, diff --git a/guacamole/src/main/webapp/app/home/templates/connection.html b/guacamole/src/main/webapp/app/home/templates/connection.html index 3f244fb3e..b4284126a 100644 --- a/guacamole/src/main/webapp/app/home/templates/connection.html +++ b/guacamole/src/main/webapp/app/home/templates/connection.html @@ -1,5 +1,5 @@ diff --git a/guacamole/src/main/webapp/app/home/templates/connectionGroup.html b/guacamole/src/main/webapp/app/home/templates/connectionGroup.html index f1261dca1..6b5426457 100644 --- a/guacamole/src/main/webapp/app/home/templates/connectionGroup.html +++ b/guacamole/src/main/webapp/app/home/templates/connectionGroup.html @@ -1,4 +1,4 @@ - {{item.name}} + {{item.name}} {{item.name}} diff --git a/guacamole/src/main/webapp/app/home/templates/home.html b/guacamole/src/main/webapp/app/home/templates/home.html index f68a0a9f9..4597dffe1 100644 --- a/guacamole/src/main/webapp/app/home/templates/home.html +++ b/guacamole/src/main/webapp/app/home/templates/home.html @@ -23,7 +23,6 @@