update pagination listener
This commit is contained in:
@@ -81,7 +81,7 @@ class CartonModel extends BaseModel {
|
||||
|
||||
set selectedIndexFilter(int index) {
|
||||
_selectedIndexFilter = index;
|
||||
_loadCartonsByFilter(
|
||||
_loadPaginationCartons(
|
||||
_selectedIndexFilter == 1 ? "carton_weight" : "user_name");
|
||||
notifyListeners();
|
||||
}
|
||||
@@ -109,12 +109,8 @@ class CartonModel extends BaseModel {
|
||||
Future<void> _initData() async {
|
||||
logout();
|
||||
_selectedIndexFilter = 1;
|
||||
cartonsByFilter = PaginatorListener<Carton>(
|
||||
(data, id) => Carton.fromMap(data, id), onChange: () {
|
||||
notifyListeners();
|
||||
}, rowPerLoad: 30, insertNewByListener: true);
|
||||
|
||||
_loadCartonsByFilter(
|
||||
_loadPaginationCartons(
|
||||
_selectedIndexFilter == 1 ? "carton_weight" : "user_name");
|
||||
}
|
||||
|
||||
@@ -146,30 +142,26 @@ class CartonModel extends BaseModel {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _loadCartonsByFilter(String orderName) async {
|
||||
_loadPaginationCartons(String orderName) {
|
||||
if (user == null || !user!.hasCarton()) return null;
|
||||
String path = "/$cartons_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection("$path")
|
||||
.where("carton_type", whereIn: [
|
||||
carton_from_packages,
|
||||
carton_from_cartons
|
||||
]).where("status", isEqualTo: carton_packed_status);
|
||||
Query col = FirebaseFirestore.instance.collection(path).where("carton_type",
|
||||
whereIn: [
|
||||
carton_from_packages,
|
||||
carton_from_cartons
|
||||
]).where("status", isEqualTo: carton_packed_status);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("carton_type",
|
||||
whereIn: [carton_from_packages, carton_from_cartons])
|
||||
.where("status", isEqualTo: carton_packed_status)
|
||||
.orderBy(orderName, descending: true);
|
||||
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection("$path")
|
||||
.where("carton_type",
|
||||
whereIn: [carton_from_packages, carton_from_cartons])
|
||||
.where("status", isEqualTo: carton_packed_status)
|
||||
.orderBy(orderName, descending: true);
|
||||
|
||||
cartonsByFilter!
|
||||
.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
cartonsByFilter?.close();
|
||||
cartonsByFilter = PaginatorListener<Carton>(
|
||||
col, pageQuery, (data, id) => Carton.fromMap(data, id),
|
||||
rowPerLoad: 30);
|
||||
}
|
||||
|
||||
Paginator? _getDelivered() {
|
||||
|
||||
@@ -7,8 +7,11 @@ import 'package:fcs/domain/entities/user.dart';
|
||||
import 'package:fcs/pages/main/model/base_model.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import '../../../pagination/paginator_listener.dart';
|
||||
|
||||
class CustomerModel extends BaseModel {
|
||||
final log = Logger('CustomerModel');
|
||||
PaginatorListener<User>? getCustomers;
|
||||
|
||||
List<User> customers = [];
|
||||
List<User> invitations = [];
|
||||
@@ -28,8 +31,11 @@ class CustomerModel extends BaseModel {
|
||||
if (invitationListener != null) invitationListener!.cancel();
|
||||
customers = [];
|
||||
invitations = [];
|
||||
getCustomers?.close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Future<void> inviteUser(String userName, String phoneNumber) {
|
||||
return Services.instance.userService.inviteUser(userName, phoneNumber);
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@ class PackageModel extends BaseModel {
|
||||
set menuSelectedIndex(int index) {
|
||||
_menuSelectedIndex = index;
|
||||
|
||||
_loadPackages(_menuSelectedIndex == 2);
|
||||
_loadCustomerPackages(_menuSelectedIndex == 2);
|
||||
_loadPaginationPackages(_menuSelectedIndex == 2);
|
||||
_loadPaginationCustomerPackages(_menuSelectedIndex == 2);
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
@@ -41,24 +41,11 @@ class PackageModel extends BaseModel {
|
||||
}
|
||||
|
||||
Future<void> _initData() async {
|
||||
logout();
|
||||
_menuSelectedIndex = 1;
|
||||
packages = PaginatorListener<Package>(
|
||||
(data, id) => Package.fromMap(data, id), onChange: () {
|
||||
notifyListeners();
|
||||
}, rowPerLoad: 30, insertNewByListener: true);
|
||||
customerPackages = PaginatorListener<Package>(
|
||||
(data, id) => Package.fromMap(data, id), onChange: () {
|
||||
notifyListeners();
|
||||
}, rowPerLoad: 30, insertNewByListener: true);
|
||||
activePackages = PaginatorListener<Package>(
|
||||
(data, id) => Package.fromMap(data, id), onChange: () {
|
||||
notifyListeners();
|
||||
}, rowPerLoad: 30, insertNewByListener: true);
|
||||
|
||||
_loadPackages(_menuSelectedIndex == 2);
|
||||
_loadCustomerPackages(_menuSelectedIndex == 2);
|
||||
_loadActivePackages();
|
||||
_loadPaginationPackages(_menuSelectedIndex == 2);
|
||||
_loadPaginationCustomerPackages(_menuSelectedIndex == 2);
|
||||
_loadPaginationActivePackages();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -68,71 +55,68 @@ class PackageModel extends BaseModel {
|
||||
if (activePackages != null) activePackages!.close();
|
||||
}
|
||||
|
||||
Future<void> _loadPackages(bool isDelivered) async {
|
||||
_loadPaginationPackages(bool isDelivered) {
|
||||
if (user == null) return;
|
||||
if (!((user!.hasPackages() ||
|
||||
user!.hasReceiving() ||
|
||||
user!.hasProcessing()))) return;
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered);
|
||||
Query col = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
pageQuery = pageQuery.orderBy("update_time", descending: true);
|
||||
packages!.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
packages?.close();
|
||||
packages = PaginatorListener<Package>(
|
||||
col, pageQuery, (data, id) => Package.fromMap(data, id),
|
||||
rowPerLoad: 30);
|
||||
}
|
||||
|
||||
Future<void> _loadCustomerPackages(bool isDelivered) async {
|
||||
_loadPaginationCustomerPackages(bool isDelivered) {
|
||||
if (user == null) return;
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user!.id);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user!.id)
|
||||
.orderBy("update_time", descending: true);
|
||||
Query col = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user!.id);
|
||||
|
||||
customerPackages!
|
||||
.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: isDelivered)
|
||||
.where("user_id", isEqualTo: user!.id)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
customerPackages?.close();
|
||||
customerPackages = PaginatorListener<Package>(
|
||||
col, pageQuery, (data, id) => Package.fromMap(data, id),
|
||||
rowPerLoad: 30);
|
||||
}
|
||||
|
||||
Future<void> _loadActivePackages() async {
|
||||
_loadPaginationActivePackages() {
|
||||
if (user == null) return;
|
||||
if (!((user!.hasPackages() ||
|
||||
user!.hasReceiving() ||
|
||||
user!.hasProcessing()))) return;
|
||||
String path = "/$packages_collection";
|
||||
|
||||
try {
|
||||
Query listenerQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false);
|
||||
Query col = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false);
|
||||
|
||||
pageQuery = pageQuery.orderBy("update_time", descending: true);
|
||||
activePackages!
|
||||
.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.where("is_delivered", isEqualTo: false)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
activePackages?.close();
|
||||
activePackages = PaginatorListener<Package>(
|
||||
col, pageQuery, (data, id) => Package.fromMap(data, id),
|
||||
rowPerLoad: 30);
|
||||
}
|
||||
|
||||
Future<Package?> getPackage(String id) async {
|
||||
|
||||
@@ -85,11 +85,8 @@ class _PackageListState extends State<PackageList> {
|
||||
),
|
||||
body: PaginatorListView<Package>(
|
||||
paginatorListener: packages!,
|
||||
rowBuilder: (p) => PackageListRow(
|
||||
key: ValueKey(p.id),
|
||||
package: p,
|
||||
isCustomer: widget.forCustomer,
|
||||
),
|
||||
rowBuilder: (p) =>
|
||||
PackageListRow(package: p, isCustomer: widget.forCustomer),
|
||||
color: primaryColor,
|
||||
)),
|
||||
);
|
||||
|
||||
@@ -27,12 +27,7 @@ class PickupModel extends BaseModel {
|
||||
}
|
||||
|
||||
Future<void> _initData() async {
|
||||
logout();
|
||||
pickups = PaginatorListener<Pickup>((data, id) => Pickup.fromMap(data, id),
|
||||
onChange: () {
|
||||
notifyListeners();
|
||||
}, rowPerLoad: 30, insertNewByListener: true);
|
||||
_loadPickups();
|
||||
_loadPaginationPickups();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -40,20 +35,18 @@ class PickupModel extends BaseModel {
|
||||
if (pickups != null) pickups!.close();
|
||||
}
|
||||
|
||||
Future<void> _loadPickups() async {
|
||||
_loadPaginationPickups() {
|
||||
if (user == null) return;
|
||||
String path = "/$pickup_collection";
|
||||
Query col = FirebaseFirestore.instance.collection(path);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
try {
|
||||
Query listenerQuery = FirebaseFirestore.instance.collection(path);
|
||||
Query pageQuery = FirebaseFirestore.instance
|
||||
.collection(path)
|
||||
.orderBy("update_time", descending: true);
|
||||
|
||||
pickups!.refresh(listeningQuery: listenerQuery, pageQuery: pageQuery);
|
||||
} catch (e) {
|
||||
log.warning("Error!! $e");
|
||||
}
|
||||
pickups?.close();
|
||||
pickups = PaginatorListener<Pickup>(
|
||||
col, pageQuery, (data, id) => Pickup.fromMap(data, id),
|
||||
rowPerLoad: 30);
|
||||
}
|
||||
|
||||
Future<void> complete(
|
||||
|
||||
@@ -65,7 +65,7 @@ class _PickupListState extends State<PickupList> {
|
||||
),
|
||||
body: PaginatorListView<Pickup>(
|
||||
paginatorListener: pickups!,
|
||||
rowBuilder: (p) => PickupListRow(key: ValueKey(p.id), pickup: p),
|
||||
rowBuilder: (p) => PickupListRow(pickup: p),
|
||||
color: primaryColor,
|
||||
)),
|
||||
);
|
||||
|
||||
@@ -74,10 +74,7 @@ class _ProcessingListState extends State<ProcessingList> {
|
||||
),
|
||||
body: PaginatorListView<Package>(
|
||||
paginatorListener: packages!,
|
||||
rowBuilder: (p) => ProcessingListRow(
|
||||
key: ValueKey(p.id),
|
||||
package: p,
|
||||
),
|
||||
rowBuilder: (p) => ProcessingListRow(package: p),
|
||||
color: primaryColor,
|
||||
)),
|
||||
);
|
||||
|
||||
@@ -65,10 +65,7 @@ class _ProcessingListState extends State<ProcessingList> {
|
||||
),
|
||||
body: PaginatorListView<Package>(
|
||||
paginatorListener: packages!,
|
||||
rowBuilder: (p) => ProcessingListRow(
|
||||
key: ValueKey(p.id),
|
||||
package: p,
|
||||
),
|
||||
rowBuilder: (p) => ProcessingListRow(package: p),
|
||||
color: primaryColor,
|
||||
)),
|
||||
);
|
||||
|
||||
@@ -73,13 +73,9 @@ class _ReceivingListState extends State<ReceivingList> {
|
||||
backgroundColor: primaryColor,
|
||||
),
|
||||
body: PaginatorListView<Package>(
|
||||
paginatorListener: packages!,
|
||||
rowBuilder: (p) => ReceivingListRow(
|
||||
key: ValueKey(p.id),
|
||||
package: p,
|
||||
),
|
||||
color: primaryColor,
|
||||
)),
|
||||
paginatorListener: packages!,
|
||||
rowBuilder: (p) => ReceivingListRow(package: p),
|
||||
color: primaryColor)),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'local_text.dart';
|
||||
|
||||
Reference in New Issue
Block a user