Commit Graph

48 Commits (8e87c377e8c28edd6a0a291a3768a78fd5483a59)

Author SHA1 Message Date
Noah 8e87c377e8 Apple compatibility mode for WebRTC
* Try a new strategy to get Apple (iPad/iPhone) webcams to connect.
* "Apple compatibility mode" setting: on by default if iPad/iPhone is
  detected or can be opted into in the chat settings Misc tab.
* In Apple compat mode: when you open someone else's webcam, you always
  attach your local video on the WebRTC offer. This would normally make
  your video auto-open on the remote side, but the previous commit
  updates the chat page to ignore offered video if you did not opt-in to
  auto-open your viewer's camera.
* This should satisfy the two-way video call limitation in Safari: the
  iPad always shares its video and gets video from the person they are
  watching.
* If the person they are watching did not auto-open your video: they
  ignore the attached video on your offer and don't display it.
2024-01-11 20:33:57 -08:00
Noah bf59a7b6c9 Auto-mute other users' webcam sound channels 2024-01-11 19:45:32 -08:00
Noah 27380ec558 Status Message overhaul 2023-12-30 14:50:52 -08:00
Noah ebf5b3f47e Fix image click handler and emoji popup 2023-12-22 21:59:23 -08:00
Noah dffd432221 Share images by drag/drop onto page 2023-12-21 17:47:17 -08:00
Noah 449929b8d1 Fix mouse cursor over VIP webcam checkbox on broadcast modal 2023-12-21 14:13:52 -08:00
Noah aa162a5b7a Resync Mutes and Boots on reconnect to server 2023-12-21 14:11:37 -08:00
Noah 139f9ece70 Bugfix in WebRTC video stream handler 2023-12-18 17:59:35 -08:00
Noah f75ad32728 Ban command update, join/leave messages
* The /ban command doesn't require the target user to be online at the
  time of the ban.
* Update the presence messages so they will generally only go to the
  primary (first) public channel, and also to another public channel if
  the user is currently looking at one of the others.
2023-12-16 15:10:48 -08:00
Noah 264b8f2a46 Cleanup debug log 2023-12-10 18:44:18 -08:00
Noah 0e0aac991d Polling API for the chat room 2023-12-10 18:43:18 -08:00
Noah d57d41ea3a Abstract WebSocket client into library 2023-12-10 16:09:00 -08:00
Noah 538347ebc7 Update DM disclaimer at top of page 2023-11-26 20:49:54 -08:00
Noah 30fbba2f55 Bugfix on mutualOpen localStorage setting 2023-11-18 15:44:13 -08:00
Noah deb3bb616b Fix webcam freezing issues with mutualOpen video connections 2023-11-18 15:38:02 -08:00
Noah 8004edb7b8 CSS tweak for video zoom buttons 2023-10-29 14:27:09 -07:00
Noah db819af8af Easy video zoom in/out buttons 2023-10-29 14:15:15 -07:00
Noah 2ac3e8e128 Fix graceful disconnect commands from the server 2023-10-23 19:05:02 -07:00
Noah 95c6c7859f Fix timestamp display 2023-10-22 16:07:58 -07:00
Noah fea1d1c7b9 Prefers non-explicit and option to expressly remember closed videos 2023-10-14 12:24:30 -07:00
Noah bdb5e6359b Various fixes and improvements
* Re-set user's status if they disconnect and reconnect
* Remove "(offline)" text next to ChatServer/ChatClient messages
* Make names and pictures in presence messages clickable to open profile
  cards
2023-10-14 11:01:58 -07:00
Noah 30c5538ce6 Don't auto-open expressly closed videos + other fixes
* If a user expressly closes a webcam (by clicking the 'X' button),
  record this intent so that the webcam will not auto-open in case the
  "auto-open my viewer's camera" happens again. Only clear the expressly
  close intent when the user expressly clicks the video button on the
  Who List to open someone's camera back up.
* Fix some bugs around booting and muting from cameras:
  * If you boot someone off your camera, you can not open THEIR camera
    anymore (similar to muting them)
  * When opening a user who auto-opens your camera back: do not attach
    your local video if you are an Admin and you have previously
    muted/booted that user from your camera.
  * Draw the slash mark over videos that you can not re-open because you
    had booted that user off your camera.
2023-10-10 18:45:00 -07:00
Noah ef79b2aa9b Bugfix with file sending 2023-10-08 11:55:56 -07:00
Noah f18fce63ce Tweaks to profile cards 2023-10-08 11:24:44 -07:00
Noah 7373882abf Profile Modals + Misc Features
* Add profile modal popups and Webhook support to get more detailed user
  info from your website.
