Commit Graph

53 Commits

Author SHA1 Message Date
Pratik Shah b7b43e8d9c feat(chat): convert to use React
- Change "features/chat" to support listening for new chat messages
  and storing them, removing that logic from conference.js.
- Combine chat.scss and side_toolbar_container.css, and remove unused
  scss files. Chat is the only side panel so the two concepts have
  been merged.
- Remove direct access to the chat feature from non-react and non-redux
  flows.
- Modify the i18n translate function to take in an options object.
  By default the option "wait" is set to true, but that causes
  components to mount after the parent has been notified of
  an update, which means autoscrolling down to the latest rendered
  messages does not work. With "wait" set to false, the children
  will mount and then the parent will trigger componentDidUpdate.
- Create react components for chat. Chat is the side panel
  plus the entiren chat feature. ChatInput is a child of Chat and
  is used for composing messages. ChatMessage displays one message
  and extends PureComponent to limit re-renders.
- Fix a bug where the toolbar was not showing automatically when
  chat is closed and a new message is received.
- Import react-transition-group to time the animation of the
  side panel showing/hiding and unmounting the Chat component.
  This gets around the issue of having to control autofocus if the
  component were always mounted and visibility toggled, but
  introduces not being able to store previous scroll state
  (without additional work or re-work).
2018-09-26 14:48:10 -05:00
virtuacoplenny 5b7b373e21 fix(keyboard-shortcuts): process Unidentified keys ()
* fix(keyboard-shortcuts): process Unidentified keys

When processing keyboard events for keyboard shortcuts,
if the value of an event's "key" attribute is "Unidentified",
the event should be further processed instead of the "key"
being returned to be mapped to a registered keyboard shortcut.
This occurs on edge, where question mark has the key
"Unidentified" but has the proper keyCode of 191.

* squash: add comment
2018-04-16 16:33:26 -05:00
Saúl Ibarra Corretgé 95e00405b6 feat(keyboard-shortcuts): fix removing shortcuts () 2018-04-06 08:11:21 -07:00
Leonard Kim d93782af8a feat(new-toolbars): initial implementation 2018-03-27 00:54:30 -05:00
bgrozev 090f2f9ccb Restructures the analytics events ()
* ref: Restructures the pinned/unpinned events.

* ref: Refactors the "audio only disabled" event.

* ref: Refactors the "stream switch delay" event.

* ref: Refactors the "select participant failed" event.

* ref: Refactors the "initially muted" events.

* ref: Refactors the screen sharing started/stopped events.

* ref: Restructures the "device list changed" events.

* ref: Restructures the "shared video" events.

* ref: Restructures the "start muted" events.

* ref: Restructures the "start audio only" event.

* ref: Restructures the "sync track state" event.

* ref: Restructures the "callkit" events.

* ref: Restructures the "replace track".

* ref: Restructures keyboard shortcuts events.

* ref: Restructures most of the toolbar events.

* ref: Refactors the API events.

* ref: Restructures the video quality, profile button and invite dialog events.

* ref: Refactors the "device changed" events.

* ref: Refactors the page reload event.

* ref: Removes an unused function.

* ref: Removes a method which is needlessly exposed under a different name.

* ref: Refactors the events from the remote video menu.

* ref: Refactors the events from the profile pane.

* ref: Restructures the recording-related events.

