2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00

Adds option for deleting attachments from the app (#222)

* Adds option for deleting attachments from the app

Closes https://github.com/inventree/inventree-app/issues/153

* Add entry to release notes
This commit is contained in:
Oliver 2022-12-02 22:10:56 +11:00 committed by GitHub
parent 15b4cbc67a
commit 207e5ec6c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 57 additions and 1 deletions

View File

@ -6,6 +6,7 @@
- Add support for structural part categories
- Add support for structural stock locations
- Allow deletion of attachments via app
- Updated translations

View File

@ -208,12 +208,18 @@
"delete": "Delete",
"@delete": {},
"deleteFailed": "Delete operation failed",
"@deleteFailed": {},
"deletePart": "Delete Part",
"@deletePart": {},
"deletePartDetail": "Remove this part from the database",
"@deletePartDetail": {},
"deleteSuccess": "Delete operation successful",
"@deleteSuccess": {},
"description": "Description",
"@description": {},

View File

@ -79,6 +79,49 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
refresh(context);
}
/*
* Delete the specified attachment
*/
Future<void> deleteAttachment(BuildContext context, InvenTreeAttachment attachment) async {
final bool result = await attachment.delete();
showSnackIcon(
result ? L10().deleteSuccess : L10().deleteFailed,
success: result
);
refresh(context);
}
/*
* Display an option context menu for the selected attachment
*/
Future<void> showOptionsMenu(BuildContext context, InvenTreeAttachment attachment) async {
showDialog(
context: context,
builder: (BuildContext ctx) {
return SimpleDialog(
title: Text(L10().attachments),
children: [
Divider(),
SimpleDialogOption(
onPressed: () async {
Navigator.of(ctx).pop();
deleteAttachment(context, attachment);
},
child: ListTile(
title: Text(L10().delete),
leading: FaIcon(FontAwesomeIcons.trashAlt),
)
)
]
);
}
);
}
@override
Future<void> request(BuildContext context) async {
@ -128,6 +171,9 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
await attachment.downloadAttachment();
hideLoadingOverlay();
},
onLongPress: () {
showOptionsMenu(context, attachment);
},
));
}
@ -140,7 +186,10 @@ class _AttachmentWidgetState extends RefreshableState<AttachmentWidget> {
if (await canLaunch(attachment.link)) {
await launch(attachment.link);
}
}
},
onLongPress: () {
showOptionsMenu(context, attachment);
},
));
}
}