mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-12-06 02:59:29 +00:00
* Implementiere bevorzugte Sprachauswahl und Datenquellen-Synonyme Die Spracheinstellungen/System-Settings wurden um die Möglichkeit ergänzt, bevorzugte Sprachen für die Dropdown-Menüs festzulegen. Zudem wurde ein Datenquellen-Synonymsystem implementiert, um benutzerfreundlichere Bezeichnungen anzuzeigen und zu personalisieren. * Anpassung aus Analyse * Entferne alten JSON-basierten Datenquellen-Synonym-Handler Die Verwaltung der Datenquellen-Synonyme wurde überarbeitet, um ein flexibleres und strukturiertes Konzept zu ermöglichen. Der bestehende JSON-basierte Ansatz wurde durch eine neue Service-basierte Architektur ersetzt, die eine bessere Handhabung und Erweiterbarkeit erlaubt. * Ermögliche Rückgabe aller möglichen Sprachoptionen in Verbindung mit den vom Nutzer freigeschalteten. * Removed unnecessary service definition The tag is applied via autoconfiguration * Use default translations for the NotBlank constraint * Started refactoring ElementTypeNameGenerator * Made ElementTypeNameGenerator class readonly * Modified form to work properly with new datastructure * Made the form more beautiful and space saving * Made synonym form even more space saving * Allow to define overrides for any element label there is * Use defined synonyms in ElementTypeNameGenerator * Use ElementTypeNameGenerator where possible * Register synonyms for element types as global translation parameters * Revert changes done to permission layout * Use new synonym system for admin page titles * Removed now unnecessary services * Reworked settings name and translation * Renamed all files to Synonyms * Removed unnecessary translations * Removed unnecessary translations * Fixed duplicate check * Renamed synoynms translations * Use our synonyms for permission translations * Fixed phpstan issue * Added tests --------- Co-authored-by: Marcel Diegelmann <marcel.diegelmann@gmail.com> Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
77 lines
4.4 KiB
Twig
77 lines
4.4 KiB
Twig
{% macro sidebar_dropdown() %}
|
|
{% set currentLocale = app.request.locale %}
|
|
|
|
{# Format is [mode, route, label, show_condition] #}
|
|
{% set data_sources = [
|
|
['categories', path('tree_category_root'), '@category@@', is_granted('@categories.read') and is_granted('@parts.read')],
|
|
['locations', path('tree_location_root'), '@storage_location@@', is_granted('@storelocations.read') and is_granted('@parts.read'), ],
|
|
['footprints', path('tree_footprint_root'), '@footprint@@', is_granted('@footprints.read') and is_granted('@parts.read')],
|
|
['manufacturers', path('tree_manufacturer_root'), '@manufacturer@@', is_granted('@manufacturers.read') and is_granted('@parts.read'), 'manufacturer'],
|
|
['suppliers', path('tree_supplier_root'), '@supplier@@', is_granted('@suppliers.read') and is_granted('@parts.read'), 'supplier'],
|
|
['projects', path('tree_device_root'), '@project@@', is_granted('@projects.read'), 'project'],
|
|
['tools', path('tree_tools'), 'tools.label', true, 'tool'],
|
|
] %}
|
|
|
|
<li class="dropdown-header">{% trans %}actions{% endtrans %}</li>
|
|
<li><button class="tree-btns dropdown-item" {{ stimulus_action('elements/sidebar_tree', 'expandAll') }}">{% trans %}expandAll{% endtrans %}</a></li>
|
|
<li><button class="tree-btns dropdown-item" {{ stimulus_action('elements/sidebar_tree', 'collapseAll') }}">{% trans %}reduceAll{% endtrans %}</a></li>
|
|
<li role="separator" class="dropdown-divider"></li>
|
|
<li class="dropdown-header">{% trans %}datasource{% endtrans %}</li>
|
|
|
|
{% for source in data_sources %}
|
|
{% if source[3] %} {# show_condition #}
|
|
<li>
|
|
{% if source[2] starts with '@' %}
|
|
{% set label = type_label_p(source[2]|replace({'@': ''})) %}
|
|
{% else %}
|
|
{% set label = source[2]|trans %}
|
|
{% endif %}
|
|
|
|
<button class="tree-btns dropdown-item"
|
|
data-mode="{{ source[0] }}"
|
|
data-url="{{ source[1] }}"
|
|
data-text="{{ label }}"
|
|
{{ stimulus_action('elements/sidebar_tree', 'changeDataSource') }}
|
|
>{{ label }}</button>
|
|
</li>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endmacro %}
|
|
|
|
{% macro treeview_sidebar(id, default_mode) %}
|
|
<div {{ stimulus_controller('elements/sidebar_tree') }} data-default-mode="{{ default_mode }}" id="{{ id }}">
|
|
<div class="input-group input-group-sm mb-2 mt-1">
|
|
<button class="btn bg-body-tertiary dropdown-toggle" type="button"
|
|
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
|
|
><span class="sidebar-title" {{ stimulus_target('elements/sidebar_tree', 'sourceText') }}>Loading... / Access Denied</span></button>
|
|
<ul class="dropdown-menu" aria-labelledby="dropdownCat">
|
|
{{ _self.sidebar_dropdown('tree-categories') }}
|
|
</ul>
|
|
<input type="search" class="form-control bg-body-tertiary border-0" placeholder="{% trans %}search.placeholder{% endtrans %}" {{ stimulus_action('elements/sidebar_tree', 'searchInput') }}>
|
|
</div>
|
|
|
|
<div id="{{ id }}Tree" {{ stimulus_target('elements/sidebar_tree', 'tree') }}></div>
|
|
</div>
|
|
{% endmacro %}
|
|
|
|
{% macro treeview(entity) %}
|
|
<div {{ stimulus_controller('elements/tree') }} data-tree-data="{{ tree_data(entity) }}" data-tree-show-tags="true">
|
|
<div class="row" >
|
|
<div class="col-8">
|
|
<input type="search" class="form-control" placeholder="{% trans %}search.placeholder{% endtrans %}" {{ stimulus_action('elements/tree', 'searchInput') }}>
|
|
</div>
|
|
<div class="btn-group btn-group-sm col-4" role="group">
|
|
<button type="button" class="btn btn-outline-secondary" {{ stimulus_action('elements/tree', 'expandAll') }}
|
|
title="{% trans %}expandAll{% endtrans %}">
|
|
<i class="fas fa-plus fa-fw"></i>
|
|
</button>
|
|
<button type="button" class="btn btn-outline-secondary" {{ stimulus_action('elements/tree', 'collapseAll') }}
|
|
title="{% trans %}reduceAll{% endtrans %}">
|
|
<i class="fas fa-minus fa-fw"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="treeview-sm mt-2" {{ stimulus_target('elements/tree', 'tree') }}></div>
|
|
</div>
|
|
{% endmacro %}
|