1
0
mirror of https://github.com/ToxicCrack/PrintABrick.git synced 2025-05-17 21:00:09 -07:00

Change pagination limits,

This commit is contained in:
Unknown 2017-06-05 15:59:56 +02:00
parent 41695904bb
commit dcda3b62d7
10 changed files with 85 additions and 58 deletions

View File

@ -81,6 +81,10 @@ page:
set.index: Browse sets set.index: Browse sets
search: "Search: \"%query%\"" search: "Search: \"%query%\""
color: Colors color: Colors
error:
title: Error
large: Error
text: Sorry, an unexpected error has occured.
filter: filter:
model: model:
@ -121,11 +125,6 @@ empty:
models: models:
search.title: No results found for your search criteria search.title: No results found for your search criteria
page.error:
title:
large:
text:
part: part:
id: Number id: Number
name: Name name: Name

View File

@ -2,10 +2,20 @@
{% block title %}{{ 'page.error.title'|trans }}{% endblock %} {% block title %}{{ 'page.error.title'|trans }}{% endblock %}
{% block header %}{{ 'page.error.title'|trans }}{% endblock %}
{% block content %} {% block content %}
<h1 class="ui center aligned icon header"> <div class="segment very padded vertical ui secondary">
<i class="circular warning icon"></i> <div class="ui container">
{{ 'page.error.large'|trans }} <h1 class="ui center aligned icon header">
</h1> <i class="circular warning icon"></i>
<p class="ui center aligned">{{ 'page.error.text'|trans }}</p> <div class="content">
{{ 'page.error.large'|trans }}
<div class="sub header">{{ 'page.error.text'|trans }}</div>
</div>
</h1>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -6,6 +6,15 @@
{% block header %}{{ model.name }}{% endblock %} {% block header %}{{ model.name }}{% endblock %}
{% block meta %}
{{ blocks.meta(
model.id~' '~model.name,
app.request.uri,
'meta.description' | trans | striptags('sup'),
asset('-1/'~model.id~'.png') | imagine_filter('part_large')
)}}
{% endblock %}
{% block content %} {% block content %}
<div class="ui vertical segment secondary"> <div class="ui vertical segment secondary">
<div class="ui container stackable grid"> <div class="ui container stackable grid">
@ -27,7 +36,7 @@
</tr> </tr>
<tr> <tr>
<td>{{ 'model.category' | trans }}</td> <td>{{ 'model.category' | trans }}</td>
<td><a href="{{ path('model_index',{'m[category]':model.category.id}) }}">{{ model.category ? model.category.name }}</a></td> <td><a href="{{ path('model_index',{'category':model.category.id}) }}">{{ model.category ? model.category.name }}</a></td>
</tr> </tr>
<tr> <tr>
<td>{{ 'model.author' | trans }}</td><td>{{ model.author.name }}</td> <td>{{ 'model.author' | trans }}</td><td>{{ model.author.name }}</td>

View File

@ -6,10 +6,21 @@
{% block header %}{{ 'page.model.index' | trans }}{% endblock %} {% block header %}{{ 'page.model.index' | trans }}{% endblock %}
{% block meta %}
{{ blocks.meta(
name~' - '~'page.model.index' | trans,
app.request.uri,
'meta.description' | trans | striptags('sup'),
app.request.schemeAndHttpHost~asset('resources/images/meta-logo.png'),
256,
256
)}}
{% endblock %}
{% block content %} {% block content %}
<div class="ui segment vertical"> <div class="ui segment vertical secondary">
<div class="ui container stackable grid divided"> <div class="ui container stackable grid divided">
<div class="column four wide alternate stripe"> <div class="column four wide">
<div class="segment basic ui filter"> <div class="segment basic ui filter">
<h3 class="header dividing ui">{{ 'model.filter.title' | trans }}</h3> <h3 class="header dividing ui">{{ 'model.filter.title' | trans }}</h3>
{{ form_start(form) }} {{ form_start(form) }}
@ -31,18 +42,18 @@
<div class="segment basic ui"> <div class="segment basic ui">
<div class="ui header segment vertical sort"> <div class="ui header segment vertical sort">
<div class="ui grid stackable"> <div class="ui grid stackable">
<div class="left floated left aligned eleven wide column"> <div class="five wide column">
<div class="ui text menu"> <div class="ui text left floated menu">
<div class="header item">Sort By</div> <div class="header item">Showing</div>
{{ knp_pagination_sortable(models, 'Number', 'm.id') }} <span class="item">{{ models.paginationData['firstItemNumber']~' - '~models.paginationData['lastItemNumber'] }} of {{ models.getTotalItemCount }} items</span>
{{ knp_pagination_sortable(models, 'Name', 'm.name') }}
</div> </div>
</div> </div>
<div class="right floated right aligned five wide column"> <div class="eleven wide column">
<div class="ui text menu right floated"> <div class="ui text right floated menu">
<div class="header item">Showing</div> <div class="header item">Sort By</div>
<span class="item">{{ models.getTotalItemCount }}</span> {{ knp_pagination_sortable(models, 'Number', 'm.id') }}
{{ knp_pagination_sortable(models, 'Name', 'm.name') }}
</div> </div>
</div> </div>
</div> </div>

View File

@ -16,7 +16,7 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="ui vertical segment secondary"> <div class="ui vertical segment grey inverted tertiary">
<div class="ui container stackable grid"> <div class="ui container stackable grid">
<div class="row"> <div class="row">
<div class="column ten wide"> <div class="column ten wide">

View File

@ -35,11 +35,11 @@
<td>{{ 'set.name' | trans }}</td><td>{{ set.name }}</td> <td>{{ 'set.name' | trans }}</td><td>{{ set.name }}</td>
</tr> </tr>
<tr> <tr>
<td>{{ 'set.year' | trans }}</td><td><a href="{{ path('set_index',{'s[year][from]':set.year, 's[year][to]':set.year}) }}">{{ set.year }}</a></td> <td>{{ 'set.year' | trans }}</td><td><a href="{{ path('set_index',{'year[from]':set.year, 'year[to]':set.year}) }}">{{ set.year }}</a></td>
</tr> </tr>
<tr> <tr>
<td>{{ 'set.theme' | trans }}</td> <td>{{ 'set.theme' | trans }}</td>
<td><a href="{{ path('set_index',{'s[theme]' : set.theme.id }) }}">{{ set.theme ? set.theme.fullName }}</a></td> <td><a href="{{ path('set_index',{'theme' : set.theme.id }) }}">{{ set.theme ? set.theme.fullName }}</a></td>
</tr> </tr>
<tr> <tr>
<td>{{ 'set.parts' | trans }}</td><td> <td>{{ 'set.parts' | trans }}</td><td>
@ -111,6 +111,4 @@
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endblock %}
{% endblock %}

View File

@ -18,7 +18,7 @@
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="ui segment vertical"> <div class="ui segment vertical secondary">
<div class="ui container grid stackable divided"> <div class="ui container grid stackable divided">
<div class="column four wide alternate stripe mobile"> <div class="column four wide alternate stripe mobile">
<div class="segment basic ui filter"> <div class="segment basic ui filter">
@ -48,10 +48,17 @@
</div> </div>
<div class="column twelve wide"> <div class="column twelve wide">
<div class="ui segment basic"> <div class="ui segment basic">
<div class="ui header sort"> <div class="ui header segment vertical sort">
<div class="ui grid stackable"> <div class="ui grid stackable">
<div class="left floated left aligned twelve wide column"> <div class="five wide column">
<div class="ui text menu"> <div class="ui text left floated menu">
<div class="header item">Showing</div>
<span class="item">{{ sets.paginationData['firstItemNumber']~' - '~sets.paginationData['lastItemNumber'] }} of {{ sets.getTotalItemCount }} items</span>
</div>
</div>
<div class="eleven wide column">
<div class="ui text right floated menu">
<div class="header item">Sort By</div> <div class="header item">Sort By</div>
{{ knp_pagination_sortable(sets, 'Number', ['s.id']) }} {{ knp_pagination_sortable(sets, 'Number', ['s.id']) }}
@ -60,25 +67,18 @@
{{ knp_pagination_sortable(sets, 'Parts', ['s.partCount']) }} {{ knp_pagination_sortable(sets, 'Parts', ['s.partCount']) }}
</div> </div>
</div> </div>
<div class="right floated right aligned four wide column">
<div class="ui text right floated menu">
<div class="header item">Showing</div>
<span class="item">{{ sets.getTotalItemCount }}</span>
</div>
</div>
</div> </div>
</div> </div>
<div class="ui clearing divider"></div> <div class="ui segment vertical">
<div class="ui five column doubling grid sets" id="results"> <div class="ui five column doubling grid sets" id="results">
{% for set in sets %} {% for set in sets %}
{{ blocks.set(set) }} {{ blocks.set(set) }}
{% else %} {% else %}
{{ blocks.empty('empty.search.title' | trans ) }} {{ blocks.empty('empty.search.title' | trans ) }}
{% endfor %} {% endfor %}
</div>
</div> </div>
<div class="ui clearing divider"></div> <div class="ui segment vertical right floated">
<div class="ui footer right floated">
{{ knp_pagination_render(sets) }} {{ knp_pagination_render(sets) }}
</div> </div>
</div> </div>

