mirror of
https://github.com/idanoo/autobrr
synced 2025-07-25 17:59:14 +00:00
feat(releases): delete based on age/indexer/status (#1522)
* feat(releases): delete based on age/indexer/status * fix: sanitize releaseStatuses * swap to RMSC * add AgeSelect component * improve texts * refactor: streamline form layout * improve text * remove a paragraph * improved UX explaining the options, better error handling * reinstate red border * fix: labels to match other similar labels for selects - improved contrast for the word "required" in desc - added red asterisk to required select * minor text improvement to warning * fix: delete-button vertical alignment * feat: cleanup queries * feat: cleanup delete --------- Co-authored-by: ze0s <ze0s@riseup.net>
This commit is contained in:
parent
f8715c193c
commit
19e129e55f
6 changed files with 289 additions and 67 deletions
|
@ -15,6 +15,14 @@ interface HttpConfig {
|
|||
queryString?: Record<string, Primitive | Primitive[]>;
|
||||
}
|
||||
|
||||
interface DeleteParams {
|
||||
olderThan?: number;
|
||||
indexers?: string[];
|
||||
releaseStatuses?: string[];
|
||||
}
|
||||
|
||||
type QueryStringParams = Record<string, string | string[]>;
|
||||
|
||||
// See https://stackoverflow.com/a/62969380
|
||||
function encodeRFC3986URIComponent(str: string): string {
|
||||
return encodeURIComponent(str).replace(
|
||||
|
@ -338,9 +346,22 @@ export const APIClient = {
|
|||
},
|
||||
indexerOptions: () => appClient.Get<string[]>("api/release/indexers"),
|
||||
stats: () => appClient.Get<ReleaseStats>("api/release/stats"),
|
||||
delete: (olderThan: number) => appClient.Delete("api/release", {
|
||||
queryString: { olderThan }
|
||||
}),
|
||||
delete: (params: DeleteParams) => {
|
||||
const queryString: QueryStringParams = {};
|
||||
if (params.olderThan !== undefined) {
|
||||
queryString.olderThan = params.olderThan.toString();
|
||||
}
|
||||
if (params.indexers && params.indexers.length > 0) {
|
||||
queryString.indexer = params.indexers;
|
||||
}
|
||||
if (params.releaseStatuses && params.releaseStatuses.length > 0) {
|
||||
queryString.releaseStatus = params.releaseStatuses;
|
||||
}
|
||||
|
||||
return appClient.Delete("api/release", {
|
||||
queryString
|
||||
});
|
||||
},
|
||||
replayAction: (releaseId: number, actionId: number) => appClient.Post(
|
||||
`api/release/${releaseId}/actions/${actionId}/retry`
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue