Add documents to edit expense screen
This commit is contained in:
parent
8deaeb4601
commit
e92c6f3eda
|
|
@ -15,7 +15,7 @@ class HelpText extends StatelessWidget {
|
||||||
child: Text(
|
child: Text(
|
||||||
message,
|
message,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 22,
|
fontSize: 20,
|
||||||
color: Colors.grey,
|
color: Colors.grey,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,15 @@ import 'package:flutter/material.dart';
|
||||||
// Project imports:
|
// Project imports:
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/document_grid.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/app/help_text.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
class ExpenseEditNotes extends StatefulWidget {
|
class ExpenseEditNotes extends StatefulWidget {
|
||||||
const ExpenseEditNotes({
|
const ExpenseEditNotes({
|
||||||
|
|
@ -75,7 +78,9 @@ class ExpenseEditNotesState extends State<ExpenseEditNotes> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final localization = AppLocalization.of(context);
|
final localization = AppLocalization.of(context);
|
||||||
final state = widget.viewModel.state;
|
final viewModel = widget.viewModel;
|
||||||
|
final state = viewModel.state;
|
||||||
|
final expense = viewModel.expense;
|
||||||
final isFullscreen = state.prefState.isEditorFullScreen(EntityType.expense);
|
final isFullscreen = state.prefState.isEditorFullScreen(EntityType.expense);
|
||||||
|
|
||||||
return ScrollableListView(
|
return ScrollableListView(
|
||||||
|
|
@ -90,17 +95,31 @@ class ExpenseEditNotesState extends State<ExpenseEditNotes> {
|
||||||
: null,
|
: null,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
DecoratedFormField(
|
DecoratedFormField(
|
||||||
maxLines: 10,
|
maxLines: 6,
|
||||||
controller: _publicNotesController,
|
controller: _publicNotesController,
|
||||||
keyboardType: TextInputType.multiline,
|
keyboardType: TextInputType.multiline,
|
||||||
label: localization.publicNotes,
|
label: localization.publicNotes,
|
||||||
),
|
),
|
||||||
DecoratedFormField(
|
DecoratedFormField(
|
||||||
maxLines: 10,
|
maxLines: 6,
|
||||||
controller: _privateNotesController,
|
controller: _privateNotesController,
|
||||||
keyboardType: TextInputType.multiline,
|
keyboardType: TextInputType.multiline,
|
||||||
label: localization.privateNotes,
|
label: localization.privateNotes,
|
||||||
),
|
),
|
||||||
|
if (isDesktop(context))
|
||||||
|
if (expense.isNew || state.hasChanges())
|
||||||
|
SizedBox(
|
||||||
|
child: HelpText(localization.saveToUploadDocuments),
|
||||||
|
height: 200,
|
||||||
|
)
|
||||||
|
else
|
||||||
|
DocumentGrid(
|
||||||
|
documents: expense.documents.toList(),
|
||||||
|
onUploadDocument: (path) =>
|
||||||
|
widget.viewModel.onUploadDocument(context, path),
|
||||||
|
onDeleteDocument: (document, password, idToken) => widget
|
||||||
|
.viewModel
|
||||||
|
.onDeleteDocument(context, document, password, idToken))
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue