mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-17 21:00:09 -07:00
Add SetsController
This commit is contained in:
parent
cdc7150e36
commit
f739ed1640
41
app/Resources/views/sets/browse.html.twig
Normal file
41
app/Resources/views/sets/browse.html.twig
Normal file
@ -0,0 +1,41 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{{ form_start(form) }}
|
||||
{{ form_row(form.theme) }}
|
||||
{{ form_row(form.subtheme) }}
|
||||
{{ form_row(form.years) }}
|
||||
{{ form_end(form) }}
|
||||
|
||||
<ul>
|
||||
{% for set in sets %}
|
||||
<li><a href="{{ url('set_detail', {'id': set.setID, 'name' : set.name }) }}">{{ set.LegoSetID }} - {{ set.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ parent() }}
|
||||
<script>
|
||||
var $theme = $('#filter_set_theme');
|
||||
$theme.change(function() {
|
||||
var $form = $(this).closest('form');
|
||||
var data = {};
|
||||
data[$theme.attr('name')] = $theme.val();
|
||||
$.ajax({
|
||||
url : $form.attr('action'),
|
||||
type: $form.attr('method'),
|
||||
data : data,
|
||||
success: function(html) {
|
||||
$('#filter_set_subtheme').replaceWith(
|
||||
$(html).find('#filter_set_subtheme')
|
||||
);
|
||||
$('#filter_set_years').replaceWith(
|
||||
$(html).find('#filter_set_years')
|
||||
);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
7
app/Resources/views/sets/detail.html.twig
Normal file
7
app/Resources/views/sets/detail.html.twig
Normal file
@ -0,0 +1,7 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{{ dump(set) }}
|
||||
|
||||
{% endblock %}
|
54
src/AppBundle/Controller/SetsController.php
Normal file
54
src/AppBundle/Controller/SetsController.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace AppBundle\Controller;
|
||||
|
||||
use AppBundle\Form\FilterSetType;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* @Route("/sets")
|
||||
*/
|
||||
class SetsController extends Controller
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="sets_browse")
|
||||
*/
|
||||
public function browseAction(Request $request)
|
||||
{
|
||||
$form = $this->createForm(FilterSetType::class);
|
||||
|
||||
$form->handleRequest($request);
|
||||
|
||||
$sets = [];
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$data = $form->getData();
|
||||
|
||||
$sets = $this->get('client.brickset')->getSets([
|
||||
'theme' => $data['theme'] ? $data['theme']->getTheme() : '',
|
||||
'subtheme' => $data['subtheme'] ? $data['subtheme']->getSubtheme() : '',
|
||||
'year' => $data['years'] ? $data['years']->getYear() : '',
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->render('sets/browse.html.twig', [
|
||||
'form' => $form->createView(),
|
||||
'sets' => $sets,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/{id}_{name}", name="set_detail")
|
||||
*/
|
||||
public function detailAction(Request $request, $id, $name = null)
|
||||
{
|
||||
$collectionService = $this->get('app.collection_service');
|
||||
|
||||
$set = $collectionService->getSetById($id);
|
||||
|
||||
return $this->render('sets/detail.html.twig', [
|
||||
'set' => $set,
|
||||
]);
|
||||
}
|
||||
}
|
@ -6,15 +6,18 @@ use Knp\Menu\FactoryInterface;
|
||||
|
||||
class Builder
|
||||
{
|
||||
|
||||
public function mainMenu(FactoryInterface $factory, array $options)
|
||||
{
|
||||
$menu = $factory->createItem('root');
|
||||
|
||||
$menu->addChild('Home', [
|
||||
'route' => 'homepage'
|
||||
'route' => 'homepage',
|
||||
]);
|
||||
|
||||
$menu->addChild('Sets', [
|
||||
'route' => 'sets_browse',
|
||||
]);
|
||||
|
||||
return $menu;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user