feat: add option to delete storage media files

This commit is contained in:
Simon Ding
2024-12-11 21:09:00 +08:00
parent 22f76e3f57
commit 6d127c6d00
10 changed files with 60 additions and 13 deletions

View File

@@ -24,9 +24,9 @@ class SeriesDetailData
return SeriesDetails.fromJson(rsp.data);
}
Future<void> delete() async {
final dio = await APIs.getDio();
var resp = await dio.delete("${APIs.seriesDetailUrl}$id");
Future<void> delete(bool removeFiles ) async {
final dio = APIs.getDio();
var resp = await dio.delete("${APIs.seriesDetailUrl}$id", queryParameters: {"delete_files": removeFiles});
var rsp = ServerResponse.fromJson(resp.data);
if (rsp.code != 0) {
throw rsp.message;

View File

@@ -193,13 +193,25 @@ class _DetailCardState extends ConsumerState<DetailCard> {
}
Future<void> showConfirmDialog(BuildContext oriContext) {
var deleteFiles = false;
return showDialog<void>(
context: context,
barrierDismissible: true,
builder: (BuildContext context) {
return AlertDialog(
title: const Text("确认删除"),
content: Text("${widget.details.name}"),
title: const Text("确认删除"),
content: StatefulBuilder(builder: (context, setState) {
return CheckboxListTile(
value: deleteFiles,
title: Text("删除媒体文件"),
onChanged: (v) {
setState(
() {
deleteFiles = v!;
},
);
});
}),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
@@ -209,7 +221,7 @@ class _DetailCardState extends ConsumerState<DetailCard> {
ref
.read(mediaDetailsProvider(widget.details.id.toString())
.notifier)
.delete()
.delete(deleteFiles)
.then((v) {
if (oriContext.mounted) {
oriContext.go(widget.details.mediaType == "tv"