1
0
mirror of https://github.com/dani/vroom.git synced 2024-06-02 13:21:40 +02:00
Commit Graph

337 Commits

Author SHA1 Message Date
Daniel Berteaud
061e7ba4d4 Remove some dead code 2014-06-06 22:44:56 +02:00
Daniel Berteaud
a02ac71159 Use warn class to notify that the room isn't persistent 2014-06-06 13:53:10 +02:00
Daniel Berteaud
1bc08f124a Only notify you are owner if it's the case
Check that we're really owner now before notifying
2014-06-06 09:29:01 +02:00
Daniel Berteaud
e7d4e34a49 Another typo which prevented group actions menu to be displayed
When another owner promote you
2014-06-06 09:26:28 +02:00
Daniel Berteaud
29cc7cddd1 Fix typo which made an undefined variable 2014-06-06 09:22:26 +02:00
Daniel Berteaud
1f2b112b3c Notify others if we don't have a webcam
In which case, add a grey glyphicon in the preview
Also disable suspend buttons
2014-06-06 09:16:32 +02:00
Daniel Berteaud
4c53aa5117 Fix chat buttons height on Firefox
Also adapt those buttons height to the size of the textarea
2014-06-05 22:42:53 +02:00
Daniel Berteaud
5c7480a8f0 Align notif to bottom center for room creation error 2014-06-05 13:47:53 +02:00
Daniel Berteaud
e56dbad9e6 Add the error class only on the input zone
WHen you type an invalid room name
2014-06-05 13:46:02 +02:00
Daniel Berteaud
146b126bc7 Put time and name in bold in the chat
It's easier to distinguish the text like this
2014-06-05 10:03:42 +02:00
Daniel Berteaud
1fe47a461f Disable screen sharing buton on android
Fix #59
2014-06-04 22:37:09 +02:00
Daniel Berteaud
94e57a3bee Localize invalid room name error message 2014-06-04 16:33:53 +02:00
Daniel Berteaud
12b7f32e14 Add a "promote to owner" button
Fix #58
2014-06-04 16:00:29 +02:00
Daniel Berteaud
0686bed1e8 Do not try to submit if we already know the name is invalid 2014-06-03 22:34:23 +02:00
Daniel Berteaud
5f01424bb5 Update room creation
Uses JS now to submit so it can fail gracefuly on error, and warn if room already eists, instead of redirecting to the ugly error page
Fix #52
2014-06-03 22:30:19 +02:00
Daniel Berteaud
acf855cbfc Remove the active class on the help button
When the modal dialog is closed
2014-06-03 19:32:06 +02:00
Daniel Berteaud
2406cbeecd Hide threePeersEl when a peer leaves a room
If there's less than 3 peers
2014-06-03 12:07:19 +02:00
Daniel Berteaud
b228147906 Hide group actions until there's at least 2 other peers
They do not make sens when you're two or less in the room
2014-06-03 12:03:45 +02:00
Daniel Berteaud
767e59a9f3 Don't check if MoH is needed when the video being removed is our local screen 2014-06-03 11:18:47 +02:00
Daniel Berteaud
20d1bf695f Add grouped actions
To mute/unmute/suspend/resume everyone in one click
Fix #54
2014-06-02 22:15:50 +02:00
Daniel Berteaud
547d5365a1 Only enable sound detection if supported
Also use a lower threshold. -80 should be enough
And should Fix #55
2014-06-02 20:55:39 +02:00
Daniel Berteaud
d23e40e89d Don't add moh notif if it just resumed 2014-06-02 12:08:27 +02:00
Daniel Berteaud
581889f559 Typo occured -> occurred 2014-06-02 10:40:51 +02:00
Daniel Berteaud
7c90b688f4 Default MoH to pause
Fix #51
2014-06-02 10:24:14 +02:00
Daniel Berteaud
4bcd816d77 Animation on dropdown menus
Fix #48
2014-05-31 14:34:31 +02:00
Daniel Berteaud
d780a63c41 Reduce volume of MoH
Fix #49
2014-05-31 14:27:01 +02:00
Daniel Berteaud
094bcbae2e Mute preview instead of pausing the video
FF doesn't support pausing one video with another connected to the same stream still playing
So, be consistent between FF and webkit, and just mute the preview
Also lower the volume of the previews (70%) and bump the one of the main video
Fix #47 and also fix #50
2014-05-31 14:20:27 +02:00
Daniel Berteaud
c840438feb Only play previews which are paused 2014-05-30 19:00:23 +02:00
Daniel Berteaud
05c0851d31 Don't pause preview on small screens, as there's no main video div 2014-05-30 17:08:16 +02:00
Daniel Berteaud
bf6f1de4f3 Add a timer in the navbar 2014-05-30 16:41:23 +02:00
Daniel Berteaud
2d36ad921b Pause a preview when going on the main div
This reduce the CPU pressure, as only one stream needs to be decoded
Also prevent the main vid to double its audio level (which was not a bad thing, but was just beacause this same track was decoded and played twice, it'd be better to play with the volume of only one track)
Doesn't work well on FF for now (because FF doesn't like switching main div, it often do not resume the video, or after several seconds, will need to investigate)
2014-05-30 13:59:51 +02:00
Daniel Berteaud
5c5c17ebe2 Don't dup video el ID 2014-05-30 13:19:49 +02:00
Daniel Berteaud
f7c22254b3 Use success class for askForName setting 2014-05-30 13:08:15 +02:00
Daniel Berteaud
3c19a340a2 Don't display peer ID if the peer has no displayName 2014-05-30 12:36:38 +02:00
Daniel Berteaud
60f0cb53b9 Update fr and en locales 2014-05-29 23:30:42 +02:00
Daniel Berteaud
94f0be24f8 Adapt the client side JS to the new modal dialog for join password 2014-05-29 22:55:20 +02:00
Daniel Berteaud
4e5f6b7ffa Adapt JS part to the new modal dialog for persistent rooms 2014-05-29 12:36:11 +02:00
Daniel Berteaud
f95e2730bd Change ping responce notif class to info
And disable autoHide
2014-05-28 12:42:06 +02:00
Daniel Berteaud
806ec1d443 Use a much lower thrshold to detect no sound
the previous -40 triggered far too much false positives
2014-05-26 16:01:48 +02:00
Daniel Berteaud
513fd90d47 Don't display cryptic peer ID
When the participant hasn't set a display name
2014-05-25 15:49:07 +02:00
Daniel Berteaud
07276cbd86 Slightly delay MoH check
So it doesn't start/stop when you join a room with participants
2014-05-25 15:23:19 +02:00
Daniel Berteaud
d4dcea1b58 Shorter animations for main video transitions 2014-05-25 15:20:33 +02:00
Daniel Berteaud
8f582b0e57 More comments + few cleanups 2014-05-25 00:14:10 +02:00
Daniel Berteaud
f44dac9b8e Remove context menu on the main video 2014-05-24 22:40:47 +02:00
Daniel Berteaud
7ca297267f Also correctly fade out the main video when we unshare our screen 2014-05-24 16:38:39 +02:00
Daniel Berteaud
811f61fab2 Fix main video removal when the peer share its screen 2014-05-24 16:33:59 +02:00
Daniel Berteaud
950a84fbbe Some code refactoring
Reduce duplicate code
Also add some more checks that event received from the signaling channel are sent by owners (ignore them if it's not the case)
2014-05-24 14:06:31 +02:00
Daniel Berteaud
36d202585c Don't loop to check if MoH is needed
Instead, start it once when you join the room, and check each time a peer leaves if it must be re-enabled
2014-05-24 13:28:07 +02:00
Daniel Berteaud
9766ea688a Do not autoplay moh if it was muted 2014-05-24 00:42:05 +02:00
Daniel Berteaud
32790721f4 Fix going fullScreen when double clicking the main video 2014-05-23 23:06:30 +02:00
Daniel Berteaud
2cf278e25b Fix handling our own screen preview 2014-05-23 22:55:42 +02:00
Daniel Berteaud
d6f70c8594 Small transitions for previews
Also fix main video removal if it's a peer's screen
2014-05-23 22:49:21 +02:00
Daniel Berteaud
1913a24a44 Fix video remove 2014-05-23 20:32:12 +02:00
Daniel Berteaud
7fd7d863ed Add transitions for the main video
And also remove some duplicated code
2014-05-23 20:23:37 +02:00
Daniel Berteaud
4ee0d76444 Add MoH when you are alone in the room
You can pause/resume music
Stops when someone joins, and resume when the last peer leaves
Also prints a message
Fix #42
2014-05-23 19:16:45 +02:00
Daniel Berteaud
f4ab4626e9 Hide the unread counter until needed 2014-05-23 14:01:05 +02:00
Daniel Berteaud
20d03ec012 Add a counter of unread message for the text chat 2014-05-23 13:46:16 +02:00
Daniel Berteaud
319dd9a03e Wait a bit before enabling owner's action button
As all the channels have to be ready first
2014-05-23 13:05:46 +02:00
Daniel Berteaud
0ac90f012c Warning if webcam access is refused
Fix #41
2014-05-23 12:48:45 +02:00
Daniel Berteaud
a6566704ff Fix owner's action mess when a peer shares its screen 2014-05-22 18:28:14 +02:00
Daniel Berteaud
652682b00a Correctly escape chars in email addresses
Without this, some email address with strange chars were not removable
2014-05-22 16:07:00 +02:00
Daniel Berteaud
bd0535c940 Suspend button when used to prevent abuse and server overload 2014-05-22 14:18:52 +02:00
Daniel Berteaud
8286e77155 Chage owner's action buttons depending on the actual status 2014-05-21 19:34:16 +02:00
Daniel Berteaud
4522add764 Only enable the add email button when input looks like an email address 2014-05-21 18:50:21 +02:00
Daniel Berteaud
dac515d5f7 Enable chat when the displayName is set before joining the room 2014-05-21 18:43:41 +02:00
Daniel Berteaud
dde00417ba Remove warning in vroom.js 2014-05-21 18:22:09 +02:00
Daniel Berteaud
b3a613ddc7 Change the way notifications are triggered
And send the name of the participant in the notification email (only if name is asked before you can join)
2014-05-21 18:08:43 +02:00
Daniel Berteaud
d56d875a7f Differ no sound detection until we effectivly joined the room 2014-05-21 17:45:15 +02:00
Daniel Berteaud
5cda9f2bea Add client side support to get display name on the new modale dialog 2014-05-21 17:39:50 +02:00
Daniel Berteaud
42b9dc8a1c Client side support for setting and retrieving ask_for_name status 2014-05-21 14:08:00 +02:00
Daniel Berteaud
854d7369e7 Remove now unused JS code and CSS rules 2014-05-20 19:23:10 +02:00
Daniel Berteaud
a4d2a0769a Move a few functions to the global scope
As they can be used outside of a room
2014-05-20 13:39:56 +02:00
Daniel Berteaud
fa2545b2fa Add a title on the remove email button 2014-05-20 11:41:12 +02:00
Daniel Berteaud
cdece954cf Split huge line 2014-05-20 11:21:03 +02:00
Daniel Berteaud
1effe36d96 Sync email notifications between owners of the room 2014-05-20 09:51:16 +02:00
Daniel Berteaud
109ce1c9ba Rename updateRole to getRoomInfo
As it's now used for much more than getting our own role
2014-05-20 09:35:46 +02:00
Daniel Berteaud
f6ddfd119c Add basic interface and frontend support for email notifications
Not used yet, but you can add and remove emails
2014-05-20 09:34:28 +02:00
Daniel Berteaud
1b858a8912 Hide auth menu if the owner password is unset 2014-05-19 11:20:36 +02:00
Daniel Berteaud
0385a5b137 Add rootUrl to sound paths 2014-05-19 11:02:42 +02:00
Daniel Berteaud
8603c0aee9 Cleanup in unmuting handling 2014-05-19 10:53:05 +02:00
Daniel Berteaud
8eacbbad85 Use single quotes in jquery selectors 2014-05-19 10:50:48 +02:00
Daniel Berteaud
7879fab16e Remove the ownerActions div from other owner's preview
As those feature are disabled anyway
2014-05-18 23:13:38 +02:00
Daniel Berteaud
5ae54e003e Update comment 2014-05-18 23:11:51 +02:00
Daniel Berteaud
0d186fefd0 Allow unmute/resume webcam in owner's actions 2014-05-18 22:44:44 +02:00
Daniel Berteaud
4f4bc8397c Record peers mute/pause status 2014-05-18 22:09:20 +02:00
Daniel Berteaud
24bee4d6f8 Prevent muting/suspending/kicking other owners
Also print a few notifications
2014-05-18 22:04:47 +02:00
Daniel Berteaud
7da38b5d2e Fix peer stream end
Terminate connection with the kicked peer, not the owner kicking it ;-)
2014-05-18 20:03:42 +02:00
Daniel Berteaud
eb331ad0ad Add titles to owner actions buttons 2014-05-18 19:38:40 +02:00
Daniel Berteaud
51945c1c51 Add mute/pause/kick action for room owners
Fix #24
2014-05-18 19:22:44 +02:00
Daniel Berteaud
9062fd568c Notify and explain why the display name is truncated 2014-05-16 18:20:02 +02:00
Daniel Berteaud
a7b711acae Limit displayName to 50 chars
Should fix #32
2014-05-16 18:09:26 +02:00
Daniel Berteaud
1ec24bb93b Exchange peer status and verify it on the frontend
Also add a symbol on owner's preview
Should Fix #30 and #31
2014-05-16 17:57:33 +02:00
Daniel Berteaud
f77d2c296d Record our local ID
Might be needed
2014-05-15 18:28:53 +02:00
Daniel Berteaud
d05925722b Fix lock button status sync
When there're several owners
2014-05-15 17:18:13 +02:00
Daniel Berteaud
83cafa7536 Warn if no sound has been detected
Fix #29
2014-05-15 14:02:37 +02:00
Daniel Berteaud
0fddb7e790 Don't flush custom message on invitation
So you can send the same message to several people easily
2014-05-15 10:42:57 +02:00
Daniel Berteaud
96d8a0eaa6 Fix error handling for lock/unlock 2014-05-14 21:51:35 +02:00
Daniel Berteaud
43f3fba40b Revert "Remove room lock, not that usefull now that you can use a password"
This reverts commit 25f2602694.

