Commit Graph
100 Commits
Author SHA1 Message Date
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
Michael Jumper 2aa6a5b628 GUACAMOLE-1364: Ensure extension resources are included in defined order. 2021-06-15 00:21:56 -07:00
Michael Jumper 45c2cbf6b8 GUACAMOLE-1364: Remove inconsistent "guac-" prefix from standard extension namespaces. 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 6bcef68c9f GUACAMOLE-773: Exclude node_modules directory from source archive. 2021-06-03 03:45:01 -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 8ed9ac524c GUACAMOLE-773: Add license information for new JavaScript dependencies pulled in by Webpack. 2021-06-02 20:37:52 -07:00
Michael Jumper 4c32e5951b GUACAMOLE-773: Add separate license for messageformat-parser (different version from messageformat). 2021-06-02 20:37:52 -07:00
Michael Jumper fd6c5c3e91 GUACAMOLE-773: Update license information from Webjar Maven coordinates to NPM module coordinates. 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 e119ba459b GUACAMOLE-773: Allow automatic license generation to consider multiple dependency lists, not necessarily from Maven. 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
Mike Jumper 71948a54ca GUACAMOLE-1252: Merge correction for null pointer dereference retrieving the RADIUS NAS IP. 2021-05-31 13:42:09 -07:00
Michael Jumper 1d435d9c12 GUACAMOLE-1204: Show full class names within JSDoc navigation sidebar (ambiguous otherwise). 2021-05-30 17:37:17 -07:00
Michael Jumper 0446433860 GUACAMOLE-1204: Rename mouse-related classes to remove redundant "Mouse" prefix. 2021-05-30 17:37:17 -07:00
Michael Jumper 8d63277ba7 GUACAMOLE-1204: Migrate Guacamole.Mouse to new event stack. 2021-05-30 17:37:17 -07:00
Mike Jumper 78904863c4 GUACAMOLE-944: Merge support for arbitrary, non-DN search usernames. 2021-05-30 17:11:56 -07:00
Mike Jumper 3ec0bdbc57 GUACAMOLE-1355: Merge missing Korean translations. 2021-05-28 00:59:10 -07:00
Michael Jumper c32947c029 GUACAMOLE-1204: Allow the events given to Guacamole.Event.DOMEvent to be a single event or omitted entirely. 2021-05-27 14:43:22 -07:00
Michael Jumper 739fbbbf2e GUACAMOLE-1204: Provide convenience function for creating an element-relative Guacamole.Position from client coordinates. 2021-05-27 14:43:22 -07:00
Michael Jumper 568355140d GUACAMOLE-1204: Provide convenience function for cancelling DOM events. 2021-05-27 14:43:22 -07:00
Michael Jumper 307ec9627a GUACAMOLE-1048: Use GuacamoleConnectionClosedException to represent explicit connection closure. 2021-05-25 11:39:04 -07:00
Michael Jumper 0889e4f2d2 GUACAMOLE-1048: Leverage exception conversion provided by GuacamoleStatus for "error" instruction handling. 2021-05-25 11:39:04 -07:00
Michael Jumper e2f2b715a4 GUACAMOLE-1048: Allow direct conversion from GuacamoleStatus to GuacamoleException. 2021-05-24 02:14:37 -07:00
Michael Jumper 4dd2a80c84 GUACAMOLE-641: Log primary sources of configuration information. 2021-05-20 16:54:45 -07:00
Michael Jumper c54f126824 GUACAMOLE-641: Standardize database username/password retrieval via JDBCEnvironment. 2021-05-20 16:54:45 -07:00
Michael Jumper 4d65105695 GUACAMOLE-641: Migrate existing extensions to singleton LocalEnvironment. 2021-05-20 16:54:45 -07:00
Michael Jumper 3a24b2f556 GUACAMOLE-641: Revert support for passing Environment via extension constructors.
This reverts commit 1f0b855ea4a39f4c41979ad9d59297f02f188b82.
2021-05-20 16:47:04 -07:00
Michael Jumper fc7c7b7966 GUACAMOLE-641: Leverage singleton instance of LocalEnvironment. 2021-05-20 16:47:02 -07:00
Michael Jumper 30ddd7a092 GUACAMOLE-641: Provide DelegatingEnvironment convenience class. 2021-05-20 16:45:40 -07:00
Michael Jumper 61a3ec1331 GUACAMOLE-641: Allow extensions to add arbitrary sources of Guacamole properties. 2021-05-20 16:45:38 -07:00
Michael Jumper 9d7b979195 GUACAMOLE-641: Allow extensions to receive Environment via constructors. 2021-05-20 16:42:39 -07:00
Mike Jumper 6644955fff GUACAMOLE-1245: Merge parameter definitions for WoL UDP port. 2021-05-19 16:04:42 -07:00
Mike Jumper c1f19b9517 GUACAMOLE-1252: Merge support for overriding default RADIUS NAS IP address. 2021-05-19 15:56:07 -07:00
Mike Jumper cde84724e8 GUACAMOLE-1339: Merge updates and corrections to Spanish translation strings. 2021-05-09 15:27:55 -07:00
Michael Jumper 125137b76c GUACAMOLE-773: Never bundle SLF4J with extensions (conflicts with webapp). 2021-04-27 15:24:01 -07:00
Michael Jumper af0b2ec5c2 GUACAMOLE-773: Use HTTPS for all LICENSE information URLs pointing to Apache. 2021-04-27 15:24:01 -07:00
Michael Jumper f5b76806a4 GUACAMOLE-773: Update to latest version of JUnit 4.x. 2021-04-27 15:24:01 -07:00
Michael Jumper 4246acf24e GUACAMOLE-773: Update Jersey from 2.33 to 2.34. 2021-04-26 12:53:23 -07:00
Michael Jumper 9b90376ef3 GUACAMOLE-773: Remove license documentation for dependencies that are no longer bundled. 2021-04-03 19:26:46 -07:00
Michael Jumper a5ae5811c1 GUACAMOLE-773: Bring license details of bundled Java dependencies up-to-date. 2021-04-03 19:22:43 -07:00
Michael Jumper d155975d93 GUACAMOLE-773: Allow license checks to be bypassed when necessary for testing/development. 2021-04-03 17:21:34 -07:00
Michael Jumper 481a2ca60b GUACAMOLE-773: Switch to older mybatis-guice that uses a stable SLF4J.
Newer releases of mybatis-guice have switched over to alpha releases of
SLF4J 2.0.0.
2021-04-03 12:10:10 -07:00
Michael Jumper aaa07115ba GUACAMOLE-773: Add exclusions as necessary to force correct dependency versions. Remove exclusions that are no longer necessary. 2021-04-03 12:10:10 -07:00
Michael Jumper 17f76e6708 GUACAMOLE-773: Automatically verify sanity of build. 2021-04-03 11:54:43 -07:00
Michael Jumper 47215cfdf9 GUACAMOLE-773: Update all Java dependencies to latest stable versions. 2021-04-02 15:43:29 -07:00
Michael Jumper fae16c7ff3 GUACAMOLE-1316: Remove all unnecessary trailing whitespace from Docker-related files. 2021-04-02 11:29:46 -07:00
Michael Jumper bdb2ad35ef GUACAMOLE-1316: Remove incorrect trailing whitespace after backslash escape. 2021-04-02 11:29:08 -07:00
Michael Jumper 7ce3882319 GUACAMOLE-1317: Update all Maven plugins to latest. 2021-04-02 11:03:41 -07:00
Michael Jumper 7ae3cc1084 GUACAMOLE-1298: Ensure LICENSE/NOTICE generation takes current build into account (not central repository). 2021-03-31 18:37:18 -07:00
Michael Jumper 73e582b478 GUACAMOLE-1298: Avoid POSIX character classes for compatibility with mawk. 2021-03-31 17:23:37 -07:00
Michael Jumper 5ca4d1dd7d GUACAMOLE-1298: Use POSIX extensions when necessary to overcome .tar filename length limits. 2021-03-31 16:51:29 -07:00
Michael Jumper 1fceb6b535 GUACAMOLE-1298: Migrate generation of guacamole-auth-jdbc tarball to common dist.xml configuration. 2021-03-31 16:43:00 -07:00
Michael Jumper 127a3949c2 GUACAMOLE-1298: Restore automatic build of guacamole-client source tarball. 2021-03-31 16:22:55 -07:00
Michael Jumper 3823a91ea7 GUACAMOLE-1298: Combine duplicate Maven declarations into parent pom.xml. 2021-03-31 16:22:30 -07:00
Michael Jumper 31a0100c02 GUACAMOLE-1298: Trim down NOTICE files to only those attribution notices that are required.
From https://infra.apache.org/licensing-howto.html#bundle-asf-product:

