Rename form column Twig globals to shorter names: label_col, input_col, offset_col

Co-authored-by: jbtronics <5410681+jbtronics@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-07 13:11:16 +00:00
parent 2769772877
commit b508d57094
28 changed files with 68 additions and 68 deletions

View File

@@ -18,9 +18,9 @@ twig:
saml_enabled: '%partdb.saml.enabled%'
part_preview_generator: '@App\Services\Attachments\PartPreviewGenerator'
# Bootstrap grid classes used for horizontal form layouts
form_label_col_class: 'col-sm-3 col-lg-2'
form_input_col_class: 'col-sm-9 col-lg-10'
form_offset_col_class: 'offset-sm-3 offset-lg-2'
label_col: 'col-sm-3 col-lg-2'
input_col: 'col-sm-9 col-lg-10'
offset_col: 'offset-sm-3 offset-lg-2'
when@test:
twig:

View File

@@ -5,7 +5,7 @@
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ entity.id) }}">
<div class="form-group">
<div class=""></div>
<div class="col-sm {{ form_offset_col_class }} ps-2">
<div class="col-sm {{ offset_col }} ps-2">
{% set delete_disabled = (not is_granted("delete", entity)) or (entity.group is defined and entity.id == 1) or entity == app.user %}
<div class="btn-group">
<button class="btn btn-danger" {% if delete_disabled %}disabled{% endif %}>{% trans %}entity.delete{% endtrans %}</button>

View File

@@ -35,7 +35,7 @@
</div>
<div class="row mt-2">
<div class="{{ form_offset_col_class }} col-sm">
<div class="{{ offset_col }} col-sm">
<button type="submit" class="btn btn-primary">{% trans %}export.btn{% endtrans %}</button>
</div>
</div>

View File

@@ -129,7 +129,7 @@
</div>
<div class="form-group row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<div class="btn-group">
{{ form_widget(form.save) }}
<button type="button" class="btn {% if entity.id is not null %}btn-primary{% else %}btn-success{% endif %} dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -186,7 +186,7 @@
<div id="mass_creation" class="tab-pane fade">
<div class="row">
<p class="text-muted {{ form_offset_col_class }} {{ form_input_col_class }}">{% trans %}mass_creation.help{% endtrans %}</p>
<p class="text-muted {{ offset_col }} {{ input_col }}">{% trans %}mass_creation.help{% endtrans %}</p>
</div>
{{ form(mass_creation_form) }}
</div>

View File

@@ -41,13 +41,13 @@
{{ form_row(form.eda_info.reference_prefix) }}
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
{{ form_row(form.eda_info.visibility) }}
</div>
</div>
<div class="row mb-2">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
{{ form_widget(form.eda_info.exclude_from_bom) }}
{{ form_widget(form.eda_info.exclude_from_board) }}
{{ form_widget(form.eda_info.exclude_from_sim) }}
@@ -55,7 +55,7 @@
</div>
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<h6>{% trans %}eda_info.kicad_section.title{% endtrans %}:</h6>
</div>
</div>

View File

@@ -28,7 +28,7 @@
{% block additional_panes %}
<div class="tab-pane" id="eda">
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<h6>{% trans %}eda_info.kicad_section.title{% endtrans %}:</h6>
</div>
</div>

View File

@@ -27,7 +27,7 @@
{{ form_row(form.options.supported_element) }}
<div class="mb-2 row">
{{ form_label(form.options.width) }}
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<div class="input-group">
{{ form_widget(form.options.width) }}

View File

@@ -31,8 +31,8 @@
{{ form_row(form.status) }}
{% if entity.id %}
<div class="mb-2 row">
<label class="col-form-label {{ form_label_col_class }}">{% trans %}project.edit.associated_build_part{% endtrans %}</label>
<div class="{{ form_input_col_class }}">
<label class="col-form-label {{ label_col }}">{% trans %}project.edit.associated_build_part{% endtrans %}</label>
<div class="{{ input_col }}">
{% if entity.buildPart %}
<span class="form-control-static"><a href="{{ entity_url(entity.buildPart) }}">{{ entity.buildPart.name }}</a></span>
{% else %}

View File

@@ -8,7 +8,7 @@
{% block additional_controls %}
{% if entity.id %}
<div class="row form-group">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
{{ dropdown.profile_dropdown('storelocation', entity.id) }}
</div>
</div>

View File

@@ -44,7 +44,7 @@
{{ form_row(filterForm.discard) }}
<div class="row mb-3">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<button type="button" class="btn btn-danger" {{ stimulus_action('helpers/form_cleanup', 'clearAll') }}>{% trans %}filter.clear_filters{% endtrans %}</button>
</div>
</div>

View File

