SAP / openui5

OpenUI5 lets you build enterprise-ready web applications, responsive to all devices, running on almost any browser of your choice.
http://openui5.org
Apache License 2.0
2.96k stars 1.24k forks source link

Object Page Layout height constantly increases when placed in a Wizard Step #4124

Closed EvilPlacebo closed 2 weeks ago

EvilPlacebo commented 1 month ago

OpenUI5 version: 1.129.0-SNAPSHOT Browser/version (+device/version): Version 128.0.6613.138 (Official Build) (64-bit) Any other tested browsers/devices(OK/FAIL):

URL (minimal example if possible): https://jsbin.com/cebabezuna/edit?html,js,output User/password (if required and possible - do not post any confidential information here):

Steps to reproduce the problem:

  1. Create simple sap.m.Wizard with renderMode is "Page" and Dynamic Page as a container.
  2. Place Object Page Layout as a content of the first Wizard Page.

What is the expected result? Object Page Layout height is stable and is correspondive to its content height What happens instead? Object Page Layout height has infinite growth Any other information? (attach screenshot if possible) Hi Team, Basically this issue is a successor of https://github.com/SAP/openui5/issues/2514 but the surrounding container is different and I'm not sure that the same solution could be applied here. Additionally as you can see in the code example https://me.sap.com/notes/0002390659 did not help either, as setting View height to 100% give no effect.

Regards, Ivan

i556484 commented 1 month ago

Hello @EvilPlacebo , Thank you for sharing this finding. I've created an internal incident DINC0269380. The status of the issue will be updated here in GitHub.

stephania87 commented 1 month ago

I would rather suggest you a redesign which is not nesting 3 different page layouts into each other (DynamicPage> Wizard> ObjectPageLayout ). The ObjectPageLayout can have a fixed height property or it expects height from its container while the Wizard will resize or add scrollbars based on its content size (renderType and scroll area based on the height property). The DynamicPage is also a responsive control that can get the size of the viewport or the content (check fitContent property in the public API).

If you keep that structure, then each container will have to provide size for its content for the scrolling to work, where for the ObjectPageLayout as inner-most container the option is only fixed height value. Multiple scroll containers can occur though per container, which is usually undesired by UX. Adding a top-most container like sap.m.App is also required for the used page layouts. And currently, WizardStep is not an individual scroll container, the whole wizard is a scroll container.

So this question can be turned into a feature request for the option to have different WizardStep rendering options for future, which will allow you to turn a WizardStep container into a scrollarea or fixed height container. Clarify if we shall proceed with that.

EvilPlacebo commented 1 month ago

So this question can be turned into a feature request for the option to have different WizardStep rendering options for future, which will allow you to turn a WizardStep container into a scrollarea or fixed height container. Clarify if we shall proceed with that.

Hi @stephania87, Thanks for the detailed answer. I would vote for a feature request, as from my point of view, Wizard Step rendering options need some love. As I have another scenario where TreeTable is placed inside the WizardStep and with option, it renders always minRowCount amount of Rows leaving big gap between the TreeTable and footer. That's another story, but I assume those issues both have a root cause in WizardStep rendering options.

stephania87 commented 1 month ago

It is the same reason, yes. The WizardStep doesn't provide height, rather it expects height from the content. Thus auto row height for grid tables cannot be calculated. If you use grid tables in ObjectPageSubSection, there will be the same case, even though there are CSS options to stretch a sub section ( see public API for sapUxAPObjectPageSubSectionFitContainer).

The question about the WizardStep as a container is under review by devs.

hristop commented 2 weeks ago

Hi @EvilPlacebo ,

Thanks for bringing this to us. Just to point some Wizard component specifics: • The Wizard can be used as a floorplan or in a dialog. • The Wizard contains a dynamic header, but the Object Page also contains a dynamic header. Any manipulation here would lead to unwanted effects. • The Wizard can be used with other layouts such as full screen or flexible column layout.

We brought your request to our UxD colleagues and we came to the conclusion that we will have to reject this requirement. The Wizard and the ObjectPageLayout were never intended to be used together and combining them will result in inconsistency of the floorplans. Thus we consider an unsupported scenario.

Best Regards, Hristo