mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-17 04:40:08 -07:00
Update Controllers
This commit is contained in:
parent
61caac6f55
commit
2976f6b801
1
.gitignore
vendored
1
.gitignore
vendored
@ -18,4 +18,5 @@
|
||||
/node_modules/
|
||||
/app/Resources/libs/semantic/dist
|
||||
/web/resources/
|
||||
/web/media/
|
||||
.php_cs.cache
|
@ -2,39 +2,56 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
{% block stylesheets %}
|
||||
<link rel="stylesheet" href="{{ asset('resources/css/main.css') }}">
|
||||
{% endblock %}
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}
|
||||
<div class="ui fixed inverted menu">
|
||||
{{ knp_menu_render('mainMenu') }}
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>{% block title %}PrintABrick{% endblock %}</title>
|
||||
{% block stylesheets %}
|
||||
<link rel="stylesheet" href="{{ asset('resources/css/main.css') }}">
|
||||
{% endblock %}
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}
|
||||
<div class="ui fixed inverted menu">
|
||||
{{ knp_menu_render('mainMenu') }}
|
||||
</div>
|
||||
<div class="ui main container">
|
||||
|
||||
<div class="ui masthead vertical segment">
|
||||
<div class="introduction">
|
||||
<div class="ui small breadcrumb">
|
||||
{% for breadcrumb_item in knp_menu_get_breadcrumbs_array(knp_menu_get_current_item('mainMenu')) %}
|
||||
{% if not loop.last %}
|
||||
<a class="section" href="{{ breadcrumb_item.uri }}">{{ breadcrumb_item.label }}</a>
|
||||
<i class="right chevron icon divider"></i>
|
||||
{% else %}
|
||||
<a class="active section">{{ breadcrumb_item.label }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<h1 class="ui header">{% block header %}{% endblock %}</h1>
|
||||
</div>
|
||||
<div class="ui main container">
|
||||
{% for label, flashes in app.session.flashbag.all %}
|
||||
{% for flash in flashes %}
|
||||
{{ elements.flash(label,flash) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{% for label, flashes in app.session.flashbag.all %}
|
||||
{% for flash in flashes %}
|
||||
{{ elements.flash(label,flash) }}
|
||||
{% endfor %}
|
||||
{% block content %}
|
||||
{% endfor %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
{% block javascripts %}
|
||||
|
||||
<script type="text/javascript" src="{{ asset('resources/js/three.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('resources/js/three.js') }}"></script>
|
||||
|
||||
<script type="text/javascript" src="{{ asset('resources/js/OrbitControls.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('resources/js/OrbitControls.js') }}"></script>
|
||||
|
||||
|
||||
<script src="{{ asset('resources/js/main.js') }}"></script>
|
||||
{% endblock %}
|
||||
</body>
|
||||
<script src="{{ asset('resources/js/main.js') }}"></script>
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,7 +1,11 @@
|
||||
{% macro part(model) %}
|
||||
<div style="height: 100px; width: 100px; padding: 5px; display: inline-block;">
|
||||
<img src="{{ url('media_file', {'path': 'ldraw/images/'~model.number~'.png'}) }}" style="max-height: 90%; max-width: 100%">
|
||||
<p><a href="{{ url('model_detail', {'number': model.number}) }}">{{ model.number }}</a></p>
|
||||
<div class="column">
|
||||
<div class="ui bordered fluid image">
|
||||
<a href="{{ url('model_detail', {'number': model.number})}}">
|
||||
<img src="{{ asset('/ldraw/images/'~model.number~'.png') | imagine_filter('model') }}">
|
||||
<div class="ui bottom attached label">{{ model.number }}</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
|
@ -2,8 +2,11 @@
|
||||
|
||||
{% import 'macros/elements.html.twig' as elements %}
|
||||
|
||||
{% block title %}{{ model.name }}{% endblock %}
|
||||
|
||||
{% block header %}{{ model.name }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if model %}
|
||||
<dl>
|
||||
<dt>number:</dt><dd>{{ model.number }}</dd>
|
||||
<dt>name:</dt><dd>{{ model.name }}</dd>
|
||||
@ -34,12 +37,10 @@
|
||||
</div>
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
{% endif %}
|
||||
|
||||
<div style="display: flex; flex-wrap: wrap">
|
||||
<div id="model" style="height: 300px; width: 300px; padding: 5px; display: inline-block"></div>
|
||||
<div id="model" style="height: 200px; width: 300px; padding: 5px; display: inline-block"></div>
|
||||
<div style="height: 300px; width: 300px; padding: 5px; display: inline-block">
|
||||
<img src="{{ url('media_file', {'path': 'ldraw/images/'~model.number~'.png'}) }}" style="max-height: 90%; max-width: 100%">
|
||||
</div>
|
||||
@ -75,10 +76,8 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
window.onload = function() {
|
||||
modelView = new ModelViewer();
|
||||
var scene = modelView.initScene($('#model'));
|
||||
modelView = new ModelViewer($('#model'));
|
||||
modelView.loadStl('{{ url('media_file', {'path': model.path }) }}');
|
||||
modelView.render();
|
||||
};
|
||||
</script>
|
||||
{% endblock %}
|
@ -3,7 +3,7 @@
|
||||
{% import 'macros/elements.html.twig' as elements %}
|
||||
|
||||
{% block content %}
|
||||
<form method="get" action="." class="ui form">
|
||||
<form method="get" action="" class="ui form">
|
||||
{{ form_start(form) }}
|
||||
|
||||
{{ form_row(form.search) }}
|
||||
@ -19,14 +19,10 @@
|
||||
|
||||
|
||||
<p>{{ models.getTotalItemCount }}</p>
|
||||
<div class="ui ten column grid">
|
||||
<div class="row">
|
||||
{% for model in models %}
|
||||
<div class="column">
|
||||
{{ elements.part(model) }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="ui eight column grid">
|
||||
{% for model in models %}
|
||||
{{ elements.part(model) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
{{ knp_pagination_render(models) }}
|
@ -15,9 +15,6 @@
|
||||
<img src="{{ apiPart.imgUrl }}" style="max-height: 90%; max-width: 100%">
|
||||
</div>
|
||||
{% endif %}
|
||||
<div style="height: 300px; width: 300px; padding: 5px; display: inline-block">
|
||||
<img src="{{ url('model_image', {number:part.number}) }}" style="max-height: 90%; max-width: 100%">
|
||||
</div>
|
||||
|
||||
{% if part.model %}
|
||||
{{ elements.part(part.model) }}
|
||||
@ -28,9 +25,19 @@
|
||||
<i class="puzzle icon"></i> Sets
|
||||
</h4>
|
||||
|
||||
|
||||
<div class="ui eight column grid">
|
||||
{% for set in sets %}
|
||||
<span style="margin: 5px"><a href="{{ url('set_detail', {number:set.number}) }}">{{ set.number }}</a></span>
|
||||
<div class="column">
|
||||
<div class="ui fluid bordered image">
|
||||
<a href="{{ url('set_detail', {number:set.number}) }}">
|
||||
<img class="ui bordered image" src="{{ set|setImage|imagine_filter('rebrickable_set_min') }}">
|
||||
<div class="ui bottom attached label">{{ set.number }}<br></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div>
|
||||
|
||||
{{ dump(apiPart) }}
|
||||
|
||||
|
@ -10,8 +10,9 @@
|
||||
<dt>count of parts:</dt><dd>{{ set.partCount }}</dd>
|
||||
</dl>
|
||||
|
||||
<img class="ui bordered image medium" src="{{ rbset ? rbset.imgUrl }}">
|
||||
<img class="ui bordered image medium" src="{{ set|setImage|imagine_filter('rebrickable_set_mid') }}">
|
||||
|
||||
{{ dump(rbset.imgUrl) }}
|
||||
|
||||
<h4 class="ui horizontal divider header">
|
||||
<i class="cubes icon"></i> Parts {{ inventoryParts|length }}
|
||||
@ -20,36 +21,18 @@
|
||||
<div class="ui eight column grid">
|
||||
{% for inventoryPart in inventoryParts %}
|
||||
<div class="column">
|
||||
<div class="ui fluid image {{ inventoryPart.part.model == null ? 'active dimmer'}}" style="height: 150px;">
|
||||
<a class="ui right red circular label">{{ inventoryPart.quantity }}</a>
|
||||
<div class="ui fluid bordered image">
|
||||
<a class="ui right {{ inventoryPart.part.model == null ? 'black' : 'red'}} circular label">{{ inventoryPart.quantity }}</a>
|
||||
<a href="{{ path('rebrickable_part_show', {number: inventoryPart.part.number}) }}">
|
||||
<img src="https://rebrickable.com/media/parts/ldraw/{{inventoryPart.color ? inventoryPart.color.id }}/{{ inventoryPart.part.number }}.png">
|
||||
<img src="{{ inventoryPart.part|partImage(inventoryPart.color)| imagine_filter('rebrickable_part_min') }}">
|
||||
<div style="border-bottom: #{{ inventoryPart.color.rgb }} 5px solid" class="ui bottom attached label">{{ inventoryPart.part.number }}<br>{{ inventoryPart.isSpare ? 'Spare' : 'Regular' }}</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div>
|
||||
|
||||
|
||||
<h4 class="ui horizontal divider header">
|
||||
<i class="cubes icon"></i> Models {{ parts|length }}
|
||||
</h4>
|
||||
|
||||
<div class="ui eight column grid">
|
||||
{% for part in parts %}
|
||||
<div class="column">
|
||||
<div class="ui bordered fluid image">
|
||||
<a href="{{ path('model_detail', {number: part.number}) }}">
|
||||
<img src="https://rebrickable.com/media/parts/ldraw/-1/{{ part.number }}.png">
|
||||
<div class="ui bottom attached label">{{ part.number }} </div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div>
|
||||
|
||||
|
||||
{% endif %}
|
||||
|
||||
{{ brset ? dump(brset) }}
|
||||
|
@ -12,7 +12,7 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
/**
|
||||
* @Route("/media")
|
||||
* @Route("/files")
|
||||
*/
|
||||
class MediaController extends Controller
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace AppBundle\Controller\LDraw;
|
||||
namespace AppBundle\Controller;
|
||||
|
||||
use AppBundle\Entity\LDraw\Model;
|
||||
use AppBundle\Entity\Rebrickable\Part;
|
||||
@ -14,14 +14,14 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
/**
|
||||
* Part controller.
|
||||
*
|
||||
* @Route("ldraw")
|
||||
* @Route("models")
|
||||
*/
|
||||
class ModelController extends Controller
|
||||
{
|
||||
/**
|
||||
* Lists all part entities.
|
||||
*
|
||||
* @Route("/models/", name="ldraw_model_index")
|
||||
* @Route("/", name="model_index")
|
||||
* @Method("GET")
|
||||
*/
|
||||
public function indexAction(Request $request)
|
||||
@ -45,10 +45,10 @@ class ModelController extends Controller
|
||||
$models = $paginator->paginate(
|
||||
$filterBuilder->getQuery(),
|
||||
$request->query->getInt('page', 1)/*page number*/,
|
||||
$request->query->getInt('limit', 100)/*limit per page*/
|
||||
$request->query->getInt('limit', 40)/*limit per page*/
|
||||
);
|
||||
|
||||
return $this->render('ldraw/model/index.html.twig', [
|
||||
return $this->render('model/index.html.twig', [
|
||||
'models' => $models,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
@ -57,7 +57,7 @@ class ModelController extends Controller
|
||||
/**
|
||||
* Finds and displays a part entity.
|
||||
*
|
||||
* @Route("/models/{number}", name="model_detail")
|
||||
* @Route("/{number}", name="model_detail")
|
||||
* @Method("GET")
|
||||
*/
|
||||
public function detailAction($number)
|
||||
@ -65,11 +65,20 @@ class ModelController extends Controller
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
if($model = $this->get('manager.ldraw.model')->findByNumber($number)) {
|
||||
|
||||
|
||||
// $bin = $this->get('imagine.data.loader.media')->find('/ldraw/images/'.$model->getNumber().'.png');
|
||||
//
|
||||
// $path = $this->get('imagine.cache.resolver.media')->resolve('/ldraw/images/'.$model->getNumber().'.png','model');
|
||||
//
|
||||
// $this->get('imagine.cache.resolver.media')->store($bin,$path,'model');
|
||||
|
||||
|
||||
try {
|
||||
$rbParts = $model != null ? $em->getRepository(Part::class)->findAllByModel($model) : null;
|
||||
$sets = $model != null ? $em->getRepository(Set::class)->findAllByModel($model) : null;
|
||||
|
||||
return $this->render('ldraw/model/detail.html.twig', [
|
||||
return $this->render('model/detail.html.twig', [
|
||||
'model' => $model,
|
||||
'rbParts' => $rbParts,
|
||||
'sets' => $sets,
|
@ -67,7 +67,6 @@ class SetController extends Controller
|
||||
'set' => $set,
|
||||
'brset' => $brset,
|
||||
'rbset' => $rbset,
|
||||
'parts' => $em->getRepository(Model::class)->findAllBySetNumber($number),
|
||||
'inventoryParts' => $em->getRepository(Inventory_Part::class)->findAllBySetNumber($number),
|
||||
]);
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ class Builder
|
||||
]);
|
||||
|
||||
$menu->addChild('Models', [
|
||||
'route' => 'ldraw_model_index',
|
||||
'route' => 'model_index',
|
||||
]);
|
||||
|
||||
$menu->addChild('Sets', [
|
||||
|
Loading…
x
Reference in New Issue
Block a user