Reduce hosted max records per page to 5000
This commit is contained in:
parent
f2a8de65f7
commit
dce576c9e0
|
|
@ -168,8 +168,7 @@ const int kMaxNumberOfHistory = 50;
|
|||
const int kMaxPostSeconds = 60;
|
||||
const int kMaxRawPostSeconds = 300;
|
||||
const int kMaxEntitiesPerBulkAction = 100;
|
||||
const int kHostedRecordsPerPage = 10000;
|
||||
const int kSelfhostedRecordsPerPage = 5000;
|
||||
const int kMaxRecordsPerPage = 5000;
|
||||
const int kMillisecondsToTimerRefreshData = 1000 * 60 * 5; // 5 minutes
|
||||
const int kMillisecondsToRefreshData = 1000 * 60 * 15; // 15 minutes
|
||||
const int kUpdatedAtBufferSeconds = 600;
|
||||
|
|
|
|||
|
|
@ -39,9 +39,9 @@ class ClientRepository {
|
|||
}
|
||||
|
||||
Future<BuiltList<ClientEntity>> loadList(
|
||||
Credentials credentials, int page, int recordsPerPage) async {
|
||||
Credentials credentials, int page) async {
|
||||
final String url =
|
||||
credentials.url + '/clients?per_page=$recordsPerPage&page=$page';
|
||||
credentials.url + '/clients?per_page=$kMaxRecordsPerPage&page=$page';
|
||||
|
||||
final dynamic response = await webClient.get(url, credentials.token);
|
||||
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ class InvoiceRepository {
|
|||
}
|
||||
|
||||
Future<BuiltList<InvoiceEntity>> loadList(Credentials credentials, int page,
|
||||
int createdAt, bool filterDeleted, int recordsPerPage) async {
|
||||
int createdAt, bool filterDeleted) async {
|
||||
String url = credentials.url +
|
||||
'/invoices?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
|
||||
'/invoices?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
|
||||
|
||||
if (filterDeleted) {
|
||||
url += '&filter_deleted_clients=true';
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@ class PaymentRepository {
|
|||
}
|
||||
|
||||
Future<BuiltList<PaymentEntity>> loadList(Credentials credentials, int page,
|
||||
int createdAt, bool filterDeleted, int recordsPerPage) async {
|
||||
int createdAt, bool filterDeleted) async {
|
||||
String url = credentials.url +
|
||||
'/payments?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
|
||||
'/payments?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
|
||||
|
||||
if (filterDeleted) {
|
||||
url += '&filter_deleted_clients=true';
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ class ProductRepository {
|
|||
}
|
||||
|
||||
Future<BuiltList<ProductEntity>> loadList(
|
||||
Credentials credentials, int page, int recordsPerPage) async {
|
||||
Credentials credentials, int page) async {
|
||||
final url =
|
||||
credentials.url + '/products?per_page=$recordsPerPage&page=$page';
|
||||
credentials.url + '/products?per_page=$kMaxRecordsPerPage&page=$page';
|
||||
|
||||
final dynamic response = await webClient.get(url, credentials.token);
|
||||
|
||||
|
|
|
|||
|
|
@ -31,10 +31,9 @@ class PurchaseOrderRepository {
|
|||
int page,
|
||||
int createdAt,
|
||||
//bool filterDeleted,
|
||||
int recordsPerPage,
|
||||
) async {
|
||||
final url = credentials.url +
|
||||
'/purchase_orders?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
|
||||
'/purchase_orders?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
|
||||
|
||||
/*
|
||||
if (filterDeleted) {
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ class QuoteRepository {
|
|||
}
|
||||
|
||||
Future<BuiltList<InvoiceEntity>> loadList(Credentials credentials, int page,
|
||||
int createdAt, bool filterDeleted, int recordsPerPage) async {
|
||||
int createdAt, bool filterDeleted) async {
|
||||
String url = credentials.url +
|
||||
'/quotes?per_page=$recordsPerPage&page=$page&created_at=$createdAt';
|
||||
'/quotes?per_page=$kMaxRecordsPerPage&page=$page&created_at=$createdAt';
|
||||
|
||||
if (filterDeleted) {
|
||||
url += '&filter_deleted_clients=true';
|
||||
|
|
|
|||
|
|
@ -774,9 +774,6 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
|
|||
|
||||
bool get reportErrors => account?.reportErrors ?? false;
|
||||
|
||||
int get recordsPerPage =>
|
||||
isHosted ? kHostedRecordsPerPage : kSelfhostedRecordsPerPage;
|
||||
|
||||
bool get isHosted => account == null ? authState.isHosted : account.isHosted;
|
||||
|
||||
bool get isSelfHosted => !isHosted;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
|
||||
// Package imports:
|
||||
import 'package:redux/redux.dart';
|
||||
|
|
@ -295,11 +296,9 @@ Middleware<AppState> _loadClients(ClientRepository repository) {
|
|||
final state = store.state;
|
||||
|
||||
store.dispatch(LoadClientsRequest());
|
||||
repository
|
||||
.loadList(state.credentials, action.page, state.recordsPerPage)
|
||||
.then((data) {
|
||||
repository.loadList(state.credentials, action.page).then((data) {
|
||||
store.dispatch(LoadClientsSuccess(data));
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadClients(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/recurring_invoice/recurring_invoice_actions.dart';
|
||||
|
||||
// Package imports:
|
||||
|
|
@ -441,12 +442,11 @@ Middleware<AppState> _loadInvoices(InvoiceRepository repository) {
|
|||
action.page,
|
||||
state.createdAtLimit,
|
||||
state.filterDeletedClients,
|
||||
state.recordsPerPage,
|
||||
)
|
||||
.then((data) {
|
||||
store.dispatch(LoadInvoicesSuccess(data));
|
||||
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadInvoices(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
||||
|
||||
// Package imports:
|
||||
|
|
@ -306,11 +307,10 @@ Middleware<AppState> _loadPayments(PaymentRepository repository) {
|
|||
action.page,
|
||||
state.createdAtLimit,
|
||||
state.filterDeletedClients,
|
||||
state.recordsPerPage,
|
||||
)
|
||||
.then((data) {
|
||||
store.dispatch(LoadPaymentsSuccess(data));
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadPayments(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
|
||||
// Package imports:
|
||||
import 'package:redux/redux.dart';
|
||||
|
|
@ -239,11 +240,9 @@ Middleware<AppState> _loadProducts(ProductRepository repository) {
|
|||
final state = store.state;
|
||||
|
||||
store.dispatch(LoadProductsRequest());
|
||||
repository
|
||||
.loadList(state.credentials, action.page, state.recordsPerPage)
|
||||
.then((data) {
|
||||
repository.loadList(state.credentials, action.page).then((data) {
|
||||
store.dispatch(LoadProductsSuccess(data));
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadProducts(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
import 'package:invoiceninja_flutter/data/repositories/purchase_order_repository.dart';
|
||||
import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart';
|
||||
import 'package:invoiceninja_flutter/redux/purchase_order/purchase_order_actions.dart';
|
||||
|
|
@ -530,11 +531,10 @@ Middleware<AppState> _loadPurchaseOrders(PurchaseOrderRepository repository) {
|
|||
action.page,
|
||||
state.createdAtLimit,
|
||||
//state.filterDeletedClients,
|
||||
state.recordsPerPage,
|
||||
)
|
||||
.then((data) {
|
||||
store.dispatch(LoadPurchaseOrdersSuccess(data));
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadPurchaseOrders(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
// Flutter imports:
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/constants.dart';
|
||||
|
||||
// Package imports:
|
||||
import 'package:redux/redux.dart';
|
||||
|
|
@ -445,11 +446,10 @@ Middleware<AppState> _loadQuotes(QuoteRepository repository) {
|
|||
action.page,
|
||||
state.createdAtLimit,
|
||||
state.filterDeletedClients,
|
||||
state.recordsPerPage,
|
||||
)
|
||||
.then((data) {
|
||||
store.dispatch(LoadQuotesSuccess(data));
|
||||
if (data.length == state.recordsPerPage) {
|
||||
if (data.length == kMaxRecordsPerPage) {
|
||||
store.dispatch(LoadQuotes(
|
||||
completer: action.completer,
|
||||
page: action.page + 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue