pnp / modernization

All modernization tooling and guidance
http://aka.ms/sppnp-modernize
MIT License
156 stars 86 forks source link

Transformed image web parts are out of order #72

Closed pkbullock closed 5 years ago

pkbullock commented 5 years ago

Category

[X] Bug [ ] Enhancement

Problem Area

[ ] Error during the setup/use of the Page Transformation UI solution (did you check our troubleshooting guide?) [ ] Error during the use of page transformation from PnP PowerShell [ ] Error during the use of page transformation from .Net [X] Page is not looking correct after transformation

Expected or Desired Behavior

Image transformation is maintaining order. In an example, 4 images on the page, on transformation they appear out of order.

Observed Behavior

When running a transform, regardless of cross site or same site with a web part page containing multiple image web parts, they appear out of order on the transformed page.

Steps to Reproduce

Add 4 image web parts to a web part page, in an example I have attached a screenshot with 2 images of a quantum computer and 2 images of a qubit processor. (see attached)

source-image 2019-03-03_21-35-04

Run the transformation

In the transformed page, the becomes qubit processor, 2 images of a quantum computer then a qubit processor.

target image 2019-03-03_21-48-10

jansenbe commented 5 years ago

Hi @pkbullock ,

I've created a web part page with a single column layout and 4 web parts like in your above example, but I'm not able to reproduce this (also not when transforming to another site collection). Is there anything specific on this page? Which layout did you use?

pkbullock commented 5 years ago

So in this case the source page, we a web part page with Header, Footer, 3 Columns layout. The "WPP_Image-Asset-MultipleImages-Test.aspx" page in the provisioning sample in Unit tests contain the scenario.

jansenbe commented 5 years ago

Did not yet test with your page but created a similar page using the UI and put 2 web parts in the header and 2 in the middle column zone...and this works correctly. I think it's due to the order how the web parts are defined in your page (middle column / header / header / middle column) that's causing this as the web parts are returned in that order by the web part manager. Will do some more testing on this.

jansenbe commented 5 years ago

Might be an side effect of how the test page is created: we use the page property bag property vti_setuppath to detect the layout. For this type of page the expected value is 1033\STS\doctemp\smartpgs\spstd2.aspx.

We don't have support for setting the page property bag entry in a pnp provisioning template at this moment...but can you can try to set the page property bag entry on your test page and verify if that makes a difference?

pkbullock commented 5 years ago

Ah ok, I have confirmed the same works on a manually created page. After much playing cannot easily update the vti_setuppath property it appears to be blocked by CSOM or does not take affect. At least, the issue is with the provisioning I guess, but affects test quality for now.

jansenbe commented 5 years ago

See https://github.com/SharePoint/sp-dev-modernization/blob/dev/Tools/SharePoint.Modernization/SharePointPnP.Modernization.Framework/Transform/PageTransformator.cs#L532 for an example on setting a page property.

jansenbe commented 5 years ago

Closing this issue as it's due to page provisioning.