From 8d863bb87314f15778b373986ca8aa951ceda99e Mon Sep 17 00:00:00 2001 From: Lukasz Ostafin <ostafin.lucas@gmail.com> Date: Wed, 24 Jul 2024 16:10:27 +0200 Subject: [PATCH] IBX-8321: Taxonomy entry assignment field: Gap when empty --- .../public/js/scripts/core/tag.view.select.js | 9 +++++ .../public/scss/_tag-view-select.scss | 5 +++ .../tag_view_select/tag_view_select.html.twig | 34 ++++++++++--------- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/bundle/Resources/public/js/scripts/core/tag.view.select.js b/src/bundle/Resources/public/js/scripts/core/tag.view.select.js index 4118b05c30..719ba8c386 100644 --- a/src/bundle/Resources/public/js/scripts/core/tag.view.select.js +++ b/src/bundle/Resources/public/js/scripts/core/tag.view.select.js @@ -23,6 +23,7 @@ this.toggleDeleteButtons = this.toggleDeleteButtons.bind(this); this.attachDeleteEvents = this.attachDeleteEvents.bind(this); this.adjustButtonLabel = this.adjustButtonLabel.bind(this); + this.toggleEmptyListState = this.toggleEmptyListState.bind(this); ibexa.helpers.ellipsis.middle.parseAll(); this.attachDeleteEvents(); @@ -39,6 +40,12 @@ }); } + toggleEmptyListState() { + const addedTags = this.listContainer.querySelectorAll('.ibexa-tag-view-select__selected-item-tag'); + + this.listContainer.classList.toggle('ibexa-tag-view-select__selected-list--empty', !addedTags.length); + } + toggleDisabledState(isDisabled) { const removeBtns = this.listContainer.querySelectorAll('.ibexa-tag-view-select__selected-item-tag-remove-btn'); @@ -81,6 +88,7 @@ ibexa.helpers.ellipsis.middle.parseAll(); this.toggleDeleteButtons(); this.adjustButtonLabel(); + this.toggleEmptyListState(); } addItem(id, name, forceRecreate) { @@ -99,6 +107,7 @@ this.inputField.dispatchEvent(new Event('change')); this.toggleDeleteButtons(); this.adjustButtonLabel(); + this.toggleEmptyListState(); } removeItem(id) { diff --git a/src/bundle/Resources/public/scss/_tag-view-select.scss b/src/bundle/Resources/public/scss/_tag-view-select.scss index 5ec00aa69d..b21f642db8 100644 --- a/src/bundle/Resources/public/scss/_tag-view-select.scss +++ b/src/bundle/Resources/public/scss/_tag-view-select.scss @@ -18,6 +18,11 @@ flex-wrap: wrap; margin: calculateRem(10px) 0; min-height: calculateRem(24px); + + &--empty { + margin: 0; + min-height: 0; + } } &__selected-item-tag { diff --git a/src/bundle/Resources/views/themes/admin/ui/component/tag_view_select/tag_view_select.html.twig b/src/bundle/Resources/views/themes/admin/ui/component/tag_view_select/tag_view_select.html.twig index fb31978ba8..211bacee59 100644 --- a/src/bundle/Resources/views/themes/admin/ui/component/tag_view_select/tag_view_select.html.twig +++ b/src/bundle/Resources/views/themes/admin/ui/component/tag_view_select/tag_view_select.html.twig @@ -27,23 +27,25 @@ {{ title|default(default_title) }} </div> {% endif %} - <div - class="ibexa-tag-view-select__selected-list" - data-template="{{ include('@ibexadesign/ui/component/tag_view_select/tag_view_select_selected_item_tag.html.twig', { - id: '{{ id }}', - name: '{{ name }}', - is_deletable: is_delete_visible, - })|e('html_attr') }}" - > - {% for item in items %} - {{ include('@ibexadesign/ui/component/tag_view_select/tag_view_select_selected_item_tag.html.twig', { - id: item.id, - name: item.name, + {% apply spaceless %} + <div + class="ibexa-tag-view-select__selected-list {{items|length == 0 ? 'ibexa-tag-view-select__selected-list--empty'}}" + data-template="{{ include('@ibexadesign/ui/component/tag_view_select/tag_view_select_selected_item_tag.html.twig', { + id: '{{ id }}', + name: '{{ name }}', is_deletable: is_delete_visible, - is_disabled - }) }} - {% endfor %} - </div> + })|e('html_attr') }}" + > + {% for item in items %} + {{ include('@ibexadesign/ui/component/tag_view_select/tag_view_select_selected_item_tag.html.twig', { + id: item.id, + name: item.name, + is_deletable: is_delete_visible, + is_disabled + }) }} + {% endfor %} + </div> + {% endapply %} {{ form_widget(form, { attr: { hidden: true } }) }}