mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-28 09:40:14 -07:00
125 lines
5.0 KiB
Twig
125 lines
5.0 KiB
Twig
{% extends 'base.html.twig' %}
|
|
|
|
{% import 'macros/blocks.html.twig' as blocks %}
|
|
|
|
{% block title %}{{ model.id }} - {{ model.name }}{% endblock %}
|
|
|
|
{% block header %}{{ model.name }}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="ui stackable grid">
|
|
<div class="column ten wide">
|
|
<div id="model-viewer" class="model-container">
|
|
{{ blocks.partImage(model.id,'part_large') }}
|
|
</div>
|
|
</div>
|
|
<div class="column six wide">
|
|
<div class="item-info ui">
|
|
<table class="ui very basic table">
|
|
<tr>
|
|
<td>{{ 'model.id' | trans }}</td>
|
|
<td><h2>{{ model.id }}</h2></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'model.category' | trans }}</td>
|
|
<td><a href="{{ path('model_index',{'m[category]':model.category.id}) }}">{{ model.category ? model.category.name }}</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'model.author' | trans }}</td><td>{{ model.author.name }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'model.set.count' | trans }}</td><td>{{ sets|length }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'model.license' | trans }}</td>
|
|
<td>
|
|
{{ blocks.ccal2_license(model.name,model.author.name) }}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>{{ 'model.keywords' | trans }}</td>
|
|
<td>
|
|
<div class="ui grey labels">
|
|
{% for keyword in model.keywords %}
|
|
<span class="ui label">{{ keyword.name }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% if model.aliases|length %}
|
|
<tr>
|
|
<td>{{ 'model.aliases' | trans }}</td>
|
|
<td>
|
|
{% for alias in model.aliases | slice(0,20)%}
|
|
<span>{{ alias.id }}</span>{% if not loop.last %},{% endif %}
|
|
{% endfor %}
|
|
{% if model.aliases|length > 20 %}…{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
</table>
|
|
|
|
<a class="ui download fluid primary button" href="{{ path('model_zip', {id: model.id}) }}">{{ 'model.download'|trans }}</a>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui segment vertical item-info">
|
|
<div class="ui tabular pointing secondary menu">
|
|
<a class="item active" data-tab="subparts"><i class="cubes icon"></i> Subparts ({{ model.subparts|length }})</a>
|
|
<a class="item" data-tab="related"><i class="cubes icon"></i> Related ({{ related|length }})</a>
|
|
<a class="item" data-tab="parents"><i class="cubes icon"></i> Parents ({{ model.parents|length }})</a>
|
|
{#<a class="item" data-tab="sets"><i class="cubes icon"></i> Sets ({{ sets|length }})</a>#}
|
|
</div>
|
|
<div class="ui vertical segment">
|
|
|
|
<div class="ui tab active" data-tab="subparts">
|
|
<div class="ui eight column grid">
|
|
{% for subpart in subparts %}
|
|
{{ blocks.model(subpart['model'], subpart['quantity']) }}
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui tab" data-tab="related">
|
|
<div class="ui eight column grid">
|
|
{% for subpart in related %}
|
|
<div class="column">
|
|
{{ blocks.model(subpart) }}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui tab" data-tab="parents">
|
|
<div class="ui eight column grid">
|
|
{% for subpart in model.parents %}
|
|
<div class="column">
|
|
{{ blocks.model(subpart.parent) }}
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
{#<div class="ui tab" data-tab="sets">#}
|
|
{#<div class="ui six column doubling grid">#}
|
|
{#<div class="row">#}
|
|
{#{% for set in sets %}#}
|
|
{#{{ blocks.set(set) }}#}
|
|
{#{% endfor %}#}
|
|
{#</div>#}
|
|
{#</div>#}
|
|
{#</div>#}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block javascripts %}
|
|
{{ parent() }}
|
|
<script type="text/javascript">
|
|
window.onload = function() {
|
|
$('#model-viewer').ModelViewer('{{ url('media_file', {'path': model.path }) }}');
|
|
};
|
|
</script>
|
|
{% endblock %} |