From 683fc4475b966969fd87741ccbd948c9aa3fdea0 Mon Sep 17 00:00:00 2001 From: James Muehlner Date: Tue, 18 Nov 2014 22:51:25 -0800 Subject: [PATCH] GUAC-897 Added status message while home or manage pages are loading. --- .../app/home/controllers/homeController.js | 8 +++++++ .../manage/controllers/manageController.js | 21 +++++++++++++++++++ .../src/main/webapp/translations/en_US.json | 5 +++++ 3 files changed, 34 insertions(+) diff --git a/guacamole/src/main/webapp/app/home/controllers/homeController.js b/guacamole/src/main/webapp/app/home/controllers/homeController.js index def3605ab..7203f8e0c 100644 --- a/guacamole/src/main/webapp/app/home/controllers/homeController.js +++ b/guacamole/src/main/webapp/app/home/controllers/homeController.js @@ -39,6 +39,12 @@ angular.module('home').controller('homeController', ['$scope', '$injector', // All valid recent connections $scope.recentConnections = []; + // Set status to loading until we have all the connections and groups loaded + $scope.showStatus({ + title : 'status.loadingTitle', + text : 'status.loadingText' + }); + /* Fetch all connections and groups, then find which recent connections * still refer to valid connections and groups. */ @@ -76,6 +82,8 @@ angular.module('home').controller('homeController', ['$scope', '$injector', $scope.recentConnections.push(recentConnection); } }); + + $scope.showStatus(false); }); /** diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageController.js b/guacamole/src/main/webapp/app/manage/controllers/manageController.js index 1a097d60c..891a0a56f 100644 --- a/guacamole/src/main/webapp/app/manage/controllers/manageController.js +++ b/guacamole/src/main/webapp/app/manage/controllers/manageController.js @@ -35,12 +35,27 @@ angular.module('manage').controller('manageController', ['$scope', '$injector', var userDAO = $injector.get('userDAO'); var userService = $injector.get('userService'); + // Set status to loading until we have all the connections, groups, and users have loaded + $scope.showStatus({ + title : 'status.loadingTitle', + text : 'status.loadingText' + }); + // All the connections and connection groups in root $scope.connectionsAndGroups = []; // All users that the current user has permission to edit $scope.users = []; + // Hide the status message once users, groups, and connections have fully loaded + var usersLoaded = false; + var connectionsAndGroupsLoaded = false; + function checkLoadStatus() { + if(usersLoaded && connectionsAndGroupsLoaded) { + $scope.showStatus(false); + } + } + $scope.basicPermissionsLoaded.then(function basicPermissionsHaveBeenLoaded() { connectionGroupService.getAllGroupsAndConnections([], undefined, true, true).then(function filterConnectionsAndGroups(rootGroupList) { $scope.rootGroup = rootGroupList[0]; @@ -57,6 +72,9 @@ angular.module('manage').controller('manageController', ['$scope', '$injector', } ); } + + connectionsAndGroupsLoaded = true; + checkLoadStatus(); }); userDAO.getUsers().success(function filterEditableUsers(users) { @@ -70,6 +88,9 @@ angular.module('manage').controller('manageController', ['$scope', '$injector', 'UPDATE' ); } + + usersLoaded = true; + checkLoadStatus(); }); }); diff --git a/guacamole/src/main/webapp/translations/en_US.json b/guacamole/src/main/webapp/translations/en_US.json index c1b90caac..df3471756 100644 --- a/guacamole/src/main/webapp/translations/en_US.json +++ b/guacamole/src/main/webapp/translations/en_US.json @@ -3,6 +3,11 @@ "title" : "Guacamole ${project.version}" }, + "status" : { + "loadingTitle" : "Loading", + "loadingText" : "Guacamole is loading; please wait..." + }, + "login": { "loginError" : "Invalid Login", "username" : "Username",