Commit Graph

219 Commits

Author SHA1 Message Date
Solly Ross e25f9c4010 Use transition animation while loading
This shows the transition animation while loading, so users can see
something is going on.
2017-03-21 17:39:07 -04:00
Solly Ross 6d6f0db0da Refactor ES6 module structure/split up Util
This commit restructures many of the ES6 modules, splitting them
up to actual export multiple functions instead of a single object.

It also splits up Util into multiple sub-modules, to make it easier
to maintain.

Finally, localisation is renamed to localization.
2017-03-21 17:39:05 -04:00
Solly Ross 6e744119f8 Remove WebUtil.load_scripts
The only remaining user of WebUtil.load_scripts was for loading
localisation.  Instead, we now load the localization information
over XHR as a JSON blob.
2017-03-07 11:11:29 -05:00
Solly Ross 2a7c6d20ab Load translations over XHR
This commit causes translations to be loaded over XHR instead of
the import system.
2017-03-07 11:11:29 -05:00
Solly Ross bc35b1d27e Remove WebUtil.dirObj
`WebUtil.dirObj` wasn't being used anywhere, so this removes it.
2017-03-07 11:11:29 -05:00
Solly Ross 3ae0bb0968 Uncomment ES6 module syntax
This removes the special comment part of the ES6 module syntax,
opting to enable ES6 module syntax by default.

It also appends `.js` to all import paths to better support in-browser
loading.
2017-02-26 16:30:37 -05:00
Solly Ross d55e454582 Fix typos in imports and i18n
`app/ui.js` had an incorrect import path which caused issues
when using the ES6 and/or CommonJS builds of noVNC.

`core/util.js` had a non-strict-compatible declaration of a variable
without a `let` or `var` (it now uses `let`).

