Commit Graph

2991 Commits

Author SHA1 Message Date
Michael Jumper
6b296374d5 GUACAMOLE-724: Add per-tile visual indication of drag/drop. 2021-07-08 03:31:48 -07:00
Michael Jumper
68e856987e GUACAMOLE-724: Clear out sharing profiles from previous client if focus is changing to a client lacking a UUID. 2021-07-08 03:31:48 -07:00
Michael Jumper
5e2e28365c GUACAMOLE-724: Track client focus changes within tiled client directive, not just in changes to overall attached group. 2021-07-08 03:31:48 -07:00
Michael Jumper
7d5b6c6898 GUACAMOLE-724: Add indicator showing whether a tiled connection is shared. 2021-07-08 03:31:48 -07:00
Michael Jumper
0ea12ca5aa GUACAMOLE-724: Switch to SVG versions of all PNG images. 2021-07-08 03:31:48 -07:00
Michael Jumper
4c1876341d GUACAMOLE-724: Remove .png images that are not actually referenced. 2021-07-08 03:31:48 -07:00
Michael Jumper
6f9e2a8b78 GUACAMOLE-724: Allow multiple tiled clients to be focused using Shift+Click and Ctrl+Click. 2021-07-08 03:31:48 -07:00
Michael Jumper
90f2270dab GUACAMOLE-724: Move handling of drag/pinch gestures to individual client tiles. 2021-07-08 03:31:48 -07:00
Michael Jumper
b0febd3402 GUACAMOLE-724: Migrate client zoom editor to own directive. 2021-07-08 03:31:48 -07:00
Michael Jumper
448ebb5019 GUACAMOLE-724: Ensure focus is not retained when transferring a client from an unattached group to an attached group. 2021-07-08 03:31:48 -07:00
Michael Jumper
19a32d3e10 GUACAMOLE-724: Expose checkboxes within Guacamole menu for adding/removing connections from current view. 2021-07-08 03:31:48 -07:00
Michael Jumper
a249876bff GUACAMOLE-724: Replace per-client clipboard with shared clipboard. 2021-07-08 03:31:48 -07:00
Michael Jumper
63452b7bc8 GUACAMOLE-724: Automatically focus the first client if no client has yet been focused. 2021-07-08 03:31:48 -07:00
Michael Jumper
d0b1fb7d7f GUACAMOLE-724: Control only the currently-focused client with client-specific menu options. 2021-07-08 03:31:48 -07:00
Michael Jumper
3f4c6a4cd1 GUACAMOLE-724: Move mouse emulation setting from client to menu. 2021-07-08 03:31:48 -07:00
Michael Jumper
4b227fe8c6 GUACAMOLE-724: Remove client-side "last used" timestamp (no longer needed).
The last-used timestamp was previously required to sort active clients
within the client panel in a sensible and deterministic order. This now
happens automatically via client groups, which are stored in an array
in order of last use. No code remains referencing the last-used
timestamp.
2021-07-08 03:31:48 -07:00
Michael Jumper
1f2cd94a65 GUACAMOLE-724: Display nifty "pop" animation when a new client appears within the client panel. 2021-07-08 03:31:48 -07:00
Michael Jumper
aae80292cb GUACAMOLE-724: Abstract away groups of running clients within their own type. 2021-07-08 03:31:48 -07:00
Michael Jumper
bfd3cbc204 GUACAMOLE-724: Do not reload client controller if only updating which client(s) are visible.
Reloading the client controller would reset UI state, including whether
the Guacamole menu is currently shown.
2021-06-17 20:32:53 -07:00
Michael Jumper
2f1d46aa86 GUACAMOLE-724: Provide separate, client-specific notifications for each tiled client. 2021-06-17 20:32:53 -07:00
Michael Jumper
fbdb692444 GUACAMOLE-724: Remove unused arbitrary parameters from client route (the webapp tunnel doesn't use these). 2021-06-16 11:28:35 -07:00
Michael Jumper
85d01ba730 GUACAMOLE-724: Implement base support for displaying multiple connections in a tiled grid. 2021-06-16 11:28:35 -07:00
Virtually Nick
e550b244f8 GUACAMOLE-680: Merge do not immediately re-authenticate after logout. 2021-06-15 17:22:29 -04:00
Michael Jumper
2aa6a5b628 GUACAMOLE-1364: Ensure extension resources are included in defined order. 2021-06-15 00:21:56 -07:00
Michael Jumper
6a6cae0e30 GUACAMOLE-1364: Add "extension-priority" property for overriding extension load order. 2021-06-15 00:21:56 -07:00
Michael Jumper
85bc4ac52b GUACAMOLE-680: Correct grammar of authenticationService documentation.
"promise succeeds" should be "promise that succeeds".
2021-06-14 15:48:52 -07:00
Michael Jumper
ef590d2b3b GUACAMOLE-680: Display logged-out status as notification. 2021-06-13 22:26:42 -07:00
Michael Jumper
b29c0a03ea GUACAMOLE-680: Use common styling for all dialogs/notifications. 2021-06-13 22:26:42 -07:00
Michael Jumper
529e19729b GUACAMOLE-680: Ensure the "guacLogout" event is specific to manual logouts. 2021-06-13 22:26:42 -07:00
Michael Jumper
823970eb7f GUACAMOLE-680: Display status message upon logout (rather than immediately reauthenticating).
The former behavior (immediately reauthenticating) typically results in
the login screen appearing, but will also instantly sign the user back
in if a single sign-on solution is being used. This results in the
logout action appearing to have no effect when SSO is involved.
2021-06-13 22:24:14 -07:00
Michael Jumper
581a7cb47a GUACAMOLE-680: Refactor repeated modal structures to common directive. 2021-06-13 22:24:14 -07:00
Michael Jumper
a8aa3bef52 GUACAMOLE-773: Restore missing static template/layout files.
The on-screen keyboard layouts and AngularJS templates were previously
part of the Java webapp build, but are now part of the NPM/Webpack
build. Those files were incorrectly left out of the Webpack config,
causing the on-screen keyboard and automatic display resize to fail.

Display of the on-screen keyboard fails without these files as it relies
on loading the on-screen keyboard layouts dynamically via HTTP. Handling
of automatic display resize fails because this relies on a hidden
<object> element containing a blank HTML document, with that document
served statically over HTTP.
2021-06-04 02:08:54 -07:00
Michael Jumper
b90a083fe1 GUACAMOLE-773: Use caret version notation for JavaScript dependencies where appropriate.
The default caret version notation that is already well-established in
the NPM community should be used except where there is reason not to.
Here, it makes sense to use the caret for all dependencies except:

1. "google-closure-compiler", which does not use semantic versioning
   and does not guarantee a compatible API. We cannot know that a new
   release is expected to be compatible and thus must specify an exact
   version.

2. "blob-polyfill", which does not use semantic versioning BUT must
   provide a compatible API by its own nature (it is a polyfill for an
   API defined by a W3C standard). Any current, stable release should be
   OK for "blob-polyfill", hence ">=".
2021-06-02 20:37:52 -07:00
Michael Jumper
3ec578edce GUACAMOLE-773: Remove angular-touch (no longer applicable).
Previously, the angular-touch library provided by AngularJS was used to
allow click interactions with UI components to work on touch devices
without an uncomfortable ~300ms delay. From AngularJS 1.7.x onward, this
feature of angular-touch is no longer present:

https://docs.angularjs.org/guide/migration#ngtouch

This should be OK - modern browsers will now recognize applications
aimed at touch support via the use of the "viewport" meta tag (which we
use), removing our original need for angular-touch. The same goes for
IE10+.
2021-06-02 20:37:52 -07:00
Michael Jumper
82161ae712 GUACAMOLE-773: Consider Pickr available only if initialization has completed.
In previous versions of Pickr, catching exceptions during Pickr creation
was sufficient to detect whether Pickr can be used with the current
browser. This is no longer the case, and we must instead rely on the
lack of an "init" event.
2021-06-02 20:37:52 -07:00
Michael Jumper
700e2023af GUACAMOLE-773: Remove use of XHTML-style self-closing tags from normal HTML.
This is particularly important for AngularJS 1.8.x and jQuery 3.5.0+,
which will no longer correct this automatically with their HTML
prefilters, resulting in unexpected nesting of tags when the browser
interprets something like "<div/>" as "<div>" (older versions of jQuery
would have corrected "<div/>" to "<div></div>").

See:

 * https://docs.angularjs.org/guide/migration#migrating-from-1-7-to-1-8
 * https://jquery.com/upgrade-guide/3.5/
2021-06-02 20:37:52 -07:00
Michael Jumper
e93d0faa22 GUACAMOLE-773: Update Pickr to version 1.8.1. 2021-06-02 20:37:52 -07:00
Michael Jumper
5587213183 GUACAMOLE-773: Include required polyfills for Blob and datalist. 2021-06-02 20:37:52 -07:00
Michael Jumper
c546545c5e GUACAMOLE-773: Include NPM dependencies when considering generated LICENSE. 2021-06-02 20:37:52 -07:00
Michael Jumper
5340e392c6 GUACAMOLE-773: Update to more recent version of "ssri" as suggested by npm audit. 2021-06-02 20:37:52 -07:00
Michael Jumper
503332270c GUACAMOLE-773: Remove unused messageformat dependency (it's bundled with angular-translate's messageformat support). 2021-06-02 20:37:52 -07:00
Michael Jumper
e99e304eed GUACAMOLE-773: Update to latest version of frontend-maven-plugin (properly deals with STDERR as not necessarily 100% errors). 2021-06-02 20:37:52 -07:00
Michael Jumper
9131fdbbfb GUACAMOLE-773: Automatically generate dependencies for NPM modules. 2021-06-02 20:37:52 -07:00
Michael Jumper
28cfa2b8b0 GUACAMOLE-773: Update to latest versions of all JavaScript dependencies. 2021-06-02 12:48:57 -07:00
Michael Jumper
53d3e517cc GUACAMOLE-773: Upgrade (temporarily) to angular-translate 2.17.1 to satisfy Closure Compiler.
See: https://github.com/angular-translate/angular-translate/commit/fe47ae7
2021-06-02 12:48:57 -07:00
Michael Jumper
5f0ab7b3f3 GUACAMOLE-773: Use Webpack rather than Webpack+Gulp. 2021-06-02 12:48:57 -07:00
Michael Jumper
1ef61687d8 GUACAMOLE-773: Migrate to NPM for AngularJS portion of webapp build. 2021-06-02 12:48:57 -07:00
Virtually Nick
f1c81460f5 GUACAMOLE-1204: Merge migrate Guacamole.Mouse from legacy event handlers to the new event stack. 2021-05-30 21:43:17 -04:00
Virtually Nick
a9f0e55958 GUACAMOLE-641: Merge expand extension API to allow properties to be retrieved from key vaults. 2021-05-30 21:28:08 -04:00
Michael Jumper
8d63277ba7 GUACAMOLE-1204: Migrate Guacamole.Mouse to new event stack. 2021-05-30 17:37:17 -07:00