From eef1ac73941541658f8b449e9a9d72cc896a529a Mon Sep 17 00:00:00 2001 From: Torsten Brendgen Date: Tue, 18 Aug 2026 15:56:41 +0200 Subject: [PATCH] Add default PortalSettings footer link --- README.md | 4 ++-- ToDo.md | 2 +- config/package-solution.json | 2 +- package-lock.json | 2 +- package.json | 2 +- src/providers/CustomBrandingSettingsProvider.ts | 16 +++++++++++++++- tests/ProviderRegistry.test.ts | 4 ++++ tests/validate-static-assets.js | 4 ++-- 8 files changed, 27 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3753a29..0b936c8 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ PortalSettings V3 ist ein providerbasiertes SPFx-WebPart für SharePoint Server | Eigenschaft | Wert | |---|---| -| Version | 3.0.2 | +| Version | 3.0.3 | | SharePoint Framework | 1.4.1 | | Build-Node | 8.17.0 | | npm | 6.x | @@ -155,7 +155,7 @@ sharepoint/solution/portal-settings.sppkg ## Installation -1. `portal-settings.sppkg` im App Catalog durch Version `3.0.2.0` ersetzen. +1. `portal-settings.sppkg` im App Catalog durch Version `3.0.3.0` ersetzen. 2. Die App im Root Web der gewünschten Site Collection installieren oder aktualisieren. 3. Eine moderne Seite erstellen. 4. Das WebPart **Portal Settings** einmal auf der Seite hinzufügen. diff --git a/ToDo.md b/ToDo.md index dbd7d66..0c19ba3 100644 --- a/ToDo.md +++ b/ToDo.md @@ -2,7 +2,7 @@ Stand: 21.07.2026 Branch: `dev-3.0` -Zielversion: 3.0.2 +Zielversion: 3.0.3 ## Architektur diff --git a/config/package-solution.json b/config/package-solution.json index 31725ee..ef20a2d 100644 --- a/config/package-solution.json +++ b/config/package-solution.json @@ -3,7 +3,7 @@ "solution": { "name": "portal-settings-client-side-solution", "id": "1c98e32d-bb7b-43b7-9625-074d6e4ea286", - "version": "3.0.2.0", + "version": "3.0.3.0", "includeClientSideAssets": true, "skipFeatureDeployment": false }, diff --git a/package-lock.json b/package-lock.json index f95df1c..5057ad8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "portal-settings", - "version": "3.0.2", + "version": "3.0.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c074eb9..8c1f15c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "portal-settings", - "version": "3.0.2", + "version": "3.0.3", "private": true, "main": "lib/index.js", "engines": { diff --git a/src/providers/CustomBrandingSettingsProvider.ts b/src/providers/CustomBrandingSettingsProvider.ts index 7872c88..09b0a03 100644 --- a/src/providers/CustomBrandingSettingsProvider.ts +++ b/src/providers/CustomBrandingSettingsProvider.ts @@ -94,7 +94,21 @@ export const CustomBrandingSettingsProvider: ISettingsProvider { // tslint:disable-line:no-any const source: any = value && typeof value === 'object' ? value : {}; // tslint:disable-line:no-any diff --git a/tests/ProviderRegistry.test.ts b/tests/ProviderRegistry.test.ts index 8e46f67..451887d 100644 --- a/tests/ProviderRegistry.test.ts +++ b/tests/ProviderRegistry.test.ts @@ -35,6 +35,10 @@ const branding: ISettingsProvider = getSettingsProvider('custombranding'); assert(!!branding.storage.action, 'CustomBranding-Aktivierungsdefinition fehlt.'); assert(branding.storage.action.name === 'CustomBranding', 'CustomBranding Action-Name ist nicht stabil.'); assert(branding.storage.action.location === 'ClientSideExtension.ApplicationCustomizer', 'CustomBranding Action-Location ist ungültig.'); +const defaultBranding: any = branding.createDefault(); // tslint:disable-line:no-any +assert(defaultBranding.placeholderbottom.elements.length === 1, 'Standard-Footer für CustomBranding fehlt.'); +assert(defaultBranding.placeholderbottom.elements[0].children[0].attributes.href === + '~sitecollection/SitePages/PortalSettings.aspx', 'Standard-Footer verweist nicht auf PortalSettings.'); const normalizedBranding: any = branding.normalize({ elements: [{ type: 'span' }], future: 7 }); // tslint:disable-line:no-any assert(normalizedBranding.placeholdertop.elements.length === 1, 'Legacy-Branding-Elemente werden nicht übernommen.'); assert(normalizedBranding.future === 7, 'Unbekannte Branding-Properties gehen verloren.'); diff --git a/tests/validate-static-assets.js b/tests/validate-static-assets.js index 60ddb4e..ee5376b 100644 --- a/tests/validate-static-assets.js +++ b/tests/validate-static-assets.js @@ -21,8 +21,8 @@ var sourceFiles = [ 'src/ui/PortalSettingsApp.ts' ].map(read).join('\n'); -assert(packageJson.version === '3.0.2', 'Package-Version ist nicht 3.0.2.'); -assert(solution.version === '3.0.2.0', 'Solution-Version ist nicht 3.0.2.0.'); +assert(packageJson.version === '3.0.3', 'Package-Version ist nicht 3.0.3.'); +assert(solution.version === '3.0.3.0', 'Solution-Version ist nicht 3.0.3.0.'); assert(!solution.features, 'Alte ASPX-Feature-Assets sind noch registriert.'); assert(!!config.bundles['portal-settings-web-part'], 'WebPart-Bundle fehlt.'); assert(copyAssets.deployCdnPath === 'temp/deploy', 'Ship-Assets werden nicht nach temp/deploy geschrieben.');