Michael Jumper
0fe3c441d3
GUACAMOLE-1218: Include "encrypt-json.sh" reference implementation in guacamole-auth-json dist archive.
2021-09-16 19:29:14 -07:00
Michael Jumper
8f3172e4f6
GUACAMOLE-1218: Allow both lowercase and uppercase for hex values of ByteArrayProperty.
2021-09-16 19:21:32 -07:00
Michael Jumper
fc9739a4d6
GUACAMOLE-1407: Explicitly fail early if no JDBC driver can be found for MySQL/MariaDB.
2021-08-26 18:37:39 -07:00
Michael Jumper
be1ad5dff3
GUACAMOLE-1407: Automatically detect whether MySQL or MariaDB version of "Connector/J" is installed.
2021-08-26 18:37:39 -07:00
Mike Jumper
5cf030a9e3
GUACAMOLE-1397: Merge changes automatically focusing TOTP prompt.
2021-08-23 17:32:48 -07:00
Mike Jumper
43546c830c
GUACAMOLE-1261: Merge changes allowing object identifiers to contain slashes within AngularJS URLs.
2021-08-22 18:18:25 -07:00
Mike Jumper
0cc9f46882
GUACAMOLE-1199: Merge corrections to handling of unchanged, database-stored attributes.
2021-08-21 18:01:25 -07:00
Michael Jumper
1d83307b8c
GUACAMOLE-1398: Explicitly fit guac-tiled-clients directive to available space.
...
The CSS rule expanding the guac-tiled-clients directive to fit the
viewport was not properly updated when the elements and classes involved
were changed via c9900434c4 . The
"tiled-client-list" class was previously used to represent the root
element of the set of tiled clients, but that element was replaced with
the "guac-tiled-clients" directive.
2021-08-17 02:15:37 -07:00
Michael Jumper
6787d3fa9f
GUACAMOLE-1366: Correct sort order of connection history entries.
...
The sort order of connection history entries should be descending, with
the most recent connection attempt shown first. This has been incorrect
since 1.3.0 due to the migration to the newer, searchable/sortable
history structure.
2021-08-12 23:11:21 -07:00
Michael Jumper
6608ba3e2d
GUACAMOLE-1386: Centralize abstraction of KeyboardEvent contents within KeyEvent and its subclasses.
2021-08-12 22:43:16 -07:00
Michael Jumper
b629b2137e
GUACAMOLE-1386: Do not synchronize modifiers based on key events that were dropped/rejected.
2021-08-12 22:43:16 -07:00
Michael Jumper
b347a118fa
GUACAMOLE-1386: Defer handling of "Meta" until it is known to be functioning as a modifier.
...
Some platforms like ChromeOS use the Meta key as an alternative method
for typing individual keys like Home (Meta+Left) and End (Meta+Right).
In these cases, Meta does not function as a modifier and is actually
implicitly released once the keyboard shortcut is identified.
Since we cannot know whether Meta is actually Meta until it's confirmed
to be used by itself or with another key, we need to defer handling of
Meta keydown until either (1) Meta is released without having been used
with another key or (2) Meta is used as a modifier with another key.
2021-08-12 16:33:19 -07:00
Michael Jumper
c63eb4477c
GUACAMOLE-1387: Update and filter tiled connections only if group is actually changing.
2021-07-28 22:14:08 -07:00
Michael Jumper
5c9483a810
GUACAMOLE-1386: Correct/add "Menu" key definition, which is also not "Super".
2021-07-26 20:26:39 -07:00
Michael Jumper
01a5f6cdb9
GUACAMOLE-1386: Correct keyboard definition of "Windows" key as "Meta", not "Super".
2021-07-26 20:26:04 -07:00
Michael Jumper
8b5cdbb3b5
GUACAMOLE-1386: Define "Meta" key for on-screen keyboard instead of "Super".
...
The correct key for the "Windows" key (or the Mac "Command" key) is
"Meta". The "Super" key is an entirely different key not used for that
purpose, and it only currently works with Guacamole because the
Guacamole's base RDP keymap specifically maps the "Super" keys to the
"Windows" keys.
2021-07-26 20:11:02 -07:00
Michael Jumper
5e61ec7e84
GUACAMOLE-996: Add LDAP_GROUP_SEARCH_FILTER variable to Docker image.
2021-07-26 02:22:35 -07:00
Michael Jumper
962696199a
GUACAMOLE-996: Always apply LDAP group filter, regardless of whether "ldap-config-base-dn" is set.
2021-07-26 02:19:56 -07:00
Michael Jumper
38c03ddfd7
GUACAMOLE-996: Use "(objectClass=*)" as default group filter.
2021-07-26 01:55:46 -07:00
Michael Jumper
9cb42ade67
GUACAMOLE-1383: Use URL-safe client identifiers by default, maintaining backwards compatibility with identifiers using standard base64.
2021-07-20 22:31:12 -07:00
Michael Jumper
e79b7b6e4e
GUACAMOLE-1383: Do not double-encode client identifiers within URLs.
2021-07-20 21:25:09 -07:00
Michael Jumper
8a57b2037e
GUACAMOLE-1384: Ensure all $http error objects are wrapped in Guacamole error objects, even if the relevant request could not be sent.
2021-07-20 20:28:29 -07:00
Michael Jumper
de3daf3dc8
GUACAMOLE-275: Request browser to always revalidate cached index.html.
2021-07-20 19:46:00 -07:00
Michael Jumper
f94b6c68aa
GUACAMOLE-275: Request browser to always revalidate cached dynamic contents.
2021-07-20 18:53:02 -07:00
Michael Jumper
e9e1703184
GUACAMOLE-275: Automatically attempt to refresh browser cache if index.html does not match current build.
2021-07-20 18:53:02 -07:00
Michael Jumper
0364d45d9d
GUACAMOLE-1378: Correct naming of guacamole-auth-jdbc dist .tar.gz archive.
...
The distribution .tar.gz of the guacamole-auth-jdbc set of extensions
should be called "guacamole-auth-jdbc-VERSION.tar.gz", not
"guacamole-auth-jdbc-dist-VERSION.tar.gz".
2021-07-17 17:07:53 -07:00
Michael Jumper
b9a15285ea
GUACAMOLE-724: Remove duplicate injection of $rootScope (already injected via parameter).
2021-07-14 22:24:09 -07:00
Michael Jumper
dd86130600
GUACAMOLE-724: Migrate usage of var to const/let in all directly touched code.
2021-07-08 03:31:49 -07:00
Michael Jumper
d6c5165f90
GUACAMOLE-724: Update connection parameters in menu after focus changes.
2021-07-08 03:31:49 -07:00
Michael Jumper
95e77c6985
GUACAMOLE-724: Ensure focus is assigned to at least one client after changes are made to a group.
2021-07-08 03:31:49 -07:00
Michael Jumper
69ea8488f3
GUACAMOLE-724: Always emit focus events when focused client changes, even if the change occurs only due to replacing a disconnected client with a connected one.
2021-07-08 03:31:49 -07:00
Michael Jumper
902a111a57
GUACAMOLE-724: Update calls to ManagedFilesystem.getInstance() to provide relevant ManagedClient.
2021-07-08 03:31:49 -07:00
Michael Jumper
6b8b57ef5a
GUACAMOLE-724: Ensure connection parameters are updated when likely to be available (not just when group is attached).
2021-07-08 03:31:49 -07:00
Michael Jumper
e5a127647b
GUACAMOLE-724: Restore sorting client panel by last used timestamp.
...
Sorting by last used (rather than relying on internal sorting) ensures
that the DOM is only modified as necessary and that CSS animations only
affect client groups that are newly visible in the panel.
2021-07-08 03:31:48 -07:00
Michael Jumper
f6909a06e7
GUACAMOLE-724: Prefer to return an existing group rather than create a new one.
...
This ensures that focus state is maintained when switching from one
group to another. Focus state is otherwise reset when the group is
recreated.
2021-07-08 03:31:48 -07:00
Michael Jumper
74f0e0aec3
GUACAMOLE-724: Preserve current focus states when adding/removing connections from attached group.
2021-07-08 03:31:48 -07:00
Michael Jumper
5968193dfb
GUACAMOLE-724: Handle touch gestures while menu is open.
2021-07-08 03:31:48 -07:00
Michael Jumper
7916afd2d3
GUACAMOLE-724: Correct typo preventing menu open gesture from working.
2021-07-08 03:31:48 -07:00
Michael Jumper
2b8eb443d4
GUACAMOLE-724: Ensure tile header sizes match even if empty.
2021-07-08 03:31:48 -07:00
Michael Jumper
da62cb1afd
GUACAMOLE-724: Allow keyboard interaction with client notifications.
2021-07-08 03:31:48 -07:00
Michael Jumper
025775a040
GUACAMOLE-724: Clean up style of parameter prompts within client notifications.
2021-07-08 03:31:48 -07:00
Michael Jumper
1e69514507
GUACAMOLE-724: Defer connecting until window/display size is known.
...
Depending on the current state of the browser, the element that will
contain the display may not have an associated size, as the layout has
not yet finished updating. If this occurs, connecting needs to be
deferred until the size becomes known (until a resize event).
2021-07-08 03:31:48 -07:00
Michael Jumper
0e0445f95c
GUACAMOLE-724: Add close button for each client tile.
2021-07-08 03:31:48 -07:00
Michael Jumper
b294a2fa1e
GUACAMOLE-724: Render menu and client tile headers above client-specific modals.
2021-07-08 03:31:48 -07:00
Michael Jumper
5a40429359
GUACAMOLE-724: Do not allow multiple, adjacent modal areas to overlap due to overflow.
2021-07-08 03:31:48 -07:00
Michael Jumper
9f477fd5fe
GUACAMOLE-724: Remove unused parameter from clipboardService.setClipboard() calls.
2021-07-08 03:31:48 -07:00
Michael Jumper
e58005ae23
GUACAMOLE-724: Leverage DOM rather than CSS to show/hide connection tile headers.
...
CSS, though clean, results in delays in element size changes. When
switching between a view that has tile headers and a view that does
not, this manifests as visible "popping" as client displays are
initially sized to fit the area without the header followed by the area
with the header. Leveraging AngularJS directly ensures that such
changes occur in lockstep with the connection process.
2021-07-08 03:31:48 -07:00
Michael Jumper
8c0af308da
GUACAMOLE-724: Defer connecting until width/height of display area is known.
2021-07-08 03:31:48 -07:00
Michael Jumper
c9900434c4
GUACAMOLE-724: Migrate tiled thumbnail rendering to same flex layout as client view.
2021-07-08 03:31:48 -07:00
Michael Jumper
1f2007eb28
GUACAMOLE-724: Replace CSS grid layout with simpler, equialent, and more compatible flex layout.
2021-07-08 03:31:48 -07:00
Michael Jumper
760a96a47d
GUACAMOLE-724: Migrate to flex layout for modals for IE10+ compatibility.
2021-07-08 03:31:48 -07:00
Michael Jumper
4a20411eae
GUACAMOLE-724: Correct SVG aspect ratio handling in IE10+.
2021-07-08 03:31:48 -07:00
Michael Jumper
fe44b55f10
GUACAMOLE-724: Always resolve promise from setClipboard() (as documented).
...
Returning a value from the callback provided to finally() is not
sufficient to force promise resolution.
2021-07-08 03:31:48 -07:00
Michael Jumper
c87bd6bb3e
GUACAMOLE-724: Correct "infdig" error due to client group session storage constantly regenerating if logged out.
2021-07-08 03:31:48 -07:00
Michael Jumper
c2b252242b
GUACAMOLE-724: Correct rendering of tiled clients on IE10+ by migrating to grid layout.
2021-07-08 03:31:48 -07:00
Michael Jumper
09288b79b2
GUACAMOLE-724: Do not show parameter section headers when prompting via modal.
2021-07-08 03:31:48 -07:00
Michael Jumper
8ed27a8b36
GUACAMOLE-724: Properly disconnect if required parameters are not submitted.
2021-07-08 03:31:48 -07:00
Michael Jumper
b2b131ef34
GUACAMOLE-724: Increase opacity of client-specific notifications for sake of readability.
2021-07-08 03:31:48 -07:00
Michael Jumper
5903cf902c
GUACAMOLE-724: Simplify and correct keyboard handling to NOT send extra key events for Ctrl+Alt+Shift.
2021-07-08 03:31:48 -07:00
Michael Jumper
5e9fe0ea6e
GUACAMOLE-724: Scroll entire file transfer manager, not each individual client section.
2021-07-08 03:31:48 -07:00
Michael Jumper
0118489001
GUACAMOLE-724: ManagedClientGroup.forEach() must not attempt to visit non-existent clients.
2021-07-08 03:31:48 -07:00
Michael Jumper
b3c410a371
GUACAMOLE-724: Correct unreadable error coloring of new client-specific modals.
2021-07-08 03:31:48 -07:00
Michael Jumper
19aa600b80
GUACAMOLE-724: Migrate file transfer status dialog to multi-client support.
2021-07-08 03:31:48 -07:00
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
eab80688cc
GUACAMOLE-641: Ensure MyBatis "expectedConnectionTypeCode" is generated and matches valid database connections.
2021-06-21 14:44:09 -07:00
Michael Jumper
6ef951cd61
GUACAMOLE-641: Log creation of new database connections.
2021-06-21 14:43:19 -07:00
Michael Jumper
ca443c8a34
GUACAMOLE-641: Add support for all MyBatis JDBC properties to DynamicallyAuthenticatedDataSource.
...
Without support for these properties, important database configuration
aspects are ignored, including driver-specific configuration properties
like MySQL Connector/J's "allowMultiQueries".
2021-06-21 14:41:09 -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