Locking can still be usefull to prevent participant to join, event is they know the pass

Conflicts:
	public/js/vroom.js
2014-05-14 20:44:52 +02:00
Daniel Berteaud
2800c35dca Cleanup error handling in ajax requests 2014-05-14 13:52:36 +02:00
Daniel Berteaud
fdff058521 Add a custom message field in email invitations
Can be used to send the join password, or anything else
2014-05-14 13:42:40 +02:00
Daniel Berteaud
8ab49c3b9e Dont call maxHeight() before it's defined 2014-05-13 23:27:10 +02:00
Daniel Berteaud
769e288796 Revamp help page 2014-05-13 22:11:56 +02:00
Daniel Berteaud
4fb717b6be Use form instead of simple divs for paswords
So hitting enter also submit it
2014-05-13 21:04:45 +02:00
Daniel Berteaud
697b143cef Add an auth form in the join template
Lets you authenticate as the room owner even if there's no join pasword
2014-05-13 20:26:09 +02:00
Daniel Berteaud
a5837dac98 Implement owner password auth
Owner passwords are salt+sha256 hashed (unlike join password) as they do not need cleartext access
For now, you also have to set a join password if you want to be able to auth as an owner
Need to implement a password popup if there's an owner password but no join password
2014-05-13 19:22:47 +02:00
Daniel Berteaud
0226271045 Move getRole to a function
Will probably be used elsewhere soon
2014-05-13 17:34:11 +02:00
Daniel Berteaud
89b7e7ff0f Small animation when owner element are enabled
Makes a nicer experience
2014-05-13 14:33:36 +02:00
Daniel Berteaud
41b5f5754b Hide conf menu by default
And display it only if we are the owner of the room
2014-05-13 14:26:15 +02:00
Daniel Berteaud
76468a8958 Only allow owner (creator) to set a passord 2014-05-12 22:57:15 +02:00
Daniel Berteaud
25f2602694 Remove room lock, not that usefull now that you can use a password 2014-05-12 22:25:36 +02:00
Daniel Berteaud
75709997d9 Notify other peers when a password is set 2014-05-12 22:10:06 +02:00
Daniel Berteaud
6b4ced06bb Implement join password setting
But it's not used yet :-)
2014-05-11 22:29:40 +02:00
Daniel Berteaud
51f4b27c24 Prevent closing other dropdown menus 2014-05-11 13:04:02 +02:00
Daniel Berteaud
f1012ad480 Various cleanups on the index page 2014-05-09 18:45:10 +02:00
Daniel Berteaud
10db137f6c Rework the invitation menu
Fix #17
2014-05-09 16:49:00 +02:00
Daniel Berteaud
4815e4cb83 Define rootUrl in js_include
So /localize is working not matter which alias we use, even on the front page
2014-05-07 12:48:50 +02:00
Daniel Berteaud
1e2e524900 Store raw displayName, only escape when used
Prevents double escaping when importing chat history from another peer.
Also validate color and time when we receive history
2014-05-07 10:10:47 +02:00
Daniel Berteaud
98fd6cd32c Coding style updates and comments cleanup 2014-05-06 22:34:08 +02:00
Daniel Berteaud
610ff99f2c Don't update our local volume bar when muted
SimpleWebRTC still emit local volume change event when muted
2014-05-06 20:28:48 +02:00
Daniel Berteaud
b381f031da Fix handling of volume change dataChannel messages
Which are not sent in the vroom dataChannel
2014-05-06 20:20:35 +02:00
Daniel Berteaud
d62c0dc6ec Sync chat history between peers
Not completly full proof, but seems to work reasonably well. If we do not have received chatHistory yet, ask for it each time a peer's video is added until we get it. Messages are escaped and formatting is preserved, including peer's color. One problem though: if you refresh the page, you will receive the history, but your own old message will appear on the left, as if it was another who send them. This is because there's no way to recognize it was you (previous session...)
Should fix #4
2014-05-06 19:24:43 +02:00
Daniel Berteaud
9dd070b02a Escape text chat in newChatMessage() 2014-05-06 18:39:57 +02:00
Daniel Berteaud
ae306ba643 Use lighter background colors
text message was hard to read for a lot of colors because they were too dark
2014-05-05 22:13:16 +02:00
Daniel Berteaud
e117d73b85 Fix save history filename 2014-05-04 15:25:01 +02:00
Daniel Berteaud
2b7e0e65cc Implement tchat history save as local HTML file
Fix #5
2014-05-04 14:32:48 +02:00
Daniel Berteaud
77c5552d84 Set thumbnail height
So they are always equals, not matter which one is biggest, the others will adapt
2014-05-04 01:16:51 +02:00
Daniel Berteaud
20734ca705 Alert if browser is not supported
Add a modal dialog uf the browser doesn't support WebRTC or dataChannels
2014-05-02 23:04:54 +02:00
Daniel Berteaud
40dab8de75 Remove debug statement on screen sharing error 2014-05-02 09:40:28 +02:00
Daniel Berteaud
536143bdf0 Update screen sharing
Since Chrome 34, a new API for screen sharing is available (the previous one using the flag will probably be deprecated soon)
This commit adds:
- Source of a simple Chrome extension to use this new API (which is a perfect copy of the sample extension given by &yet here: https://github.com/HenrikJoreteg/getScreenMedia
- Adapt help page
- New modal dialog to prompt user to install the extension from Google Web Store
- Better error messages if you can't share your screen

Should fix #7
2014-05-01 21:35:07 +02:00
Daniel Berteaud
4ced1dd4d9 Remove debug line 2014-04-29 17:58:57 +02:00
Daniel Berteaud
2ab632a582 Unicast name and color
When a new peer joins, send him our name and color, but don't broadcast it, other peers should already have this
2014-04-29 17:57:58 +02:00
Daniel Berteaud
28b897e2b9 Translate missing string
"one of the peers" was hardcoded instead of being localized
2014-04-19 19:23:27 +02:00
Daniel Berteaud
19a6511b35 Update code comment
mute/paused are now handled directly by SimpleWebRTC
2014-04-08 11:37:21 +02:00
Daniel Berteaud
85a86808e0 add maxHeight function 2014-04-05 20:04:05 +02:00
Daniel Berteaud
28f5dab18f Add fullScreen function 2014-04-05 19:54:46 +02:00
Daniel Berteaud
80a7cb61cf Reduce wasted space
Should fix #3 for small devices
Hide the mainVideo area on small devices, instead display only bigger previews. Also switch to 2 cols for preview on large displays, not medium ones
2014-04-04 17:52:41 +02:00
Daniel Berteaud
cef5791a89 Initial import 2014-04-03 17:42:54 +02:00