Part-DB-server/templates/assemblies/info/info.html.twig
Marcel Diegelmann f7ec130010 Merge remote-tracking branch 'origin/feature/create-assemblies' into feature/all-features
# 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
2025-10-01 06:56:59 +02:00

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 %}:&nbsp;<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 %}