{{ model.id }}
+{{ model.id }}
+{{ part.id }}
+{{ part.id }}
+
- {% if quantity %}{{ quantity }}x{% endif %}
- {% if set.name|length > 17 %}
- {{ set.name | slice(0,17) }} …
- {% else %}
- {{ set.name }}
- {% endif %}
+
+ {{ set.name }}
diff --git a/app/Resources/views/model/detail.html.twig b/app/Resources/views/model/detail.html.twig
index 805dca6..e744bd3 100644
--- a/app/Resources/views/model/detail.html.twig
+++ b/app/Resources/views/model/detail.html.twig
@@ -7,7 +7,7 @@
{% block header %}{{ model.name }}{% endblock %}
{% block content %}
-
+
{{ blocks.partImage(model.id,'part_large') }}
@@ -17,7 +17,7 @@
- {{ 'model.number' | trans }}
+ {{ 'model.id' | trans }}
{{ model.id }}
@@ -39,18 +39,21 @@
{{ 'model.keywords' | trans }}
- {% for keyword in model.keywords %}
- {{ keyword.name }}
- {% endfor %}
+
+ {% for keyword in model.keywords %}
+ {{ keyword.name }}
+ {% endfor %}
+
{% if model.aliases|length %}
{{ 'model.aliases' | trans }}
- {% for alias in model.aliases | slice(0,10)%}
+ {% for alias in model.aliases | slice(0,20)%}
{{ alias.id }}{% if not loop.last %},{% endif %}
{% endfor %}
+ {% if model.aliases|length > 20 %}…{% endif %}
{% endif %}
diff --git a/app/Resources/views/model/index.html.twig b/app/Resources/views/model/index.html.twig
index 593ba3d..07cc44f 100644
--- a/app/Resources/views/model/index.html.twig
+++ b/app/Resources/views/model/index.html.twig
@@ -12,24 +12,37 @@
{{ 'model.filter.title' | trans }}
{##}
-
- {% for model in models %}
- {{ blocks.model(model) }}
- {% else %}
- {{ blocks.empty('empty.models') }}
- {% endfor %}
+
+
+
+
+
+ {% for model in models %}
+ {{ blocks.model(model) }}
+ {% else %}
+ {{ blocks.empty('empty.models') }}
+ {% endfor %}
+
+
{{ knp_pagination_render(models) }}
diff --git a/app/Resources/views/search/index.html.twig b/app/Resources/views/search/index.html.twig
index 28067a4..26b289c 100644
--- a/app/Resources/views/search/index.html.twig
+++ b/app/Resources/views/search/index.html.twig
@@ -2,28 +2,31 @@
{% import 'macros/blocks.html.twig' as blocks %}
-{% block title %}{% endblock %}
+{% block title %}{{ 'page.search' | trans({'%query%':query}) }}{% endblock %}
-{% block header %}{% endblock %}
+{% block header %}{{ 'page.search' | trans({'%query%':query}) }}{% endblock %}
{% block content %}
- Sets
-
-
+
+
- Models
-
-
+
{% endblock %}
\ No newline at end of file
diff --git a/app/Resources/views/set/detail.html.twig b/app/Resources/views/set/detail.html.twig
index 4c0442b..17d8fc1 100644
--- a/app/Resources/views/set/detail.html.twig
+++ b/app/Resources/views/set/detail.html.twig
@@ -27,18 +27,20 @@
{{ 'set.theme' | trans }}
- {{ set.theme ? set.theme.name }}
+ {{ set.theme ? set.theme.fullName }}
{{ 'set.parts' | trans }}
- {{ set.partCount }} {{ brset ? '('~brset.pieces~')' }}
+ {{ set.partCount~' (Rebrickable)' }}{{ brset and brset.pieces ? ' / '~brset.pieces~' (Brickset)' }}
{% if brset %}
-
- {{ 'set.minifigs' | trans }}
- {{ brset.minifigs }}
-
+ {% if brset.minifigs %}
+
+ {{ 'set.minifigs' | trans }}
+ {{ brset.minifigs }}
+
+ {% endif %}
{{ 'set.rating' | trans }}
@@ -109,9 +111,9 @@
-
- {{ 'set.models.text' | trans({'%rebrickable%' : partCount, '%brickset%' : brset ? brset.pieces }) | nl2br }}
-
+ {##}
+ {#{{ 'set.models.text' | trans({'%rebrickable%' : partCount, '%brickset%' : brset ? brset.pieces }) | nl2br }}
#}
+ {##}
-
-
+
-
-
- {% for set in sets %}
- {{ blocks.set(set) }}
- {% else %}
- {{ blocks.empty('empty.sets') }}
- {% endfor %}
-
+
+
+ {% for set in sets %}
+ {{ blocks.set(set) }}
+ {% else %}
+ {{ blocks.empty('empty.sets') }}
+ {% endfor %}
-
+
{{ knp_pagination_render(sets) }}
diff --git a/app/Resources/views/set/tabs/colors.html.twig b/app/Resources/views/set/tabs/colors.html.twig
index 55cf960..0e31dd7 100644
--- a/app/Resources/views/set/tabs/colors.html.twig
+++ b/app/Resources/views/set/tabs/colors.html.twig
@@ -9,24 +9,27 @@
{% endfor %}
{% if colors|length > 0 %}
- {% for color in colors %}
-
- {{ color['color'].name }} ({{ color['quantity'] }})
-
-
-
-
- {% for model in color['models'] %}
- {{ blocks.model(model['model'],model['quantity'], color['color'].id) }}
- {% endfor %}
+
+ Models
+ {% for color in colors %}
+
+
+ {{ color['color'].name }} ({{ color['quantity'] }})
+
+
+ {% for model in color['models'] %}
+ {{ blocks.model(model['model'],model['quantity'], color['color'].id) }}
+ {% endfor %}
+
-
- {% endfor %}
+ {% endfor %}
+
{% endif %}
{% if missing|length > 0 %}
-
+ Missing
+
{% for part in missing %}
{{ blocks.part(part['part'],part['quantity']) }}
{% endfor %}
diff --git a/app/Resources/views/set/tabs/models.html.twig b/app/Resources/views/set/tabs/models.html.twig
index fe2782b..d241165 100644
--- a/app/Resources/views/set/tabs/models.html.twig
+++ b/app/Resources/views/set/tabs/models.html.twig
@@ -10,7 +10,8 @@
{% if models|length > 0 %}
-
+ Models
+
{% for model in models %}
{{ blocks.model(model['model'],model['quantity']) }}
{% endfor %}
@@ -19,7 +20,8 @@
{% endif %}
{% if missing|length > 0 %}
-
+ Missing
+
{% for part in missing %}
{{ blocks.part(part['part'],part['quantity']) }}
{% endfor %}
diff --git a/app/Resources/views/set/tabs/sets.html.twig b/app/Resources/views/set/tabs/sets.html.twig
index b84618a..5312a70 100644
--- a/app/Resources/views/set/tabs/sets.html.twig
+++ b/app/Resources/views/set/tabs/sets.html.twig
@@ -9,7 +9,7 @@
{% endfor %}
{% if inventorySets %}
- Sets
+ Sets
{% for inventorySet in inventorySets %}
diff --git a/app/config/config/liip_imagine.yml b/app/config/config/liip_imagine.yml
index 50beb82..8229250 100644
--- a/app/config/config/liip_imagine.yml
+++ b/app/config/config/liip_imagine.yml
@@ -26,6 +26,7 @@ liip_imagine:
cache: ~
default_image: "/resources/images/noimage_min.png"
filters:
+ upscale: {min: [200, 200]}
thumbnail: { size: [200, 200], mode: inset, allow_upscale: true }
background: { size: [250, 250], position: center, color: '#FFFFFF' }
part_large:
diff --git a/composer.json b/composer.json
index 65df0f5..ea0426d 100644
--- a/composer.json
+++ b/composer.json
@@ -11,7 +11,7 @@
"psr-4": { "Tests\\": "tests/" }
},
"require": {
- "php": ">=7.0",
+ "php": "^7.0",
"symfony/symfony": "3.2.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
diff --git a/composer.lock b/composer.lock
index 3b5dfed..1ee9873 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "f3808dea37da4032a73d71e76ffca16c",
+ "content-hash": "292225406393a05e8d4b946ebe444df9",
"packages": [
{
"name": "composer/ca-bundle",
@@ -4429,16 +4429,16 @@
},
{
"name": "sebastian/environment",
- "version": "3.0.2",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "11e7710b7724d42c62249b0e9d3030240398949d"
+ "reference": "02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/11e7710b7724d42c62249b0e9d3030240398949d",
- "reference": "11e7710b7724d42c62249b0e9d3030240398949d",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3",
+ "reference": "02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3",
"shasum": ""
},
"require": {
@@ -4475,7 +4475,7 @@
"environment",
"hhvm"
],
- "time": "2017-04-21T14:40:32+00:00"
+ "time": "2017-05-18T10:10:00+00:00"
},
{
"name": "sebastian/exporter",
@@ -5212,7 +5212,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=7.0"
+ "php": "^7.0"
},
"platform-dev": []
}
diff --git a/src/AppBundle/Imagine/PartImageLoader.php b/src/AppBundle/Imagine/PartImageLoader.php
index dab1553..2b7a126 100644
--- a/src/AppBundle/Imagine/PartImageLoader.php
+++ b/src/AppBundle/Imagine/PartImageLoader.php
@@ -38,7 +38,8 @@ class PartImageLoader extends BaseImageLoader
// try to load image from rebrickable website
try {
if ($this->remoteFileExists($this->rebrickableContext.$path)) {
- return file_get_contents($this->rebrickableContext.$path);
+ $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
+ return file_get_contents($this->rebrickableContext.strtolower($path),false,$context);
}
} catch (\Exception $e) {
throw new NotLoadableException(sprintf('Source image %s could not be loaded.', $path), $e->getCode(), $e);
diff --git a/src/AppBundle/Imagine/SetImageLoader.php b/src/AppBundle/Imagine/SetImageLoader.php
index b99e3a0..797fa5a 100644
--- a/src/AppBundle/Imagine/SetImageLoader.php
+++ b/src/AppBundle/Imagine/SetImageLoader.php
@@ -32,7 +32,8 @@ class SetImageLoader extends BaseImageLoader
// try to load image from rebrickable website
try {
if ($this->remoteFileExists($this->rebrickableContext.strtolower($path))) {
- return file_get_contents($this->rebrickableContext.strtolower($path));
+ $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
+ return file_get_contents($this->rebrickableContext.strtolower($path),false,$context);
}
} catch (\Exception $e) {
throw new NotLoadableException(sprintf('Source image %s could not be loaded.', $path), $e->getCode(), $e);
diff --git a/src/AppBundle/Service/Stl/StlConverterService.php b/src/AppBundle/Service/Stl/StlConverterService.php
index 57f26df..8b6511f 100644
--- a/src/AppBundle/Service/Stl/StlConverterService.php
+++ b/src/AppBundle/Service/Stl/StlConverterService.php
@@ -3,7 +3,7 @@
namespace AppBundle\Service\Stl;
use AppBundle\Exception\ConvertingFailedException;
-use AppBundle\Exception\LDView\LDLibraryMissingException;
+use AppBundle\Exception\Stl\LDLibraryMissingException;
use League\Flysystem\File;
use League\Flysystem\Filesystem;
use Symfony\Component\Process\Exception\ProcessFailedException;
-
-
{{ 'model.number' | trans }} | +{{ 'model.id' | trans }} | {{ model.id }} |
{{ 'model.keywords' | trans }} |
- {% for keyword in model.keywords %}
- {{ keyword.name }}
- {% endfor %}
+
+ {% for keyword in model.keywords %}
+ {{ keyword.name }}
+ {% endfor %}
+
|
|
{{ 'model.aliases' | trans }} | - {% for alias in model.aliases | slice(0,10)%} + {% for alias in model.aliases | slice(0,20)%} {{ alias.id }}{% if not loop.last %},{% endif %} {% endfor %} + {% if model.aliases|length > 20 %}…{% endif %} | |
{{ 'set.theme' | trans }} | -{{ set.theme ? set.theme.name }} | +{{ set.theme ? set.theme.fullName }} |
{{ 'set.parts' | trans }} | - {{ set.partCount }} {{ brset ? '('~brset.pieces~')' }} + {{ set.partCount~' (Rebrickable)' }}{{ brset and brset.pieces ? ' / '~brset.pieces~' (Brickset)' }} | |
{{ 'set.minifigs' | trans }} | -{{ brset.minifigs }} | -|
{{ 'set.minifigs' | trans }} | +{{ brset.minifigs }} | +|
{{ 'set.rating' | trans }} |
@@ -109,9 +111,9 @@
-
-
+ {#{{ 'set.models.text' | trans({'%rebrickable%' : partCount, '%brickset%' : brset ? brset.pieces }) | nl2br }} -#}
+ {# #}
{{ 'set.models.text' | trans({'%rebrickable%' : partCount, '%brickset%' : brset ? brset.pieces }) | nl2br }} #} + {#
-
-
+
-
-
- {% for set in sets %}
- {{ blocks.set(set) }}
- {% else %}
- {{ blocks.empty('empty.sets') }}
- {% endfor %}
-
+
+
-
+ {% for set in sets %}
+ {{ blocks.set(set) }}
+ {% else %}
+ {{ blocks.empty('empty.sets') }}
+ {% endfor %}
+
diff --git a/app/Resources/views/set/tabs/colors.html.twig b/app/Resources/views/set/tabs/colors.html.twig
index 55cf960..0e31dd7 100644
--- a/app/Resources/views/set/tabs/colors.html.twig
+++ b/app/Resources/views/set/tabs/colors.html.twig
@@ -9,24 +9,27 @@
{% endfor %}
{% if colors|length > 0 %}
- {% for color in colors %}
-
{{ knp_pagination_render(sets) }}
- {{ color['color'].name }} ({{ color['quantity'] }}) --
-
-
- {% for model in color['models'] %}
- {{ blocks.model(model['model'],model['quantity'], color['color'].id) }}
- {% endfor %}
+
{% endif %}
{% if missing|length > 0 %}
+
- {% endfor %}
+ {% endfor %}
+ Models+ {% for color in colors %} +
+
- + {{ color['color'].name }} ({{ color['quantity'] }}) ++
+ {% for model in color['models'] %}
+ {{ blocks.model(model['model'],model['quantity'], color['color'].id) }}
+ {% endfor %}
+
-
+ Missing+
{% for part in missing %}
{{ blocks.part(part['part'],part['quantity']) }}
{% endfor %}
diff --git a/app/Resources/views/set/tabs/models.html.twig b/app/Resources/views/set/tabs/models.html.twig
index fe2782b..d241165 100644
--- a/app/Resources/views/set/tabs/models.html.twig
+++ b/app/Resources/views/set/tabs/models.html.twig
@@ -10,7 +10,8 @@
{% if models|length > 0 %}
-
+ Models+
{% for model in models %}
{{ blocks.model(model['model'],model['quantity']) }}
{% endfor %}
@@ -19,7 +20,8 @@
{% endif %}
{% if missing|length > 0 %}
-
+ Missing+
{% for part in missing %}
{{ blocks.part(part['part'],part['quantity']) }}
{% endfor %}
diff --git a/app/Resources/views/set/tabs/sets.html.twig b/app/Resources/views/set/tabs/sets.html.twig
index b84618a..5312a70 100644
--- a/app/Resources/views/set/tabs/sets.html.twig
+++ b/app/Resources/views/set/tabs/sets.html.twig
@@ -9,7 +9,7 @@
{% endfor %}
{% if inventorySets %}
- Sets+Sets
{% for inventorySet in inventorySets %}
diff --git a/app/config/config/liip_imagine.yml b/app/config/config/liip_imagine.yml
index 50beb82..8229250 100644
--- a/app/config/config/liip_imagine.yml
+++ b/app/config/config/liip_imagine.yml
@@ -26,6 +26,7 @@ liip_imagine:
cache: ~
default_image: "/resources/images/noimage_min.png"
filters:
+ upscale: {min: [200, 200]}
thumbnail: { size: [200, 200], mode: inset, allow_upscale: true }
background: { size: [250, 250], position: center, color: '#FFFFFF' }
part_large:
diff --git a/composer.json b/composer.json
index 65df0f5..ea0426d 100644
--- a/composer.json
+++ b/composer.json
@@ -11,7 +11,7 @@
"psr-4": { "Tests\\": "tests/" }
},
"require": {
- "php": ">=7.0",
+ "php": "^7.0",
"symfony/symfony": "3.2.*",
"doctrine/orm": "^2.5",
"doctrine/doctrine-bundle": "^1.6",
diff --git a/composer.lock b/composer.lock
index 3b5dfed..1ee9873 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "f3808dea37da4032a73d71e76ffca16c",
+ "content-hash": "292225406393a05e8d4b946ebe444df9",
"packages": [
{
"name": "composer/ca-bundle",
@@ -4429,16 +4429,16 @@
},
{
"name": "sebastian/environment",
- "version": "3.0.2",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "11e7710b7724d42c62249b0e9d3030240398949d"
+ "reference": "02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/11e7710b7724d42c62249b0e9d3030240398949d",
- "reference": "11e7710b7724d42c62249b0e9d3030240398949d",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3",
+ "reference": "02b6b2c7aefe2cdb1185b8dbf8718b0bcedf3ab3",
"shasum": ""
},
"require": {
@@ -4475,7 +4475,7 @@
"environment",
"hhvm"
],
- "time": "2017-04-21T14:40:32+00:00"
+ "time": "2017-05-18T10:10:00+00:00"
},
{
"name": "sebastian/exporter",
@@ -5212,7 +5212,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=7.0"
+ "php": "^7.0"
},
"platform-dev": []
}
diff --git a/src/AppBundle/Imagine/PartImageLoader.php b/src/AppBundle/Imagine/PartImageLoader.php
index dab1553..2b7a126 100644
--- a/src/AppBundle/Imagine/PartImageLoader.php
+++ b/src/AppBundle/Imagine/PartImageLoader.php
@@ -38,7 +38,8 @@ class PartImageLoader extends BaseImageLoader
// try to load image from rebrickable website
try {
if ($this->remoteFileExists($this->rebrickableContext.$path)) {
- return file_get_contents($this->rebrickableContext.$path);
+ $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
+ return file_get_contents($this->rebrickableContext.strtolower($path),false,$context);
}
} catch (\Exception $e) {
throw new NotLoadableException(sprintf('Source image %s could not be loaded.', $path), $e->getCode(), $e);
diff --git a/src/AppBundle/Imagine/SetImageLoader.php b/src/AppBundle/Imagine/SetImageLoader.php
index b99e3a0..797fa5a 100644
--- a/src/AppBundle/Imagine/SetImageLoader.php
+++ b/src/AppBundle/Imagine/SetImageLoader.php
@@ -32,7 +32,8 @@ class SetImageLoader extends BaseImageLoader
// try to load image from rebrickable website
try {
if ($this->remoteFileExists($this->rebrickableContext.strtolower($path))) {
- return file_get_contents($this->rebrickableContext.strtolower($path));
+ $context = stream_context_create(array('http' => array('header'=>'Connection: close\r\n')));
+ return file_get_contents($this->rebrickableContext.strtolower($path),false,$context);
}
} catch (\Exception $e) {
throw new NotLoadableException(sprintf('Source image %s could not be loaded.', $path), $e->getCode(), $e);
diff --git a/src/AppBundle/Service/Stl/StlConverterService.php b/src/AppBundle/Service/Stl/StlConverterService.php
index 57f26df..8b6511f 100644
--- a/src/AppBundle/Service/Stl/StlConverterService.php
+++ b/src/AppBundle/Service/Stl/StlConverterService.php
@@ -3,7 +3,7 @@
namespace AppBundle\Service\Stl;
use AppBundle\Exception\ConvertingFailedException;
-use AppBundle\Exception\LDView\LDLibraryMissingException;
+use AppBundle\Exception\Stl\LDLibraryMissingException;
use League\Flysystem\File;
use League\Flysystem\Filesystem;
use Symfony\Component\Process\Exception\ProcessFailedException;
|