Commit graph

232 commits

Author SHA1 Message Date
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
soup
30cf9c55f0
feat(web): preserve sort order on Filters list (#772)
* preserve filter sortOrder in localStorage

* refactor to use SettingsContext
2023-03-30 22:14:14 +02:00
metonym
5fed0921c5
feat(actions): add "don't start" option for rtorrent (#782) 2023-03-26 23:17:44 +02:00
soup
5851b0abe5
feat(filters): use TextArea for webhook data field (#785)
switch to TextArea for webhook data input field
2023-03-26 23:12:22 +02:00
soup
e3b6bc738f
fix(filters): drop down menu z-index (#795)
Add z-index to Menu.Items to control stacking order
The animate-ping would show on top of the filter menu on narrow screens
2023-03-26 22:52:17 +02:00
metonym
fd5bc18a54
feat(filters): navigate to edit page on filter creation (#776)
fix: navigate to edit page on filter creation
2023-03-22 22:02:58 +01:00
soup
bcd5128c59
fix(filters): close add new dropdown of focus (#777)
* hide dropdown when clicking outside it

* cleaner code

* cleaned up code

removed uneccessary div
changed to focus:ring-inset on buttons

* revert focus-ring-inset change

will handle this for the entire app in a separate branch

* changed to using headlessui

* added transition to the dropdown

* feat: add export JSON to Discord button

The Discord button exports the filter data in JSON format,
but with Discord-specific formatting.

as requested on Discord
2023-03-22 22:00:47 +01:00
soup
4ade1b0ecf
feat(logs): sanitize logfile on download (#767)
* initial commit

* handle tleech urls

* improved and simplified regex

* add sanitization status & loading anim for log dl

* removed unused imports

* improved regex

* fixed regex and added tests

* regex improvements and tests

* added unicode matching to saslRegex

* added missing baseurl

* swapped the css animator for a react component

the css version froze when served through a reverse proxy

* optimized regex compilation

---------

Co-authored-by: soup <soup@r4tio.cat>
2023-03-19 21:57:16 +01:00
soup
b04713234c
fix(actions): clear client field when switching action types in filter (#766)
* fix(actions): reset client_id on action swap

* render fix: missing useEffect on some cases

* removed uneccessary amounts of useEffect
2023-03-19 21:53:51 +01:00
ze0s
f68ce40c30
fix(releases): mismatched timestamp in list (#774)
* bugfix: WebUI - Mismatched Timestamps in Releases Page #770

* oops

---------

Co-authored-by: Brett Petch <brettpetch@icloud.com>
2023-03-19 21:40:48 +01:00
metonym
9fed6b3735
feat(actions): rtorrent add folder rename toggle (#756)
* feat(actions): rtorrent add folder rename toggle

* refactor: use content layout
2023-03-19 21:25:53 +01:00
soup
4449df66aa
feat(filters): import/export functionality (#755)
* initial commit

* import working

* some more changes

* import is working

* added text field for import

* made exported json look pretty

* use filter name as title in export

takes the name of the exported filter and add it as title to the json

wont be used for anything on import

* snake case for title

* visual improvements

* added export function to filter dropdown

* added import to filter list

* include empty values on export

this is needed for the import to work

* styled the add button

* reduced needed values for const defaultFilter

this is the minimum required for successful import

* reduced defaultFilter to bits

* Made export and import require minimum values

added "version": "1.0", to export json

* changed filter name

* made the import textfield dynamic

* incremental numbering for imported filter names

Updated the filter import logic to check for existing filter names and
appending incremental number to the filter name if a conflict is found

* reverted changes in details.tsx

* Improved code comments a bit

* add icon and tooltip to filter.actions_count === 0

* changed the 0-action icon to a red animate-ping

- made the tooltip trigger on both the name and the animate-ping hover
- improved colors a bit

* fixed bg color for textarea

made the focus ring less intrusive
2023-03-19 21:22:07 +01:00
Kyle Sanderson
a1a5d94fdd
fix(filters): remove requirement for numberfields (#758)
* fix(filters): remove requirement for logScore.

* default to zero on numberfield clear

* code comment for parseInt

---------

Co-authored-by: soup <soup@r4tio.dev>
2023-03-19 21:07:03 +01:00