Commit graph

151 commits

Author SHA1 Message Date
gingervitis
01f16aeddf
Simplify Logo requirement from users. (#373)
* 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>
2020-11-17 15:12:54 -08:00
bgildson
bcf7332675 changed duration format to also represent days 2020-10-29 08:46:54 -03:00
Gabe Kangas
2839a5e236
Custom thumbnail poster component (#281)
* Custom thumbnail poster component

* add opacity transition to thumbnail img

* fix some videoonly styles

* move video styles to video.css

* make component out of image layers; put inline styles into css

* cleanup

* update videoonly ; don't render poster if video player, remove dom modification in player

* revert interval

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-10-22 14:14:44 -07:00
Gabe Kangas
30c9bbe966 Size logo properly with the user image 2020-10-16 13:53:43 -07:00
gingervitis
57f2e4b567
Merge pull request #241 from jeyemwey/jv-119-remove-avatars
Remove Chat Avatars
Thanks for the cleanup! Looks great.
2020-10-14 11:16:58 -07:00
Gabe Kangas
64a85e68aa
Update extra page content API (#240)
* Mark change stream key api as pre-release

* Add API for changing extra page content. Renanme usercontent -> pagecontent. closes #236
2020-10-14 09:38:48 -07:00
Jannik Volkland
146e6d342c Remove avatars from frontend 2020-10-14 13:33:55 +02:00
Gabe Kangas
d7c3991b59
Render and sanitize chat messages server-side. (#237)
* Render and sanitize chat messages server-side. Closes #235

* Render content.md server-side and return it in the client config

* Remove showdown from web project

* Update api spec

* Move example user content file
2020-10-13 16:45:52 -07:00
Gabe Kangas
ce14e0d0a7 Remove additional viewer counts from status bar. Closes #155 2020-10-08 16:39:11 -07:00
Jannik Volkland
d4b800c9bb Merge branch 'fix-issue-202' 2020-10-07 08:46:09 +02:00
Jannik Volkland
813884ef21 fix: Use Kebab-Case, and resolve Merge Conflict 2020-10-07 08:42:46 +02:00
Gabe Kangas
5d530ca5a6 Missing showdown module import in app 2020-10-05 00:05:35 -07:00
Gabe Kangas
27a4c8c895
Move all remote dependencies to be local (#220)
* Experiment with javascript bundling

* Experiment with snowpack. Making progress

* Success!  Uses local js modules and assets and no cdns

* Missing local css
2020-10-04 18:43:31 -07:00
Jannik
4c02b6eea1 Move socialIconsList to its own component 2020-10-04 20:48:44 +02:00
Jannik
d6dadcabf8 Fix: Optional socialHandles and tags 2020-10-02 21:28:35 +02:00
Ginger Wong
01f956d043 detect portrait mode on mobile so it doesnt go into two col layout when keyboard is up, (#178) 2020-09-22 17:09:55 -07:00
gingervitis
661eedc03a
chat fixes v3 or 5 or 123 (#168)
* 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.
2020-09-21 20:11:09 -07:00
Gabe Kangas
257847fdf8 Fix chat visibility toggle 2020-09-20 19:27:26 -07:00
Ginger Wong
29ebe80ad0 remove test cruft so chat panel visibility is remembered 2020-09-20 15:49:52 -07:00
Gabe Kangas
6a3f634ef5
Misc web updates (#147)
* Try and clarify max viewer count string

* Shrink title font size on small screens to fit username

* Hide stream info on small screens to buy some space

* Hide emoji button on small screens until we can fix it. For #140

* Make jumping to bottom be a part of the render pass to fix race condition. For #140

* Remove About in info view. We can add it back. Just playing with that since it was missing a space anyway

* address some own mr comments

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-09-13 22:02:04 -07:00
Gabe Kangas
0dcd92e9cd Fix chat not coming back after server comes back. Closes #136 2020-09-12 18:46:30 -07:00
Gabe Kangas
7b11c65187 Fix missing live duration string. Closes #144 2020-09-10 20:57:51 -07:00
Gabe Kangas
2019d4a647 Remove error logged when extra info does not exist 2020-09-01 19:15:20 -07:00
Gabe Kangas
2c1caa1238 Show chat by default. Closes #137 2020-09-01 19:10:46 -07:00
Ginger Wong
09f6b62398 - show offline state when stream ends and video is not playing (#130)
- style fixes
2020-08-29 17:35:19 -07:00
Ginger Wong
0e6edf9ac0 fix max viewers display 2020-08-29 00:42:04 -07:00
Ginger Wong
b549b21257 add utils to help cleanup whitespaces from contenteditable output; removed forced chat enabling 2020-08-26 11:56:01 -07:00
Ginger Wong
6457015406 cleanup 2020-08-24 12:34:36 -07:00
Ginger Wong
2a02b75e42 fix responsive styles 2020-08-24 03:30:42 -07:00
Ginger Wong
22e16b67d7 start a video-only page; fix some styles 2020-08-23 21:23:16 -07:00
Ginger Wong
63d7671fed progress wip. separated out chat input component and its respective methods. 2020-08-14 04:19:19 -07:00
Gabe Kangas
68ff9ff270
Merge of emoji + autolink + embed + etc (#108)
* Add an emoji picker to chat

* Update to the custom emoji picker and add first pass at using custom emoji in text box

* Add custom emoji endpoint and use it in the app

* Position the emoji picker

* Handle events from the text input

* pair down the number of party parrots

* Size emoji in chat and input

* Add new custom emoji

* Add OMQ stickers as custom emoji

* Show custom category for emoji picker by default

* update omq emojis

* Document basic supported markdown syntax. Closes #95

* Websocket refactor: Pull it out of the UI and support callbacks (#104)

* Websocket refactor: Pull it out of the UI and support listeners

* Changes required for Safari to be happy with modules

* Move to explicit ad-hoc callback registration

* Add an emoji picker to chat

* Update to the custom emoji picker and add first pass at using custom emoji in text box

* Handle events from the text input

* Rebuild autolinking + embed handling for #93

* Re-enable disabling chat

* Document basic supported markdown syntax. Closes #95

* Document basic supported markdown syntax. Closes #95

* Add an emoji picker to chat

* Merge emoji and embeds.

* Merge emoji + embed branches. Rework autolink +embeds. WIP for username
highlighting for #100

* More updates to chat text formatting/embedding/linking

* Fix username autocomplete to work with div instead of form elements

* Post-rebase fixes + tweaks

* Disable text input by setting contentEditable = false

* Remove test that hardcodes pointing to public test server

* Fix re-enable chat with the contentEditable input div

* Style and fix the fake placeholder text in the input div

* Missing file.  Were did it go?

* Set a height for instagram embeds

* Cleanup

Co-authored-by: Ginger Wong <omqmail@gmail.com>
2020-08-12 21:56:41 -07:00
Gabe Kangas
df04af0f38
Websocket refactor: Pull it out of the UI and support callbacks (#104)
* Websocket refactor: Pull it out of the UI and support listeners

* Changes required for Safari to be happy with modules

* Move to explicit ad-hoc callback registration
2020-08-06 10:55:33 -07:00
Gabe Kangas
d9509f5606
Chat updates (#92)
* Send PONG responses to PINGs

* Split out client IDs for viewer counts vs. websocket IDs

* WIP username change event

* Display username changes

* Revert commented out code

* Add support for building from the current branch

* Fix PONG

* Make username changes have a unique ID

* Add a version param to js to cachebust
2020-07-28 21:30:03 -07:00
Gabe Kangas
cb04826173 Fix the flickering status text. Closes #88 2020-07-27 23:04:35 -07:00
Gabe Kangas
5ce9a4928c Fix timeout buffer after going offline. Closes #84 2020-07-22 23:54:36 -07:00
Gabe Kangas
2ae227360a Hide viewer stats when in offline mode. Closes #66 2020-07-19 17:29:16 -07:00
Ginger Wong
b66a80f11e add comments; use promise for fetching chat history for consistency 2020-07-19 16:11:29 -07:00
Ginger Wong
3f594abac8 update offline flow an stream status timer flow 2020-07-19 16:06:55 -07:00
Ginger Wong
a3613612eb Merge branch 'master' into gek/current-stream-duration 2020-07-19 15:17:03 -07:00
Gabe Kangas
c0e4f647a2 Show chat by default. Closes #72. Show placeholder text that no registration is needed. Closes #73 2020-07-19 15:15:39 -07:00
Ginger Wong
72ccc70a56 Merge branch 'master' into 0718-refactor-touchscreenlayout 2020-07-19 15:13:18 -07:00
Gabe Kangas
2855027f22
Use endpoint for chat history instead of websocket (#67)
* Change placeholder when chat is disabled

* Use the /chat endpoint for bulk chat history population instead of websocket. For #47

* Force LiveUI/seek bar during live to show. Closes #11.

* Change pulling chat history into app.js

* Force new messages to have visability = true
2020-07-18 17:27:04 -07:00
Ginger Wong
e12de3215f cleanup 2020-07-18 17:17:10 -07:00
Ginger Wong
0af67c0cdc simplified layout updates based on only media queries 2020-07-18 17:15:52 -07:00
Gabe Kangas
8ba0b6d7ce Show in the UI how long the user has been streaming for. Closes #59 2020-07-18 15:08:43 -07:00
gingervitis
42b0b05d78
App Javascript refactor (#56)
* 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>
2020-07-16 12:17:05 -07:00
Ginger Wong
34b3806806 low hanging cleanup for extrauser content 2020-07-05 01:29:48 -07:00
Ginger Wong
9bd1df8530 make consts; clean up get status 2020-07-05 01:08:22 -07:00
Ginger Wong
96258fc0f3 update document title 2020-07-03 18:10:57 -07:00
Gabe Kangas
1f51ef9668 Add version string to config endpoint 2020-06-30 17:49:17 -07:00
Ginger Wong
6803f7e7e8 header adjustments for small screens; adjust to new config structure; 2020-06-30 02:36:10 -07:00
Ginger Wong
b228d3a4e5 componentize user info 2020-06-28 17:15:53 -07:00
Ginger Wong
6c7af9ffae clean up footer things 2020-06-28 15:08:08 -07:00
Bradley Hilton
fe96739f60
Fix a memory leak with the chat aspect. (#23)
Essentially, the for loop wasn't being returned out
of and that caused the read listener to never be
let up and released to the gc
2020-06-22 23:52:50 -07:00
Ginger Wong
1a44a4bd2f user content general layout 2020-06-21 01:31:08 -07:00
Ginger Wong
19dee67f2a set up components and icons for optional creator's social pages; add airplay icon 2020-06-20 23:41:13 -07:00
Gabe Kangas
886485255a Fix errors on Firefox 2020-06-18 20:46:07 -07:00
Ginger Wong
b39824b8c3 updates towards more customization 2020-06-18 10:24:54 -07:00
Ginger Wong
d15080db11 Merge branch 'master' of https://github.com/gabek/owncast 2020-06-18 00:12:39 -07:00
Ginger Wong
cf27b157e6 - fix chrome mobile form focus bug by specifying class. when form focuses media query widths change and may think portrait is in landcape and therefore hide the form.
- cleanup now unused methods
- jump to bottom from vue prop listener
2020-06-18 00:06:10 -07:00
Gabe Kangas
b0a73a99b9 Add ability to populate the content area in the page with a markdown file 2020-06-17 20:56:24 -07:00
Gabe Kangas
594e1c774a Add ability to populate the content area in the page with a markdown file 2020-06-17 20:20:28 -07:00
Gabe Kangas
06ec265038 Use on Ready event instead of player setup hook 2020-06-17 17:16:34 -07:00
Gabe Kangas
431c1a54e7 Split out status polling into own file 2020-06-17 16:35:47 -07:00
Gabe Kangas
b2f74adc02 Move player js to player.js. Update offline video clip. 2020-06-17 16:25:27 -07:00
Gabe Kangas
b835d7d56f Catch automated play() promise error 2020-06-16 21:48:37 -07:00
Gabe Kangas
b35059f17b Wait until player is setup before we start polling for status 2020-06-16 21:08:31 -07:00
Gabe Kangas
c6e4ea8349 Use client-side config files to config things 2020-06-16 18:58:03 -07:00
Gabe Kangas
ca4932e2b4 Make the entire web page wrapped in a vue object 2020-06-16 18:36:11 -07:00
Ginger Wong
fd570a6f75 integrate desktop styles. clean up later 2020-06-16 02:09:29 -07:00
Ginger Wong
97c71771df markup and styles for simple mobile only 2020-06-15 23:32:26 -07:00
Ginger Wong
903fdc33ae Merge branch 'master' of https://github.com/gabek/owncast 2020-06-15 17:40:18 -07:00
Ginger Wong
7aaf1e6102 good nuff hacks for nowz 2020-06-15 17:40:12 -07:00
Gabe Kangas
a90d98ff1b Auto-restart playback when the stream comes back online 2020-06-15 17:23:44 -07:00
Ginger Wong
59ab5e9e98 add a delay before recalculating vh 😭 2020-06-15 15:55:57 -07:00
Ginger Wong
4497cc86c2 mobile hackery 2020-06-15 15:45:55 -07:00
Ginger Wong
c16cd50dbb mobile style hacks 2020-06-14 21:14:42 -07:00
Gabe Kangas
16e8ab4edc Re-enable timed status check 2020-06-14 17:15:19 -07:00
Gabe Kangas
a9662e7c1e Support keepalive PING messages on the socket 2020-06-14 16:53:25 -07:00
Gabe Kangas
a3c3276a48 Start of a web UI config 2020-06-14 15:18:43 -07:00
Ginger Wong
50a59ef3c0 more clean up and fixins 2020-06-14 01:10:26 -07:00
Ginger Wong
3ef20c5516 Merge branch 'web-layout' of https://github.com/gabek/owncast into web-layout 2020-06-14 00:24:55 -07:00
Ginger Wong
0fa453044f fix chat; get rid of jquery 2020-06-14 00:24:26 -07:00
Ginger Wong
2aaedd99b5 set up localstorage-able items 2020-06-13 23:38:09 -07:00
Gabe Kangas
ce41b6ad40 Show max viewers 2020-06-13 22:45:22 -07:00
Gabe Kangas
4553ae628b Move to videojs and point to remote video on goth.land 2020-06-13 22:36:12 -07:00
Ginger Wong
eb223ed905 progress. implement chat toggling 2020-06-13 20:15:31 -07:00
Ginger Wong
9b2e4f40c9 fix msg container 2020-06-11 01:24:05 -07:00
Ginger Wong
69ba10a898 use app file from web-layout 2020-06-09 14:15:00 -07:00
Ginger Wong
5c46191cbf Merge branch 'web-layout' into web-layout-gw 2020-06-09 14:13:35 -07:00
Ginger Wong
21c3520e00 style message items 2020-06-09 14:12:50 -07:00
Gabe Kangas
a65564eedf Guard against the infinite that can take place when the ws server goes unavailable 2020-06-09 10:56:15 -07:00
Ginger Wong
60080cd93c initial chat form layout 2020-06-04 03:15:27 -07:00
Ginger Wong
9b63d1ffb3 initial layout 2020-06-04 01:31:47 -07:00
Gabe Kangas
a29852f404 Support local development of index.html 2020-06-02 18:37:05 -07:00
Gabe Kangas
ae94eb1c5f Make messages unique and dedupe on reconnection 2020-06-02 17:59:58 -07:00
Gabe Kangas
f83fccfa89 Show viewer count and reconnect to websocket 2020-06-02 17:35:49 -07:00
Gabe Kangas
f6153c983f Save author name on send 2020-06-02 14:27:11 -07:00
Gabe Kangas
90e7e9082b Fix status checking loop. 2020-06-02 14:22:22 -07:00