mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-23 10:18:56 +02:00
Put the filter menu into the accordion on part list
This commit is contained in:
parent
b464607793
commit
b52c61bfa3
4 changed files with 229 additions and 221 deletions
|
@ -1,125 +1,129 @@
|
||||||
<div class="card mb-4">
|
<div class="accordion-item">
|
||||||
<div class="card-header"><i class="fa-solid fa-filter fa-fw"></i> {% trans %}filter.title{% endtrans %}</div>
|
<div class="accordion-header">
|
||||||
<div class="card-body">
|
<button class="accordion-button collapsed py-2" type="button" data-bs-toggle="collapse" data-bs-target="#filterFormCollapse" aria-expanded="false" aria-controls="filterFormCollapse"><i class="fa-solid fa-filter fa-fw"></i> {% trans %}filter.title{% endtrans %}</button>
|
||||||
<ul class="nav nav-tabs" id="filterTabs" role="tablist">
|
</div>
|
||||||
<li class="nav-item" role="presentation">
|
<div id="filterFormCollapse" class="accordion-collapse collapse" data-bs-parent="#listAccordion">
|
||||||
<button class="nav-link active" id="filter-common-tab" data-bs-toggle="tab" data-bs-target="#filter-common"><i class="fas fa-id-card fa-fw"></i> {% trans %}part.edit.tab.common{% endtrans %}</button>
|
<div class="accordion-body">
|
||||||
</li>
|
<ul class="nav nav-tabs" id="filterTabs" role="tablist">
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-manufacturer-tab" data-bs-toggle="tab" data-bs-target="#filter-manufacturer"><i class="fas fa-industry fa-fw"></i> {% trans %}part.edit.tab.manufacturer{% endtrans %}</button>
|
<button class="nav-link active" id="filter-common-tab" data-bs-toggle="tab" data-bs-target="#filter-common"><i class="fas fa-id-card fa-fw"></i> {% trans %}part.edit.tab.common{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-advanced-tab" data-bs-toggle="tab" data-bs-target="#filter-advanced"><i class="fas fa-shapes fa-fw"></i> {% trans %}part.edit.tab.advanced{% endtrans %}</button>
|
<button class="nav-link" id="filter-manufacturer-tab" data-bs-toggle="tab" data-bs-target="#filter-manufacturer"><i class="fas fa-industry fa-fw"></i> {% trans %}part.edit.tab.manufacturer{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-stocks-tab" data-bs-toggle="tab" data-bs-target="#filter-stocks"><i class="fas fa-boxes fa-fw"></i> {% trans %}part.edit.tab.part_lots{% endtrans %}</button>
|
<button class="nav-link" id="filter-advanced-tab" data-bs-toggle="tab" data-bs-target="#filter-advanced"><i class="fas fa-shapes fa-fw"></i> {% trans %}part.edit.tab.advanced{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-attachments-tab" data-bs-toggle="tab" data-bs-target="#filter-attachments"><i class="fas fa-paperclip fa-fw"></i> {% trans %}part.edit.tab.attachments{% endtrans %}</button>
|
<button class="nav-link" id="filter-stocks-tab" data-bs-toggle="tab" data-bs-target="#filter-stocks"><i class="fas fa-boxes fa-fw"></i> {% trans %}part.edit.tab.part_lots{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-orderdetails-tab" data-bs-toggle="tab" data-bs-target="#filter-orderdetails"><i class="fas fa-shopping-cart fa-fw"></i> {% trans %}part.edit.tab.orderdetails{% endtrans %}</button>
|
<button class="nav-link" id="filter-attachments-tab" data-bs-toggle="tab" data-bs-target="#filter-attachments"><i class="fas fa-paperclip fa-fw"></i> {% trans %}part.edit.tab.attachments{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" role="presentation">
|
<li class="nav-item" role="presentation">
|
||||||
<button class="nav-link" id="filter-parameters-tab" data-bs-toggle="tab" data-bs-target="#filter-parameters"><i class="fas fa-atlas fa-fw"></i> {% trans %}part.edit.tab.specifications{% endtrans %}</button>
|
<button class="nav-link" id="filter-orderdetails-tab" data-bs-toggle="tab" data-bs-target="#filter-orderdetails"><i class="fas fa-shopping-cart fa-fw"></i> {% trans %}part.edit.tab.orderdetails{% endtrans %}</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
<li class="nav-item" role="presentation">
|
||||||
|
<button class="nav-link" id="filter-parameters-tab" data-bs-toggle="tab" data-bs-target="#filter-parameters"><i class="fas fa-atlas fa-fw"></i> {% trans %}part.edit.tab.specifications{% endtrans %}</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{{ form_start(filterForm, {"attr": {"data-controller": "helpers--form-cleanup", "data-action": "helpers--form-cleanup#submit"}}) }}
|
||||||
|
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active pt-3" id="filter-common" role="tabpanel" aria-labelledby="filter-common-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.name) }}
|
||||||
|
{{ form_row(filterForm.description) }}
|
||||||
|
{{ form_row(filterForm.category) }}
|
||||||
|
{{ form_row(filterForm.footprint) }}
|
||||||
|
{{ form_row(filterForm.tags) }}
|
||||||
|
{{ form_row(filterForm.comment) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-manufacturer" role="tabpanel" aria-labelledby="filter-manufacturer-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.manufacturer) }}
|
||||||
|
{{ form_row(filterForm.manufacturing_status) }}
|
||||||
|
{{ form_row(filterForm.manufacturer_product_number) }}
|
||||||
|
{{ form_row(filterForm.manufacturer_product_url) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-advanced" role="tabpanel" aria-labelledby="filter-advanced-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.favorite) }}
|
||||||
|
{{ form_row(filterForm.needsReview) }}
|
||||||
|
{{ form_row(filterForm.measurementUnit) }}
|
||||||
|
{{ form_row(filterForm.mass) }}
|
||||||
|
{{ form_row(filterForm.dbId) }}
|
||||||
|
{{ form_row(filterForm.lastModified) }}
|
||||||
|
{{ form_row(filterForm.addedDate) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-stocks" role="tabpanel" aria-labelledby="filter-stocks-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.storelocation) }}
|
||||||
|
{{ form_row(filterForm.minAmount) }}
|
||||||
|
{{ form_row(filterForm.amountSum) }}
|
||||||
|
{{ form_row(filterForm.lotCount) }}
|
||||||
|
{{ form_row(filterForm.lotExpirationDate) }}
|
||||||
|
{{ form_row(filterForm.lotDescription) }}
|
||||||
|
{{ form_row(filterForm.lotNeedsRefill) }}
|
||||||
|
{{ form_row(filterForm.lotUnknownAmount) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-attachments" role="tabpanel" aria-labelledby="filter-attachments-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.attachmentsCount) }}
|
||||||
|
{{ form_row(filterForm.attachmentType) }}
|
||||||
|
{{ form_row(filterForm.attachmentName) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-orderdetails" role="tabpanel" aria-labelledby="filter-orderdetails-tab" tabindex="0">
|
||||||
|
{{ form_row(filterForm.supplier) }}
|
||||||
|
{{ form_row(filterForm.orderdetailsCount) }}
|
||||||
|
{{ form_row(filterForm.obsolete) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tab-pane pt-3" id="filter-parameters" role="tabpanel" aria-labelledby="filter-parameters-tab" tabindex="0">
|
||||||
|
{% import 'components/collection_type.macro.html.twig' as collection %}
|
||||||
|
{{ form_row(filterForm.parametersCount) }}
|
||||||
|
|
||||||
|
<div {{ collection.controller(filterForm.parameters) }}>
|
||||||
|
<table class="table table-striped table-sm" id="lots_table" {{ collection.target() }}>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{% trans %}specifications.property{% endtrans %}</th>
|
||||||
|
<th>{% trans %}specifications.symbol{% endtrans %}</th>
|
||||||
|
<th>{% trans %}specifications.value{% endtrans %}</th>
|
||||||
|
<th>{% trans %}specifications.unit{% endtrans %}</th>
|
||||||
|
<th>{% trans %}specifications.text{% endtrans %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
{% for param in filterForm.parameters %}
|
||||||
|
{{ form_widget(param) }}
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<button type="button" class="btn btn-success" {{ collection.create_btn() }}>
|
||||||
|
<i class="fas fa-plus-square fa-fw"></i>
|
||||||
|
{% trans %}filter.constraint.add{% endtrans %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{{ form_start(filterForm, {"attr": {"data-controller": "helpers--form-cleanup", "data-action": "helpers--form-cleanup#submit"}}) }}
|
|
||||||
|
|
||||||
<div class="tab-content">
|
|
||||||
<div class="tab-pane active pt-3" id="filter-common" role="tabpanel" aria-labelledby="filter-common-tab" tabindex="0">
|
|
||||||
{{ form_row(filterForm.name) }}
|
|
||||||
{{ form_row(filterForm.description) }}
|
|
||||||
{{ form_row(filterForm.category) }}
|
|
||||||
{{ form_row(filterForm.footprint) }}
|
|
||||||
{{ form_row(filterForm.tags) }}
|
|
||||||
{{ form_row(filterForm.comment) }}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-manufacturer" role="tabpanel" aria-labelledby="filter-manufacturer-tab" tabindex="0">
|
|
||||||
{{ form_row(filterForm.manufacturer) }}
|
|
||||||
{{ form_row(filterForm.manufacturing_status) }}
|
|
||||||
{{ form_row(filterForm.manufacturer_product_number) }}
|
|
||||||
{{ form_row(filterForm.manufacturer_product_url) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-advanced" role="tabpanel" aria-labelledby="filter-advanced-tab" tabindex="0">
|
{{ form_row(filterForm.submit) }}
|
||||||
{{ form_row(filterForm.favorite) }}
|
{{ form_row(filterForm.discard) }}
|
||||||
{{ form_row(filterForm.needsReview) }}
|
|
||||||
{{ form_row(filterForm.measurementUnit) }}
|
|
||||||
{{ form_row(filterForm.mass) }}
|
|
||||||
{{ form_row(filterForm.dbId) }}
|
|
||||||
{{ form_row(filterForm.lastModified) }}
|
|
||||||
{{ form_row(filterForm.addedDate) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-stocks" role="tabpanel" aria-labelledby="filter-stocks-tab" tabindex="0">
|
<div class="row mb-3">
|
||||||
{{ form_row(filterForm.storelocation) }}
|
<div class="col-sm-9 offset-sm-3">
|
||||||
{{ form_row(filterForm.minAmount) }}
|
<button type="button" class="btn btn-danger" {{ stimulus_action('helpers/form_cleanup', 'clearAll') }}>{% trans %}filter.clear_filters{% endtrans %}</button>
|
||||||
{{ form_row(filterForm.amountSum) }}
|
|
||||||
{{ form_row(filterForm.lotCount) }}
|
|
||||||
{{ form_row(filterForm.lotExpirationDate) }}
|
|
||||||
{{ form_row(filterForm.lotDescription) }}
|
|
||||||
{{ form_row(filterForm.lotNeedsRefill) }}
|
|
||||||
{{ form_row(filterForm.lotUnknownAmount) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-attachments" role="tabpanel" aria-labelledby="filter-attachments-tab" tabindex="0">
|
|
||||||
{{ form_row(filterForm.attachmentsCount) }}
|
|
||||||
{{ form_row(filterForm.attachmentType) }}
|
|
||||||
{{ form_row(filterForm.attachmentName) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-orderdetails" role="tabpanel" aria-labelledby="filter-orderdetails-tab" tabindex="0">
|
|
||||||
{{ form_row(filterForm.supplier) }}
|
|
||||||
{{ form_row(filterForm.orderdetailsCount) }}
|
|
||||||
{{ form_row(filterForm.obsolete) }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tab-pane pt-3" id="filter-parameters" role="tabpanel" aria-labelledby="filter-parameters-tab" tabindex="0">
|
|
||||||
{% import 'components/collection_type.macro.html.twig' as collection %}
|
|
||||||
{{ form_row(filterForm.parametersCount) }}
|
|
||||||
|
|
||||||
<div {{ collection.controller(filterForm.parameters) }}>
|
|
||||||
<table class="table table-striped table-sm" id="lots_table" {{ collection.target() }}>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>{% trans %}specifications.property{% endtrans %}</th>
|
|
||||||
<th>{% trans %}specifications.symbol{% endtrans %}</th>
|
|
||||||
<th>{% trans %}specifications.value{% endtrans %}</th>
|
|
||||||
<th>{% trans %}specifications.unit{% endtrans %}</th>
|
|
||||||
<th>{% trans %}specifications.text{% endtrans %}</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
{% for param in filterForm.parameters %}
|
|
||||||
{{ form_widget(param) }}
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<button type="button" class="btn btn-success" {{ collection.create_btn() }}>
|
|
||||||
<i class="fas fa-plus-square fa-fw"></i>
|
|
||||||
{% trans %}filter.constraint.add{% endtrans %}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{ form_end(filterForm) }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
{{ form_row(filterForm.submit) }}
|
|
||||||
{{ form_row(filterForm.discard) }}
|
|
||||||
|
|
||||||
<div class="row mb-3">
|
|
||||||
<div class="col-sm-9 offset-sm-3">
|
|
||||||
<button type="button" class="btn btn-danger" {{ stimulus_action('helpers/form_cleanup', 'clearAll') }}>{% trans %}filter.clear_filters{% endtrans %}</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{ form_end(filterForm) }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -3,133 +3,137 @@
|
||||||
|
|
||||||
{{ helper.breadcrumb_entity_link(entity) }}
|
{{ helper.breadcrumb_entity_link(entity) }}
|
||||||
|
|
||||||
<div class="accordion">
|
<div class="accordion mb-4" id="listAccordion">
|
||||||
<div class="accordion-item mb-3">
|
<div class="accordion-item">
|
||||||
<div class="accordion-header">
|
<div class="accordion-header">
|
||||||
<button class="accordion-button" data-bs-toggle="collapse" data-bs-target="#entityInfo">
|
<button class="accordion-button collapsed py-2" data-bs-toggle="collapse" data-bs-target="#entityInfo">
|
||||||
{% if entity.masterPictureAttachment is not null and attachment_manager.isFileExisting(entity.masterPictureAttachment) %}
|
{% if entity.masterPictureAttachment is not null and attachment_manager.isFileExisting(entity.masterPictureAttachment) %}
|
||||||
<img class="hoverpic ms-0 me-1 d-inline" {{ stimulus_controller('elements/hoverpic') }} data-thumbnail="{{ entity.masterPictureAttachment | entityURL('file_view') }}" src="{{ attachment_thumbnail(entity.masterPictureAttachment, 'thumbnail_sm') }}">
|
<img class="hoverpic ms-0 me-1 d-inline" {{ stimulus_controller('elements/hoverpic') }} data-thumbnail="{{ entity.masterPictureAttachment | entityURL('file_view') }}" src="{{ attachment_thumbnail(entity.masterPictureAttachment, 'thumbnail_sm') }}">
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ helper.entity_icon(entity, "me-1") }}
|
{{ helper.entity_icon(entity, "me-1") }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ header_label | trans }}: <b>{{ entity.name }}</b>
|
{{ header_label | trans }}: <b>{{ entity.name }}</b>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="entityInfo" class="accordion-collapse collapse">
|
<div id="entityInfo" class="accordion-collapse collapse" data-bs-parent="#listAccordion">
|
||||||
<div class="accordion-body">
|
<div class="accordion-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
|
||||||
<a class="nav-link active" id="v-pills-home-tab" data-bs-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">
|
<a class="nav-link active" id="v-pills-home-tab" data-bs-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">
|
||||||
<i class="fas fa-info-circle fa-fw"></i>
|
<i class="fas fa-info-circle fa-fw"></i>
|
||||||
{% trans %}entity.info.common.tab{% endtrans %}
|
{% trans %}entity.info.common.tab{% endtrans %}
|
||||||
</a>
|
|
||||||
<a class="nav-link" id="v-pills-statistics-tab" data-bs-toggle="pill" href="#v-pills-statistics" role="tab" aria-controls="v-pills-profile" aria-selected="false">
|
|
||||||
<i class="fas fa-chart-pie fa-fw"></i>
|
|
||||||
{% trans %}entity.info.statistics.tab{% endtrans %}
|
|
||||||
</a>
|
|
||||||
{% if entity.attachments is not empty %}
|
|
||||||
<a class="nav-link" id="v-pills-attachments-tab" data-bs-toggle="pill" href="#v-pills-attachments" role="tab" aria-controls="v-pills-attachments" aria-selected="false">
|
|
||||||
<i class="fas fa-paperclip fa-fw"></i>
|
|
||||||
{% trans %}entity.info.attachments.tab{% endtrans %}
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
{% if entity.parameters is not empty %}
|
|
||||||
<a class="nav-link" id="v-pills-parameters-tab" data-bs-toggle="pill" href="#v-pills-parameters" role="tab" aria-controls="v-pills-parameters" aria-selected="false">
|
|
||||||
<i class="fas fa-atlas fa-fw"></i>
|
|
||||||
{% trans %}entity.info.parameters.tab{% endtrans %}
|
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
<a class="nav-link" id="v-pills-statistics-tab" data-bs-toggle="pill" href="#v-pills-statistics" role="tab" aria-controls="v-pills-profile" aria-selected="false">
|
||||||
{% if entity.comment is not empty %}
|
<i class="fas fa-chart-pie fa-fw"></i>
|
||||||
<a class="nav-link" id="v-pills-comment-tab" data-bs-toggle="pill" href="#v-pills-comment" role="tab">
|
{% trans %}entity.info.statistics.tab{% endtrans %}
|
||||||
<i class="fas fa-comment-alt fa-fw"></i>
|
|
||||||
{% trans %}comment.label{% endtrans %}
|
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% if entity.attachments is not empty %}
|
||||||
|
<a class="nav-link" id="v-pills-attachments-tab" data-bs-toggle="pill" href="#v-pills-attachments" role="tab" aria-controls="v-pills-attachments" aria-selected="false">
|
||||||
|
<i class="fas fa-paperclip fa-fw"></i>
|
||||||
|
{% trans %}entity.info.attachments.tab{% endtrans %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if entity.parameters is not empty %}
|
||||||
|
<a class="nav-link" id="v-pills-parameters-tab" data-bs-toggle="pill" href="#v-pills-parameters" role="tab" aria-controls="v-pills-parameters" aria-selected="false">
|
||||||
|
<i class="fas fa-atlas fa-fw"></i>
|
||||||
|
{% trans %}entity.info.parameters.tab{% endtrans %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if entity.comment is not empty %}
|
||||||
|
<a class="nav-link" id="v-pills-comment-tab" data-bs-toggle="pill" href="#v-pills-comment" role="tab">
|
||||||
|
<i class="fas fa-comment-alt fa-fw"></i>
|
||||||
|
{% trans %}comment.label{% endtrans %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-sm-10">
|
||||||
<div class="col-sm-10">
|
<div class="tab-content" id="v-pills-tabContent">
|
||||||
<div class="tab-content" id="v-pills-tabContent">
|
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">
|
||||||
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">
|
<div class="row">
|
||||||
<div class="row">
|
<div class="col-sm-9 form-horizontal">
|
||||||
<div class="col-sm-9 form-horizontal">
|
<div class="form-group">
|
||||||
<div class="form-group">
|
<label class="col-sm-4">{% trans %}entity.info.name{% endtrans %}:</label>
|
||||||
<label class="col-sm-4">{% trans %}entity.info.name{% endtrans %}:</label>
|
<span class="col-sm form-control-static">{{ entity.name }}</span>
|
||||||
<span class="col-sm form-control-static">{{ entity.name }}</span>
|
</div>
|
||||||
</div>
|
<div class="form-group">
|
||||||
<div class="form-group">
|
<label class="col-sm-4">{% trans %}entity.info.parent{% endtrans %}:</label>
|
||||||
<label class="col-sm-4">{% trans %}entity.info.parent{% endtrans %}:</label>
|
<span class="col-sm form-control-static">
|
||||||
<span class="col-sm form-control-static">
|
|
||||||
{% if entity.parent %}
|
{% if entity.parent %}
|
||||||
{{ entity.parent.fullPath }}
|
{{ entity.parent.fullPath }}
|
||||||
{% else %}
|
{% else %}
|
||||||
-
|
-
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-sm-3">
|
||||||
<div class="col-sm-3">
|
{% block quick_links %}{% endblock %}
|
||||||
{% block quick_links %}{% endblock %}
|
|
||||||
|
|
||||||
<a class="btn btn-secondary w-100 mb-2" href="{{ entity | entityURL('edit') }}">
|
<a class="btn btn-secondary w-100 mb-2" href="{{ entity | entityURL('edit') }}">
|
||||||
<i class="fas fa-edit"></i> {% trans %}entity.edit.btn{% endtrans %}
|
<i class="fas fa-edit"></i> {% trans %}entity.edit.btn{% endtrans %}
|
||||||
</a>
|
</a>
|
||||||
<div class="">
|
<div class="">
|
||||||
<span class="text-muted" title="{% trans %}lastModified{% endtrans %}">
|
<span class="text-muted" title="{% trans %}lastModified{% endtrans %}">
|
||||||
<i class="fas fa-history fa-fw"></i> {{ entity.lastModified | format_datetime("short") }}
|
<i class="fas fa-history fa-fw"></i> {{ entity.lastModified | format_datetime("short") }}
|
||||||
</span>
|
</span>
|
||||||
<br>
|
<br>
|
||||||
<span class="text-muted mt-1" title="{% trans %}createdAt{% endtrans %}">
|
<span class="text-muted mt-1" title="{% trans %}createdAt{% endtrans %}">
|
||||||
<i class="fas fa-calendar-plus fa-fw"></i> {{ entity.addedDate | format_datetime("short") }}
|
<i class="fas fa-calendar-plus fa-fw"></i> {{ entity.addedDate | format_datetime("short") }}
|
||||||
</span>
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if entity is instanceof("App\\Entity\\Parts\\Storelocation") %}
|
||||||
|
{{ dropdown.profile_dropdown('storelocation', entity.id, true, 'btn-secondary w-100 mt-2') }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if entity is instanceof("App\\Entity\\Parts\\Storelocation") %}
|
|
||||||
{{ dropdown.profile_dropdown('storelocation', entity.id, true, 'btn-secondary w-100 mt-2') }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tab-pane fade" id="v-pills-statistics" role="tabpanel" aria-labelledby="v-pills-statistics-tab">
|
||||||
|
<div class="form-horizontal">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4">{% trans %}entity.info.children_count{% endtrans %}:</label>
|
||||||
|
<span class="col-sm form-control-static">{{ entity.children | length }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-4">{% trans %}entity.info.parts_count{% endtrans %}:</label>
|
||||||
|
<span class="col-sm form-control-static">{{ repo.partsCount(entity) }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if entity.attachments is not empty %}
|
||||||
|
<div class="tab-pane fade" id="v-pills-attachments" role="tabpanel" aria-labelledby="v-pills-attachments-tab">
|
||||||
|
{% include "Parts/info/_attachments_info.html.twig" with {"part": entity} %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if entity.parameters is not empty %}
|
||||||
|
<div class="tab-pane fade" id="v-pills-parameters" role="tabpanel" aria-labelledby="v-pills-parameters-tab">
|
||||||
|
{% for name, parameters in entity.groupedParameters %}
|
||||||
|
{% if name is not empty %}<h5 class="mt-1">{{ name }}</h5>{% endif %}
|
||||||
|
{{ helper.parameters_table(parameters) }}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if entity.comment is not empty %}
|
||||||
|
<div class="tab-pane fade" id="v-pills-comment" role="tabpanel" aria-labelledby="home-tab">
|
||||||
|
<div class="container-fluid mt-2 latex" data-controller="common--latex">
|
||||||
|
{{ entity.comment|markdown }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane fade" id="v-pills-statistics" role="tabpanel" aria-labelledby="v-pills-statistics-tab">
|
|
||||||
<div class="form-horizontal">
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-sm-4">{% trans %}entity.info.children_count{% endtrans %}:</label>
|
|
||||||
<span class="col-sm form-control-static">{{ entity.children | length }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-sm-4">{% trans %}entity.info.parts_count{% endtrans %}:</label>
|
|
||||||
<span class="col-sm form-control-static">{{ repo.partsCount(entity) }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if entity.attachments is not empty %}
|
|
||||||
<div class="tab-pane fade" id="v-pills-attachments" role="tabpanel" aria-labelledby="v-pills-attachments-tab">
|
|
||||||
{% include "Parts/info/_attachments_info.html.twig" with {"part": entity} %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if entity.parameters is not empty %}
|
|
||||||
<div class="tab-pane fade" id="v-pills-parameters" role="tabpanel" aria-labelledby="v-pills-parameters-tab">
|
|
||||||
{% for name, parameters in entity.groupedParameters %}
|
|
||||||
{% if name is not empty %}<h5 class="mt-1">{{ name }}</h5>{% endif %}
|
|
||||||
{{ helper.parameters_table(parameters) }}
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if entity.comment is not empty %}
|
|
||||||
<div class="tab-pane fade" id="v-pills-comment" role="tabpanel" aria-labelledby="home-tab">
|
|
||||||
<div class="container-fluid mt-2 latex" data-controller="common--latex">
|
|
||||||
{{ entity.comment|markdown }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
{% if filterForm is defined %}
|
||||||
|
{% include "Parts/lists/_filter.html.twig" %}
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
|
@ -1,12 +1,14 @@
|
||||||
{% extends "base.html.twig" %}
|
{% extends "base.html.twig" %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{% trans %}parts_list.all.title{% endtrans %}
|
{% trans %}parts_list.all.title{% endtrans %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% include "Parts/lists/_filter.html.twig" %}
|
<div class="accordion mb-3">
|
||||||
|
{% include "Parts/lists/_filter.html.twig" %}
|
||||||
|
</div>
|
||||||
|
|
||||||
{% include "Parts/lists/_action_bar.html.twig" with {'url_options': {}} %}
|
{% include "Parts/lists/_action_bar.html.twig" with {'url_options': {}} %}
|
||||||
{% include "Parts/lists/_parts_list.html.twig" %}
|
{% include "Parts/lists/_parts_list.html.twig" %}
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
|
|
||||||
{% include "Parts/lists/_info_card.html.twig" with {'header_label': 'category.label'} %}
|
{% include "Parts/lists/_info_card.html.twig" with {'header_label': 'category.label'} %}
|
||||||
|
|
||||||
{% include "Parts/lists/_filter.html.twig" %}
|
|
||||||
|
|
||||||
{% include "Parts/lists/_action_bar.html.twig" with {'url_options': {'category': entity.iD}} %}
|
{% include "Parts/lists/_action_bar.html.twig" with {'url_options': {'category': entity.iD}} %}
|
||||||
|
|
||||||
{% include "Parts/lists/_parts_list.html.twig" %}
|
{% include "Parts/lists/_parts_list.html.twig" %}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue