feat: Update version to 3.0.3 and enhance styling in CustomBranding application

This commit is contained in:
Torsten Brendgen
2026-08-18 20:20:30 +02:00
parent fae34b7ed8
commit 41de64fd1d
8 changed files with 19 additions and 7 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# CustomBranding # CustomBranding
CustomBranding 3.0.2 ist ein zentraler SPFx-1.4.1-Application-Customizer für SharePoint Server Subscription Edition. Die Solution lädt freigegebene Stylesheets und rendert eine kontrollierte Komponentenstruktur im oberen oder unteren SharePoint-Placeholder. Moderne und klassische Seiten verwenden dieselben `ClientSideComponentProperties`. CustomBranding 3.0.3 ist ein zentraler SPFx-1.4.1-Application-Customizer für SharePoint Server Subscription Edition. Die Solution lädt freigegebene Stylesheets und rendert eine kontrollierte Komponentenstruktur im oberen oder unteren SharePoint-Placeholder. Moderne und klassische Seiten verwenden dieselben `ClientSideComponentProperties`.
Die Konfiguration liegt in genau einer `SPSite.UserCustomAction` pro Site Collection. Es werden weder eine versteckte Liste noch ein Property Bag benötigt. Dadurch gilt das Branding automatisch für das Root Web, vorhandene Subwebs und später angelegte Subwebs. Die Konfiguration liegt in genau einer `SPSite.UserCustomAction` pro Site Collection. Es werden weder eine versteckte Liste noch ein Property Bag benötigt. Dadurch gilt das Branding automatisch für das Root Web, vorhandene Subwebs und später angelegte Subwebs.
+1 -1
View File
@@ -3,7 +3,7 @@
Analysestand: 20.07.2026 Analysestand: 20.07.2026
Umgesetzt: 20.07.2026 Umgesetzt: 20.07.2026
Ausgangsversion: 1.0.4 Ausgangsversion: 1.0.4
Zielversion: 3.0.2 Zielversion: 3.0.3
Status: Implementierung und lokale Qualitätssicherung abgeschlossen Status: Implementierung und lokale Qualitätssicherung abgeschlossen
## Zielbild ## Zielbild
+5
View File
@@ -143,6 +143,11 @@
host.setAttribute('data-custom-branding-owner', OWNER); host.setAttribute('data-custom-branding-owner', OWNER);
if (beforeNode) { parent.insertBefore(host, beforeNode); } else { parent.appendChild(host); } if (beforeNode) { parent.insertBefore(host, beforeNode); } else { parent.appendChild(host); }
} }
host.style.fontFamily = '"Segoe UI", "Segoe UI Web (West European)", Arial, sans-serif';
host.style.fontSize = '14px';
host.style.color = '#323130';
host.style.borderTop = /BottomHost$/.test(id) ? '1px solid #edebe9' : '';
host.style.borderBottom = /TopHost$/.test(id) ? '1px solid #edebe9' : '';
clear(host); clear(host);
var counter = { value: 0 }; var counter = { value: 0 };
for (var i = 0; i < elements.length; i++) { for (var i = 0; i < elements.length; i++) {
+1 -1
View File
@@ -3,7 +3,7 @@
"solution": { "solution": {
"name": "custom-branding-client-side-solution", "name": "custom-branding-client-side-solution",
"id": "03a7c4de-e031-4b83-a683-5ca5c364166e", "id": "03a7c4de-e031-4b83-a683-5ca5c364166e",
"version": "3.0.2.0", "version": "3.0.3.0",
"includeClientSideAssets": true, "includeClientSideAssets": true,
"skipFeatureDeployment": true "skipFeatureDeployment": true
}, },
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "custom-branding", "name": "custom-branding",
"version": "3.0.2", "version": "3.0.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "custom-branding", "name": "custom-branding",
"version": "3.0.2", "version": "3.0.3",
"private": true, "private": true,
"main": "lib/index.js", "main": "lib/index.js",
"engines": { "engines": {
@@ -102,6 +102,11 @@ export default class CustomBrandingApplicationCustomizer
host.setAttribute('data-custom-branding-owner', COMPONENT_ID); host.setAttribute('data-custom-branding-owner', COMPONENT_ID);
parent.insertBefore(host, parent.firstChild); parent.insertBefore(host, parent.firstChild);
} }
host.style.fontFamily = '"Segoe UI", "Segoe UI Web (West European)", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif';
host.style.fontSize = '14px';
host.style.color = '#323130';
host.style.borderTop = id === 'CustomBrandingBottomHost' ? '1px solid #edebe9' : '';
host.style.borderBottom = id === 'CustomBrandingTopHost' ? '1px solid #edebe9' : '';
return host; return host;
} }
+4 -2
View File
@@ -24,8 +24,8 @@ var appSource = read('src/extensions/customBranding/CustomBrandingApplicationCus
var rendererSource = read('src/extensions/customBranding/BrandingDomRenderer.ts'); var rendererSource = read('src/extensions/customBranding/BrandingDomRenderer.ts');
var classicSource = read('classic/custom-branding-classic.js'); var classicSource = read('classic/custom-branding-classic.js');
assert(packageJson.version === '3.0.2', 'package.json hat nicht Version 3.0.2.'); assert(packageJson.version === '3.0.3', 'package.json hat nicht Version 3.0.3.');
assert(solution.version === '3.0.2.0', 'Solution-Version ist inkonsistent.'); assert(solution.version === '3.0.3.0', 'Solution-Version ist inkonsistent.');
assert(solution.skipFeatureDeployment === true, 'Tenantweite Bereitstellung ist nicht aktiviert.'); assert(solution.skipFeatureDeployment === true, 'Tenantweite Bereitstellung ist nicht aktiviert.');
assert(!solution.features, 'Die alte web-scoped Feature-Registrierung ist noch vorhanden.'); assert(!solution.features, 'Die alte web-scoped Feature-Registrierung ist noch vorhanden.');
assert(!fs.existsSync(path.join(root, 'sharepoint/assets/elements.xml')), 'elements.xml muss entfernt sein.'); assert(!fs.existsSync(path.join(root, 'sharepoint/assets/elements.xml')), 'elements.xml muss entfernt sein.');
@@ -40,6 +40,8 @@ assert(appSource.indexOf('_onTopPlaceholderDisposed') >= 0 && appSource.indexOf(
'Top- und Bottom-Placeholder brauchen unabhaengige Dispose-Handler.'); 'Top- und Bottom-Placeholder brauchen unabhaengige Dispose-Handler.');
assert(appSource.indexOf("'CustomBrandingTopHost'") >= 0 && appSource.indexOf("'CustomBrandingBottomHost'") >= 0, assert(appSource.indexOf("'CustomBrandingTopHost'") >= 0 && appSource.indexOf("'CustomBrandingBottomHost'") >= 0,
'Stabile Branding-Hosts fehlen.'); 'Stabile Branding-Hosts fehlen.');
assert(appSource.indexOf("'1px solid #edebe9'") >= 0 && appSource.indexOf('Segoe UI Web') >= 0,
'SharePoint-Standardschrift und neutraler Host-Rahmen fehlen.');
assert(packageJson.scripts.package.indexOf('npm test') === 0, 'Paketierung muss mit Tests beginnen.'); assert(packageJson.scripts.package.indexOf('npm test') === 0, 'Paketierung muss mit Tests beginnen.');
assert(!packageJson.dependencies['@microsoft/sp-dialog'], 'Nicht verwendete Dialog-Abhaengigkeit ist noch vorhanden.'); assert(!packageJson.dependencies['@microsoft/sp-dialog'], 'Nicht verwendete Dialog-Abhaengigkeit ist noch vorhanden.');