Settings
This commit is contained in:
parent
6f50130e17
commit
d12787d7a3
|
|
@ -1026,7 +1026,6 @@ abstract class SettingsEntity
|
||||||
@BuiltValueField(wireName: 'email_template_reminder4')
|
@BuiltValueField(wireName: 'email_template_reminder4')
|
||||||
String get emailBodyReminder4;
|
String get emailBodyReminder4;
|
||||||
|
|
||||||
|
|
||||||
// TODO remove this field
|
// TODO remove this field
|
||||||
@nullable
|
@nullable
|
||||||
@BuiltValueField(wireName: 'custom_payment_terms')
|
@BuiltValueField(wireName: 'custom_payment_terms')
|
||||||
|
|
|
||||||
|
|
@ -314,7 +314,8 @@ abstract class InvoiceEntity extends Object
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response == 0) {
|
if (response == 0) {
|
||||||
return (invoiceA.invoiceNumber ?? '').compareTo(invoiceB.invoiceNumber ?? '');
|
return (invoiceA.invoiceNumber ?? '')
|
||||||
|
.compareTo(invoiceB.invoiceNumber ?? '');
|
||||||
} else {
|
} else {
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,12 @@ class InvoiceRepository {
|
||||||
data: json.encode([ids]));
|
data: json.encode([ids]));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Might have other actions in the future
|
// Might have other actions in the future
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
final InvoiceListResponse invoiceResponse =
|
final InvoiceListResponse invoiceResponse =
|
||||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||||
|
|
||||||
return invoiceResponse.data.toList();
|
return invoiceResponse.data.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,12 +47,12 @@ class PaymentRepository {
|
||||||
data: json.encode([ids]));
|
data: json.encode([ids]));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Might have other actions in the future
|
// Might have other actions in the future
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
final PaymentListResponse paymentResponse =
|
final PaymentListResponse paymentResponse =
|
||||||
serializers.deserializeWith(PaymentListResponse.serializer, response);
|
serializers.deserializeWith(PaymentListResponse.serializer, response);
|
||||||
|
|
||||||
return paymentResponse.data.toList();
|
return paymentResponse.data.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,12 +47,12 @@ class ProductRepository {
|
||||||
data: json.encode([ids]));
|
data: json.encode([ids]));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Might have other actions in the future
|
// Might have other actions in the future
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ProductListResponse productResponse =
|
final ProductListResponse productResponse =
|
||||||
serializers.deserializeWith(ProductListResponse.serializer, response);
|
serializers.deserializeWith(ProductListResponse.serializer, response);
|
||||||
|
|
||||||
return productResponse.data.toList();
|
return productResponse.data.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,12 +60,12 @@ class QuoteRepository {
|
||||||
data: json.encode([ids]));
|
data: json.encode([ids]));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Might have other actions in the future
|
// Might have other actions in the future
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
final InvoiceListResponse invoiceResponse =
|
final InvoiceListResponse invoiceResponse =
|
||||||
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
serializers.deserializeWith(InvoiceListResponse.serializer, response);
|
||||||
|
|
||||||
return invoiceResponse.data.toList();
|
return invoiceResponse.data.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ String paymentStatsForUser(
|
||||||
int countArchived = 0;
|
int countArchived = 0;
|
||||||
paymentMap.forEach((paymentId, payment) {
|
paymentMap.forEach((paymentId, payment) {
|
||||||
if (invoiceMap.containsKey(payment.invoiceId))
|
if (invoiceMap.containsKey(payment.invoiceId))
|
||||||
// TODO enable this code
|
// TODO enable this code
|
||||||
//&& invoiceMap[payment.invoiceId].userId == userId)
|
//&& invoiceMap[payment.invoiceId].userId == userId)
|
||||||
{
|
{
|
||||||
if (payment.isActive) {
|
if (payment.isActive) {
|
||||||
|
|
|
||||||
|
|
@ -217,7 +217,7 @@ class ArchiveQuoteRequest implements StartSaving {
|
||||||
ArchiveQuoteRequest(this.completer, this.quoteIds);
|
ArchiveQuoteRequest(this.completer, this.quoteIds);
|
||||||
|
|
||||||
final Completer completer;
|
final Completer completer;
|
||||||
|
|
||||||
final List<String> quoteIds;
|
final List<String> quoteIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -237,7 +237,7 @@ class DeleteQuoteRequest implements StartSaving {
|
||||||
DeleteQuoteRequest(this.completer, this.quoteIds);
|
DeleteQuoteRequest(this.completer, this.quoteIds);
|
||||||
|
|
||||||
final Completer completer;
|
final Completer completer;
|
||||||
|
|
||||||
final List<String> quoteIds;
|
final List<String> quoteIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,9 +99,9 @@ String quoteStatsForClient(
|
||||||
}
|
}
|
||||||
|
|
||||||
var memoizedQuoteStatsForUser = memo4((String userId,
|
var memoizedQuoteStatsForUser = memo4((String userId,
|
||||||
BuiltMap<String, InvoiceEntity> quoteMap,
|
BuiltMap<String, InvoiceEntity> quoteMap,
|
||||||
String activeLabel,
|
String activeLabel,
|
||||||
String archivedLabel) =>
|
String archivedLabel) =>
|
||||||
quoteStatsForUser(userId, quoteMap, activeLabel, archivedLabel));
|
quoteStatsForUser(userId, quoteMap, activeLabel, archivedLabel));
|
||||||
|
|
||||||
String quoteStatsForUser(
|
String quoteStatsForUser(
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.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/loading_indicator.dart';
|
import 'package:invoiceninja_flutter/ui/app/loading_indicator.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
import 'package:invoiceninja_flutter/ui/auth/login_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
|
|
@ -30,6 +31,7 @@ class LoginView extends StatefulWidget {
|
||||||
|
|
||||||
class _LoginState extends State<LoginView> {
|
class _LoginState extends State<LoginView> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
final _firstNameController = TextEditingController();
|
final _firstNameController = TextEditingController();
|
||||||
final _lastNameController = TextEditingController();
|
final _lastNameController = TextEditingController();
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/ui/client/edit/client_edit_notes.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_settings.dart';
|
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_settings.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_shipping_address.dart';
|
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_shipping_address.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/client/edit/client_edit_vm.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/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -27,6 +28,7 @@ class _ClientEditState extends State<ClientEdit>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
|
|
||||||
|
|
@ -170,4 +170,3 @@ class _ClientViewDetailsState extends State<ClientViewDetails> {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/company_gateway/edit/company_gateway_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/company_gateway/edit/company_gateway_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||||
|
|
@ -31,6 +32,7 @@ class CompanyGatewayEdit extends StatefulWidget {
|
||||||
class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
|
class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/document/edit/document_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/document/edit/document_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.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';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
|
|
@ -20,6 +21,7 @@ class DocumentEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _DocumentEditState extends State<DocumentEdit> {
|
class _DocumentEditState extends State<DocumentEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
// STARTER: controllers - do not remove comment
|
// STARTER: controllers - do not remove comment
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_details.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_notes.dart';
|
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_notes.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_settings.dart';
|
import 'package:invoiceninja_flutter/ui/expense/edit/expense_edit_settings.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/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -24,6 +25,7 @@ class _ExpenseEditState extends State<ExpenseEdit>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/custom_field.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/group/edit/group_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/group/edit/group_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.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';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
|
|
@ -23,6 +24,7 @@ class GroupEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _GroupEditState extends State<GroupEdit> {
|
class _GroupEditState extends State<GroupEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
final _nameController = TextEditingController();
|
final _nameController = TextEditingController();
|
||||||
final _custom1Controller = TextEditingController();
|
final _custom1Controller = TextEditingController();
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,7 @@ class InvoiceList extends StatelessWidget {
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (filteredEntity != null)
|
if (filteredEntity != null)
|
||||||
ListFilterMessage(
|
ListFilterMessage(
|
||||||
title:
|
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
|
||||||
onPressed: viewModel.onViewEntityFilterPressed,
|
onPressed: viewModel.onViewEntityFilterPressed,
|
||||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/payment/edit/payment_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/payment/edit/payment_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart';
|
import 'package:invoiceninja_flutter/ui/app/entity_dropdown.dart';
|
||||||
|
|
@ -29,6 +30,7 @@ class PaymentEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _PaymentEditState extends State<PaymentEdit> {
|
class _PaymentEditState extends State<PaymentEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
final _amountController = TextEditingController();
|
final _amountController = TextEditingController();
|
||||||
final _transactionReferenceController = TextEditingController();
|
final _transactionReferenceController = TextEditingController();
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,7 @@ class PaymentList extends StatelessWidget {
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (filteredEntity != null)
|
if (filteredEntity != null)
|
||||||
ListFilterMessage(
|
ListFilterMessage(
|
||||||
title:
|
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
|
||||||
onPressed: viewModel.onViewEntityFilterPressed,
|
onPressed: viewModel.onViewEntityFilterPressed,
|
||||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/custom_field.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/invoice/tax_rate_dropdown.dart';
|
import 'package:invoiceninja_flutter/ui/app/invoice/tax_rate_dropdown.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
@ -26,6 +27,7 @@ class ProductEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _ProductEditState extends State<ProductEdit> {
|
class _ProductEditState extends State<ProductEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/custom_field.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/date_picker.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/project/edit/project_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/project/edit/project_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -27,6 +28,7 @@ class ProjectEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _ProjectEditState extends State<ProjectEdit> {
|
class _ProjectEditState extends State<ProjectEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/material.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/settings/buy_now_buttons_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/buy_now_buttons_vm.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';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
|
|
@ -20,6 +21,7 @@ class BuyNowButtons extends StatefulWidget {
|
||||||
|
|
||||||
class _BuyNowButtonsState extends State<BuyNowButtons> {
|
class _BuyNowButtonsState extends State<BuyNowButtons> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.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/settings/client_portal_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/client_portal_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/icons.dart';
|
import 'package:invoiceninja_flutter/utils/icons.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -28,6 +29,7 @@ class ClientPortal extends StatefulWidget {
|
||||||
class _ClientPortalState extends State<ClientPortal>
|
class _ClientPortalState extends State<ClientPortal>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/resources/cached_image.dart';
|
import 'package:invoiceninja_flutter/ui/app/resources/cached_image.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/company_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/company_details_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
|
|
@ -30,6 +31,7 @@ class CompanyDetails extends StatefulWidget {
|
||||||
class _CompanyDetailsState extends State<CompanyDetails>
|
class _CompanyDetailsState extends State<CompanyDetails>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
final FocusScopeNode _focusNode = FocusScopeNode();
|
final FocusScopeNode _focusNode = FocusScopeNode();
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/credit_cards_and_banks_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/credit_cards_and_banks_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class CreditCardsAndBanks extends StatefulWidget {
|
class CreditCardsAndBanks extends StatefulWidget {
|
||||||
|
|
@ -19,6 +20,7 @@ class CreditCardsAndBanks extends StatefulWidget {
|
||||||
class _CreditCardsAndBanksState extends State<CreditCardsAndBanks>
|
class _CreditCardsAndBanksState extends State<CreditCardsAndBanks>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.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/settings/custom_fields_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/custom_fields_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class CustomFields extends StatefulWidget {
|
class CustomFields extends StatefulWidget {
|
||||||
|
|
@ -23,6 +24,7 @@ class CustomFields extends StatefulWidget {
|
||||||
class _CustomFieldsState extends State<CustomFields>
|
class _CustomFieldsState extends State<CustomFields>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/data_visualizations_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/data_visualizations_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class DataVisualizations extends StatefulWidget {
|
class DataVisualizations extends StatefulWidget {
|
||||||
|
|
@ -18,6 +19,7 @@ class DataVisualizations extends StatefulWidget {
|
||||||
|
|
||||||
class _DataVisualizationsState extends State<DataVisualizations> {
|
class _DataVisualizationsState extends State<DataVisualizations> {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/device_settings_list_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/device_settings_list_vm.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';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
|
|
@ -21,6 +22,7 @@ class DeviceSettings extends StatefulWidget {
|
||||||
|
|
||||||
class _DeviceSettingsState extends State<DeviceSettings> {
|
class _DeviceSettingsState extends State<DeviceSettings> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.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/settings/email_settings_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/email_settings_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class EmailSettings extends StatefulWidget {
|
class EmailSettings extends StatefulWidget {
|
||||||
|
|
@ -25,6 +26,7 @@ class EmailSettings extends StatefulWidget {
|
||||||
class _EmailSettingsState extends State<EmailSettings>
|
class _EmailSettingsState extends State<EmailSettings>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
TabController _tabController;
|
TabController _tabController;
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/date_picker.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/settings/generated_numbers_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/generated_numbers_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -26,6 +27,7 @@ class GeneratedNumbers extends StatefulWidget {
|
||||||
class _GeneratedNumbersState extends State<GeneratedNumbers>
|
class _GeneratedNumbersState extends State<GeneratedNumbers>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/import_export_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/import_export_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class ImportExport extends StatefulWidget {
|
class ImportExport extends StatefulWidget {
|
||||||
|
|
@ -18,6 +19,7 @@ class ImportExport extends StatefulWidget {
|
||||||
|
|
||||||
class _ImportExportState extends State<ImportExport> {
|
class _ImportExportState extends State<ImportExport> {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/color_picker.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/color_picker.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/invoice_design_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/invoice_design_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/fonts.dart';
|
import 'package:invoiceninja_flutter/utils/fonts.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
|
|
@ -30,6 +31,7 @@ class InvoiceDesign extends StatefulWidget {
|
||||||
class _InvoiceDesignState extends State<InvoiceDesign>
|
class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/localization_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/localization_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
|
|
@ -27,6 +28,7 @@ class LocalizationSettings extends StatefulWidget {
|
||||||
|
|
||||||
class _LocalizationSettingsState extends State<LocalizationSettings> {
|
class _LocalizationSettingsState extends State<LocalizationSettings> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/notifications_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/notifications_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class NotificationSettings extends StatefulWidget {
|
class NotificationSettings extends StatefulWidget {
|
||||||
|
|
@ -18,6 +19,7 @@ class NotificationSettings extends StatefulWidget {
|
||||||
|
|
||||||
class _NotificationSettingsState extends State<NotificationSettings> {
|
class _NotificationSettingsState extends State<NotificationSettings> {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/online_payments_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/online_payments_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class OnlinePayments extends StatefulWidget {
|
class OnlinePayments extends StatefulWidget {
|
||||||
|
|
@ -18,8 +19,6 @@ class OnlinePayments extends StatefulWidget {
|
||||||
|
|
||||||
class _OnlinePaymentsState extends State<OnlinePayments>
|
class _OnlinePaymentsState extends State<OnlinePayments>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
||||||
|
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/tax_rates_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/tax_rates_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class TaxRates extends StatefulWidget {
|
class TaxRates extends StatefulWidget {
|
||||||
|
|
@ -19,6 +20,7 @@ class TaxRates extends StatefulWidget {
|
||||||
class _TaxRatesState extends State<TaxRates>
|
class _TaxRatesState extends State<TaxRates>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
//static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ class _TemplatesAndRemindersState extends State<TemplatesAndReminders>
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
|
|
||||||
final _subjectController = TextEditingController();
|
final _subjectController = TextEditingController();
|
||||||
final _bodyController = TextEditingController();
|
final _bodyController = TextEditingController();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.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/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/user_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/user_details_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class UserDetails extends StatefulWidget {
|
class UserDetails extends StatefulWidget {
|
||||||
|
|
@ -21,6 +22,7 @@ class UserDetails extends StatefulWidget {
|
||||||
|
|
||||||
class _UserDetailsState extends State<UserDetails> {
|
class _UserDetailsState extends State<UserDetails> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/forms/bool_dropdown_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/settings/workflow_vm.dart';
|
import 'package:invoiceninja_flutter/ui/settings/workflow_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
class WorkflowSettings extends StatefulWidget {
|
class WorkflowSettings extends StatefulWidget {
|
||||||
|
|
@ -23,6 +24,7 @@ class WorkflowSettings extends StatefulWidget {
|
||||||
class _WorkflowSettingsState extends State<WorkflowSettings>
|
class _WorkflowSettingsState extends State<WorkflowSettings>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
FocusScopeNode _focusNode;
|
FocusScopeNode _focusNode;
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_details_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_times_vm.dart';
|
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_times_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/task/edit/task_edit_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
|
|
@ -27,6 +28,7 @@ class _TaskEditState extends State<TaskEdit>
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
|
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
static const kDetailsScreen = 0;
|
static const kDetailsScreen = 0;
|
||||||
static const kTimesScreen = 1;
|
static const kTimesScreen = 1;
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,7 @@ class TaskList extends StatelessWidget {
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (filteredEntity != null)
|
if (filteredEntity != null)
|
||||||
ListFilterMessage(
|
ListFilterMessage(
|
||||||
title:
|
title: '$filteredMessage: ${filteredEntity.listDisplayName}',
|
||||||
'$filteredMessage: ${filteredEntity.listDisplayName}',
|
|
||||||
onPressed: viewModel.onViewEntityFilterPressed,
|
onPressed: viewModel.onViewEntityFilterPressed,
|
||||||
onClearPressed: viewModel.onClearEntityFilterPressed,
|
onClearPressed: viewModel.onClearEntityFilterPressed,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.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/settings/settings_scaffold.dart';
|
import 'package:invoiceninja_flutter/ui/settings/settings_scaffold.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/tax_rate/edit/tax_rate_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/tax_rate/edit/tax_rate_edit_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
|
|
||||||
|
|
@ -22,6 +23,7 @@ class TaxRateEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _TaxRateEditState extends State<TaxRateEdit> {
|
class _TaxRateEditState extends State<TaxRateEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/app/forms/app_form.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/user/edit/user_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/user/edit/user_edit_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.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';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
||||||
|
|
@ -22,6 +23,7 @@ class UserEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _UserEditState extends State<UserEdit> {
|
class _UserEditState extends State<UserEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
bool autoValidate = false;
|
bool autoValidate = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,36 +103,36 @@ class UserView extends StatelessWidget {
|
||||||
localization.active,
|
localization.active,
|
||||||
localization.archived),
|
localization.archived),
|
||||||
),
|
),
|
||||||
EntityListTile(
|
EntityListTile(
|
||||||
bottomPadding: 1,
|
bottomPadding: 1,
|
||||||
icon: getEntityIcon(EntityType.payment),
|
icon: getEntityIcon(EntityType.payment),
|
||||||
title: localization.payments,
|
title: localization.payments,
|
||||||
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
onTap: () => viewModel.onEntityPressed(context, EntityType.payment),
|
||||||
onLongPress: () =>
|
onLongPress: () =>
|
||||||
viewModel.onEntityPressed(context, EntityType.payment, true),
|
viewModel.onEntityPressed(context, EntityType.payment, true),
|
||||||
subtitle: memoizedPaymentStatsForUser(
|
subtitle: memoizedPaymentStatsForUser(
|
||||||
user.id,
|
user.id,
|
||||||
state.paymentState.map,
|
state.paymentState.map,
|
||||||
state.invoiceState.map,
|
state.invoiceState.map,
|
||||||
localization.active,
|
localization.active,
|
||||||
localization.archived),
|
localization.archived),
|
||||||
),
|
),
|
||||||
company.isModuleEnabled(EntityType.quote)
|
company.isModuleEnabled(EntityType.quote)
|
||||||
? EntityListTile(
|
? EntityListTile(
|
||||||
bottomPadding: 1,
|
bottomPadding: 1,
|
||||||
icon: getEntityIcon(EntityType.quote),
|
icon: getEntityIcon(EntityType.quote),
|
||||||
title: localization.quotes,
|
title: localization.quotes,
|
||||||
onTap: () =>
|
onTap: () =>
|
||||||
viewModel.onEntityPressed(context, EntityType.quote),
|
viewModel.onEntityPressed(context, EntityType.quote),
|
||||||
onLongPress: () =>
|
onLongPress: () => viewModel.onEntityPressed(
|
||||||
viewModel.onEntityPressed(context, EntityType.quote, true),
|
context, EntityType.quote, true),
|
||||||
subtitle: memoizedQuoteStatsForUser(
|
subtitle: memoizedQuoteStatsForUser(
|
||||||
user.id,
|
user.id,
|
||||||
state.quoteState.map,
|
state.quoteState.map,
|
||||||
localization.active,
|
localization.active,
|
||||||
localization.archived),
|
localization.archived),
|
||||||
)
|
)
|
||||||
: Container(),
|
: Container(),
|
||||||
/*
|
/*
|
||||||
company.isModuleEnabled(EntityType.project)
|
company.isModuleEnabled(EntityType.project)
|
||||||
? EntityListTile(
|
? EntityListTile(
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_contacts_vm.dart
|
||||||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_details.dart';
|
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_details.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_notes.dart';
|
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_notes.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/vendor/edit/vendor_edit_vm.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/ui/app/buttons/action_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/action_icon_button.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
import 'package:invoiceninja_flutter/utils/platforms.dart';
|
||||||
|
|
@ -25,6 +26,7 @@ class _VendorEditState extends State<VendorEdit>
|
||||||
with SingleTickerProviderStateMixin {
|
with SingleTickerProviderStateMixin {
|
||||||
TabController _controller;
|
TabController _controller;
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
|
|
||||||
|
|
@ -15432,15 +15432,14 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
||||||
|
|
||||||
String get afterDueDate => _localizedValues[localeCode]['after_due_date'];
|
String get afterDueDate => _localizedValues[localeCode]['after_due_date'];
|
||||||
|
|
||||||
String get afterInvoiceDate => _localizedValues[localeCode]['after_invoice_date'];
|
String get afterInvoiceDate =>
|
||||||
|
_localizedValues[localeCode]['after_invoice_date'];
|
||||||
|
|
||||||
String get schedule => _localizedValues[localeCode]['schedule'];
|
String get schedule => _localizedValues[localeCode]['schedule'];
|
||||||
|
|
||||||
|
|
||||||
String get lateFeeAmount => _localizedValues[localeCode]['late_fee_amount'];
|
String get lateFeeAmount => _localizedValues[localeCode]['late_fee_amount'];
|
||||||
String get lateFeePercent => _localizedValues[localeCode]['late_fee_percent'];
|
String get lateFeePercent => _localizedValues[localeCode]['late_fee_percent'];
|
||||||
|
|
||||||
|
|
||||||
String lookup(String key) {
|
String lookup(String key) {
|
||||||
final lookupKey = toSnakeCase(key);
|
final lookupKey = toSnakeCase(key);
|
||||||
return _localizedValues[localeCode][lookupKey] ??
|
return _localizedValues[localeCode][lookupKey] ??
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ class MyApp extends StatefulWidget {
|
||||||
|
|
||||||
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
|
class _MyAppState extends State<MyApp> with SingleTickerProviderStateMixin {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
|
||||||
static final GlobalKey<ClientPageState> _clientKey =
|
static final GlobalKey<ClientPageState> _clientKey =
|
||||||
GlobalKey<ClientPageState>();
|
GlobalKey<ClientPageState>();
|
||||||
static final GlobalKey<ContactsPageState> _contactsKey =
|
static final GlobalKey<ContactsPageState> _contactsKey =
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ class StubEdit extends StatefulWidget {
|
||||||
|
|
||||||
class _StubEditState extends State<StubEdit> {
|
class _StubEditState extends State<StubEdit> {
|
||||||
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
static final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||||
|
final _debouncer = Debouncer();
|
||||||
|
|
||||||
// STARTER: controllers - do not remove comment
|
// STARTER: controllers - do not remove comment
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue