mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Added ability to view part relations on a part info page
This commit is contained in:
parent
cc2332a83a
commit
7f612bc371
7 changed files with 143 additions and 0 deletions
|
@ -188,6 +188,15 @@
|
|||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro part_icon_link(part) %}
|
||||
{% set preview_attach = part_preview_generator.tablePreviewAttachment(part) %}
|
||||
{% if preview_attach %}
|
||||
<img src="{{ attachment_thumbnail(preview_attach, 'thumbnail_xs') }}" class="entity-image-xs" alt="Part image"
|
||||
{{ stimulus_controller('elements/hoverpic') }} data-thumbnail="{{ attachment_thumbnail(preview_attach) }}">
|
||||
{% endif %}
|
||||
<a href="{{ entity_url(part) }}">{{ part.name }}</a>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro entity_preview_sm(entity) %}
|
||||
{# @var entity \App\Entity\Contracts\HasMasterAttachmentInterface #}
|
||||
{% if entity.masterPictureAttachment and entity.masterPictureAttachment.picture and attachment_manager.fileExisting(entity.masterPictureAttachment) %}
|
||||
|
|
40
templates/parts/info/_associations.html.twig
Normal file
40
templates/parts/info/_associations.html.twig
Normal file
|
@ -0,0 +1,40 @@
|
|||
{% import "helper.twig" as helper %}
|
||||
|
||||
{% macro assoc_row(assoc) %}
|
||||
{# @var assoc \App\Entity\Parts\PartAssociation #}
|
||||
<tr>
|
||||
<td>{{ helper.part_icon_link(assoc.owner) }}</td>
|
||||
<td>{{ assoc.typeTranslationKey | trans }}</td>
|
||||
<td>{{ helper.part_icon_link(assoc.other) }}</td>
|
||||
<td>{{ assoc.comment }}</td>
|
||||
</tr>
|
||||
{% endmacro %}
|
||||
|
||||
{% macro assoc_table(assocs, caption) %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-hover caption-top">
|
||||
<caption>{{ caption | trans }}:</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans %}part_association.table.from{% endtrans %}</th>
|
||||
<th>{% trans %}part_association.table.type{% endtrans %}</th>
|
||||
<th>{% trans %}part_association.table.to{% endtrans %}</th>
|
||||
<th>{% trans %}part_association.edit.comment{% endtrans %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for assoc in assocs %}
|
||||
{{ _self.assoc_row(assoc) }}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
||||
{% if part.associatedPartsAsOwner is not empty %}
|
||||
{{ _self.assoc_table(part.associatedPartsAsOwner, 'part_association.table.from_this_part') }}
|
||||
{% endif %}
|
||||
|
||||
{% if part.associatedPartsAsOther is not empty %}
|
||||
{{ _self.assoc_table(part.associatedPartsAsOther, 'part_association.table.to_this_part') }}
|
||||
{% endif %}
|
|
@ -88,6 +88,17 @@
|
|||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if part.associatedPartsAll is not empty %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" id="associations-tab" data-bs-toggle="tab" href="#associations" role="tab">
|
||||
<i class="fas fas fa-circle-nodes fa-fw fa-fw"></i>
|
||||
{% trans %}part.edit.tab.associations{% endtrans %}
|
||||
<span class="badge bg-secondary">{{ part.associatedPartsAll | length }}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="nav-item {% if datatable is null %}not-allowed{% endif %}">
|
||||
<a class="nav-link {% if datatable is null %}disabled{% endif %}" id="history-tab" data-bs-toggle="tab" href="#history" role="tab">
|
||||
<i class="fas fa-history"></i>
|
||||
|
@ -142,6 +153,12 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if part.associatedPartsAll is not empty %}
|
||||
<div class="tab-pane fade" id="associations" role="tabpanel" aria-labelledby="associations-tab">
|
||||
{% include "parts/info/_associations.html.twig" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="tab-pane fade" id="projects" role="tabpanel" aria-labelledby="projects-tab">
|
||||
{% include "parts/info/_projects.html.twig" %}
|
||||
</div>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue