- Bug corrected within definitions which were still tied to the test project.

- Added pagination widget.
This commit is contained in:
Dave M. 2021-01-22 14:38:17 +00:00
parent 98d1685172
commit 52e55f2bba
10 changed files with 50 additions and 22 deletions

View File

@ -25,7 +25,6 @@
"mcnd/notes-security": "dev-master",
"mcnd/notes-tell": "dev-master",
"swiftmailer/swiftmailer": "^6.2@dev",
"php-di/php-di": "dev-master",
"league/route": "dev-master",
"laminas/laminas-diactoros": "2.5.x-dev",
"laminas/laminas-httphandlerrunner": "1.3.x-dev",

View File

@ -21,6 +21,8 @@ use Tuupola\Middleware\HttpBasicAuthentication;
use Notes\Route\RouteFetcher;
use Ulmus\User\Lib\Authenticate;
use Storage\SessionMiddleware;
return [
@ -30,7 +32,7 @@ return [
$fetcher = new RouteFetcher();
$fetcher->setFolderList(array_map(function($item) {
return getenv("PROJECT_PATH") . $item;
return $item;
}, $c->get(Lean\Lean::class)->getRoutable()));
return $fetcher;
@ -66,11 +68,13 @@ return [
};
},
'routes.middlewares' => [ "errorHandler", "dump", SessionMiddleware::class, CronardMiddleware::class, HttpBasicAuthentication::class, JavascriptMiddleware::class ],
'routes.list' => function($c) {
return function (ContainerInterface $container) {
$router = $container->get(Router::class);
foreach([ "errorHandler", "dump", SessionMiddleware::class, CronardMiddleware::class, HttpBasicAuthentication::class, JavascriptMiddleware::class ] as $middleware) {
foreach($container->get('routes.middlewares') as $middleware) {
if ( $container->has($middleware) ) {
$router->middleware($container->get($middleware));
}

View File

@ -31,9 +31,7 @@ return [
],
],
'ulmus' => [
'entities' => [ 'Growlogs\\Entity' ]
],
'ulmus' => [],
'tell' => [
'json' => [
@ -56,11 +54,7 @@ return [
]
],
'routes' => [
'Growlogs\\Api' => '/src/Api/',
'Growlogs\\Dev' => '/src/Dev/',
'Growlogs\\Web' => '/src/Web/',
],
'routes' => [],
],
Lean::class => autowire(Lean::class),

View File

@ -60,7 +60,6 @@ return [
LanguageHandler::class => function($c) {
return new class( $c->get(Tell\I18n::class) ) implements LanguageHandler {
public Tell\I18n $tell;
public function __construct(Tell\I18n $tell) {

View File

@ -0,0 +1,7 @@
{
"pagination": {
"next": "Next >",
"previous": "< Previous",
"shown": "elements shown"
}
}

View File

@ -35,7 +35,7 @@ trait ControllerTrait {
public ? MailerInterface $mailer;
public array $contextList = [];
#medias
public function exportJson(ServerRequestInterface $request, string $entityClass, bool $includeRelations = true, ? callable $callback = null) : ResponseInterface
{
foreach($entityClass::repository()->filterServerRequest( $entityClass::searchRequest()->fromRequest($request->withQueryParams($request->getQueryParams() + ['limit' => PHP_INT_MAX,])) )->loadAll() as $entity) {

View File

@ -59,7 +59,9 @@ class Kernel {
// Paths and directories
foreach($this->paths as $name => $envkey) {
static::putenv($name, realpath(getenv("PROJECT_PATH") . DIRECTORY_SEPARATOR . getenv($envkey)));
if ( ! getenv($name) ) {
static::putenv($name, realpath(getenv("PROJECT_PATH") . DIRECTORY_SEPARATOR . getenv($envkey)));
}
}
// Override using headers

View File

@ -41,7 +41,7 @@ class Lean
public function getPiceaContext() : string
{
foreach(array_reverse($this->applications) as $apps) {
if ( $apps->piceaContext ) {
if ( $apps->piceaContext ?? null ) {
return $apps->piceaContext;
}
}
@ -54,6 +54,11 @@ class Lean
return array_merge(...array_map(fn($app) => $app->routes ?? [], $this->applications));
}
public function getEntities() : array
{
return array_merge(...array_map(fn($app) => $app->entities ?? [], $this->applications));
}
public function getViewPaths() : array
{
$list = array_merge(...array_map(fn($app) => $app->views ?? [], $this->applications));

View File

@ -1,7 +1,11 @@
<div class="message-wrapper">
{% foreach array_filter(array_merge($this->contextList, [ $context ?? null ])) as $name => $context %}
{% foreach $context->messages ?? [] as $message %}
{{= $message->render() }}
{% endforeach %}
{% endforeach %}
</div>
{% php $messageList = array_filter(array_merge($this->contextList, [ $context ?? null ])) %}
{% if $messageList %}
<div class="message-wrapper">{% php
foreach($messageList as $name => $context) {
foreach($context->messages ?? [] as $message) {
echo $message->render();
}
}
%}</div>
{% endif %}

View File

@ -0,0 +1,14 @@
{% arguments string $url, int $page, int $pageCount, int $maxPage = 20 %}
<nav class="pagination-wrapper">
<ul class="pagination">
<li class="page-item {{ $page === 1 ? 'active' : '' }}"><a class="page-link" href="{% url.parameters $url, [ 'page' => 1 ] + get() %}">1</a></li>
{% foreach range(2, $pageCount < $maxPage ? $pageCount : $maxPage) as $pageIndex %}
<li class="page-item {{ $page === $pageIndex ? 'active' : '' }}"><a class="page-link" href="{% url.parameters $url, [ 'page' => $pageIndex ] + get() %}">{{ $pageIndex }}</a></li>
{% endforeach %}
<li class="page-item {{ $page === 1 ? 'disabled' : '' }}"><a class="page-link" href="{% url.parameters $url, [ 'page' => $page - 1 ] + get() %}">{% lang "lean.widget.pagination.previous" %}</a></li>
<li class="page-item {{ $page === $pageCount ? 'disabled' : '' }}"><a class="page-link" href="{% url.parameters $url, [ 'page' => $page + 1 ] + get() %}">{% lang "lean.widget.pagination.next" %}</a></li>
</ul>
</nav>