>
> Modifications to NOTICE
> -----------------------
>
> The NOTICE file is reserved for a certain subset of legally required
> notifications which are not satisfied by either the text of LICENSE or
> the presence of licensing information embedded within the bundled
> dependency. Aside from Apache-licensed dependencies which supply NOTICE
> files of their own, it is uncommon for a dependency to require additions
> to NOTICE.
>
> Copyright notifications which have been relocated, rather than
> removed, from source files must be preserved in NOTICE. However,
> elements such as the copyright notifications embedded within BSD and MIT
> licenses do not need to be duplicated in NOTICE. You can leave those
> notices in their original locations.
>
> It is important to keep NOTICE as brief and simple as possible, as each
> addition places a burden on downstream consumers.
>
> *Do not* add anything to NOTICE which is not legally required.
>
2021-03-31 12:36:10 -07:00
Michael Jumper 1a331e3d67 GUACAMOLE-1298: Do not include duplicate copies of Apache License for dependencies, moving any additional notes to NOTICE. 2021-03-31 12:16:59 -07:00
Michael Jumper 258e5ae5ac GUACAMOLE-1298: Add automatic generation and packaging of LICENSE/NOTICE for RADIUS support. 2021-03-31 11:42:38 -07:00
Michael Jumper c32b985658 GUACAMOLE-1298: Correct Maven dependency version conflicts within RADIUS support. 2021-03-31 11:42:38 -07:00
Michael Jumper 6c8a699faa GUACAMOLE-1298: Automatically generate LICENSE and NOTICE files. 2021-03-31 11:42:38 -07:00
Michael Jumper b2845ebc4b GUACAMOLE-1298: Remove guacamole-client .tar.gz archive build.
Children of the parent project will inherit the parent's build plugins,
which breaks everything when each child project attempts to build its
own source archive.
2021-03-31 11:24:24 -07:00
Michael Jumper 53fe6e34f8 GUACAMOLE-1298: Migrate to centralized declarations of common dependencies. 2021-03-31 11:24:24 -07:00
Mike Jumper d4e3d8c98f GUACAMOLE-1025: Merge QuickConnect support for allowing/denying connection parameters. 2021-03-30 17:34:59 -07:00
Michael Jumper 96faa48bea GUACAMOLE-1302: Add definitions and translations for VNC/RDP "force-lossless" parameter. 2021-03-01 17:40:30 -08:00
Michael Jumper d131468cf3 GUACAMOLE-1298: Declare default request size limit constant as static. 2021-02-26 13:21:27 -08:00
Michael Jumper a67211d270 GUACAMOLE-1298: Do not enforce request size limits on file uploads handled as streams. 2021-02-25 14:38:50 -08:00
Michael Jumper f21a7c63eb GUACAMOLE-1298: Migrate to latest version of Guice and Jersey 2.x 2021-02-25 14:38:50 -08:00
Michael Jumper b1dcec7ca9 GUACAMOLE-1299: Catch and log all errors that occur while automatically invalidating expired sessions. 2021-02-24 16:28:50 -08:00
Michael Jumper 172705fb2d GUACAMOLE-1298: Replace com.guice.* annotations with javax.inject.* where interchangeable. 2021-02-24 12:00:12 -08:00
Michael Jumper fbd0d3cbce GUACAMOLE-1298: Enforce default limit on request size. 2021-02-24 11:59:36 -08:00
Mike Jumper ed849860b8 GUACAMOLE-986: Merge explicit documentation of non-nullable return values and parameters. 2021-02-21 16:03:54 -08:00
Michael Jumper 49b398f36d GUACAMOLE-1174: Add definitions and translations for Kubernetes "exec" command parameter. 2021-02-21 15:33:44 -08:00
Mike Jumper ed020d7396 GUACAMOLE-747: Merge corrections for RAT-related build failure. 2021-02-21 14:01:26 -08:00