dev-3.0 #1
@@ -6,14 +6,14 @@ PortalSettings V3 ist ein providerbasiertes SPFx-WebPart für SharePoint Server
|
||||
|
||||
| Eigenschaft | Wert |
|
||||
|---|---|
|
||||
| Version | 3.2.1 |
|
||||
| Version | 3.2.2 |
|
||||
| SharePoint Framework | 1.4.1 |
|
||||
| Build-Node | 8.17.0 |
|
||||
| npm | 6.x |
|
||||
| Gulp | lokal 3.9.1 |
|
||||
| Komponente | Client-Side WebPart |
|
||||
|
||||
Die Oberfläche wird vollständig vom WebPart erzeugt und verwendet kein `innerHTML`. Ein schlankes SharePoint-Feature provisioniert beim Installieren der App im Root-Web automatisch die moderne `SitePages/PortalSettings.aspx` und platziert dort genau eine Instanz des WebParts.
|
||||
Die Oberfläche wird vollständig vom WebPart erzeugt und verwendet kein `innerHTML`. Die moderne `SitePages/PortalSettings.aspx` wird bewusst per PnP-PowerShell provisioniert, damit das SPFx-WebPart auf SharePoint Server zuverlässig registriert bleibt.
|
||||
|
||||
## Unterstützte Solutions
|
||||
|
||||
@@ -165,12 +165,9 @@ sharepoint/solution/portal-settings.sppkg
|
||||
|
||||
## Installation
|
||||
|
||||
1. `portal-settings.sppkg` im App Catalog durch Version `3.2.1.0` ersetzen.
|
||||
1. `portal-settings.sppkg` im App Catalog durch Version `3.2.2.0` ersetzen.
|
||||
2. Die App im Root Web der gewünschten Site Collection installieren oder aktualisieren.
|
||||
3. Die App provisioniert automatisch die veröffentlichte Seite `SitePages/PortalSettings.aspx` mit dem WebPart.
|
||||
4. Eine bereits vorhandene `PortalSettings.aspx` wird nicht überschrieben.
|
||||
|
||||
Optional kann eine Seite per PnP PowerShell erzeugt werden:
|
||||
3. Die Seite mit dem PnP-PowerShell-Skript erzeugen beziehungsweise reparieren:
|
||||
|
||||
```powershell
|
||||
.\deployment\Add-PortalSettingsPage.ps1 `
|
||||
@@ -178,7 +175,7 @@ Optional kann eine Seite per PnP PowerShell erzeugt werden:
|
||||
-Publish
|
||||
```
|
||||
|
||||
Das Skript bleibt als Reparaturweg erhalten und verwendet standardmäßig ebenfalls `PortalSettings.aspx`.
|
||||
Das Skript verwendet standardmäßig `PortalSettings.aspx` und platziert dort das Portal-Settings-WebPart.
|
||||
|
||||
## Migration von V2
|
||||
|
||||
@@ -191,9 +188,8 @@ V3 liest die vorhandenen Konfigurationsorte direkt weiter:
|
||||
Es ist keine Datenmigration in eine neue Liste erforderlich. Empfohlenes Vorgehen:
|
||||
|
||||
1. Paket aktualisieren und die App im Root-Web aktualisieren.
|
||||
2. Fehlt `PortalSettings.aspx`, wird sie durch das Feature angelegt. Eine vorhandene Seite bleibt unverändert.
|
||||
3. Falls eine vorhandene Seite das WebPart noch nicht enthält, das PnP-Skript als Reparaturweg ausführen.
|
||||
4. Alle Provider laden, Konfigurationen testweise speichern und Root Web sowie Subwebs prüfen.
|
||||
2. Das PnP-Skript ausführen, wenn `PortalSettings.aspx` fehlt oder das WebPart noch nicht enthält.
|
||||
3. Alle Provider laden, Konfigurationen testweise speichern und Root Web sowie Subwebs prüfen.
|
||||
|
||||
## Diagnose
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Stand: 21.07.2026
|
||||
Branch: `dev-3.0`
|
||||
Zielversion: 3.2.1
|
||||
Zielversion: 3.2.2
|
||||
|
||||
## Architektur
|
||||
|
||||
@@ -53,7 +53,7 @@ Zielversion: 3.2.1
|
||||
- [x] Versionen auf 3.0.0 angehoben.
|
||||
- [x] Node-Engine auf SPFx-1.4.1-Buildumgebung begrenzt.
|
||||
- [x] Alte monolithische Seiten-, Copy- und Azure-Assets entfernt.
|
||||
- [x] Schlankes Feature zur automatischen Provisionierung der modernen PortalSettings.aspx ergänzt.
|
||||
- [x] Automatisches Feature-Provisioning wegen fehlender WebPart-Registrierung auf SharePoint Server zurückgenommen.
|
||||
- [x] Altes Gulp-Copy-Task entfernt.
|
||||
- [x] Serve-Konfiguration auf WebPart Workbench umgestellt.
|
||||
- [x] Tests laufen vor der Paketierung.
|
||||
@@ -76,7 +76,7 @@ Zielversion: 3.2.1
|
||||
|
||||
- [ ] Ship-Paket mit Node.js 8.17.0 erstellen.
|
||||
- [ ] App im Root Web aktualisieren.
|
||||
- [ ] Automatisch provisionierte `PortalSettings.aspx` und enthaltenes WebPart prüfen.
|
||||
- [ ] Per PnP-Skript provisionierte `PortalSettings.aspx` und enthaltenes WebPart prüfen.
|
||||
- [ ] MegaMenu-Termsets laden und speichern.
|
||||
- [ ] CustomBranding laden und schemaerhaltend speichern.
|
||||
- [ ] ExpiryIndicator-Standard speichern.
|
||||
|
||||
@@ -3,22 +3,9 @@
|
||||
"solution": {
|
||||
"name": "portal-settings-client-side-solution",
|
||||
"id": "1c98e32d-bb7b-43b7-9625-074d6e4ea286",
|
||||
"version": "3.2.1.0",
|
||||
"version": "3.2.2.0",
|
||||
"includeClientSideAssets": true,
|
||||
"skipFeatureDeployment": false,
|
||||
"features": [
|
||||
{
|
||||
"title": "Portal Settings Page",
|
||||
"description": "Provisioniert die moderne PortalSettings.aspx im Root-Web.",
|
||||
"id": "71841e33-8bbd-4007-83a6-d950453226a2",
|
||||
"version": "3.2.0.0",
|
||||
"assets": {
|
||||
"elementManifests": ["elements.xml"],
|
||||
"elementFiles": ["PortalSettings.aspx"],
|
||||
"upgradeActions": ["upgrade-actions.xml"]
|
||||
}
|
||||
}
|
||||
]
|
||||
"skipFeatureDeployment": false
|
||||
},
|
||||
"paths": {
|
||||
"zippedPackage": "solution/portal-settings.sppkg"
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "portal-settings",
|
||||
"version": "3.2.1",
|
||||
"version": "3.2.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "portal-settings",
|
||||
"version": "3.2.1",
|
||||
"version": "3.2.2",
|
||||
"private": true,
|
||||
"main": "lib/index.js",
|
||||
"engines": {
|
||||
|
||||
@@ -15,9 +15,6 @@ var config = json('config/config.json');
|
||||
var copyAssets = json('config/copy-assets.json');
|
||||
var manifest = json('src/webparts/portalSettings/PortalSettingsWebPart.manifest.json');
|
||||
var styles = read('src/webparts/portalSettings/PortalSettings.scss');
|
||||
var pageAsset = read('sharepoint/assets/PortalSettings.aspx');
|
||||
var elements = read('sharepoint/assets/elements.xml');
|
||||
var upgradeActions = read('sharepoint/assets/upgrade-actions.xml');
|
||||
var sourceFiles = [
|
||||
'src/ui/Dom.ts',
|
||||
'src/ui/DynamicFormRenderer.ts',
|
||||
@@ -25,27 +22,13 @@ var sourceFiles = [
|
||||
].map(read).join('\n');
|
||||
var dataService = read('src/services/PortalSettingsDataService.ts');
|
||||
|
||||
assert(packageJson.version === '3.2.1', 'Package-Version ist nicht 3.2.1.');
|
||||
assert(solution.version === '3.2.1.0', 'Solution-Version ist nicht 3.2.1.0.');
|
||||
assert(solution.features && solution.features.length === 1, 'Das Seiten-Provisioning-Feature fehlt.');
|
||||
assert(solution.features[0].assets.elementManifests.indexOf('elements.xml') >= 0 &&
|
||||
solution.features[0].assets.elementFiles.indexOf('PortalSettings.aspx') >= 0 &&
|
||||
solution.features[0].assets.upgradeActions.indexOf('upgrade-actions.xml') >= 0,
|
||||
'Die Provisioning-Assets sind nicht vollständig registriert.');
|
||||
assert(packageJson.version === '3.2.2', 'Package-Version ist nicht 3.2.2.');
|
||||
assert(solution.version === '3.2.2.0', 'Solution-Version ist nicht 3.2.2.0.');
|
||||
assert(!solution.features, 'Das inkompatible Seiten-Provisioning-Feature darf nicht paketiert werden.');
|
||||
assert(!!config.bundles['portal-settings-web-part'], 'WebPart-Bundle fehlt.');
|
||||
assert(copyAssets.deployCdnPath === 'temp/deploy', 'Ship-Assets werden nicht nach temp/deploy geschrieben.');
|
||||
assert(manifest.componentType === 'WebPart', 'Komponente ist kein WebPart.');
|
||||
assert(!fs.existsSync(path.join(root, 'src/assets/PortalSettings.aspx')), 'Alte ASPX-Seite ist noch vorhanden.');
|
||||
assert(pageAsset.indexOf('Microsoft.SharePoint.WebControls.ClientSidePage') >= 0,
|
||||
'Das provisionierte Asset ist keine moderne SharePoint-Seite.');
|
||||
assert(elements.indexOf('Url="PortalSettings.aspx"') >= 0 && elements.indexOf('RootWebOnly="TRUE"') >= 0 &&
|
||||
elements.indexOf('IgnoreIfAlreadyExists="TRUE"') >= 0 && elements.indexOf('Level="Published"') >= 0,
|
||||
'PortalSettings.aspx wird nicht sicher im Root-Web provisioniert.');
|
||||
assert(elements.indexOf('CanvasContent1') >= 0 &&
|
||||
elements.indexOf('c41d05ec-0682-4af0-b807-649806ed56b3') >= 0,
|
||||
'Das PortalSettings-WebPart fehlt im provisionierten Canvas.');
|
||||
assert(upgradeActions.indexOf('71841e33-8bbd-4007-83a6-d950453226a2\\elements.xml') >= 0,
|
||||
'Die Upgrade-Provisionierung fehlt.');
|
||||
assert(!fs.existsSync(path.join(root, 'src/extensions/portalSettings/PortalSettingsApplicationCustomizer.ts')), 'Alter Application Customizer ist noch vorhanden.');
|
||||
assert(sourceFiles.indexOf('innerHTML') < 0, 'UI darf innerHTML nicht verwenden.');
|
||||
assert(dataService.indexOf('/_api/site/rootweb/UserCustomActions') >= 0 &&
|
||||
|
||||
Reference in New Issue
Block a user