* update message viz in db
* create admin endpoint to update message visibility
* convert UpdateMessageVisibility api to take in an array of IDs to change visibility on instead
* Support requesting filtered or unfiltered chat messages
* Handle UPDATE chat events on front and backend for toggling messages
* Return entire message with UPDATE events
* Remove the UPDATE message type
* Revert "Remove the UPDATE message type"
This reverts commit 3a83df3d492f7ecf2bab65e845aa2b0365d3a7f6.
* update -> visibility update
* completely remove messages when they turn hidden on VISIBILITY-UPDATEs, and insert them if they turn visible
* Explicitly set visibility
* Fix multi-id sql updates
* increate scroll buffer a bit so chat scrolls when new large messages come in
* Add automated test around chat moderation
* Add new chat admin APIs to api spec
* Commit updated API documentation
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Owncast <owncast@owncast.online>
* rename social-icons to prevent adblockers from blocking scripts, fix for #491
* hide viewer count when stream is off, fixes#428
* show a notice in document title of num messages if window is blurred, #426
* display indicator when stream has gone onlnie or offline when window is blurred
* - format messages on didMount instead of didUpdate. will also prevent bad setSTate loops when message is blank;
- convert message.js to functional comp
- prevent extra rerenders in messages and chat with shouldComponentUpdate checks
* revert chat test
* more concise returns;
* Simplify Logo requirement from users.
- Only require 1 logo file, instead of a `small` and `large` one. Just require `logo`.
- Update frontend sso that primary header logo will ALWAYS be owncast logo.
- User's logo will remain in "user content" area.
* Commit updated API documentation
Co-authored-by: Owncast <owncast@owncast.online>
Something like `62 days 12:34:55` might look a bit funny, but I don't a lot of folks will be seeing multiple-day streams anyway. But this works for me, thanks for doing this @bgildson !
changed duration format to also represent days
* only consider short-heights when not smallscreen; hide status bar when small screen, but leave shadow;
* fix max char counting bugs with paste, yet be still be able to use modifier keys even when max chars reached
* rmeove 'chat' button; move into textarea
* use image for emoji picker for sizing consitency
* cleanup unused things
* - totally unecessary emoji picker style improvements
- totally necessary doctype added to emoji picker so it shows up more stable-y on mobile views
* more stable layout positioning for chat panel without hacky margins, so that the bottom of the message list will always be on top of the form input, and not behind it at any point.
* hide header on touch screens when screns are small and screen height is short (possibly when keyboard is up), so that there's more visibliity to see messages. this only works on chrome, not ios safari right now, due to the position: fixed of things.
* move char counting to keyup instead
* address message text horiz overflow (#157)
* dont jumpToBottom if user has scrolled about 200px from the bottom (#101)
* scroll to bottom on resize too
* cleanup
* revert test bool
* typo
* re-readjust short-wide case again
* - add focus to input field after emoji is selected, put cursor at end
- instead of smooth scrolling to bottom, just jump there.
- set up standalone static page and message related components
- start separating out css into smaller more manageable files
- start separating out utils into smaller modular files
- renaming some files for consistency
* objectify app away from window. wip
* fix messaging obj binding; put logo behind video; fix /null issue with temp logo image
* first pass at js refactor
* remove unused files that had been consolidated during refactor
* set up vue before getting config
* add a few comments
* dont use big arrow function, just bind, for safari
* add airplay after instantiating video; check if input exists before disabling it;:
* only set poster on pause during playback, and onEnded; take out sample videoJS tech options
* disable chat after 5mins after going offline
* move 'online' class to video container as it conflicts with dynamically change classnames from non-vue sources
* disable chat based on lastdisconnecttime
* fix typo; do offline mode onEnded instead of status offline
* move offline ui display things to offline mode function; move poster setting on pause to main app to keep player obj cleaner; use opacity to hide video element on offline as sometimes control bars may still linger with vis:hidden
* fixes'
* don't autoplay. just show play button when stream is online so that it's easier to start playign without looking for the unmute button
* clean up console logs
Co-authored-by: Gabe Kangas <gabek@real-ity.com>