- Initialize Gulp build process with gulpfile.js - Create package.json for project dependencies and scripts - Add TypeScript declarations for SCSS modules - Implement DynamicPollWebPart with property pane configuration - Create PollDataService for SharePoint list interactions - Develop core polling logic in PollCore.ts - Define types for polls and answers in PollTypes.ts - Create React components for DynamicPoll UI - Add localization support for English and German - Implement unit tests for core polling functionality - Set up TypeScript and TSLint configurations
Dynamic Poll
Ein eigenstaendiges, mit SharePoint Server Subscription Edition kompatibles SPFx-1.4.1-WebPart fuer einfache Umfragen. Die Funktion orientiert sich am PnP-Beispiel react-dynamic-poll, ist aber fuer die vorhandene Legacy-Toolchain und klassische SharePoint-REST-Endpunkte umgesetzt.
Funktionen
- aktive Umfrage anhand von Aktiv-Flag sowie optionalem Start- und Enddatum
- genau eine Antwort je angemeldetem Benutzer und Umfrage
- unmittelbare Ergebnisanzeige mit Stimmen und Prozentwerten
- optional sichtbare Ergebnisse vor der eigenen Abstimmung
- konfigurierbares Aktualisierungsintervall
- barrierearme Radio-Auswahl, Statusmeldungen und Ergebnisbalken
- SharePoint-Theme-Farben statt fest verdrahteter Portal-Farben
Voraussetzungen
- SharePoint Server Subscription Edition mit SPFx 1.4.1
- Node.js 8.17.0 und npm 6.x fuer den Build
- SharePoint Management Shell fuer die Listenbereitstellung
Listen bereitstellen
In der SharePoint Management Shell auf einem SharePoint-Server ausfuehren:
.\deployment\Initialize-DynamicPollLists.ps1 `
-SiteUrl 'http://portal.contoso.local/sites/DEINE-SITE'
Das Skript ist idempotent und legt standardmaessig diese Listen an:
Polls:Title,Question,Options,StartDate,EndDate,IsActivePoll Answers:Title(Benutzerschluessel),Poll(Lookup),Answer
Die Benutzer des WebParts benoetigen Leserechte auf Polls sowie Lese- und Hinzufuegerechte auf Poll Answers. Fuer die Ergebnisberechnung muessen sie die vorhandenen Antworten lesen koennen.
Umfrage anlegen
In Polls ein Element mit Frage und mindestens einer Option anlegen. IsActive aktivieren; Start- und Enddatum koennen leer bleiben. Sind mehrere Umfragen gleichzeitig aktiv, wird die mit dem neuesten Startdatum verwendet.
Danach das WebPart auf einer modernen Seite einfuegen und im Property Pane die Listen Polls und Poll Answers auswaehlen.
Paket bauen
npm install
npm run package
Das fertige Paket liegt unter sharepoint/solution/dynamic-poll.sppkg.
Hinweise
Der Benutzerschluessel wird in der Title-Spalte der Antwortliste gespeichert. Die doppelte Stimmabgabe wird vor dem Schreiben geprueft. Zwei exakt gleichzeitige Requests desselben Benutzers lassen sich ohne serverseitige Eindeutigkeitsregel dennoch nicht vollstaendig ausschliessen.