Added more Pagination

This commit is contained in:
Frank Schubert
2021-09-14 22:07:26 +02:00
parent 4809a5d6f1
commit 9709a33747
7 changed files with 329 additions and 63 deletions

View File

@@ -23,16 +23,27 @@ class OrderController extends mfBaseController {
if($this->request->filter) {
$filter = $this->getPreparedFilter($this->request->filter);
}
// pagination defaults
$pagination = [];
$pagination['start'] = 0;
$pagination['count'] = 5;
$pagination['maxItems'] = 0;
if(is_numeric($this->request->s)) {
$pagination['start'] = intval($this->request->s);
}
$my_networks = [];
if($this->me->is("Admin")) {
$my_networks = NetworkModel::getAll();
$this->layout()->set("mynetworks", $my_networks);
/*
if(!count($filter)) {
$this->layout()->set("orders", OrderModel::getAll());
return true;
}
}*/
if($filter['network_id']) {
//$this->layout()->set("orders", OrderModel::search(['network_id' => $filter['network_id']]));
@@ -63,35 +74,48 @@ class OrderController extends mfBaseController {
// get Orders in my networks
$my_network_ids = [];
$orders = [];
//var_dump($this->me->my_networks);exit;
foreach($my_networks as $network) {
$order_search = [
'network_id' => $network->id
];
$my_network_ids[] = $network->id;
if(is_array($filter) && count($filter)) {
foreach($filter as $name => $value) {
$order_search[$name] = $value;
}
}
foreach(OrderModel::search($order_search) as $order) {
if(!array_key_exists($order->id, $orders)) {
$orders[$order->id] = $order;
}
}
$order_search = [
'network_id' => $my_network_ids
];
if(is_array($filter) && count($filter)) {
foreach($filter as $name => $value) {
$order_search[$name] = $value;
}
}
$pagination['maxItems'] = OrderModel::count($order_search);
foreach(OrderModel::search($order_search, $pagination) as $order) {
if(!array_key_exists($order->id, $orders)) {
$orders[$order->id] = $order;
}
}
$lonelyOrders = [];
if(!count($filter)) {
foreach(OrderModel::search(['create_by' => $this->me->id]) as $order) {
if($this->me->isAdmin()) {
$lonelies = OrderModel::search(['product_id' => null]);
} else {
$lonelies = OrderModel::search(['product_id' => null, 'create_by' => $this->me->id]);
}
foreach($lonelies as $order) {
if(!array_key_exists($order->id, $orders)) {
$orders[$order->id] = $order;
$lonelyOrders[$order->id] = $order;
}
}
}
$this->layout()->set("orders", $orders);
$this->layout()->set("lonelyOrders", $lonelyOrders);
$this->layout()->set("pagination", $pagination);
}