This fixes both issues.
2017-02-26 16:30:37 -05:00
Samuel Mannehed b56d975248 Merge branch 'settingswhileconnected' of https://github.com/samhed/noVNC
Closes pull request #778
2017-02-24 15:42:27 +01:00
Samuel Mannehed 7a005a1b18 Merge branch 'disableLabels' of https://github.com/samhed/noVNC
Closes pull request #776
2017-02-24 15:13:09 +01:00
Pierre Ossman 6e8a8c8df1 Remove 512x512 icon
It is not a launcher icon, but rather used for display on Google
Play. As such it is not needed and removing it mitigates the issue
of some buggy browsers downloading each and every listed icon.
2017-02-23 16:29:16 +01:00
Samuel Mannehed 24584cca89 Disable labels for settings as well
Makes the settings UI easier to read.
2017-02-21 11:58:03 +01:00
Samuel Mannehed 6c857dc50c Set input type number for port & reconnect_delay 2017-02-21 11:57:24 +01:00
Samuel Mannehed fb49f91b00 Allow local cursor to be changed while connected 2017-02-19 01:53:41 +01:00
Samuel Mannehed 3a535adab0 Allow auto reconnect to be changed while connected 2017-02-19 01:53:41 +01:00
Samuel Mannehed ef1e8bab22 Allow view_only to be changed while connected 2017-02-19 01:53:41 +01:00
Samuel Mannehed 0298305e80 Allow clipping to be changed while connected 2017-02-18 16:30:35 +01:00
Pierre Ossman e677b66cc7 Proper workaround for Chrome's scrollbar bug
Avoid applying this workaround more than necessary. Also comment a
bit more why this hack is needed.
2017-02-16 16:28:55 +01:00
Samuel Mannehed b56772ec43 Update drag button at right time
It needs to update whenever the viewport or clipping changes, so
let's make sure that actually happens and not trigger on mildly
related events.
2017-02-16 16:07:55 +01:00
Samuel Mannehed 6bfd9dc96f Update clipping before changing scaling
The scaling is relative the current viewport, so we need to make
sure it is correct before changing the scale setting.
2017-02-16 16:07:55 +01:00
Samuel Mannehed 5f38376adb Don't change stored setting when "forcing"
Don't overwrite the user's configured choice. Instead ignore
settings when they cannot be respected.
2017-02-16 16:07:55 +01:00
Samuel Mannehed 631428d966 Fix status class for IE
IE apparently doesn't support removing several class specifiers at
once, so switch to several calls.
2017-02-16 16:07:55 +01:00
Samuel Mannehed b18ef8162e Allow scroll bars on Safari and IE
The previous problems were because we were scrolling the wrong element,
so we can enable this feature now.
2017-02-16 16:07:40 +01:00
Samuel Mannehed f3b7727535 Fix canvas size on IE 2017-02-16 14:48:34 +01:00
Samuel Mannehed 280676c7e9 Properly encapsulate the scale in Display
Other parts of the code shouldn't have to care about this. Let Display
convert between canvas coordinates and framebuffer coordinates.
2017-02-16 14:00:39 +01:00
Samuel Mannehed bd7d89e7cc Fix resize on Chrome
Chrome sucks at calculating the size and gets confused due to the
scrollbars. Hide the scroll bars while resizing.
2017-02-10 16:39:18 +01:00
Pierre Ossman 86d15a4929 Use setCapture() polyfill everywhere
This makes sure we get consistent behaviour across all browsers.
2017-02-09 15:51:22 +01:00
Pierre Ossman b345859ed6 More aggressive retaining of focus
Try to keep the virtual keyboard up even more. Only release focus
when it is absolutely necessary.
2017-02-09 14:20:37 +01:00
Pierre Ossman 3f48c7017d Tweak spinner appearence
Change the look of the "busy" spinner a bit. It's mostly used for
connection stuff, so give it a more data flow feel. Also bling it
up a bit with some fading. Perty sells. :)
2017-02-07 16:09:10 +01:00
Pierre Ossman 84b05d24b0 Allow submitting the password from the input field 2017-02-03 13:19:15 +01:00
Pierre Ossman 648c83984c Scroll correct element
The element we want scrolling around is noVNC_screen, not the entire
window. This also allows us to compute the screen size without
fiddling the scrollbars on and off.
2017-02-03 13:17:43 +01:00
Pierre Ossman f6299e0aed Move keyboard style in CSS
Put it so it matches where it is in the HTML.
2017-02-03 11:44:24 +01:00
Pierre Ossman 9865432a02 Center canvas (again)
The previous attempt could leave parts of the canvas outside the
document, making it impossible to reach. Use a safer method as
recommended by Mozilla.
2017-02-03 11:43:17 +01:00
Samuel Mannehed 623b1b7d96 Allow resize setting to be changed while connected
There is no reason to why this shouldn't be possible.
2017-01-27 16:22:15 +01:00
Samuel Mannehed 59387b34ea Separate init functions from event handling setup
Adds a new section for all functions that add event handlers.
2017-01-27 16:20:53 +01:00
Samuel Mannehed 3fdc69ceda Rename function for adding resize handlers
Moves the one handler for the status out of the function as well. It
didn't fit in with the function's old name either.
2017-01-27 16:20:53 +01:00
Samuel Mannehed b3d91b78e1 Rename and move init function for fullscreen 2017-01-27 16:20:53 +01:00
Samuel Mannehed dceda58642 Save settings immediately
Retire the old settingsApply. This also allows UI logic to check the
state of things using the settings instead of having to look at the
values of HTML elements (we couldn't be sure if the changes were
applied yet or not).
2017-01-27 16:20:33 +01:00
Samuel Mannehed 0b09e9cb6f Remove unused toggleConnectPanel function 2017-01-24 14:37:14 +01:00
Samuel Mannehed aa90547519 Add UI wrapper for Webutil.init_logging 2017-01-24 14:36:19 +01:00
Pierre Ossman 394ad22be9 Merge branch 'add-reconnect' of https://github.com/fd0/noVNC 2017-01-23 13:47:57 +01:00
Alexander Neumann 044d54ed62 Add reconnect option
Add an option to automatically reconnect after a delay when the
connection is closed.

Closes #746
2017-01-23 11:42:41 +01:00
Pierre Ossman a7619faf18 Set pointer cursor for status bar
It can be dismissed by clicking on it, so hint this by setting the
pointer cursor type.
2017-01-20 10:11:16 +01:00
Pierre Ossman 413ea87741 Fix global error handler
It stopped working when we switched to textContent as it relies
on being able to add new HTML elements. Do things properly by
adding new elements via createElement().
2017-01-18 15:59:31 +01:00
Solly Ross 6048299a13 Use textContent instead of innerHTML
Previously, setting `innerHTML` was used to display the statuses.  These
could include content communicated from the remote VNC server, allowing
the remove VNC server to inject HTML into the noVNC page.

