mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-01-11 04:39:33 +00:00
Anpassungen aus Benutzersicht, um den Fokus auf die reine Baugruppen-Konfiguration zu legen
This commit is contained in:
parent
fa4a044582
commit
4718f0275d
10 changed files with 66 additions and 114 deletions
|
|
@ -232,6 +232,7 @@ abstract class BaseAdminController extends AbstractController
|
|||
'timeTravel' => $timeTravel_timestamp,
|
||||
'repo' => $repo,
|
||||
'partsContainingElement' => $repo instanceof PartsContainingRepositoryInterface,
|
||||
'showParameters' => !($this instanceof AssemblyAdminController),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
@ -382,6 +383,7 @@ abstract class BaseAdminController extends AbstractController
|
|||
'import_form' => $import_form,
|
||||
'mass_creation_form' => $mass_creation_form,
|
||||
'route_base' => $this->route_base,
|
||||
'showParameters' => !($this instanceof AssemblyAdminController),
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,6 @@ class AssemblySelectType extends AbstractType implements DataMapperInterface
|
|||
$resolver->setDefaults([
|
||||
'class' => Assembly::class,
|
||||
'choice_label' => 'name',
|
||||
'placeholder' => 'None',
|
||||
'compound' => true,
|
||||
'error_bubbling' => false,
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block additional_pills %}
|
||||
<li class="nav-item"><a data-bs-toggle="tab" class="nav-link link-anchor" href="#bom">BOM</a></li>
|
||||
<li class="nav-item"><a data-bs-toggle="tab" class="nav-link link-anchor" href="#part">{% trans %}assembly_bom_entry.label{% endtrans %}</a></li>
|
||||
{% endblock %}
|
||||
|
||||
{% block quick_links %}
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block additional_panes %}
|
||||
<div class="tab-pane" id="bom">
|
||||
<div class="tab-pane" id="part">
|
||||
{% form_theme form.bom_entries with ['form/collection_types_layout_assembly.html.twig'] %}
|
||||
{{ form_errors(form.bom_entries) }}
|
||||
{{ form_widget(form.bom_entries) }}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#attachments">{% trans %}admin.attachments{% endtrans %}</a>
|
||||
</li>
|
||||
{% if entity.parameters is defined %}
|
||||
{% if entity.parameters is defined and showParameters == true %}
|
||||
<li class="nav-item">
|
||||
<a data-bs-toggle="tab" class="nav-link link-anchor" href="#parameters">{% trans %}admin.parameters{% endtrans %}</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
{% import "components/datatables.macro.html.twig" as datatables %}
|
||||
|
||||
<div class="btn-group mb-2 mt-2">
|
||||
<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>
|
||||
|
||||
{{ datatables.datatable(datatable, 'elements/datatables/datatables', 'assemblies') }}
|
||||
|
|
@ -37,12 +37,6 @@
|
|||
{% trans %}entity.info.attachments.tab{% endtrans %}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if assembly.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 assembly.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>
|
||||
|
|
@ -108,15 +102,6 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if assembly.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 assembly.groupedParameters %}
|
||||
{% if name is not empty %}<h5 class="mt-1">{{ name }}</h5>{% endif %}
|
||||
{{ helper.parameters_table(assembly) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if assembly.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">
|
||||
|
|
|
|||
5
templates/assemblies/info/_part.html.twig
Normal file
5
templates/assemblies/info/_part.html.twig
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{% import "components/datatables.macro.html.twig" as datatables %}
|
||||
|
||||
<div class="mb-2 mt-2"></div>
|
||||
|
||||
{{ datatables.datatable(datatable, 'elements/datatables/datatables', 'assemblies') }}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans %}name.label{% endtrans %}</th>
|
||||
<th>{% trans %}description.label{% endtrans %}</th>
|
||||
<th># {% trans %}assembly.info.bom_entries_count{% endtrans %}</th>
|
||||
<th># {% trans %}assembly.info.sub_assemblies_count{% endtrans %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for subassembly in assembly.children %}
|
||||
<tr>
|
||||
<td> {# Name #}
|
||||
<a href="{{ entity_url(subassembly, 'info') }}">{{ subassembly.name }}</a>
|
||||
</td>
|
||||
<td> {# Description #}
|
||||
{{ subassembly.description | format_markdown }}
|
||||
</td>
|
||||
<td>
|
||||
{{ subassembly.bomEntries | length }}
|
||||
</td>
|
||||
<td>
|
||||
{{ subassembly.children | length }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -5,8 +5,49 @@
|
|||
{% trans %}assembly.info.title{% endtrans %}: {{ assembly.name }}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% 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 %}
|
||||
|
|
@ -23,30 +64,20 @@
|
|||
{% 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>
|
||||
{% if assembly.children is not empty %}
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="subassemblies-tab" data-bs-toggle="tab" data-bs-target="#subassemblies-tab-pane"
|
||||
type="button" role="tab" aria-controls="subassemblies-tab-pane" aria-selected="false">
|
||||
<i class="fa-solid fa-folder-tree fa-fw"></i>
|
||||
{% trans %}assembly.info.sub_assemblies.label{% endtrans %}
|
||||
<span class="badge bg-secondary">{{ assembly.children | length }}</span>
|
||||
</button>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="bom-tab" data-bs-toggle="tab" data-bs-target="#bom-tab-pane"
|
||||
type="button" role="tab" aria-controls="bom-tab-pane" aria-selected="false">
|
||||
<button class="nav-link active" id="part-tab" data-bs-toggle="tab" data-bs-target="#part-tab-pane"
|
||||
type="button" role="tab" aria-controls="part-tab-pane" aria-selected="true">
|
||||
<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>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="info-tab" data-bs-toggle="tab" data-bs-target="#info-tab-pane"
|
||||
type="button" role="tab" aria-controls="info-tab-pane" aria-selected="false">
|
||||
<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="builds-tab" data-bs-toggle="tab" data-bs-target="#builds-tab-pane"
|
||||
type="button" role="tab" aria-controls="builds-tab-pane" aria-selected="false">
|
||||
|
|
@ -64,29 +95,14 @@
|
|||
</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 class="tab-pane fade show active" id="part-tab-pane" role="tabpanel" aria-labelledby="part-tab" tabindex="0">
|
||||
{% include "assemblies/info/_part.html.twig" %}
|
||||
</div>
|
||||
{% if assembly.children is not empty %}
|
||||
<div class="tab-pane fade" id="subassemblies-tab-pane" role="tabpanel" aria-labelledby="bom-tab" tabindex="0">
|
||||
{% include "assemblies/info/_subassemblies.html.twig" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="tab-pane fade" id="bom-tab-pane" role="tabpanel" aria-labelledby="bom-tab" tabindex="0">
|
||||
{% include "assemblies/info/_bom.html.twig" %}
|
||||
<div class="tab-pane fade" 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="builds-tab-pane" role="tabpanel" aria-labelledby="builds-tab" tabindex="0">
|
||||
{% include "assemblies/info/_builds.html.twig" %}
|
||||
|
|
@ -94,12 +110,6 @@
|
|||
<div class="tab-pane fade" id="attachments-tab-pane" role="tabpanel" aria-labelledby="attachments-tab" tabindex="0">
|
||||
{% include "parts/info/_attachments_info.html.twig" with {"part": 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 %}
|
||||
|
|
@ -44,6 +44,7 @@
|
|||
<td style="min-width: 300px;">
|
||||
{{ form_row(form.part) }}
|
||||
{{ form_errors(form.part) }}
|
||||
<div class="text-center mb-2" style="line-height: 1">∨</div>
|
||||
{{ form_widget(form.assembly) }}
|
||||
{{ form_errors(form.assembly) }}
|
||||
</td>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue