pnp / pnp/pnpframework

QuickLaunch navigation nodes get removed after updating lists

Open
#820 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
259
Forks
161
Avg merge
10h 33m
Merged PRs (30d)
1

Description

I have a similar quick launch navigation structure as in the picture below:
image

The Templates node points to a document library. It's url is {site}/Templates/Forms/AllItems.aspx.

Because I'm using the pnp provisioning engine to add and update artefacts in SharePoint Online, I have a provisioning template which adds or updates the Templates list.

<pnp:ProvisioningTemplate ID="Templates" xmlns:pnp="http://schemas.dev.office.com/PnP/2021/03/ProvisioningSchema">
	<pnp:Lists>
		<pnp:ListInstance
			Title="{resource:Library_Templates}"
			TemplateType="101"
			Url="Templates"
			EnableFolderCreation="false"
			EnableVersioning="true"
			EnableMinorVersions="false"
			MaxVersionLimit="50000"
			
			EnableAttachments="false"
			ContentTypesEnabled="true"
			RemoveExistingContentTypes="true"> 
			<pnp:ContentTypeBindings>
				<pnp:ContentTypeBinding ContentTypeID="0x01010047421319F25441D68B1E7B7AB3295A19" Default="true"/>
				<pnp:ContentTypeBinding ContentTypeID="0x010100D549991D99554EAAA3E78A78A20B2E10" Default="false"/>
				<pnp:ContentTypeBinding ContentTypeID="0x010100EA56B56D1E12482EB3C61338422E840C" Default="false"/>
				<pnp:ContentTypeBinding ContentTypeID="0x0120D520009DF7A4C82FA0454C8C365CA8F2CEF730" Default="false"/>
				<pnp:ContentTypeBinding ContentTypeID="0x0120D520000F3F1D8533A6469CBDB20D4DD43333CD" Default="false"/>
				<pnp:ContentTypeBinding ContentTypeID="0x0120D520000AA15DCEEA0848C491D84C94E96ABF39" Default="false"/>
			</pnp:ContentTypeBindings>
			<pnp:Views RemoveExistingViews="false">
				<View
					Name="All Documents"
					DefaultView="TRUE"
					MobileView="TRUE"
					MobileDefaultView="TRUE"
					Type="HTML"
					DisplayName="All Documents"
					Url="{site}/Templates/Forms/AllItems.aspx">
					<ViewFields>
						<FieldRef Name="DocIcon"/>
						<FieldRef Name="LinkFilename"/>
						<FieldRef Name="Title"/>
						<FieldRef Name="Modified"/>
						<FieldRef Name="Editor"/>
					</ViewFields>
				</View>
			</pnp:Views>
		</pnp:ListInstance>
	</pnp:Lists>
</pnp:ProvisioningTemplate>

As soon as I apply this provisioning template, my Templates navigation node will disappear.

Is there any reason why updating a list will remove the navigation node pointing to it? Is there any way to prevent that from happening? Imagine having 15 navigation nodes grouped under a navigation header all with audience targeting. These nodes will disappear as soon as I apply an update to the site and it will be time consuming to built everything back up since audience targeting is not supported in the schema.

Also posted here https://github.com/pnp/PnP-Provisioning-Schema/issues/608, but it's probably more suited in this repo.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in SharePoint Online by applying the shown PnP provisioning template to a site with a linked QuickLaunch node. Trace the provisioning-engine path that updates the list and navigation, then verify that applying the template preserves existing navigation nodes, including audience targeting; add regression coverage if the repository provides a suitable test entry point.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.