mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-13 21:59:34 +00:00
# Conflicts: # .env # config/parameters.yaml # docs/configuration.md # migrations/Version20250304081039.php # migrations/Version20250304154507.php # src/Controller/AdminPages/BaseAdminController.php # src/Controller/ProjectController.php # src/Controller/TypeaheadController.php # src/DataTables/AssemblyBomEntriesDataTable.php # src/DataTables/PartsDataTable.php # src/Entity/AssemblySystem/AssemblyBOMEntry.php # src/Entity/Attachments/Attachment.php # src/Entity/Base/AbstractDBElement.php # src/Entity/LogSystem/CollectionElementDeleted.php # src/Entity/Parameters/AbstractParameter.php # src/Form/AssemblySystem/AssemblyBOMEntryType.php # src/Helpers/Assemblies/AssemblyPartAggregator.php # src/Security/Voter/AttachmentVoter.php # src/Services/AssemblySystem/AssemblyBuildHelper.php # src/Services/ImportExportSystem/BOMImporter.php # src/Services/ImportExportSystem/EntityExporter.php # src/Services/Trees/ToolsTreeBuilder.php # src/Services/Trees/TreeViewGenerator.php # src/Settings/BehaviorSettings/AssemblyBomTableColumns.php # src/Settings/BehaviorSettings/TableSettings.php # src/Validator/Constraints/AssemblySystem/AssemblyCycleValidator.php # templates/admin/assembly_admin.html.twig # templates/assemblies/build/_form.html.twig # templates/assemblies/import_bom.html.twig # templates/assemblies/info/_info_card.html.twig # templates/assemblies/info/info.html.twig # templates/components/tree_macros.html.twig # templates/form/collection_types_layout_assembly.html.twig # translations/messages.cs.xlf # translations/messages.da.xlf # translations/messages.de.xlf # translations/messages.el.xlf # translations/messages.en.xlf # translations/messages.es.xlf # translations/messages.fr.xlf # translations/messages.it.xlf # translations/messages.ja.xlf # translations/messages.nl.xlf # translations/messages.pl.xlf # translations/messages.ru.xlf # translations/messages.zh.xlf # translations/validators.cs.xlf # translations/validators.en.xlf
121 lines
6 KiB
Twig
121 lines
6 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="part-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>
|
|
<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 %}
|