1
0
mirror of https://github.com/ToxicCrack/PrintABrick.git synced 2025-05-18 05:10:07 -07:00

Add SetsController

This commit is contained in:
David Hübner 2016-11-29 10:36:25 +01:00
parent cdc7150e36
commit f739ed1640
4 changed files with 108 additions and 3 deletions

View 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 %}

View File

@ -0,0 +1,7 @@
{% extends 'base.html.twig' %}
{% block body %}
{{ dump(set) }}
{% endblock %}

View 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,
]);
}
}

View File

@ -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;
}
}
}