jmix icon indicating copy to clipboard operation
jmix copied to clipboard

SettingsFacet only applies to the first fragment if the same type

Open glebfox opened this issue 1 month ago • 1 comments

Environment

Jmix version: 1.7.2

Bug Description

SettingsFacet only applies to the first fragment if the same type because settings are mapped to the component ids which are identical.

Steps To Reproduce

  1. Open UserBrowse
  2. Open Active or Inactive tabs (relates to fragments)
  3. Change pagination
  4. Trigger user setting saving (e.g. close the screen)
  5. Reopen the screen and navigate to the same tab

Current Behavior

Settings are not saved

Expected Behavior

Settings are saved for each fragment

Sample Project

https://github.com/izumi-jmix/cfconflict

glebfox avatar Dec 12 '25 11:12 glebfox

It seems in method 'io.jmix.ui.settings.facet.ScreenSettingsFacetImpl#fillWithInnerComponents(Collection<Component>, HasInnerComponents)' is not considered that hasInnerComponents.getInnerComponents() may return instances of HasComponents

Sample: TableImpl - HasInnerComponents. getInnerComponents() -> List.of(ButtonsPanelImpl). ButtonsPanelImpl is a HasComponents and may contain PaginationImpl. Such PaginationImpl are missed in current implementation (Jmix 1.7.2)

Flamesson avatar Dec 15 '25 19:12 Flamesson