Added pagination to Pipework and Linework

This commit is contained in:
Frank Schubert
2021-09-14 20:42:12 +02:00
parent bd8f1609e6
commit 4809a5d6f1
8 changed files with 264 additions and 84 deletions

View File

@@ -18,11 +18,20 @@ class PipeworkController extends mfBaseController {
$this->layout()->setTemplate("Pipework/Index");
$this->layout->set("filter", $this->request->filter);
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 = [];
// get allowed networks
@@ -55,40 +64,43 @@ class PipeworkController extends mfBaseController {
unset($filter['network_id']);
// get Buildings in networks
$my_network_ids = [];
$networks = [];
foreach($my_networks as $network) {
if(!array_key_exists($network->name, $networks)) {
$networks[$network->name] = [];
}
$my_network_ids[] = $network->id;
}
$building_search = [
"network_id" => $network->id,
"workflow_finished" => 0
];
$building_search = [
"network_id" => $my_network_ids,
"workflow_finished" => 0
];
if(is_array($filter) && count($filter)) {
foreach($filter as $name => $value) {
$building_search[$name] = $value;
}
//$building_search = array_merge($building_search, $filter);
if(is_array($filter) && count($filter)) {
foreach($filter as $name => $value) {
$building_search[$name] = $value;
}
if($this->me->is("pipeworker") && !$this->me->is(["Admin","pipeplanner","netowner"])) {
$this->log->debug("is pipeworker");
$building_search["pipeworker_id"] = ($this->me->address->parent_id) ? $this->me->address->parent_id : $this->me->address_id;
if(!count($filter)) {
$building_search["status_id"] = 3;
}
//$building_search = array_merge($building_search, $filter);
}
if($this->me->is("pipeworker") && !$this->me->is(["Admin","pipeplanner","netowner"])) {
$this->log->debug("is pipeworker");
$building_search["pipeworker_id"] = ($this->me->address->parent_id) ? $this->me->address->parent_id : $this->me->address_id;
if(!count($filter)) {
$building_search["status_id"] = 3;
}
foreach(BuildingModel::search($building_search) as $b) {
if(!array_key_exists($b->id, $networks[$network->name])) {
$networks[$network->name][$b->id] = $b;
}
}
$pagination['maxItems'] = BuildingModel::count($building_search);
foreach(BuildingModel::search($building_search, $pagination) as $b) {
if(!array_key_exists($b->network->name, $networks)) {
$networks[$b->network->name] = [];
}
if(!array_key_exists($b->id, $networks[$b->network->name])) {
$networks[$b->network->name][$b->id] = $b;
}
}
@@ -108,8 +120,9 @@ class PipeworkController extends mfBaseController {
$i++;
}
//var_dump($item_colspan);exit;
$this->layout()->set("building_wf_colspan", $item_colspan);
$this->layout()->set("wfColspan", $item_colspan);
$this->layout()->set("networks", $networks);
$this->layout()->set("pagination", $pagination);
//var_dump(reset(reset($networks))->workflowitems);exit;