Support for templates
This commit is contained in:
parent
1b20ab8174
commit
81119d5f37
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/main_app.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
|
import 'package:invoiceninja_flutter/redux/task/task_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/task_status/task_status_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/task_status/task_status_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/design_picker.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/design_picker.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/files.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||||
|
|
@ -639,7 +640,7 @@ class _RunTemplateDialogState extends State<RunTemplateDialog> {
|
||||||
final credentials = state.credentials;
|
final credentials = state.credentials;
|
||||||
final url = '${credentials.url}/templates/preview/$jobHash';
|
final url = '${credentials.url}/templates/preview/$jobHash';
|
||||||
|
|
||||||
while (_data == null) {
|
while (_data == null && mounted) {
|
||||||
await Future.delayed(Duration(seconds: 3));
|
await Future.delayed(Duration(seconds: 3));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
@ -669,15 +670,35 @@ class _RunTemplateDialogState extends State<RunTemplateDialog> {
|
||||||
},
|
},
|
||||||
child: Text(localization.close.toUpperCase()),
|
child: Text(localization.close.toUpperCase()),
|
||||||
),
|
),
|
||||||
|
if (_data != null) ...[
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: _designId.isEmpty
|
onPressed: () {
|
||||||
|
setState(() {
|
||||||
|
_data = null;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
child: Text(
|
||||||
|
localization.reset.toUpperCase(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
TextButton(
|
||||||
|
child: Text(localization.download.toUpperCase()),
|
||||||
|
onPressed: () {
|
||||||
|
final design = state.designState.map[_designId]!;
|
||||||
|
saveDownloadedFile(_data!, design.name);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
] else
|
||||||
|
TextButton(
|
||||||
|
onPressed: _designId.isEmpty || _isLoading
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
final credentials = state.credentials;
|
final credentials = state.credentials;
|
||||||
final url =
|
final url =
|
||||||
'${credentials.url}/${widget.entityType.pluralApiValue}/bulk';
|
'${credentials.url}/${widget.entityType.pluralApiValue}/bulk';
|
||||||
final data = {
|
final data = {
|
||||||
'ids': widget.entities.map((entity) => entity.id).toList(),
|
'ids':
|
||||||
|
widget.entities.map((entity) => entity.id).toList(),
|
||||||
'entity': widget.entityType.apiValue,
|
'entity': widget.entityType.apiValue,
|
||||||
'template_id': _designId,
|
'template_id': _designId,
|
||||||
'send_email': _sendEmail,
|
'send_email': _sendEmail,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue