Documents

This commit is contained in:
Hillel Coren 2023-08-14 17:34:34 +03:00
parent 32a806f8f6
commit 38f371d845
3 changed files with 20 additions and 5 deletions

View File

@ -60,8 +60,8 @@ class DocumentFields {
static const String height = 'height'; static const String height = 'height';
static const String hash = 'hash'; static const String hash = 'hash';
static const String linkedTo = 'linked_to'; static const String linkedTo = 'linked_to';
static const String isPublic = 'is_public'; static const String isPublic = 'public';
static const String isPrivate = 'is_private'; static const String isPrivate = 'private';
} }
abstract class DocumentEntity extends Object abstract class DocumentEntity extends Object

View File

@ -309,9 +309,19 @@ class DocumentTile extends StatelessWidget {
? () => handleDocumentAction( ? () => handleDocumentAction(
context, [document], EntityAction.viewDocument) context, [document], EntityAction.viewDocument)
: null, : null,
child: DocumentPreview( child: Stack(
document, alignment: Alignment.topLeft,
height: 110, children: [
DocumentPreview(
document,
height: 110,
),
if (!document.isPublic)
Padding(
padding: const EdgeInsets.all(8.0),
child: Icon(Icons.lock),
),
],
), ),
), ),
Padding( Padding(

View File

@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/ui/app/link_text.dart'; import 'package:invoiceninja_flutter/ui/app/link_text.dart';
import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart'; import 'package:invoiceninja_flutter/ui/app/presenters/entity_presenter.dart';
import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class DocumentPresenter extends EntityPresenter { class DocumentPresenter extends EntityPresenter {
static List<String> getDefaultTableFields(UserCompanyEntity userCompany) { static List<String> getDefaultTableFields(UserCompanyEntity userCompany) {
@ -17,6 +18,7 @@ class DocumentPresenter extends EntityPresenter {
DocumentFields.size, DocumentFields.size,
DocumentFields.width, DocumentFields.width,
DocumentFields.height, DocumentFields.height,
DocumentFields.isPrivate,
DocumentFields.createdAt, DocumentFields.createdAt,
]; ];
} }
@ -34,6 +36,7 @@ class DocumentPresenter extends EntityPresenter {
Widget getField({String field, BuildContext context}) { Widget getField({String field, BuildContext context}) {
final store = StoreProvider.of<AppState>(context); final store = StoreProvider.of<AppState>(context);
final state = store.state; final state = store.state;
final localization = AppLocalization.of(context);
final document = entity as DocumentEntity; final document = entity as DocumentEntity;
switch (field) { switch (field) {
@ -59,6 +62,8 @@ class DocumentPresenter extends EntityPresenter {
final parentEntity = final parentEntity =
state.getEntity(document.parentType, document.parentId); state.getEntity(document.parentType, document.parentId);
return LinkTextRelatedEntity(entity: parentEntity, relation: document); return LinkTextRelatedEntity(entity: parentEntity, relation: document);
case DocumentFields.isPrivate:
return Text(document.isPublic ? localization.no : localization.yes);
} }
return super.getField(field: field, context: context); return super.getField(field: field, context: context);