This commit switches all uses of `innerHTML` to use `textContent`, which
is not vulnerable to the HTML injection.
2017-01-12 14:47:36 -05:00
Pierre Ossman 813458923e Avoid wrapping labels 2017-01-04 15:05:59 +01:00
Pierre Ossman cac935ffc2 Clean up z index ordering
We have enough layers now that we need to have some system for this.
E.g. make sure that dialogs during connect show up in front of the
blocking transition layer.
2017-01-04 15:05:59 +01:00
Pierre Ossman b3c932c386 Make connect button more prominent
It's generally the only thing the user needs to click on, so make
sure it clearly stands out.
2017-01-04 15:05:58 +01:00
Pierre Ossman 512d3605ad Remove connect dialog
It only contained a password field, which might not be needed, and
is handled by a separate dialog if it is.
2017-01-04 15:05:01 +01:00
Pierre Ossman ef3e12b595 Remove vendor prefix from border-radius
It's been standardised for quite some time, so remove the extra
noise in the CSS.
2017-01-04 15:05:01 +01:00
Pierre Ossman 575f69832d Group WebSocket settings together
It was easy to confuse them as being VNC settings, so keep them all
under one group.
2017-01-04 15:05:01 +01:00
Pierre Ossman 340d9d66cc Remove alternative style sheets
Anyone with basic knowledge of CSS will easily figure out how to
customise the appearance of the UI, so remove the burden of having
to maintain these extra style sheets.
2017-01-04 15:05:01 +01:00
Pierre Ossman 58fc267b2b Remove unused token setting 2017-01-04 15:05:01 +01:00
Pierre Ossman 47fbdced45 Center canvas vertically as well 2017-01-04 15:05:01 +01:00
Pierre Ossman 8f2ca5feaa Black out background when connected 2017-01-04 15:04:51 +01:00
Samuel Mannehed c01b2f0259 Merge pull request #699 from CendioOssman/double
Display double buffering
2016-12-13 12:42:22 +01:00
Pierre Ossman adf345fdc4 Clean up viewport handling
Make sure the viewport is properly updated when necessary, on respects
given restrictions.
2016-12-09 09:20:50 +01:00
Pierre Ossman 3f781f2aa3 Remove max dimension handling
The viewport handling is now a lot clearer, so simply limit the size
of the viewport in the caller rather than having this extra layer
of checks.
2016-12-09 09:20:50 +01:00
Pierre Ossman 18d21e3621 Update all state on session size change 2016-12-09 09:20:50 +01:00
Samuel Mannehed a8cc32d8b9 Merge pull request #725 from CendioOssman/rightbar
Allow control bar to be moved to the right side
2016-11-29 13:23:02 +01:00
Samuel Mannehed d062074b5a Clear UI.connected state variable right away
Keeping it set for the disconnecting state was causing an issue where
the controlbar could be hidden without any way to open it, when a
session disconnects too quickly.
2016-11-28 12:36:29 +01:00
Samuel Mannehed d8ff7c9ed6 Further fixes for fallback error handler
Layout improvements as well as an check for ErrorEvent.error as it is
not standardized.
2016-11-28 12:33:42 +01:00
Samuel Mannehed 38d8cfdf83 Fix fallback error handling
Start using the correct API for window.addEventListener('error',..).
Unlike when using onerror, the handler function gets an event.
2016-11-28 10:02:13 +01:00
Pierre Ossman cf348b7892 Remember control bar position 2016-11-26 15:26:28 +01:00
Pierre Ossman 8ee432f1db Allow control bar to be moved to the right side 2016-11-26 15:13:33 +01:00
Pierre Ossman de315d6216 Touching the handle should keep the control bar visible
Calling stopPropagation() was causing the normal event listeners
to never get the proper events.
2016-11-24 17:03:47 +01:00
Giannis Kosmas dd085b40a9 Update Greek translation 2016-11-24 12:18:59 +02:00
Samuel Mannehed f5bf2d84ef Merge pull request #718 from ossman/po
Use gettext .po files, and translate everything
2016-11-22 21:02:13 +01:00
Samuel Mannehed 1983baf5bf Fix link tagname 2016-11-21 13:43:02 +01:00
Pierre Ossman 79b05f9f19 Update Swedish translation 2016-11-19 13:23:00 +01:00
Pierre Ossman edffd9e2f8 Also translate HTML elements 2016-11-19 13:23:00 +01:00
Pierre Ossman 3cdc603aa4 Use gettext .po files for translations
This allows the same workflow as most other projects for translations.
2016-11-17 20:42:08 +01:00
Pierre Ossman 45729def6d Restore translations for some strings
We lost the translation calls for a couple of strings in one of
the clenaups.
2016-11-17 19:58:10 +01:00
Pierre Ossman f28e248d3f Use _() as shorthand for translations
Used commonly when gettext is used for translations. Avoids cluttering
the code.
2016-11-17 19:58:10 +01:00
Samuel Mannehed d24de750b1 Add fallback handling for uncought errors 2016-11-10 14:33:23 +01:00
Samuel Mannehed b85a13de69 Merge pull request #689 from ossman/keysym
Don't send Unicode as keysym
2016-11-10 09:36:43 +01:00
Samuel Mannehed f3d25df048 Merge pull request #711 from CendioOssman/spinners
Blocking transition screen when connecting/disconnecting
2016-11-10 08:47:23 +01:00
Pierre Ossman 8d710e8b18 Blocking transition screen when connecting/disconnecting 2016-11-08 14:54:48 +01:00
Samuel Mannehed 37ebc5c14e Merge pull request #697 from CendioOssman/keyboard
Better method to keep focus on virtual keyboard
2016-11-08 12:28:23 +01:00
Giannis Kosmas b98b2f813d Added Greek translation 2016-10-28 21:22:25 +03:00
Samuel Mannehed a4fc1fa586 Add Swedish translation 2016-10-28 15:41:08 +02:00
Samuel Mannehed fdb02f8570 Always translate literals instead of variables
Makes it much easier to find what needs to be translated.
2016-10-28 15:41:08 +02:00
Samuel Mannehed 91e41150f0 Don't translate unexpected errors 2016-10-28 15:41:00 +02:00
Samuel Mannehed e848790194 Replace tab with spaces 2016-10-28 15:23:51 +02:00
Samuel Mannehed f55e041908 Add newlines at the end of the translation files 2016-10-28 14:37:40 +02:00
Samuel Mannehed a93cda3a36 Move app-specific location of language files
The core directory should only contain core API code that isn't
specific to an application.
2016-10-28 14:30:14 +02:00
Loek Janssen 5af39a878a Added localization to statusbar 2016-10-28 12:40:28 +02:00
Samuel Mannehed b1358a1f2e Always disable forced touch gestures
Don't only disable these for the canvas, disable for the entire page.
There were issues where the control bar handle couldn't be moved on
IE and Edge on Microsoft Surface devices due to these "touch-actions".
2016-10-26 15:43:43 +02:00
Samuel Mannehed 2e5cae1b23 Update comment for screenSize()
The explanation was outdated.
2016-10-24 14:26:53 +02:00
Samuel Mannehed 1a15f22905 Remove unnecessary anonymous function
addEventListener can handle multiple assigned events, no need for a
wrapping function.
2016-10-24 14:08:53 +02:00
Samuel Mannehed 4770b0c311 Typo fix for last commit
Commit 7d20158b4b contained a typo
2016-10-24 13:59:35 +02:00
Samuel Mannehed 7d20158b4b Add missing log output for UI-specific errors
Some UI errors and one warning didn't write to the log. We want all
errors to be logged.
2016-10-24 13:36:05 +02:00
Samuel Mannehed daca5b1727 Reformat lines to avoid line-breaks 2016-10-24 13:35:06 +02:00
Samuel Mannehed 9b3d363d07 Merge pull request #686 from CendioOssman/favicon
Clean up page icons ("favicon")
2016-10-24 12:09:58 +02:00
Pierre Ossman ffcadf9507 Better method to keep focus on virtual keyboard
This prevents the focus being lost rather than trying to restore it
at various places.
2016-10-21 16:27:43 +02:00
Samuel Mannehed ac33960368 Merge pull request #649 from kanaka/dontgrabinviewonly
Fix view only
2016-10-20 01:04:14 +02:00
Samuel Mannehed b0f7466ad4 Merge pull request #687 from CendioOssman/info
Improve info and error icons
2016-10-20 01:02:55 +02:00
Samuel Mannehed 5826ab6f6a Merge pull request #650 from kanaka/touchdetect
New way of detecting touch
2016-10-20 00:18:32 +02:00
Samuel Mannehed d6cb04aa6b Disable forced touch gestures on IE and Edge
Fixes issue discussed in #613
2016-10-20 00:13:29 +02:00
Samuel Mannehed 8473635a09 Fix typo that caused clipping by default on IE
Typo from commit a6357e8276
2016-10-19 15:33:06 +02:00
Samuel Mannehed f75e4d3caa Add safety check in code for moving the handle
An element that has 'display: none' has a height of zero, and the logic
for the handle assumed that this was never the case. This could cause
the handle to end up at the wrong coordinates.
2016-10-18 13:32:00 +02:00