View File

@ -10,7 +10,7 @@
{% endfor %} {% endfor %}
{% if inventorySets %} {% if inventorySets %}
<h3 class="ui horizontal divider header">Sets</h3> <h2 class="ui dividing header">Sets</h2>
<div class="ui eight column doubling grid sets"> <div class="ui eight column doubling grid sets">
{% for inventorySet in inventorySets %} {% for inventorySet in inventorySets %}
{{ blocks.set(inventorySet.set, inventorySet.quantity) }} {{ blocks.set(inventorySet.set, inventorySet.quantity) }}

View File

@ -5,18 +5,21 @@ namespace AppBundle\Controller;
use AppBundle\Entity\LDraw\Model; use AppBundle\Entity\LDraw\Model;
use AppBundle\Form\Search\ModelSearchType; use AppBundle\Form\Search\ModelSearchType;
use AppBundle\Model\ModelSearch; use AppBundle\Model\ModelSearch;
use AppBundle\Repository\Rebrickable\SetRepository;
use Knp\Component\Pager\Paginator; use Knp\Component\Pager\Paginator;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag; use Symfony\Component\HttpFoundation\ResponseHeaderBag;
/** /**
* Part controller. * Part controller.
* *
* @Route("models") * @Route("bricks")
*/ */
class ModelController extends Controller class ModelController extends Controller
{ {
@ -29,11 +32,11 @@ class ModelController extends Controller
{ {
$modelSearch = new ModelSearch(); $modelSearch = new ModelSearch();
$form = $this->get('form.factory')->createNamedBuilder('m', ModelSearchType::class, $modelSearch)->getForm(); $form = $this->get('form.factory')->createNamedBuilder('', ModelSearchType::class, $modelSearch)->getForm();
$form->handleRequest($request); $form->handleRequest($request);
$elasticaManager = $this->get('fos_elastica.manager'); $elasticaManager = $this->get('fos_elastica.manager');
$results = $elasticaManager->getRepository(Model::class)->search($modelSearch, 5000); $results = $elasticaManager->getRepository(Model::class)->search($modelSearch, 500);
/** @var Paginator $paginator */ /** @var Paginator $paginator */
$paginator = $this->get('knp_paginator'); $paginator = $this->get('knp_paginator');
@ -61,15 +64,12 @@ class ModelController extends Controller
if ($model = $this->get('repository.ldraw.model')->findOneByNumber($id)) { if ($model = $this->get('repository.ldraw.model')->findOneByNumber($id)) {
try { try {
$subparts = $this->get('service.model')->getAllSubparts($model); $subparts = $this->get('service.model')->getAllSubparts($model);
$rbParts = $model != null ? $this->get('repository.rebrickable.part')->findAllByModel($model) : null;
$sets = $model != null ? $this->get('repository.rebrickable.set')->findAllByModel($model) : null; $sets = $model != null ? $this->get('repository.rebrickable.set')->findAllByModel($model) : null;
$related = $this->get('repository.ldraw.model')->findAllRelatedModels($model->getId()); $related = $this->get('repository.ldraw.model')->findAllRelatedModels($model->getId());
return $this->render('model/detail.html.twig', [ return $this->render('model/detail.html.twig', [
'model' => $model, 'model' => $model,
'rbParts' => $rbParts,
'sets' => $sets, 'sets' => $sets,
'related' => $related, 'related' => $related,
'subparts' => $subparts, 'subparts' => $subparts,

View File

@ -29,18 +29,18 @@ class SetController extends Controller
{ {
$setSearch = new SetSearch(); $setSearch = new SetSearch();
$form = $this->get('form.factory')->createNamedBuilder('s', SetSearchType::class, $setSearch)->getForm(); $form = $this->get('form.factory')->createNamedBuilder('', SetSearchType::class, $setSearch)->getForm();
$form->handleRequest($request); $form->handleRequest($request);
/** @var SetRepository $setRepository */ /** @var SetRepository $setRepository */
$setRepository = $this->get('fos_elastica.manager')->getRepository(Set::class); $setRepository = $this->get('fos_elastica.manager')->getRepository(Set::class);
$results = $setRepository->search($setSearch, 5000); $results = $setRepository->search($setSearch, 500);
$paginator = $this->get('knp_paginator'); $paginator = $this->get('knp_paginator');
$sets = $paginator->paginate( $sets = $paginator->paginate(
$results, $results,
$request->query->getInt('page', 1)/*page number*/, $request->query->getInt('page', 1)/*page number*/,
$request->query->getInt('limit', 24)/*limit per page*/ $request->query->getInt('limit', 20)/*limit per page*/
); );
return $this->render('set/index.html.twig', [ return $this->render('set/index.html.twig', [