diff --git a/Admin/Install/Media.install.json b/Admin/Install/Media.install.json index 0fe1e01..23b0ffc 100755 --- a/Admin/Install/Media.install.json +++ b/Admin/Install/Media.install.json @@ -19,7 +19,7 @@ "name": "Letter", "type": "default_letter", "virtualPath": "/Modules/Organization/Templates", - "path": "/Modules/Media/Files/Modules/Organization/Templates", + "path": "/Modules/Organization/Templates", "files": [ "/Modules/Organization/Admin/Install/Media/letter.doc.php" "/Modules/Organization/Admin/Install/Media/letter.pdf.php" diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 5bf6788..7d3e2ab 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -237,16 +237,28 @@ final class BackendController extends Controller $view->setTemplate('/Modules/Organization/Theme/Backend/department-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1004704001, $request, $response)); - $mapper = DepartmentMapper::getAll()->with('parent')->with('unit')->limit(25); + $pageLimit = 25; + $view->addData('pageLimit', $pageLimit); + $mapper = DepartmentMapper::getAll()->with('parent')->with('unit')->limit($pageLimit + 1); + + /** @var \Modules\Organization\Models\Department[] $departments */ + $departments = []; if ($request->getData('ptype') === 'p') { - $view->setData('departments', $mapper->where('id', (int) ($request->getData('id') ?? 0), '<')->execute()); + $departments = $mapper->where('id', (int) ($request->getData('id') ?? 0), '<')->execute(); } elseif ($request->getData('ptype') === 'n') { - $view->setData('departments', $mapper->where('id', (int) ($request->getData('id') ?? 0), '>')->execute()); + $departments = $mapper->where('id', (int) ($request->getData('id') ?? 0), '>')->execute(); } else { - $view->setData('departments', $mapper->where('id', 0, '>')->execute()); + $departments = $mapper->where('id', 0, '>')->execute(); } + $view->setData('hasMore', ($count = \count($departments)) > $pageLimit); + + if ($count > $pageLimit) { + \array_pop($departments); + } + $view->setData('departments', $departments); + return $view; } diff --git a/Theme/Backend/department-list.tpl.php b/Theme/Backend/department-list.tpl.php index eccec90..52bb5a0 100755 --- a/Theme/Backend/department-list.tpl.php +++ b/Theme/Backend/department-list.tpl.php @@ -20,8 +20,14 @@ use phpOMS\Uri\UriFactory; */ $departments = $this->getData('departments') ?? []; -$previous = empty($departments) ? '{/prefix}organization/department/list' : '{/prefix}organization/department/list?{?}&id=' . \reset($departments)->getId() . '&ptype=p'; -$next = empty($departments) ? '{/prefix}organization/department/list' : '{/prefix}organization/department/list?{?}&id=' . \end($departments)->getId() . '&ptype=n'; +$previous = empty($departments) + ? '{/prefix}organization/department/list' + : '{/prefix}organization/department/list?{?}&id=' . \reset($departments)->getId() . '&ptype=p'; +$next = empty($departments) + ? '{/prefix}organization/department/list' + : '{/prefix}organization/department/list?{?}&id=' + . ($this->getData('hasMore') ? \end($departments)->getId() : $this->request->getData('id')) + . '&ptype=n'; echo $this->getData('nav')->render(); ?>