mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-11 12:49:33 +00:00
123 lines
6.2 KiB
Twig
123 lines
6.2 KiB
Twig
{% extends "main_card.html.twig" %}
|
|
{% import "helper.twig" as helper %}
|
|
|
|
{% block title %}
|
|
{% trans %}assembly.info.title{% endtrans %}: {{ assembly.name }}
|
|
{% endblock %}
|
|
|
|
{% block before_card %}
|
|
<div class="row mb-3">
|
|
<div class="col d-flex align-items-center">
|
|
<a href="{{ path('assembly_new') }}"
|
|
class="btn btn-success me-2 {% if not is_granted('@assemblies.create') %}disabled{% endif %}">
|
|
<i class="fas fa-plus-square fa-fw"></i>
|
|
{% trans %}assembly.new{% endtrans %}
|
|
</a>
|
|
|
|
<div class="btn-group">
|
|
<a class="btn btn-success" {% if not is_granted('@assemblies.edit') %}disabled{% endif %}
|
|
href="{{ path('assembly_add_parts', {"id": assembly.id, "_redirect": uri_without_host(app.request)}) }}">
|
|
<i class="fa-solid fa-square-plus fa-fw"></i>
|
|
{% trans %}assembly.info.bom_add_parts{% endtrans %}
|
|
</a>
|
|
<button type="button" class="btn btn-success dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
|
|
<span class="visually-hidden">Toggle Dropdown</span>
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li>
|
|
<a class="dropdown-item" href="{{ path('assembly_import_bom', {'id': assembly.id}) }}" {% if not is_granted('edit', assembly) %}disabled="disabled"{% endif %}>
|
|
<i class="fa-solid fa-file-import fa-fw"></i>
|
|
{% trans %}assembly.edit.bom.import_bom{% endtrans %}
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<a class="btn btn-secondary ms-2" {% if not is_granted('@assemblies.edit') %}disabled{% endif %}
|
|
href="{{ path('assembly_edit', {"id": assembly.id}) }}#part">
|
|
<i class="fa-solid fa-square-plus fa-cog"></i>
|
|
{% trans %}assembly_bom_entry.label{% endtrans %}
|
|
</a>
|
|
|
|
<a class="btn btn-secondary ms-2" {% if not is_granted('@assemblies.edit') %}disabled{% endif %}
|
|
href="{{ path('assembly_edit', {"id": assembly.id}) }}">
|
|
<i class="fa-solid fa-pencil"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
{{ helper.breadcrumb_entity_link(assembly) }}
|
|
{{ parent() }}
|
|
{% endblock %}
|
|
|
|
{% block card_title %}
|
|
{% if assembly.masterPictureAttachment is not null and attachment_manager.isFileExisting(assembly.masterPictureAttachment) %}
|
|
<img class="hoverpic ms-0 me-1 d-inline" {{ stimulus_controller('elements/hoverpic') }} data-thumbnail="{{ entity_url(assembly.masterPictureAttachment, 'file_view') }}" src="{{ attachment_thumbnail(assembly.masterPictureAttachment, 'thumbnail_sm') }}">
|
|
{% else %}
|
|
{{ helper.entity_icon(assembly, "me-1") }}
|
|
{% endif %}
|
|
{% trans %}assembly.info.title{% endtrans %}: <b>{{ assembly.name }}</b>
|
|
{% endblock %}
|
|
|
|
{% block card_content %}
|
|
<ul class="nav nav-tabs" role="tablist">
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link active" id="info-tab" data-bs-toggle="tab" data-bs-target="#info-tab-pane"
|
|
type="button" role="tab" aria-controls="info-tab-pane" aria-selected="true">
|
|
<i class="fa-solid fa-circle-info fa-fw"></i>
|
|
{% trans %}assembly.info.info.label{% endtrans %}
|
|
</button>
|
|
</li>
|
|
<li class="nav-item" role="presentation">
|
|
<button class="nav-link" id="bom-tab" data-bs-toggle="tab" data-bs-target="#part-tab-pane"
|
|
type="button" role="tab" aria-controls="part-tab-pane" aria-selected="false">
|
|
<i class="fa-solid fa-list-check fa-fw"></i>
|
|
{% trans %}assembly_bom_entry.label{% endtrans %}
|
|
<span class="badge bg-secondary">{{ assembly.bomEntries | length }}</span>
|
|
</button>
|
|
</li>
|
|
{% if assembly.attachments is not empty %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" id="attachments-tab" data-bs-toggle="tab"
|
|
data-bs-target="#attachments-tab-pane" role="tab">
|
|
<i class="fas fa-paperclip fa-fw"></i>
|
|
{% trans %}attachment.labelp{% endtrans %}
|
|
<span class="badge bg-secondary">{{ assembly.attachments | length }}</span>
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
{% if assembly.parameters is not empty %}
|
|
<li class="nav-item">
|
|
<a class="nav-link" id="parameters-tab" data-bs-toggle="tab"
|
|
data-bs-target="#parameters-tab-pane" role="tab">
|
|
<i class="fas fa-atlas fa-fw"></i>
|
|
{% trans %}entity.info.parameters.tab{% endtrans %}
|
|
<span class="badge bg-secondary">{{ assembly.parameters | length }}</span>
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane fade show active" id="info-tab-pane" role="tabpanel" aria-labelledby="info-tab" tabindex="0">
|
|
{% include "assemblies/info/_info.html.twig" %}
|
|
</div>
|
|
<div class="tab-pane fade" id="part-tab-pane" role="tabpanel" aria-labelledby="part-tab" tabindex="0">
|
|
{% include "assemblies/info/_part.html.twig" %}
|
|
<div class="tab-pane fade" id="bom-tab-pane" role="tabpanel" aria-labelledby="bom-tab" tabindex="0">
|
|
{% include "assemblies/info/_part.html.twig" %}
|
|
</div>
|
|
<div class="tab-pane fade" id="attachments-tab-pane" role="tabpanel" aria-labelledby="attachments-tab" tabindex="0">
|
|
{% include "assemblies/info/_attachments_info.html.twig" with {"assembly": assembly} %}
|
|
</div>
|
|
<div class="tab-pane fade" id="parameters-tab-pane" role="tabpanel" aria-labelledby="parameters-tab">
|
|
{% for name, parameters in assembly.groupedParameters %}
|
|
{% if name is not empty %}<h5 class="mt-1">{{ name }}</h5>{% endif %}
|
|
{{ helper.parameters_table(assembly.parameters) }}
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|