Hello, Guacamole is a product that I use and love. I recently upgraded guacamole-client DOCKER versions from 1.3.0 to 1.4.0. This upgrade was largely due to the requirement of my host server running on RHEL8. I have an extension that I’ve built for Guacamole and has worked since version 1.10. Now the extension has regressed.
On Firefox WebTools: TypeError: $scope.client is undefined loadScaleBackground https://<hostname>/app.js?b=20240330163951:172 Angular 21 jQuery 8 Angular 15 I have created an AngularJS directive that mocks the client module directive “app/client/directives/guacClient.js”. ******************** START CODE BLOCK ******************** angular.module('client').directive('myClient', [ function myClient() { return { restrict: 'E', replace: true, scope: { client: '=', }, controller: ['$scope', '$routeParams', 'ManagedClient', function guacClientController($scope, $routeParams, ManagedClient) { // The display and client for the connection var display = null; var client = null; $scope.$watch('client', function attachManagedClient(managedClient) { if (!managedClient) return; // Get Guacamole client instance client = managedClient.client; display = client.getDisplay(); } // end function: attachManagedClient ); // end $watch: client … }; // end return statement for chipsClient() } // end function: chipsClient() ]); // end directive: chipsClient() ******************** END CODE BLOCK ******************** And here is where I inject the HTML directive with extension… ******************** START CODE BLOCK ******************** <meta name="after-children" content=".client-body"> <my-client client="client" menu="menu"></my-client> ******************** END CODE BLOCK ******************** When I inject console.log($scope) into my JS extension, I am returned with the $scope object with client as undefined. I suspect that the $scope.$watch(‘client’, … is not returning a newVal of the client object and passing it to managedClient as undefined. Therefore, it will hit the return statement every time. I want to say that this is some type of visibility issue as the webapp “sources” (shown on WebTools) is much different as it was in guacamole-client v1.3.0. All the client code is no longer put into app.js and is split into a bunch of files, so maybe this is what’s causing the issue? AngularJS is very new to me and I’m learning as I go. Any suggestions are appreciated. Thanks, Eli