Implemented inbox (still WIP)

This commit is contained in:
Anton Stubenbord
2022-11-24 13:37:25 +01:00
parent 8e7a5dddbf
commit eb5025e8ca
44 changed files with 674 additions and 316 deletions

View File

@@ -1,24 +1,50 @@
import 'package:paperless_mobile/core/type/types.dart';
class BulkEditAction {
final List<int> documents;
final BulkEditActionMethod _method;
final Map<String, dynamic> parameters;
abstract class BulkAction {
final Iterable<int> documentIds;
BulkEditAction.delete(this.documents)
: _method = BulkEditActionMethod.delete,
parameters = {};
BulkAction(this.documentIds);
JSON toJson();
}
class BulkDeleteAction extends BulkAction {
BulkDeleteAction(super.documents);
@override
JSON toJson() {
return {
'documents': documents,
'method': _method.name,
'parameters': parameters,
'documents': documentIds.toList(),
'method': 'delete',
};
}
}
enum BulkEditActionMethod {
delete,
edit;
class BulkModifyTagsAction extends BulkAction {
final Iterable<int> removeTags;
final Iterable<int> addTags;
BulkModifyTagsAction(
super.documents, {
this.removeTags = const [],
this.addTags = const [],
});
BulkModifyTagsAction.addTags(super.documents, this.addTags)
: removeTags = const [];
BulkModifyTagsAction.removeTags(super.documents, this.removeTags)
: addTags = const [];
@override
JSON toJson() {
return {
'documents': documentIds.toList(),
'method': 'modify_tags',
'parameters': {
'add_tags': addTags.toList(),
'remove_tags': removeTags.toList(),
}
};
}
}