104 Commits

Author SHA1 Message Date
383b80851b Add localization support to admin status and error messages (#4631)
* Initial plan

* Add localization support to admin form status and error messages

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Format updated files with prettier

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Replace t() with Translation component in admin page JSX

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* update package-lock.json

* Update web/i18n/en/translation.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-10-13 16:29:40 -07:00
1cf923a5af Update localization files + references (#4556)
* Initial plan

* Add localization support to NameChangeModal component

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* Add NameChangeModal translations to English language file

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* fix(i18n): fix localization keys

* chore(test): add i18n test

* chore(i18n): update translation script

* chore(i18n): reorgnize translation keys and update components

* chore: fix linting warnings

* chore(i18n): update all the language files

* feat(i18n): add last live ago i18n key

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2025-09-15 19:27:56 -07:00
e66b0444ad Increases the max bandwidth selectable in the admin UI (#4550)
* feat(admin): Closes #1462. Increases the max bandwidth selectable in the UI + localization for the strings

* chore: update extracted translations

* Javascript formatting autofixes

---------

Co-authored-by: Owncast default web localizations <owncast@owncast.online>
2025-09-14 15:41:58 -07:00
074bff32c1 Update directory.owncast.online -> owncast.directory (#4485)
* chore: change directory.owncast.online -> owncast.directory. For #4483

* chore: update extracted translations

---------

Co-authored-by: Owncast default web localizations <owncast@owncast.online>
2025-08-02 16:49:11 -07:00
eafcf9148c Update EditInstanceDetails admin component to support localization (#4439)
* Initial plan

* Update EditInstanceDetails component to support localization

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* chore: update extracted translations

* Update web/types/localization.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add EditInstanceDetails namespace to localization keys

Co-authored-by: gabek <414923+gabek@users.noreply.github.com>

* chore: update extracted translations

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gabek <414923+gabek@users.noreply.github.com>
Co-authored-by: Owncast default web localizations <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-13 13:34:30 -07:00
1310dc1b80 Add horizontal line to admin sidebar (#4417)
* feat(admin): add horizontal line to sidebar. Closes #4098

* fix: lint css file

* fix: tweak css

* chore: go mod tidy

* fix: another css fix
2025-07-04 19:34:57 -07:00
2c42b901f2 set default initialValue to an empty string in TextFieldWithSubmit component (#4207) 2025-02-14 22:32:24 -08:00
bd8dc8326c fix(admin): do not log newfeed 404s 2025-01-15 22:00:32 -08:00
d03cac106c fix(admin): do not handle version upgrade logic if current version is not set 2025-01-15 21:59:45 -08:00
cb387d88be Initial localization work (#3980)
* First pass at configuring localization

* Add CI job for translations

* Update CI job

* Update default value

* Update parser config

* Update defaults again

* try to fix the multiple parsing of a file

* Update crowdlin config

* Update configs

* New Crowdin translations by GitHub Action (#3448)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Point to updated translated files

* Tooltip i18n

* Run translation job when web components are updated

* Commit updated translations

* Translations update (#3453)

* Update source file strings.json
Updated translations

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (English, United States)
Updated translations

* Commit updated translations

* New Crowdin translations by GitHub Action (#3452)

Co-authored-by: Owncast <owncast@owncast.online>

* chore(deps): update to next config to address build errors

* New Crowdin translations by GitHub Action (#3455)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Translations update (#3456)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action (#3457)

* New translations strings.json (Arabic)
Updated translations

* New translations strings.json (German)
Updated translations

* New translations strings.json (Greek)
Updated translations

* New translations strings.json (Irish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Korean)
Updated translations

* New translations strings.json (Dutch)
Updated translations

* New translations strings.json (Norwegian)
Updated translations

* New translations strings.json (Punjabi)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Swedish)
Updated translations

* New translations strings.json (Chinese Traditional)
Updated translations

* New translations strings.json (Vietnamese)
Updated translations

* New translations strings.json (Bengali)
Updated translations

* New translations strings.json (Thai)
Updated translations

* New translations strings.json (Croatian)
Updated translations

* New translations strings.json (Hindi)
Updated translations

* New translations strings.json (Malay)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Commit updated API documentation

* Update translations job

* New Crowdin translations by GitHub Action (#3698)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Update Crowdin configuration file

* Translations update (#3700)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Italian)
Updated translations

* Translations update (#3699)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>

* New Crowdin translations by GitHub Action (#3701)

* New translations strings.json (French)
Updated translations

* New translations strings.json (Spanish)
Updated translations

* New translations strings.json (Italian)
Updated translations

* New translations strings.json (Japanese)
Updated translations

* New translations strings.json (Polish)
Updated translations

* New translations strings.json (Russian)
Updated translations

* New translations strings.json (Portuguese, Brazilian)
Updated translations

* New Crowdin translations by GitHub Action

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Draft: Mark strings for translation. (#3458)

* Mark strings for translation.

* Mark up strings for translation

* fix(web): fix linter warnings

---------

Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* do not pull from cowdin via workflow

* Commit updated translations

* feat: add translations support to admin pages and components (#3977)

* feat: add translations support to admin pages and components

Added translations support admin main page and its components, help
page, handware-info page. Added translations support for LogTable,
NewsFeed and StreamHealthOverview components.

* update package.json

* fix rendering issue

* Commit updated API documentation

---------

Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>

* Offline banner i18n formatting (#3997)

* Fix "Last live ago" string formatting with i18n interpolation

* Change some base translation jsons to use i18n interpolation

* Linting fix

* chore(js): ignore i18n pkgs in knip

* fix(test): fix browser ui test

* fix(js): remove unused var

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Owncast <owncast@owncast.online>
Co-authored-by: taintedcypher <119351153+taintedcypher@users.noreply.github.com>
Co-authored-by: Le fractal <17422-fractal@users.noreply.framagit.org>
Co-authored-by: Sufyaan Khateeb <81009832+SufyaanKhateeb@users.noreply.github.com>
Co-authored-by: mahmed2000 <mahmad2000@protonmail.com>
2025-01-14 20:54:21 -08:00
d9a0d13479 Communicate and handle apub outgoing updates being delayed (#4009)
* Allow icon only status messages such as STATUS_PROCESSING to be displayed

* Add a processing status state for the EditSocialLinks component

* Log warning for the outbound apub channel being full

* Buffer the outbound apub channel so some API requests are less likely to get blocked during handling

* Make the apub outbound request trace-log always occur after being queued.

* Linting fix
2024-11-30 14:38:00 -08:00
dd5a14cd1a Fix mistyped filter value in the admin's log table (#3952) 2024-10-10 08:05:05 -07:00
f7b61d8d9a Javascript formatting autofixes 2024-09-05 21:47:55 +00:00
39e77dc2cc Markdown-Editor-LineWrapping (#3908)
* Markdown-Editor-LineWrapping

* added lineWrapping to js and css editors

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-09-05 14:45:09 -07:00
4579d9074e Initial change for Social Media validation (#3819)
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-07-19 12:41:22 -07:00
a7e5f20337 Implement admin password hashing with bcrypt (#3754)
* Add bcrypt hashing helpers

* SetAdminPassword now hashes the password before saving it

* BasicAuth now compares the bcrypt hash for the password

* Modify migration2 to avoid a double password hash when upgrading

* Add migration for bcrypt hashed password

* Do not show admin password hash as initial value

* Update api tests to compare the bcrypt hash of the admin password instead

* Remove old admin password api tests

---------

Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-06-26 21:20:22 -07:00
de8bc8d41b Fix for copying stream key without revealing it only copies asterisks (#3663)
* asterisk copy fix for #3460

* rename text to keys for consistency + linting fix

* make onCopy spawn an antd message directly, remove redundant copyText function

---------

Co-authored-by: Muaz Ahmad <mahmad2000@protonmail.com>
2024-04-10 13:15:53 -07:00
44eafe69ac fix(deps): update dependency date-fns to v3 (#3619)
* fix(deps): update dependency date-fns to v3

* fix(deps): update usage of date-fns format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-03-06 21:13:13 -08:00
6c644330e7 Fixed page size stale state on LogTable component (#3516) 2024-01-22 20:31:23 -08:00
2b57741397 fix: treat matrix links as regular web urls. Closes #3329 2024-01-21 20:25:05 -08:00
dbf3ad93f1 chore(deps): update dependency prettier to v3.2.3 (#3520)
* chore(deps): update dependency prettier to v3.2.3

* chore(js): fix updated prettier whitespace

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
2024-01-19 23:08:07 -08:00
57ff30c894 fix(admin): hopefully fix an exception that is being thrown in develop. Closes #3373 2023-10-25 20:01:04 -07:00
1917b15b0a Update ClientTable.tsx (#3342)
* Update ClientTable.tsx

solves: #3339

## Changes

changed   owncast/web/components/admin/ClientTable.tsx line 44 `value={selectedKeys[0]})` to `value={selectedKeys[0].toString()} // Convert selectedKeys[0] to string
` as the value attribute expects a value of type string | number | readonly string[]` but previously it was assigned bigint.

* Update ClientTable.tsx

solves: #3339

## Changes

changed   owncast/web/components/admin/ClientTable.tsx line 44 `value={selectedKeys[0]})` to `value={selectedKeys[0].toString()} // Convert selectedKeys[0] to string
` as the value attribute expects a value of type `string | number | readonly string[]` but previously it was assigned bigint.
2023-10-07 13:14:07 -07:00
5ac0d5bbca feat(admin): add explicit directory info agreement modal. Closes #3258 2023-08-16 17:08:19 -07:00
1a7b6b99d5 feat(storage): support a object storage custom path prefix 2023-08-11 22:18:45 -07:00
243156b307 chore: address linter warnings 2023-08-02 13:46:00 -07:00
d43c2be44a fix(admin): display year for user tables if not current year. Closes #3175 2023-07-16 16:46:35 -07:00
4790880c19 fix(admin): save appearanceVariables to admin global config state. Fixes #3170 2023-07-16 16:34:37 -07:00
f1bde962cc feat(admin): auto-expand news item if there is only one 2023-06-29 19:37:52 -07:00
1d6877d3ef fix(admin): fix error displaying and do not allow deleting of the last stream key. Closes #3114 2023-06-27 16:08:07 -07:00
6976b0ddb8 fix(admin): Broken link to the stream health page (#3064) 2023-06-02 11:15:01 -07:00
cd458630ec Support using the custom video serving endpoint even if you don't use object storage (#2924)
* feat(video): refactor video serving endpoint

It can now be used without an object storage provider. Closes #2785

* fix: remove debug log
2023-05-30 14:05:24 -07:00
15dc718e61 feat: add support for robots.txt disabling search indexing (#2929)
* feat: add support for robots.txt

Can toggle disabling search engine indexing. Closes #2684

* fix: unexport ts const
2023-05-30 11:09:51 -07:00
e50b23d081 Cleanup unused Javascript (#3027)
* chore(js): be stricter about dead code warnings

* chore(js): remove dead code and unused exports

* rebase

* chore: remove unused files

* chore(deps): remove unused prop-types dep

* chore(js): remove unused function

* chore(deps): remove + check unused deps

* chore(js): remove unused exports. Closes #3036
2023-05-20 21:15:25 -07:00
7aca27cb08 feat: add support for markdown in offline message. Closes #2921 (#2977) 2023-05-01 19:45:27 -07:00
9bef5730d9 fix(admin): make panel header text not so large 2023-04-28 20:47:31 -07:00
1a63880d01 adding tests for generateRndKey (#2932)
changing jest.config.js
transform option  from -
transform: { '^.+\\.ts?$': 'ts-jest' },
to
  transform: {   '^.+\\.(js|jsx|ts|tsx)$': ['babel-jest', { presets: ['next/babel'] }], },
2023-04-17 15:33:30 -07:00
b3ac4e1a15 fix(js): consolidate url and account validators 2023-04-16 14:32:18 -07:00
49420822f5 Fixed #2758 (#2914)
* Fixed #2758

* Prettified Code!

* Merge branch 'develop' of https://github.com/bennett1412/owncast into issue-#2758-fix

* Fixed prop value in chart component

* Prettified Code!

* Updated chart download button position

* Fixed linting errors

---------

Co-authored-by: bennett1412 <bennett1412@users.noreply.github.com>
2023-04-15 11:31:20 -07:00
a37e40ab27 Change the info message shown when changing admin password. Closes #2905 2023-04-12 18:43:46 -07:00
1eac2a1632 FIX : Admin custom CSS area forces entire page to scroll #2886 (#2892)
* Update EditPageContent.tsx

Adding Scroll to codemirror

* Prettified Code!

* Fixing CSS- code mirror scroll issue

Removing excess code
and fixing CSS code mirror

* Prettified Code!

* Prettified Code!

---------

Co-authored-by: dev265545 <dev265545@users.noreply.github.com>
Co-authored-by: Gabe Kangas <gabek@real-ity.com>
Co-authored-by: gabek <gabek@users.noreply.github.com>
2023-04-03 21:03:44 -07:00
f1bf06b8cd FIX #2897 Admin: "Copy" button for stream keys copy asterisks if key is hidden (#2901)
* Update StreamKeys.tsx

* Prettified Code!

---------

Co-authored-by: dev265545 <dev265545@users.noreply.github.com>
2023-04-03 20:49:48 -07:00
cff37eaf83 Correctly show lowest CPU usage for video table. Closes #2800 2023-04-03 14:56:08 -07:00
e86caad06f Return hideViewerCount in config and set the admin switch correctly. Closes #2887 2023-03-31 22:15:28 -07:00
2b19f9272e Fix auto-generated keys not saving. Closes #2874 2023-03-27 21:34:54 -07:00
2b41113211 Loose div in Utilities > Stream health screen (#2844) 2023-03-21 13:06:16 -07:00
b9fd5e6210 Menu state in admin not saved after page refresh (#2829)
* Menu state in admin not saved after page refresh

* fix openKey

* retry ci

* retry ci

* retry ci
2023-03-16 12:06:00 -07:00
6973c3d8df Update styling of video settings admin page. Closes #2803 2023-03-14 21:34:37 -07:00
0dc126e94d Tell the chart not to clip the visibility of the contents. For #2806 2023-03-13 17:01:39 -07:00
3ada7182f5 Update viewers chart y axis to make more sense. Closes #2806 2023-03-13 15:58:16 -07:00