Hi Mike,
Thank you for your reply.
/Have you looked into what would be necessary to refactor the mainline
webapp to leverage this?/
This all depends on whether you would like to see a direct port to
Angular5 or if you want to change the design/ux of guacamole. For a
direct port, with the same design and interactions, to Angular5, I can't
see it taking a huge amount of time (it would be good if the CSS was
migrated to SCSS too). I think the CRUD aspects wouldn't take too long
to be migrated. Most of the development time, as I see it, will be spent
on the user interactions to the desktop display (keyboard, clipboard,
file upload etc.). In terms of the desktop brokering and display, the
majority of the work has been implemented into the component I have open
sourced (currently in production at my company). The typescript
definitions for guacamole-common-js have been written so getting started
interacting with guacamole-common-js with typescript should be
straightforward. If you went ahead with a new app development, would you
continue to develop the new app inside the Java project or would you be
open to splitting it into a separate repository? (i.e. guacamole-server,
guacamole-web-app (Angular)) This separation would make development a
lot easier when working on the new app implementation.
Anyway, lots of ideas :)
Thank you.
Kind regards,
Jamie
On 14/03/2018 21:52, Mike Jumper wrote:
On Sat, Feb 3, 2018 at 2:59 AM, Jamie Hall <h...@ill.eu> wrote:
Hi guacamole team!
First of all, thank you for an amazing project.
A few days ago, we open sourced an Angular 5 component for guacamole:
https://github.com/ILLGrenoble/ngx-remote-desktop
Documentation: https://illgrenoble.github.io/ngx-remote-desktop/
A little context: At my company, we wish to give our visiting scientists
access to computing resources (software, access to storage, etc.) to
analyse their experimental data using only their web browser. We have
developed a web application (Java for the backend and angular2 for the
frontend) for this. Once a user has logged in, they can then create a new
machine. The new machine is then created in OpenStack. Once the the machine
has been created, they can then access the remote desktop (thanks
guacamole!) and perform their data analysis. They can also share their
desktop with another scientist so that they can collaborate together. We
also want to integrate desktop broadcasting, chat, file workspaces etc.
It took quite a lot of effort to port over the client to Angular2,
however, given that your documentation is excellent, it wasn't too
difficult to get to grips on how it all works.
I have also created TypeScript definitions for guacamole-common-js:
https://github.com/ILLGrenoble/guacamole-common-js/blob/
master/guacamole.d.ts. Please note that it is a scoped package, as
ideally it would be nice if there was an official NPM package (along with
the typescript definitions) supported the guacamole project. An NPM package
would also make it easier to integrate the client into other projects :)
Please let me know what you think. Any feedback, whether positive or
negative, is always welcome.
Once again, thank you so much for guacamole - it has been a pleasure to
work with.
Hi Jamie,
Thanks for this. I remember glancing at this email when it first went out
on the list, and I'd like to circle back if you're still around.
I can't say I've looked too deeply into what you've done, but this sounds
like beneficial work. Have you looked into what would be necessary to
refactor the mainline webapp to leverage this? There are current efforts to
upgrade to a newer version of Angular in general (though that effort is
focused on 1.6.9) [1], as well as a point on the roadmap to separate out
the core of the webapp into some library that others could pull in as a
dependency [2].
Thoughts?
- Mike
[1] https://issues.apache.org/jira/browse/GUACAMOLE-526
[2] https://issues.apache.org/jira/browse/GUACAMOLE-59