Removes events fired when recording with something other than jibri
(which isn't currently supported anyway).

* ref: Cleans up AnalyticsEvents.js.

* ref: Removes an unused function and adds documentation.

* feat: Adds events for all API calls.

* fix: Addresses feedback.

* fix: Brings back mistakenly removed code.

* fix: Simplifies code and fixes a bug in toggleFilmstrip

when the 'visible' parameter is defined.

* feat: Removes the resolution change application log.

* ref: Uses consistent naming for events' attributes.

Uses "_" as a separator instead of camel case or ".".

* ref: Don't add the user agent and conference name

as permanent properties. The library does this on its own now.

* ref: Adapts the GA handler to changes in lib-jitsi-meet.

* ref: Removes unused fields from the analytics handler initializaiton.

* ref: Renames the google analytics file and add docs.

* fix: Fixes the push-to-talk events and logs.

* npm: Updates lib-jitsi-meet to 515374c8d383cb17df8ed76427e6f0fb5ea6ff1e.

* fix: Fixes a recently introduced bug in the google analytics handler.

* ref: Uses "value" instead of "delay" since this is friendlier to GA.
2018-01-03 13:24:07 -08:00
virtuacoplenny 9b67e796bd ref(analytics): centralize all event names ()
* ref(analytics): centralize all event names

* squash: fix typo and alpha ordering

* squash: rename file to AnalyticsEvents to parallel lib-jitsi-meet
2017-12-11 12:48:32 -06:00
virtuacoplenny dc26b17d8b feat(keyboard-shortcuts): show help in a react dialog ()
* feat(keyboard-shortcuts): show help in a react dialog

- Move shortcut help dom declaration to a react component
- Let open/close logic be handled by AtlasKit Dialog
- Remove static html for help from index.html
- Consolidate keyboard shortcut css

* squash: use lozenge for key styling

* squash: use different iteration style

* squash: update package-lock for lozenge
2017-11-13 16:58:00 -06:00
hristoterezov 0b50578de9 style(analytics): sendEvent -> sendAnalyticsEvent 2017-10-17 19:33:32 -05:00
hristoterezov 969f5d67ab feat(eslint): Enable for non react files 2017-10-16 14:36:29 -05:00
hristoterezov 0eddef4d62 feat(mute): Add analytics and console logs for audio/video mutes 2017-10-13 09:50:48 -05:00
hristoterezov df1437f018 ref(analytics): Use analytics from features/analytics 2017-10-13 09:50:48 -05:00
Lyubo Marinov dfebd692f3 eslint 4.8.0
ESLint 4.8.0 discovers a lot of error related to formatting. While I
tried to fix as many of them as possible, a portion of them actually go
against our coding style. In such a case, I've disabled the indent rule
which effectively leaves it as it was before ESLint 4.8.0.

Additionally, remove jshint because it's becoming a nuisance with its
lack of understanding of ES2015+.
2017-10-02 18:12:38 -05:00
hristoterezov 4d329b510f ref: module.exports -> export for the ES6 modules 2017-06-14 19:37:13 -05:00
Lyubo Marinov 320e67baa1 Fix the initialization of the (external) API
The counterpart of the external API in the Jitsi Meet Web app uses the
search URL param jwt to heuristically detect that the Web app is very
likely embedded (as an iframe) and, consequently, needs to forcefully
enable itself. It was looking at whether there was a JSON Web Token
(JWT) but that logic got broken when the JWT support was rewritten
because the check started happening before the search URL param jwt was
parsed.
2017-05-30 09:38:18 -05:00
damencho 59d4523d72 Disables speaker stats in filmStrip only mode. 2017-05-24 16:10:42 -05:00
damencho 63034e6cba Sends analytics event everytime speaker stats is open. 2017-03-24 10:07:46 -05:00
Leonard Kim 989161159d Modal dialog for displaying dominant speaker times 2017-03-20 12:47:20 -05:00
hristoterezov 5d269ad0aa fix(remotecontrol): Disable the keyboard shortcuts during remote control 2017-01-23 15:29:25 -06:00
Ilya Daynatovich c6c701330a Change order of remote videos when clicking on shortcut 2016-11-03 11:48:48 +02:00
damencho 215d8b1355 Updates show/hide of shortcuts dialog.
Fixes not able to close it with esc button.
2016-11-01 16:48:29 -05:00
damencho 5217bf0bb8 Removes translateString and use translateElement.
Removing translateString forces using data-i18n attributes, to make sure we do not forget to set them. Missing data-i18n attributes is a problem with late loading where we can end up without translation, without text. Missing data-i18n attributes is also problem that strings will not be translated when changing language.
Fixes a bug in invite dialog, where remove password button was shown for non moderators.
2016-10-21 12:11:22 -05:00
yanas 74f31db434 Dialogs re-design, invite and password modifications 2016-10-11 19:08:24 -05:00
Maxim Voloshin 6e90b767ef Removed separate check for SPACE 2016-09-29 16:07:21 +03:00
Maxim Voloshin 33078a868c Spacebar is used to activate Push-To-Talk 2016-09-28 13:03:47 +03:00
yanas 96bbf0419c Adds tooltips 2016-09-16 00:04:19 -05:00
yanas 99bf4bc44d Adds a possibility to add raise hand as a button 2016-09-13 21:21:31 -05:00
yanas 2b492883ca Some code optimisations. 2016-08-30 14:14:52 -05:00
yanas 7858c157c1 Fix shortcut appearing in tooltip of wrong buttons 2016-08-29 23:56:20 -05:00
yanas 9693cba17a Registers filmstrip shortcut from bottom toolbar 2016-08-29 15:47:24 -05:00
yanas 7076ada6f4 Attach keyboard shortcuts to features 2016-08-28 22:59:23 -05:00
damencho 536ffb31e0 Moves loading of analytics in the library. 2016-08-09 15:04:40 -05:00
damencho 6302e42229 Uses analytics from lib-jitsi-meet and adds new events.
Adds more analytics events for shortcuts, recording and shared video. Changes the way we calculate ttfm.
2016-08-04 14:19:09 -05:00
Etienne CHAMPETIER 9a4cee1818 Improve keyboard shortcut handling
Use KeyboardEvent.key if available,
match both lower and upper case letters to keep previous behaviour

KeyboardEvent is a mess.

KeyboardEvent.which gives you, in theory, a decimal representation of the key pressed.
"r" or "R" gives you 82, which is "R", you can look at KeyboardEvent.shiftKey,
but you don't have access to capslock...

Maybe you want to use numbers, but of course NumPad will not give you the same than
"normal" numbers ...

Now if you use something else than letter, for exemple "?",
on a QWERTY keyboard "/" and "?" gives you 191,
on a AZERTY keyboard "," and "?" gives you 188, so we have to stick to letters.

This was for keydown and keyup events, keypressed event return the real char
(lower "a", "/", "?", ...) but it fails in some cases

The only non broken property is KeyboardEvent.key,
but it's only supported since Chrome 51, Opera 38, and not supported by Safari
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key

A good reference & test:
http://unixpapa.com/js/testkey.html
http://unixpapa.com/js/key.html

Signed-off-by: Etienne CHAMPETIER <champetier.etienne@gmail.com>
2016-07-21 16:58:52 +02:00
Дамян Минков f3dc6f15e4 Merge pull request from bgrozev/esc-shortcut
Hide the shortcuts panel when the Escape key is pressed.
2016-06-23 16:24:10 -05:00
Boris Grozev 2cefea3677 Hide the shortcuts panel when the Escape key is pressed. 2016-06-22 13:30:00 -05:00
Boris Grozev 2d2e27b8d0 Implements "raised hand". 2016-06-20 16:58:54 -05:00
Boris Grozev d79971a737 An initial version of a "keyboard shortcuts" help panel. 2016-06-14 20:16:38 -05:00
yanas 30f3da98e5 Fixes thumbnail resize and thumbnails going on a second row. Refactors code around the film strip and resize in general. 2016-02-24 15:05:24 -06:00
Paweł Domas e688a5cb9f Merge pull request from isymchych/video-mute-screensharing
Handle video mute/unmute during screensharing
2016-02-09 11:31:42 -06:00
damencho dbed8c2976 Fixes push to talk. 2016-02-09 10:29:50 -06:00
isymchych 79d5bf6cfa move screensharing into single function, properly handle mute/unmute 2016-02-09 12:52:54 +02:00
yanas e09a2f5bee Fixes all shortcuts. 2016-02-05 12:53:31 -06:00
isymchych 09aa9482c0 do not use members module 2015-12-03 15:11:01 +02:00
isymchych 59f98205c7 use JS API; UI module refactoring 2015-11-30 13:54:54 +02:00
damencho 4b62f7f0ac Adds shortcut to toggle desktop sharing. 2015-11-12 16:57:00 -06:00
Boris Grozev bd58e6c799 Enables the jshint maximum line length check (80 chars) globally, and only overrides it in certain files. 2015-09-10 22:28:16 -05:00
Boris Grozev fd5a739f3c Minor formatting fixes, avoid using a global variable. 2015-07-31 14:25:48 -05:00
Devin Wilson 829d8dab16 Fix CallStats require and initialize API commands and keyboard shortcuts in init method 2015-07-17 09:57:59 -06:00
George Politis 5f48e4cf9d Revert "Updates the license headers."
This reverts commit 93648f361b.
2015-06-18 18:59:41 +02:00
George Politis 93648f361b Updates the license headers. 2015-06-18 16:17:09 +02:00