* Add "unboot" command, available in the profile modal.
2023-10-07 13:22:41 -07:00
Noah 2810169ce9 Volume sliders, fullscreen video, misc tweaks 2023-10-05 18:59:49 -07:00
Noah 1d29c6da18 Tweak compact display option 2023-09-30 15:18:55 -07:00
Noah b5d0885c23 Compact-style message display options 2023-09-30 14:53:43 -07:00
Noah 15b291826e Make WebSocketSendTimeout configurable 2023-09-30 12:46:45 -07:00
Noah a1b0d2e965 Blocklist improvements + WebSocket timeout tweak 2023-09-30 12:32:09 -07:00
Noah 4b971fcf41 Server side filtering 2023-09-29 19:10:34 -07:00
Noah d651f96678 Bugfix with freeze video interval 2023-09-13 22:31:24 -07:00
Noah b7dc4c8df6 Properly cancel frozen video intervals 2023-09-13 21:51:15 -07:00
Noah 239e80a7cc Fix z-index on message entry emoji menu 2023-09-09 12:12:29 -07:00
Noah ff6e36a142 Emoji picker for text entry box too 2023-09-09 11:38:36 -07:00
Noah 676c183528 Fix find/replace on at mentions 2023-09-08 20:53:32 -07:00
Noah 25bbe84a61 Bugfixes on at-mentions and use images on emoji keyboard 2023-09-08 20:43:17 -07:00
Noah f091747380 At-mention popups for chat 2023-09-08 20:27:00 -07:00
Noah 3b06676343 Better emoji keyboard 2023-09-08 19:37:39 -07:00
Noah cbfbcd768f Chat Setting Menu + Various Tweaks
* In place of the Help and Settings buttons, add a hamburger menu
  dropdown and place the links under there.
* Also in the dropdown is Close All Cameras and Mute All Cameras (if you
  have any cams open; the links are hidden if not)
* Also in the dropdown add a Logout button that just links to a new
  /logout route in order to unload the page and align with some users'
  expectations (not knowing closing out of the chat page was enough to
  log out of the room before)
* Bring back "(offline)" indicators when a user is no longer in the
  room.
2023-09-08 18:46:36 -07:00
Noah 52dd53240e Another minor undeclared variable fix 2023-09-07 21:20:26 -07:00
Noah 5d0515cba6 Minor undeclared variable fix 2023-09-07 21:17:33 -07:00
Noah a2cb32cce2 Fix emoji upvotes and add interactjs 2023-09-07 20:36:47 -07:00
Noah d7226e7f1d Small tweaks 2023-09-07 20:26:06 -07:00
Noah 8853f9882b Store sort order and explicit setting to localStorage 2023-09-07 20:05:52 -07:00
Noah d8cb1c7c11 Refactor more Vue components
Spin out components for:
* MessageBox: draw a chat message in the chat history panel as well as reused
  in the Report Modal.
* WhoListRow: provides a consistent UX for the Who List and Watching tab. On
  the Watching tab, the video button is replaced with the boot from video.

Other changes:
* Move VideoFlag into its own separate ES module.
* Emoji available reactions are moved into MessageBox.
* On WhoListRow: usernames are clickable to also open their profile page.
* On WhoListRow: the Watching tab is now sortable and follows the user's
  sort selection like the Online tab does.
2023-09-07 19:24:26 -07:00
Noah 8906e89a51 Refactor some modals and features into components
Move some chat modals into external components:
* LoginModal
* ExplicitOpenModal
* ReportModal
* The Photo Modal was hoisted into the main index.html page, because it is not
  a Vue component and relied on global onclick handlers and the DOM.

Spin off some external JS modules:
* isAppleWebkit moved to lib/browsers.js
* Local Storage management centralized and moved to lib/LocalStorage.js
2023-09-06 23:03:12 -07:00
Noah e728644a77 Port front-end over to Vue CLI (create-vue)
This commit makes an initial port of the front-end over to a proper Vue
CLI application. It seems to work from surface level testing.

Changes made:

* Rename web/static to public/static to place it into the Vue build path
  * Notes: web/static/js/BareRTC.js and web/templates/chat.html are now
    deprecated
* Rename web/static/js/sounds.js into src/lib/sounds.js making it a
  proper JavaScript module with exports.
* Fill out initial src/App.vue by copying and updating
  web/templates/chat.html and web/static/js/BareRTC.js into this module.
2023-09-06 17:15:02 -07:00