@@ -63,8 +63,8 @@
<div class="">
{{ form_row(form.mountnames) }}
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">{% trans %}project.bom.price{% endtrans %}</label>
<div class="{{ form_input_col_class }}">
<label class="col-form-label {{ label_col }}">{% trans %}project.bom.price{% endtrans %}</label>
<div class="{{ input_col }}">
<div class="input-group">
{{ form_widget(form.price) }}
{{ form_widget(form.priceCurrency) }}

View File

@@ -17,11 +17,11 @@
{% block form_label_class -%}
{{ form_label_col_class }}
{{ label_col }}
{%- endblock form_label_class %}
{% block form_group_class -%}
{{ form_input_col_class }}
{{ input_col }}
{%- endblock form_group_class %}
{% block si_unit_widget %}

View File

@@ -28,7 +28,7 @@
{{ form_row(form.providers) }}
<div class="row mb-2">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<a href="{{ path('info_providers_list') }}">{% trans %}info_providers.search.info_providers_list{% endtrans %}</a>
</div>
</div>

View File

@@ -8,7 +8,7 @@
{% block card_title %}<i class="fa-solid fa-gear fa-fw"></i> {% trans %}info_providers.settings.title{% endtrans %}: <b>{{ info_provider_info.name }}</b>{% endblock %}
{% block card_content %}
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<h3>
{% if info_provider_info.url is defined %}
<a href="{{ info_provider_info.url }}" class="link-external" target="_blank" rel="nofollow">{{ info_provider_info.name }}</a>
@@ -23,7 +23,7 @@
{{ form_start(form) }}
<div class="row">
<div class="{{ form_offset_col_class }} col mb-3 ps-2">
<div class="{{ offset_col }} col mb-3 ps-2">
<b>{{ form_help(form) }}</b>
</div>
</div>

View File

@@ -36,7 +36,7 @@
{{ form_row(form.options.supported_element) }}
<div class="mb-2 row">
{{ form_label(form.options.width) }}
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<div class="input-group">
{{ form_widget(form.options.width) }}
@@ -59,8 +59,8 @@
<div class="tab-pane" id="profiles" role="tabpanel" aria-labelledby="profiles-tab">
<div class="form-group row">
<label class="{{ form_label_col_class }} col-form-label">{% trans %}label_generator.selected_profile{% endtrans %}</label>
<div class="{{ form_input_col_class }}">
<label class="{{ label_col }} col-form-label">{% trans %}label_generator.selected_profile{% endtrans %}</label>
<div class="{{ input_col }}">
<span class="form-control-plaintext">{{ profile.name ?? '-' }}
{% if profile and is_granted("edit", profile) %}
<a href="{{ entity_url(profile, 'edit') }}" title="{% trans %}label_generator.edit_profile{% endtrans %}"
@@ -71,7 +71,7 @@
</div>
<div class="form-group row">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
<div class="dropdown">
<button class="btn btn-info dropdown-toggle" type="button" id="loadProfilesButton"
{% if not is_granted("@labels.create_labels") %}disabled{% endif %}
@@ -97,7 +97,7 @@
{% if is_granted("@labels.read_profiles") %}
<div class="form-group row">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
<a class="btn btn-link" href="{{ path('label_profile_new') }}">{% trans %}label_generator.edit_profiles{% endtrans %}</a>
</div>
</div>
@@ -108,7 +108,7 @@
{% endif %}
<div class="form-group row">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
<div class="input-group">
{{ form_widget(form.save_profile_name) }}
{{ form_widget(form.save_profile) }}
@@ -124,7 +124,7 @@
{{ form_end(form) }}
{% if pdf_data %}
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<a data-turbo="false" class="btn btn-secondary" href="#" {{ stimulus_controller('pages/label_download_btn')}} {{ stimulus_action('pages/label_download_btn', 'download')}} download="{{ filename ?? '' }}">
{% trans %}label_generator.download{% endtrans %}
</a>

View File

@@ -9,7 +9,7 @@
<div class="">
<div class="form-group row">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
<div class="img-thumbnail" style="max-width: 600px;">
<div id="reader-box" {{ stimulus_controller('pages/barcode_scan') }}></div>
</div>

View File

@@ -40,7 +40,7 @@
{{ form_row(filterForm.discard) }}
<div class="row mb-3">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<button type="button" class="btn btn-danger" {{ stimulus_action('helpers/form_cleanup', 'clearAll') }}>{% trans %}filter.clear_filters{% endtrans %}</button>
</div>
</div>

View File

@@ -4,7 +4,7 @@
{{ form_row(form.eda_info.visibility) }}
<div class="row mb-2">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
{{ form_widget(form.eda_info.exclude_from_bom) }}
{{ form_widget(form.eda_info.exclude_from_board) }}
{{ form_widget(form.eda_info.exclude_from_sim) }}
@@ -12,7 +12,7 @@
</div>
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<h6>{% trans %}eda_info.kicad_section.title{% endtrans %}:</h6>
</div>
</div>

View File

@@ -1,7 +1,7 @@
{{ form_row(form.name) }}
{% if part.category is not null and part.category.partnameHint is not empty %}
<div class="row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<p class="form-text help-text"><b>{% trans %}part.edit.name.category_hint{% endtrans %}:</b> {{ part.category.partnameHint }}</p>
</div>
</div>

View File

@@ -107,7 +107,7 @@
{% set id = 'collapse_' ~ random() %}
<a class="btn btn-link {{ form_offset_col_class }} btn-sm" data-bs-toggle="collapse" href="#{{ id }}" role="button" aria-expanded="false" aria-controls="{{ id }}">
<a class="btn btn-link {{ offset_col }} btn-sm" data-bs-toggle="collapse" href="#{{ id }}" role="button" aria-expanded="false" aria-controls="{{ id }}">
{% trans %}part_lot.edit.advanced{% endtrans %}
</a>
<div class="collapse" id="{{ id }}">
@@ -142,7 +142,7 @@
<div class="mb-2 row">
{{ form_label(form.file) }}
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
{{ form_widget(form.file) }}
{{ form_errors(form.file) }}
<small class="text-muted">{% trans %}attachment.max_file_size{% endtrans %}: {{ max_upload_size | format_bytes }}</small>

View File

@@ -140,7 +140,7 @@
</div>
<div class="form-group row">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<div class="btn-group">
{{ form_widget(form.save) }}
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">

View File

@@ -25,7 +25,7 @@
{% endblock %}
{% block card_content %}
<p class="text-muted {{ form_offset_col_class }}">
<p class="text-muted {{ offset_col }}">
{% trans %}parts.import.help{% endtrans %}<br>
{% trans with {'%link%': 'https://docs.part-db.de/usage/import_export.html'} %}parts.import.help_documentation{% endtrans %}
</p>

View File

@@ -13,39 +13,39 @@
<input type="hidden" name="_redirect" value="{{ uri_without_host(app.request) }}">
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.stocktake_modal.expected_amount{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<span id="stocktake-modal-expected-amount" class="form-control-plaintext">0</span>
</div>
</div>
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.stocktake_modal.actual_amount{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<input type="number" required class="form-control" min="0" step="{{ (part.partUnit and not part.partUnit.integer) ? 'any' : '1' }}" name="actual_amount" value="">
</div>
</div>
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.withdraw_modal.comment{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<input type="text" class="form-control" name="comment" value="">
<div class="form-text">{% trans %}part.info.withdraw_modal.comment.hint{% endtrans %}</div>
</div>
</div>
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.withdraw_modal.timestamp{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
{# The timestamp must be between a year ago and 1 hour in the future #}
<input type="datetime-local" class="form-control" name="timestamp" value=""
max="{{ "+10mins"|date('Y-m-d\\TH:i') }}" min="{{ "-1year"|date('Y-m-d\\TH:i') }}">

View File

@@ -18,17 +18,17 @@
<input type="hidden" name="_redirect" value="{{ uri_without_host(app.request) }}">
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.withdraw_modal.amount{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<input type="number" required class="form-control" min="0" step="{{ (part.partUnit and not part.partUnit.integer) ? 'any' : '1' }}" name="amount" value="">
</div>
</div>
<div class="row mb-2 d-none" id="withdraw-modal-move-to">
<label class="col-form-label {{ form_label_col_class }}">{% trans %}part.info.withdraw_modal.move_to{% endtrans %}</label>
<div class="{{ form_input_col_class }}">
<label class="col-form-label {{ label_col }}">{% trans %}part.info.withdraw_modal.move_to{% endtrans %}</label>
<div class="{{ input_col }}">
{% for lots in part.partLots|filter(l => l.instockUnknown == false) %}
<div class="form-check">
@@ -42,20 +42,20 @@
</div>
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.withdraw_modal.comment{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
<input type="text" class="form-control" name="comment" value="" {% if event_comment_needed('part_stock_operation') %}required{% endif %}>
<div id="emailHelp" class="form-text">{% trans %}part.info.withdraw_modal.comment.hint{% endtrans %}</div>
</div>
</div>
<div class="row mb-2">
<label class="col-form-label {{ form_label_col_class }}">
<label class="col-form-label {{ label_col }}">
{% trans %}part.info.withdraw_modal.timestamp{% endtrans %}
</label>
<div class="{{ form_input_col_class }}">
<div class="{{ input_col }}">
{# The timestamp must be between a year ago and 1 hour in the future #}
<input type="datetime-local" class="form-control" name="timestamp" value=""
max="{{ "+10mins"|date('Y-m-d\\TH:i') }}" min="{{ "-1year"|date('Y-m-d\\TH:i') }}">
@@ -64,7 +64,7 @@
</div>
<div class="row mb-2">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
{# The timestamp must be between a year ago and 1 hour in the future #}
<div class="form-check">
<input class="form-check-input" type="checkbox" name="delete_lot_if_empty" value="true" id="withdraw_modal_delete_if_empty">

View File

@@ -148,7 +148,7 @@
{{ form_row(filterForm.discard) }}
<div class="row mb-3">
<div class="{{ form_input_col_class }} {{ form_offset_col_class }}">
<div class="{{ input_col }} {{ offset_col }}">
<button type="button" class="btn btn-danger" {{ stimulus_action('helpers/form_cleanup', 'clearAll') }}>{% trans %}filter.clear_filters{% endtrans %}</button>
</div>
</div>

View File

@@ -43,7 +43,7 @@
{{ (section_widget.vars.label ?? section_widget.vars.name|humanize)|trans }}
</legend>
<div class="row">
<div class="{{ form_offset_col_class }} col mb-3 ps-2">
<div class="{{ offset_col }} col mb-3 ps-2">
<b>{{ form_help(section_widget) }}</b>
{{ form_errors(section_widget) }}
</div>

View File

@@ -37,11 +37,11 @@
{{ form_start(google_form, { 'attr': google_form_attr}) }}
{% if not tfa_google.enabled %}
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<h6>{% trans %}tfa_google.disabled_message{% endtrans %}</h6>
</div>
<div class="{{ form_offset_col_class }} row">
<div class="{{ offset_col }} row">
<div class="col-sm-3">
<img width="100%" class="img-fluid bg-white p-2" alt="{{ tfa_google.qrContent }}" src="{{ barcode_svg(tfa_google.qrContent) | data_uri("image/svg+xml") }}">
</div>
@@ -55,7 +55,7 @@
</div>
</div>
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<button class="btn btn-link" type="button" data-bs-toggle="collapse" data-bs-target="#manualSetupCollapse" aria-expanded="false" aria-controls="manualSetupCollapse">
{% trans %}tfa_google.manual_setup{% endtrans %}
</button>
@@ -72,7 +72,7 @@
{{ form_row(google_form.google_confirmation) }}
{% else %}
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<h6>{% trans %}tfa_google.enabled_message{% endtrans %}</h6>
</div>
{% endif %}
@@ -81,7 +81,7 @@
</div>
<div class="tab-pane fade" id="tfa-backup" role="tabpanel" aria-labelledby="backup-tab">
{% if user.backupCodes is empty %}
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<h6>{% trans %}tfa_backup.disabled{% endtrans %}</h6>
<span>{% trans %}tfa_backup.explanation{% endtrans %}</span>
</div>
@@ -89,19 +89,19 @@
{% set backup_form_attr = { 'data-delete-form': true, 'data-controller': 'elements--delete-btn', 'data-action': 'submit->elements--delete-btn#submit',
'data-delete-title': 'tfa_backup.reset_codes.confirm_title' | trans, 'data-delete-message': 'tfa_backup.reset_codes.confirm_message' | trans} %}
{{ form_start(backup_form, { 'attr': backup_form_attr}) }}
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<h6>{% trans %}tfa_backup.enabled{% endtrans %}</h6>
<span>{% trans %}tfa_backup.explanation{% endtrans %}</span>
</div>
<div class="{{ form_offset_col_class }} mt-2">
<div class="{{ offset_col }} mt-2">
<p class="mb-0"><b>{% trans %}tfa_backup.remaining_tokens{% endtrans %}:</b> {{ user.backupCodes | length }}</p>
<p><b>{% trans %}tfa_backup.generation_date{% endtrans %}:</b> {{ user.backupCodesGenerationDate | format_datetime }}</p>
</div>
<div class="{{ form_offset_col_class }}">
<div class="{{ offset_col }}">
<a href="{{ path('show_backup_codes') }}" target="_blank" data-turbo="false" class="btn btn-primary">{% trans %}tfa_backup.show_codes{% endtrans %}</a>
</div>
<div class="{{ form_offset_col_class }} mt-2">
<div class="{{ offset_col }} mt-2">
{{ form_widget(backup_form.reset_codes) }}
</div>
{{ form_end(backup_form) }}

View File

@@ -28,7 +28,7 @@
{{ form_row(settings_form.showEmailOnProfile) }}
{{ form_row(settings_form.avatar_file) }}
<div class="mb-3 row {% if user.masterPictureAttachment is null %}d-none{% endif %}">
<div class="{{ form_offset_col_class }} {{ form_input_col_class }}">
<div class="{{ offset_col }} {{ input_col }}">
{% if user.masterPictureAttachment %}
<img src="{{ attachment_thumbnail(user.masterPictureAttachment, 'thumbnail_md') }}" alt="avatar" class="rounded" style="height: 75px;">
{% endif %}