Commit graph

444 commits

Author SHA1 Message Date
Fabricio Silva
1f76aa38f4
build(web): use pnpm from corepack (#935)
* feat(web): use pnpm packageManager on package.json

* build(web): add frozen-lockfile to Makefile

* build(docker): use the same node version as Docker image

* build(docker): enable corepack

* build(makefile): use --dir instead of cd for pnpm
2023-05-21 17:05:53 +02:00
ze0s
ccabe96bdf
feat(irc): view announces per channel (#948)
* feat(irc): add sse to handler

* feat(irc): view and send irc messages per network

* refactor(irc): use id as handlerkey

* refactor(irc): use id as handlerkey

* feat(web): add irc context

* refactor: create sse stream per network channel

* fix(irc): remove non-working wildcard callback handler

* feat: use fork of sse

* chore(deps): update ergo/irc-go to v0.3.0

* fix: clean irc msg before sse publish

* feat: add view channel button

* feat: styling improvements

* feat: show time
2023-05-21 15:51:40 +02:00
Fabricio Silva
bbfcf303ef
chore(web): add svg logo (#947) 2023-05-19 18:39:47 +02:00
ze0s
6898ad8315
feat(releases): replay actions (#932)
* feat(releases): replay actions

* feat(releases): replay actions component

* fix: update filter actions

* fix: select filter_id from ras
2023-05-15 21:30:04 +02:00
ze0s
e5b4ded725
feat(filters): add support for feed description (#922)
* feat(filters): match description

* feat(filters): support description

* chore: remove match logic for description

* fix: update rss tests
2023-05-13 19:33:18 +02:00
soup
8347d6ded1
feat(logs): improve log search with regex (#920)
* improve log search with regex

* show empty log if regex invalid

* show red icon if regex is invalid
2023-05-08 22:56:11 +02:00
martylukyy
759b17c9f0
fix(filters): limit textarea height (#921)
* limit textarea height to 10 rows

* remove overflow-hidden from TextAreaAutoResize to make it scrollable
2023-05-08 22:44:03 +02:00
Kyle Sanderson
762a0bb36b
chore(build): change to pnpm from yarn (#919)
* flip to npm

* try pnpm

* nothing good started with p anyway

* I want to go outside.

* Split out deps and build

* 30 seconds on the fetch, reintroduce the p

* lock it in

* flip lock file to pnpm

* nuke yarn.lock

* kirby no longer has yarn

* flip goreleaser to v4, was using node12.

* snapshots don't have tags

* Update README.md

* pin offline dockerfile

* Delete .yarnrc.yml

* Delete web/.yarn directory

* fix: update scripts

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-05-08 20:28:43 +02:00
Yuchen Ying
fdc957c571
feat(notification): Telegram add support for topics in groups (#894)
* feat(notification): send Telegram messages to a specific topic of a group

* Convert settings.Topic to integer once and reuse it as part of the
telegramSender struct.

* feat(notifications): add migrations for topic

* fix(notifications): find null string

* fix(notifications): form initial values

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-05-07 17:30:07 +02:00
martylukyy
e5692fefc7
feat(filters): automatically resizing textareas (#523)
* Change textfield shows, match_releases and except_releases to textareas customized layout.

* fix indentation and removed blank lines

* add react-textarea-autosize
created const TextAreaAutoResize
change fieldtype of shows, match_releases and except_releases to TextAreaAutoResize

* see previous commit

* fix layout for match_releases and reject_releases textarea
revert 'Use regex' switch to old design

* revert layout changes back to 1.9.0

* fix code formatting

* fix: prevent scrollbar with overflow-hidden

* merge and implement tooltips

* chore: update yarn.lock

* feat: create TextAreaRegex component

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com >
Co-authored-by: ze0s <ze0s@riseup.net>
2023-05-07 16:28:31 +02:00
martylukyy
b0b98b8d9c
enhancement(web): disable freeleech percent when freeleech is toggled (#875)
lock freeleech percent field when freeleech switch is enabled
2023-05-07 15:30:16 +02:00
soup
8acf33589d
enhancement(web): mutation improvements and toast updates (#913)
* make notification switch take onToggleMutation

Instead of opening it like the edit button, it now enables/disables it directly.

* improved toast for update checks

* improved toast for download clients

it now mentions what client is enabled/disabled

* improved irc network toast

* added toast when copying apikey

* added toast to log download

implemented an info variant for the toasts

* improved feed toast

* improved toast for update checks

* Merge branch 'develop' into enhancement/mutation-improvements-toast-updates
2023-05-06 18:19:43 +02:00
ze0s
96e38e649a
feat(downloadclients): rtorrent improve basic auth handling (#914)
* feat: wrap rtorrent client with custom transport

* refactor: move to autobrr/go-rtorrent

* feat: wrap rtorrent client with custom transport

* refactor: move to autobrr/go-rtorrent

* feat(web): update forms
2023-05-06 18:16:34 +02:00
soup
605ceaf5f4
feat(release): add torrent download link to release table (#911)
* add torrent download link to release table

* remove draft from api

* remove leftover whitespace
2023-05-06 16:16:20 +02:00
soup
7817e85621
fix(filters): correct toasts for enabling and disabling filters (#912)
correct toasts for enabling and disabling filters
2023-05-06 16:12:59 +02:00
soup
537bbe3394
enhancement(filters): exclude tags_match_logic on export if default value (#908)
ignore tags_match_logic on export if default value
2023-05-06 16:08:12 +02:00
ze0s
d480532c16
fix(filters): list show status all (#904)
fix(filters): lists show status all
2023-05-03 00:10:43 +02:00
ze0s
319bc2f200
fix(web): PWA asset and route handling (#898)
* fix(web): PWA asset and fallback route handling

* fix(web): strip baseurl

* fix(web): add back manifest.json

* fix(web): add back manifest.json

* fix(web): log file

* fix(web): do not trim baseurl

* fix(web): try different start_url

* fix(web): pwa with subfolder
2023-05-02 19:06:53 +02:00
Fabricio Silva
bc96979907
fix(web): typo on ActionType enum (#899) 2023-05-02 18:42:12 +02:00
ze0s
604c7896bd
chore: add LICENSE GPLv2-or-later (#897)
* chore: add LICENSE

* chore: add LICENSE to README
2023-05-01 16:21:59 +02:00
ze0s
124031f510
feat(filters): add form validation (#890)
* feat(filters): add form validation

* feat(filters): show toast on validation error

* chore: update package.json
2023-05-01 14:44:17 +02:00
Kyle Sanderson
61439567d8
chore(web): Sabnzbd -> SABnzbd (#895)
* Update DownloadClientForms.tsx

* Update constants.ts
2023-05-01 14:17:26 +02:00
KaiserBh
91e4f5b435
feat(web): make PWA compatible with Vite (#793)
* removed react-app type instead use vite.

* removed index.html from public since vite uses it from root: read more: https://vitejs.dev/guide/#index-html-and-project-root

* yarn.lock update.

* added vite config file. With commented rollUp option if we want the build to be called build but using default stuff for now.

* updated tsconfig to use vite and include vite.config.ts

* changed package json build commands to use vite.

* for some reason there is an error in vite config when we put project as tsconfig.json.

* build.go updated to use the new dist folder.

* refactored as well updated to use dist and web.AssetHandler again.

* Fixed issue forcing the frontend to be reloaded for all routes to work if logged in fresh without reloading it will always go back to dashboard.

* updated it to use the new function; need to fix the Index for baseUrl I believe, if enabled it works except logs route will crash due to cors.

* refactored and default port to 7474, don't think we need the rollUpOptions.

* added tmp/ to ignore .

* init air.toml, for dev hot reloading both app and backend. https://github.com/cosmtrek/air run it using air but make sure it's in PATH

* updated the start command to build and watch for changes, works great with air.

* revert

* added proxy for vite config. To be used for dev.

* fix: This fixes #117 Propagation bug.

* refactor: I think this should fix it, when logs route etc getting accessed usually it throws error but by getting rid of the catch-all it should work as intended, since web.RegisterHandler(r) will catch the unmatched ones.

* Moved outside static, keep it in public root folder.

* refactor to support the changes

* Added support for PWA, autoinject which auto updates when there is new "version" instead of prompting user.

* fix colour and added the assets.

* chore: yarn lock and remove logos.

* chore: remove logos, don't think we need em.

* chore:added dist folder.

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-04-30 23:43:13 +02:00
Kyle Sanderson
32af2d756b
chore(web): add clarifying information for feeds. (#889)
* Update Feed.tsx

* Update Indexer.tsx

* oh right.

* 🅱️
2023-04-30 21:17:07 +02:00
Nelson Pecora
da5492febb
feat(notifications): add Pushover (#598)
* feat(notifications): add pushover

* add db migration

* fix lint error

* some small corrections

* fixed README

* added missing columns to postgres_migrate.go

* use token for user_key

* refactor(notifications): change priority to int

* fix: only test selected events

---------

Co-authored-by: soup <soup@r4tio.dev>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-04-29 17:07:15 +02:00
ze0s
6e5385a490
refactor(web): replace pkg react-query with tanstack/react-query (#868)
* refactor: move to tanstack/react-query and fix cache

* refactor(releases): move to tanstack/react-query

* refactor(logs): move to tanstack/react-query

* refactor(base): move to tanstack/react-query

* refactor(base): move to tanstack/react-query

* refactor(dashboard): move to tanstack/react-query

* refactor(auth): move to tanstack/react-query

* refactor(filters): move to tanstack/react-query

* refactor(settings): move to tanstack/react-query

* chore(pkg): add tanstack/react-query

* refactor(filters): move to tanstack/react-query

* refactor: move to tanstack/react-query

* refactor: invalidate queries

* chore(pkg): remove old react-query

* chore: change imports to root prefixes

* build: remove needs web from test

* set enableReinitialize to true to fix formik caching issues

* fix all property for apiKeys const

* fix toast when enabling/disabling feed

---------

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2023-04-27 21:26:27 +02:00
martylukyy
b0198bc2a3
fix(indexers): OPS new announce format (#862)
* fix ops parsing
extend regex capture group for torrentName var to contain releaseTags var
replace all – in announces with a - for torrentName var

* update ops yaml for new announces

* replace en-dashes with hyphens for OPS
add Sampler to releaseTypeMusic const
sort strings of releaseTypeMusic const alphabetically
shorten import in constants.ts

* replace en-dashes in pattern with . to cover any separator

---------

Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
2023-04-26 20:31:21 +02:00
Kyle Sanderson
d546288c2a
build: make ci 2-3x faster (#859)
* Create scratch.Dockerfile

* "best practices"

* even faster?

* too fast. change outdir

* flip to 1.20.3 + v4 + setup go on docker

* download deps

* debug

* Update ci.Dockerfile

* Update goreleaser.Dockerfile

* enable web caching

* Update release.yml

* Update ci.Dockerfile

* revert goreleaser

* cleanup

* set GOCACHE

* Update ci.Dockerfile

* Delete scratch.Dockerfile
2023-04-23 01:48:25 +02:00
martylukyy
d03561d61c
enhancement(web): log download spinner icon (#847)
replace loading dots with spinner and move text to title for it display at mouseover
2023-04-17 20:54:30 +02:00
martylukyy
9f86c3ab4b
feat(web): add not found page (#845)
implement not found page when logged in
2023-04-16 20:25:10 +02:00
KaiserBh
0a69250144
fix(web): propagation bug with slide panel focus (#791)
* removed react-app type instead use vite.

* removed index.html from public since vite uses it from root: read more: https://vitejs.dev/guide/#index-html-and-project-root

* yarn.lock update.

* added vite config file. With commented rollUp option if we want the build to be called build but using default stuff for now.

* updated tsconfig to use vite and include vite.config.ts

* changed package json build commands to use vite.

* for some reason there is an error in vite config when we put project as tsconfig.json.

* build.go updated to use the new dist folder.

* refactored as well updated to use dist and web.AssetHandler again.

* Fixed issue forcing the frontend to be reloaded for all routes to work if logged in fresh without reloading it will always go back to dashboard.

* updated it to use the new function; need to fix the Index for baseUrl I believe, if enabled it works except logs route will crash due to cors.

* refactored and default port to 7474, don't think we need the rollUpOptions.

* added tmp/ to ignore .

* init air.toml, for dev hot reloading both app and backend. https://github.com/cosmtrek/air run it using air but make sure it's in PATH

* updated the start command to build and watch for changes, works great with air.

* revert

* added proxy for vite config. To be used for dev.

* fix: This fixes #117 Propagation bug.

* chore: update yarn lock

---------

Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-04-16 20:00:20 +02:00
KaiserBh
0087147660
fix(web): unrecoverable unauthorized error (#843)
fix:unauthorized error.

added check for failed login as well remove user when visiting login.

Co-authored-by: KaiserBh <kaiserbh@proton.me>
2023-04-16 18:54:27 +02:00
ze0s
286f2f53f7
fix(indexers): test API button (#844)
fix(indexers): api test button
2023-04-16 18:50:23 +02:00
KaiserBh
fe71dfc3af
fix(web): reset global state after logout (#842)
* fix: global state bug fix.

* refactor: fix text being center.

* adapt mobile logout button for new logout function

---------

Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2023-04-16 18:39:45 +02:00
ze0s
f3cfeed8cd
feat(indexers): test API from settings (#829)
* refactor(indexers): test api clients

* feat(indexers): test api connection

* fix(indexers): api client tests

* refactor: indexer api clients

* feat: add Toasts for indexer api tests

* fix: failing red tests
2023-04-15 23:34:27 +02:00
martylukyy
be999d88b5
fix(web): make log files section responsive (#836)
* adapted Logs page in settings to be responsive
minor layout changes

* show headers on narrow screens

* adapted padding on Logs page

---------

Co-authored-by: soup <soup@r4tio.dev>
2023-04-14 21:20:03 +02:00
soup
02eb0edbfa
fix(web): explanation of freeleech options (#833)
fix/web: explanation of freeleech usage
2023-04-13 18:07:39 +02:00
ze0s
5e7acb1996
fix(settings): indexer forms disable autocomplete in TexField (#828)
fix(settings): indexer forms disable autocomplete textfields
2023-04-10 16:55:29 +02:00
Gustavo Machado
ef75b67b25
feat(filters): add match logic for tags and except tags (#810)
* feat(filters): add fields for tag and except tag matching logic

* refactor(filters): rearrange and simplify logic for containsAllMatch

---------

Co-authored-by: Gustavo Machado <me@gstv.dev>
2023-04-10 16:11:44 +02:00
KaiserBh
d48e94ff33
fix(web): auth bad login flash (#820)
[DEV-820] bugfix: since it's 401 we should reject the promise that way onError actually works. I think this was causing login to succeed  for like a second then goes back to login but with this we reject it early shouldn't pass the login screen.

Co-authored-by: KaiserBh <kaiserbh@proton.me>
2023-04-10 15:47:32 +02:00
soup
e998f4e529
fix(web): RegexField add padding (#812)
added conditional padding to regexfield

added a conditional pr-10 if useRegex=true to make the right side of the field remain visible when the icons are present

Co-authored-by: martylukyy <35452459+martylukyy@users.noreply.github.com>
2023-04-10 14:40:23 +02:00
soup
6e4c6b6356
fix(web): numberfield changing while scrolling (#811)
* fix numberfield changing while scrolling

* added same behaviour to NumberFieldWide
2023-04-10 14:38:27 +02:00
soup
195b2929e0
feat(filters): improve RegexField validation (#803)
* make sure fields are validated on page load

* make red border only show if useRegex enabled

* ensure tooltips have higher z-index in RegexField

removed z-index in customtooltip.tsx as its causing issues with tooltips in other components

* improved regex validation

return false for cases that are unsupported by Go

* improved check for unsupported conditionals
thanks nuxen
2023-04-10 14:36:13 +02:00
martylukyy
69f6acbc4d
fix(web): PasswordField eye icon alignment (#824)
* keep eye icon inside PasswordField during onboarding

* proper solution

* removed redundant relative class
2023-04-10 14:30:29 +02:00
KaiserBh
1cdbbe5bf3
refactor(web): migrate create-react-app to vite (#823)
* fix(build): dockerignore add exclusions

* fix: baseurl and build

* chore: removed react-app-env instead use vite

* chore: updated server and embedding static files.

* commented because conflict I believe, and not needed.

* docs: updated readme

* chore: updated json and added vite

* chore: import fix

* chore: updated yarn.lock and package json

* build: add empty dist to compile backend

* fix: use / as default baseurl

---------

Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-04-10 14:28:24 +02:00
ze0s
33897b04a1
Revert #787 (#821)
Revert "refactor(web): migrate create-react-app to vite (#787)"

This reverts commit edae1bbf4b.
2023-04-07 19:08:42 +02:00
KaiserBh
edae1bbf4b
refactor(web): migrate create-react-app to vite (#787)
* removed react-app type instead use vite.

* removed index.html from public since vite uses it from root: read more: https://vitejs.dev/guide/#index-html-and-project-root

* yarn.lock update.

* added vite config file. With commented rollUp option if we want the build to be called build but using default stuff for now.

* updated tsconfig to use vite and include vite.config.ts

* changed package json build commands to use vite.

* for some reason there is an error in vite config when we put project as tsconfig.json.

* build.go updated to use the new dist folder.

* refactored as well updated to use dist and web.AssetHandler again.

* Fixed issue forcing the frontend to be reloaded for all routes to work if logged in fresh without reloading it will always go back to dashboard.

* updated it to use the new function; need to fix the Index for baseUrl I believe, if enabled it works except logs route will crash due to cors.

* refactored and default port to 7474, don't think we need the rollUpOptions.

* added tmp/ to ignore .

* init air.toml, for dev hot reloading both app and backend. https://github.com/cosmtrek/air run it using air but make sure it's in PATH

* updated the start command to build and watch for changes, works great with air.

* revert

* added proxy for vite config. To be used for dev.

* refactor: I think this should fix it, when logs route etc getting accessed usually it throws error but by getting rid of the catch-all it should work as intended, since web.RegisterHandler(r) will catch the unmatched ones.

* fix: baseurl and build

* fix(build): docker ignore !web/dist

* fix(build): dockerignore add exclusions

* docs: update README.md

* build: update postcss config

---------

Co-authored-by: KaiserBh <kaiserbh@proton.me>
Co-authored-by: ze0s <ze0s@riseup.net>
2023-04-07 16:04:10 +02:00
soup
de6638065a
fix(filters): add fallback for clipboard api on http (#804)
add a fallback for clipboard api

The Clipboard API requires HTTPS, so we need to add a fallback for HTTP. Using the old execCommand('copy') method.
2023-04-01 13:33:00 +02:00
soup
8a0c6e8180
feat(filters): regex validation for supported fields (#773)
* initial commit

* minor visual improvements

* lock validation to golang flavor

* made a new field called regexfield

reverted old textfield to be up2date with develop

* added Formik Validation

* removed yup as its not needed

* improvements

* refactor: simplify and make more generic

---------

Co-authored-by: ze0s <ze0s@riseup.net>
2023-03-30 23:41:03 +02:00
soup
59f41be3ef
enhancement(settings): make lists sortable (#800)
* initial commit

* sorting for clients and networks

* sort feeds

* cursor pointer on hover
2023-03-30 22:27:24 +02:00