mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUAC-605: Simplify status modal API.
This commit is contained in:
@@ -178,17 +178,18 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
|
||||
// Show status dialog when client status changes
|
||||
$scope.$on('guacClientStateChange', function clientStateChangeListener(event, client, status) {
|
||||
|
||||
// Hide previous status, if any
|
||||
statusModal.deactivate();
|
||||
|
||||
// Show new status if not yet connected
|
||||
if (status !== "connected") {
|
||||
statusModal.activate({
|
||||
statusModal.showStatus({
|
||||
title: "client.status.connectingStatusTitle",
|
||||
text: "client.status.clientStates." + status
|
||||
});
|
||||
}
|
||||
|
||||
// Hide status upon connecting
|
||||
else
|
||||
statusModal.showStatus(false);
|
||||
|
||||
});
|
||||
|
||||
// Show status dialog when client errors occur
|
||||
@@ -197,14 +198,11 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
|
||||
// Disconnect
|
||||
$scope.id = null;
|
||||
|
||||
// Hide any existing status
|
||||
statusModal.deactivate();
|
||||
|
||||
// Determine translation name of error
|
||||
var errorName = (status in CLIENT_ERRORS) ? status.toString(16) : "DEFAULT";
|
||||
|
||||
// Show error status
|
||||
statusModal.activate({
|
||||
statusModal.showStatus({
|
||||
className: "error",
|
||||
title: "client.error.connectionErrorTitle",
|
||||
text: "client.error.clientErrors." + errorName,
|
||||
@@ -216,12 +214,9 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
|
||||
// Show status dialog when tunnel status changes
|
||||
$scope.$on('guacTunnelStateChange', function tunnelStateChangeListener(event, tunnel, status) {
|
||||
|
||||
// Hide previous status, if any
|
||||
statusModal.deactivate();
|
||||
|
||||
// Show new status only if disconnected
|
||||
if (status === "closed") {
|
||||
statusModal.activate({
|
||||
statusModal.showStatus({
|
||||
title: "client.status.closedStatusTitle",
|
||||
text: "client.status.tunnelStates." + status
|
||||
});
|
||||
@@ -235,14 +230,11 @@ angular.module('home').controller('clientController', ['$scope', '$routeParams',
|
||||
// Disconnect
|
||||
$scope.id = null;
|
||||
|
||||
// Hide any existing status
|
||||
statusModal.deactivate();
|
||||
|
||||
// Determine translation name of error
|
||||
var errorName = (status in TUNNEL_ERRORS) ? status.toString(16) : "DEFAULT";
|
||||
|
||||
// Show error status
|
||||
statusModal.activate({
|
||||
statusModal.showStatus({
|
||||
className: "error",
|
||||
title: "client.error.connectionErrorTitle",
|
||||
text: "client.error.tunnelErrors." + errorName,
|
||||
|
@@ -29,20 +29,18 @@ angular.module('manage').controller('statusController', ['$scope', '$rootScope',
|
||||
var statusModal = $injector.get('statusModal');
|
||||
|
||||
/**
|
||||
* Fires a guacStatusAction event signalling a chosen action. By default,
|
||||
* the status modal will be closed, but this can be prevented by calling
|
||||
* preventDefault() on the event.
|
||||
* Fires a guacStatusAction event signalling a chosen action. The status
|
||||
* modal will be cloased prior to firing the action event.
|
||||
*
|
||||
* @param {String} action The name of the action.
|
||||
*/
|
||||
$scope.fireAction = function fireAction(action) {
|
||||
|
||||
// Fire action event
|
||||
var actionEvent = $rootScope.$broadcast('guacStatusAction', action);
|
||||
// Hide status modal
|
||||
statusModal.showStatus(false);
|
||||
|
||||
// Close modal unless default is prevented
|
||||
if (!actionEvent.defaultPrevented)
|
||||
statusModal.deactivate();
|
||||
// Fire action event
|
||||
$rootScope.$broadcast('guacStatusAction', action);
|
||||
|
||||
};
|
||||
|
||||
|
@@ -26,11 +26,53 @@
|
||||
angular.module('manage').factory('statusModal', ['btfModal',
|
||||
function statusModal(btfModal) {
|
||||
|
||||
var service = {};
|
||||
|
||||
// Create the modal object to be used later to actually create the modal
|
||||
return btfModal({
|
||||
var modalService = btfModal({
|
||||
controller: 'statusController',
|
||||
controllerAs: 'modal',
|
||||
templateUrl: 'app/index/templates/status.html'
|
||||
});
|
||||
|
||||
/**
|
||||
* Whether the status modal is currently displayed.
|
||||
*
|
||||
* @type Boolean
|
||||
*/
|
||||
service.shown = false;
|
||||
|
||||
/**
|
||||
* Shows or hides the status modal.
|
||||
*
|
||||
* @param {Boolean|Object} status The status to show, or false to hide the
|
||||
* current status.
|
||||
* @param {String} [status.title] The title of the status modal.
|
||||
* @param {String} [status.text] The body text of the status modal.
|
||||
* @param {String} [status.className] The CSS class name to apply to the
|
||||
* modal, in addition to the default
|
||||
* "dialog" and "status" classes.
|
||||
* @param {String[]} [status.actions] Array of action names which
|
||||
* correspond to button captions. Each
|
||||
* action will be displayed as a button
|
||||
* within the status modal. Clickin a
|
||||
* button will fire a guacStatusAction
|
||||
* event.
|
||||
*/
|
||||
service.showStatus = function showStatus(status) {
|
||||
|
||||
// Hide any existing status
|
||||
modalService.deactivate();
|
||||
service.shown = false;
|
||||
|
||||
// Show new status if requested
|
||||
if (status) {
|
||||
modalService.activate(status);
|
||||
service.shown = true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return service;
|
||||
|
||||
}]);
|
||||
|
Reference in New Issue
Block a user