Commit Graph

320 Commits

Author SHA1 Message Date
Samuel Mannehed 86b9c473d1 Apply translations on input type submit
Commit 3729976 only updated xgettext.html which generates the .pot file.
This commit also makes sure that the actual translations are applied to
the interface.

Fixes #997
2018-01-24 13:00:48 +01:00
Samuel Mannehed 61f93180c8 Show/hide mouse button selector in updateViewOnly
Before this commit, the mouse button selector was hidden when the user
clicked it in view only..
2018-01-12 01:45:26 +01:00
Samuel Mannehed f3763a010c Update interface on view only toggle
Instead of waiting for updateVisualState() to be called in order for the
interface to update, we can call it directly in updateViewOnly(). This
is a better placement logically as well. Another upside of this is that
we can call updateVisualState() earlier on connect, that allows for the
"connecting"-throbber to be shown quicker.
2018-01-12 01:45:15 +01:00
Peter Dave Hello 03d829f170 Add Chinese (Traditional) translation 2018-01-10 00:59:27 +08:00
Deni42 37c609359a Fix view_only setting with autoconnect (#985)
updateVisualState() and updateViewOnly() requires an initiated UI.rfb reference, the calls in connect() was made too early.
2018-01-05 12:05:17 +01:00
Samuel Mannehed a4822c3a86 Only connect if we don't have an rfb object
Each connection creates a new RFB object. Fixes #978.
2017-12-14 12:16:45 +01:00
Samuel Mannehed 75e1161434 Throw away the reference to RFB on disconnect 2017-12-14 12:15:56 +01:00
Samuel Mannehed 7f1049c0ee Make error more specific at connection failure
The UI does after all have enough information to determine if the
disconnection event was received before or after we were connected. If
we were never connected at all, we should adapt the error message to
reflect this.
2017-12-12 16:14:43 +01:00
Pierre Ossman 4f4f62261a Merge branch 'resize' of https://github.com/CendioOssman/noVNC 2017-12-11 16:48:54 +01:00
Pierre Ossman 9b84f51685 Move resize handling in to RFB object
Makes the API simpler and makes it easier for other frontends to
get this functionality.
2017-12-06 11:29:57 +01:00
Dominik Csapak 110a52c57d update german translations
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-11-24 08:26:37 +01:00
Pierre Ossman 2efa8a5a7c Merge branch 'master' of https://github.com/mariuszjamro/noVNC 2017-11-23 15:22:50 +01:00
Mariusz Jamro ceea51fa16 Update polish translations to match recent code changes 2017-11-21 19:56:43 +01:00
Giannis Kosmas 44db9c92e8 Greek translations revised 2017-11-17 21:51:41 +02:00
Samuel Mannehed db46e36eb9
Merge pull request #950 from samhed/disconnectapi
Abstract information from RFB to the UI
2017-11-17 11:01:11 +01:00
Samuel Mannehed 7279364c9a Move localization.js to app
Since it is no longer used in core. Also splits localization tests into
a separate file.
2017-11-14 15:36:12 +01:00
Samuel Mannehed 689580381c Move UI.cancelReconnect() to related functions 2017-11-14 15:36:12 +01:00
Samuel Mannehed d623a029d6 Dont overwrite more severe visible statuses
And only show the first error. This means that if UI.showStatus() is
called for a new error while one error is already showing, the new
error will not be shown. However, if a warning was showing and a new
error comes up, the warning will be overwritten.
2017-11-14 15:36:12 +01:00
Samuel Mannehed d472f3f19e Abstract RFB errors to avoid sending strings
The API allowed strings to be passed from the RFB module to the
application using the disconnect reason. This caused problems since
the application didn't have control over translations for these
strings.

Most of the information being passed using this string was very
technical and not helpful to the end user. One exception to this was
the security result information regarding for example authentication
failures. The protocol allows the VNC server to pass a string
directly to the user in the security result.

So the disconnect reason is replaced by a boolean saying if the
disconnection was clean or not. And for the security result information
from the server, a new event has been added.
2017-11-14 15:36:12 +01:00
Samuel Mannehed ee5cae9fee Replace updatestate event with connect
Instead of exposing all the internal connection states, the RFB module
will now only send events on connect and on disconnect. This makes it
simpler for the application and gets rid of the double events that were
being sent on disconnect (previously updatestate and disconnect).
2017-11-14 14:10:36 +01:00
Pierre Ossman b8dfb983df Fix old focus on click references
The property was renamed when mergin the public API changes, but
a few references were overlooked.
2017-11-11 16:44:53 +01:00
Samuel Mannehed 8317524cda Don't translate log messages 2017-11-11 02:12:45 +01:00
Samuel Mannehed 2592c24388 Translate user visible text
And make the log message a bit more detailed
2017-11-11 02:12:39 +01:00
Samuel Mannehed 5b20d338ce Remove RFB.notification()
This interface was a band aid for poor design. The two cases where it
was used was replaced by logging.
2017-11-11 02:10:12 +01:00
Pierre Ossman a201bfc5eb Merge branch 'api' of https://github.com/CendioOssman/noVNC 2017-11-10 14:19:05 +01:00
Pierre Ossman a80b5fdaaf Prevent password form submission early
Otherwise it might reload the page if we run in to some kind of
error.
2017-11-09 13:14:16 +01:00
Pierre Ossman e89eef94aa Use standard EventTarget interface for events 2017-11-09 13:14:16 +01:00
Pierre Ossman 65fdfeae13 Remove unused options argument in onnotification event handler 2017-11-09 13:13:41 +01:00
Pierre Ossman 2f4516f293 Integrate connect() in to constructor
An RFB object represents a single connection so it doesn't make
sense to have one without it trying to connect right away. Matches
the behaviour of other APIs, e.g. WebSocket.
2017-11-09 13:13:41 +01:00
Pierre Ossman 002907d2ce Remove "downscale only" mode
The normal scaling mode should be sufficient for most use cases, so
let's keep the interface simple.
2017-11-09 13:13:41 +01:00
Pierre Ossman 8d1f0a3de8 Remove local cursor setting
We have no reason to disable this except for touch devices, which
we can handle without having a setting for it.
2017-11-09 13:13:41 +01:00
Pierre Ossman 0460e5fdbe Improve naming for viewport properties 2017-11-09 13:13:41 +01:00
Pierre Ossman a80aa41628 Change clippingDisplay() to a property
It fits much better as a property given that it only tells what the
current state of things are.
2017-11-09 13:13:41 +01:00
Pierre Ossman 747b462337 Use standard JavaScript properties
Use normal properties with JavaScript setters and getters instead of
our homegrown stuff.

This also changes the properties to follow normal naming conventions.
2017-11-09 13:03:32 +01:00
Pierre Ossman 3d7bb02036 Change some attributes to arguments
Some attributes are better suited as arguments, primarily because they
are associated with a specific method and cannot be changed later.
2017-11-09 12:52:05 +01:00
Pierre Ossman 5b4e5d016e Switch to URL for connect()
This is more in line with how other JavaScript APIs work.
2017-11-09 12:52:05 +01:00
Pierre Ossman 832be2625b Add resize as a capability
Makes the API more transparent than piggybacking on completion
of the first framebuffer update.
2017-11-09 12:51:15 +01:00
Pierre Ossman cd523e8f28 Make power API generic
Decouple it from XVP and make it a generic API.
2017-11-09 12:47:21 +01:00
Pierre Ossman 430f00d6fe Allow other credentials than just password
Makes the XVP authentication mechanism more general.
2017-11-09 12:45:05 +01:00
Samuel Mannehed a1d547657f
Merge pull request #947 from samhed/lite_center
Properly center things in vnc_lite.html
2017-11-04 11:50:50 +01:00
Pierre Ossman 1d6ff4a3e9 Improved focus handling on touch input field
The previous method of retaining focus didn't work reliably when
the RFB object tried to move the focus to the canvas. Add a setting
to control "focus on click" behaviour instead of letting them try
to fight it out.
2017-11-02 15:30:36 +01:00
Samuel Mannehed ba9e1ecc94 Center canvas vertically as well in vnc_lite
Fixes issue #881.
2017-11-01 09:23:46 +01:00
Samuel Mannehed 3c07dc51af Add small padding to buttons in vnc_lite 2017-11-01 09:23:46 +01:00
Samuel Mannehed 4023a6e1c7 Properly center status message in vnc_lite
This gets rid of the table and uses a flexbox instead.
2017-11-01 09:23:46 +01:00
Samuel Mannehed dc905e859f Move styling from vnc_lite.html to css
This clears up some conflicting style attributes as well. HTML
inline-styling is prioritized above css styling.
2017-10-31 18:58:14 +01:00
Samuel Mannehed 8167e459bc Remove unnecessary css rules for lite 2017-10-31 18:57:14 +01:00
Samuel Mannehed 178bf8ec97 Get rid of unnecessary noVNC_container in lite
If we want to keep vnc_lite simple, we shouldn't have unnecessary
elements. All aspects of the container could be moved up a step in the
hierarchy.
2017-10-31 16:06:57 +01:00
Samuel Mannehed 082bc6b478 Use more subtle colors for warn and error in lite
The clear red and yellow colors used before does not match well with the
rest of noVNC's color scheme.
2017-10-30 15:31:56 +01:00
Samuel Mannehed 0bc4e4eb8a Remove prefixed versions of linear-gradient
Other parts of noVNC have significantly higher requirements than this.
All supported browsers will be able to handle the real linear-gradient.
2017-10-30 15:29:19 +01:00
Pierre Ossman f976b5500e Hide mouse object from RFB callers 2017-10-27 13:58:12 +02:00
Pierre Ossman b9854a5ca5 Hide display object from RFB callers 2017-10-27 13:58:11 +02:00
Pierre Ossman 4c11755ce7 Merge branch 'focus' of https://github.com/CendioOssman/noVNC 2017-10-18 15:12:46 +02:00
Pierre Ossman 867daa98af Restore handling of key events for virtual keyboard
We broke handling of keydown/keyup when we moved the focus to the
canvas, as events from our input element would then no longer be
caught when they bubbled up to the document object (where we
previously caught events).

Restore the previous behaviour in a cleaner manner by creating a
second Keyboard object to handle this extra input variant.
2017-10-18 15:08:33 +02:00
Pierre Ossman 06fe4a3e1b Make sure control bar stays visible on Tab
Avoid the deprecated keypress event in favour of the keydown event.
It has the benefit of triggering for all keys, not just those that
produce symbols.
2017-10-18 15:08:33 +02:00
Pierre Ossman 2545a6c12e Stop giving host field default focus
It's a field that isn't shown by default and rarely changed.
2017-10-18 15:08:33 +02:00
Pierre Ossman e36f95868a Add focus state for control bar buttons
The focus can now move to the canvas so it is no longer a source of
confusion. It is also important to indicate that they have focus now
that we actually respect it.
2017-10-18 15:08:29 +02:00
Pierre Ossman 2afda54456 Only grab key events on canvas
Give the canvas proper focus handling. This avoids messy logic that
needs to disable and enable event handling when we want to interact
with other UI elements.

It also makes sure we can properly inhibit the browser from triggering
local actions on key presses.
2017-10-18 15:07:17 +02:00
Samuel Mannehed a342ed703f Check if <audio>.play() returns a promise
It doesn't always. IE and Edge crashed when trying to play the bell due
to this. Fixes #929.
2017-10-17 12:16:38 +02:00
Samuel Mannehed 2e735160bf Save pw for reconnections when using query params 2017-10-16 11:06:40 +02:00
Samuel Mannehed 93358b2eed Remove 'fuzzy' marks that were mistakenly left
During the last round of translations a few fuzzy markings was not
removed even though the string was updated. This can happen when the
translators edit the .po-file manually. Fuzzy markings result in that
the strings do not get included into the generated .json files.
2017-10-11 16:20:25 +02:00
Samuel Mannehed 061488f8f1 Fix Dutch translation for "Reconnecting..." 2017-10-11 16:19:22 +02:00
Samuel Mannehed 76fa34a635 Update .json for Dutch and Swedish translations 2017-10-11 10:52:48 +02:00
Samuel Mannehed 61c37685f6 Merge pull request #920 from flumm/german
updated german translations
2017-10-11 10:01:34 +02:00
Dominik Csapak b420b966a3 updated german translations
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2017-10-11 07:09:50 +00:00
Samuel Mannehed e4791eac9d Merge pull request #922 from kosmasgiannis/greek
Update Greek translation
2017-10-11 09:04:13 +02:00
Giannis Kosmas 4e2de902e7 Update Greek translation 2017-10-11 09:52:26 +03:00
Mariusz Jamro a0513c87c7 Add polish translation 2017-10-10 15:37:31 +02:00
Samuel Mannehed 9e314b44e2 Merge pull request #913 from kosmasgiannis/missing_quote
Add missing quotes
2017-10-06 23:03:55 +02:00
Giannis Kosmas 067accb8d9 autoconnect variable was used before it was defined. 2017-10-06 22:53:52 +03:00
Giannis Kosmas eb533b2b00 Add missing quotes 2017-10-06 14:15:22 +03:00
Pierre Ossman d593483ecc Make port optional in ui.js as well
It is optional in the RFB object since 1a50f68, so we don't need it
at the UI layer either.
2017-10-06 10:07:47 +02:00
Samuel Mannehed a49ade5fa0 Rename setting_clip to setting_view_clip
Clarifies the purpose of the setting in order to avoid mix ups with
clipboard related things.
2017-09-07 09:01:52 +02:00
Samuel Mannehed 409b7fb97e Remove unused variable
The use of this variable was removed in b18ef8162e
2017-09-07 09:00:15 +02:00
Pierre Ossman d1a1e0e529 Adjust scaling when session size changes
Session size changes can be initiated from the server, and not just
from the client. Make sure we update the scaling when this happens.
2017-08-16 11:00:04 +02:00
Samuel Mannehed 74a29f3ff5 Make sure the control bar hint is centered
Fixed positioned flex boxes are not positioned correctly in Safari. Add
the normal top 50% translate -50% method.

Fixes issue #848.
2017-07-26 17:06:27 +02:00
Pierre Ossman 637a282be5 Scroll error stack trace
Make sure we get the stack trace without distortions by wrapping, or
cropping because it flows out of the screen.
2017-06-15 13:49:27 +02:00
Pierre Ossman 858ea4a774 Avoid use of 'let' and 'const'
They are not supported on older browsers, e.g. iOS 9.
2017-06-02 15:41:37 +02:00
Samuel Mannehed bbc1648c7a Add hint that the control bar can be moved
The control bar can be dragged to the other side, this isn't obvious
however. This adds a hint on the opposite side in the form of a subtle
glowing half-ellipse.
2017-05-29 15:57:13 +02:00
Samuel Mannehed c23665dd82 Clear the password input field
If a user disconnects but leaves the browser tab open, the password
input field would still contain the password for future connections.
We now clear the input field after reading the password into memory.
2017-05-20 19:05:46 +02:00
Samuel Mannehed b0061a3c49 Revert "Remove shadow from logo"
This reverts commit 7c44f86dcd.
2017-05-15 14:57:33 +02:00
Pierre Ossman 55988e7aec Fix bootstart of input field
It wasn't working properly anymore because it expected to be triggered
by the "load". But we now register that event listener long after the
"load" event has already fired.
2017-05-15 14:42:28 +02:00
Samuel Mannehed c464f47e96 Remove trailing whitespace 2017-05-13 01:56:24 +02:00
Samuel Mannehed 7c44f86dcd Remove shadow from logo 2017-05-13 01:43:02 +02:00
Samuel Mannehed d4fc89d8b9 Catch errors for when we can't play bell
Many browsers, for example Chrome on Android will not allow audio to
play unless it's initiated from a user action. It is not reasonable to
display an error for this. Fixes issue #821.
2017-05-12 12:52:05 +02:00
Samuel Mannehed 83391ffc38 Rename vnc_auto to vnc_lite 2017-05-12 08:57:23 +02:00
Samuel Mannehed 7ca650b73d Add missing semi colon 2017-05-12 08:48:41 +02:00
Samuel Mannehed 333ad45c70 Don't capture touch events
They are implicitly captured anyway, and we get problems if we try
to explicitly capture them.
2017-05-11 13:34:43 +02:00
David Gnedt 8a0cbd742b Update German translation
From Pull Request #771.
2017-05-09 11:49:57 +02:00
Pierre Ossman 26586b9ddf Remove colour map support
It was broken and unused. Remove it so we can simplify the code.
2017-05-04 15:13:33 +02:00
Pierre Ossman 545442afc3 Merge branch 'keyboard' of https://github.com/CendioOssman/noVNC 2017-05-04 12:18:55 +02:00
Pierre Ossman 5a3e9d3da8 Error.error can be null in some cases 2017-05-04 12:13:48 +02:00
Pierre Ossman 94f5cf05f3 Send keyboard events from single place
This makes it easier to handle any needed variations, like different
types of messages.
2017-05-04 12:13:47 +02:00
Samuel Mannehed 41c958d450 Properly restore the default style
Setting a style to null does restore it in FF, Chrome, Safari and Edge.
But it does not work in Internet Explorer. The proper way to restore to
default values is to set it to the empty string. This works in all
browsers. Fixes issue #808.
2017-04-11 10:57:21 +02:00
Pierre Ossman 732233eda0 Handle partial error location information
We might not get line or column number, but the file is still
useful information.
2017-03-27 16:29:38 +02:00
Pierre Ossman 5da03103a3 ErrorEvent.error isn't always set
It's not just a matter of the browser lacking support.
2017-03-27 16:29:38 +02:00
Pierre Ossman 13c558e3a0 Limit fallback error width to window width
Change the layout a bit to make sure the entire message can be read.
2017-03-27 16:29:38 +02:00
Pierre Ossman c361080be8 Use monospace font for unhandled errors
The browsers uses crude layout formatting that expects this.
2017-03-27 16:29:38 +02:00
Pierre Ossman 524d67f283 Remove keysym names from keysymdef.js
They were incomplete and turned off in most cases so they served
little use besides adding complexity.
2017-03-24 11:16:53 +01:00
Pierre Ossman 7e19216368 Define an initial shadow for spinner
IE and Edge refuse to animate attributes that weren't present in
the static definition.
2017-03-23 17:53:09 +01:00
Solly Ross adfc9d3f54 Move error handler into separate file
This commit moves the global error handler into a separate file,
so that it can catch module loading errors.

This also adds support for properly displaying error messages with
newlines in them (since the module loader may throw those)
2017-03-21 17:39:07 -04:00