Skip to content

Commit 210afd4

Browse files
authored
Merge pull request #1539 from maschroeder-z/br-quich-register
2 parents 4824468 + ee6091a commit 210afd4

27 files changed

Lines changed: 931 additions & 0 deletions

samples/react-application-quick-register-to-appointment/.eslintrc.js

Lines changed: 320 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
6+
# Dependency directories
7+
node_modules
8+
9+
# Build generated files
10+
dist
11+
lib
12+
release
13+
solution
14+
temp
15+
*.sppkg
16+
.heft
17+
18+
# Coverage directory used by tools like istanbul
19+
coverage
20+
21+
# OSX
22+
.DS_Store
23+
24+
# Visual Studio files
25+
.ntvs_analysis.dat
26+
.vs
27+
bin
28+
obj
29+
30+
# Resx Generated Code
31+
*.resx.ts
32+
33+
# Styles Generated Code
34+
*.scss.ts
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
!dist
2+
config
3+
4+
gulpfile.js
5+
6+
release
7+
src
8+
temp
9+
10+
tsconfig.json
11+
tslint.json
12+
13+
*.log
14+
15+
.yo-rc.json
16+
.vscode
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v22.16.0
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"@microsoft/generator-sharepoint": {
3+
"plusBeta": false,
4+
"isCreatingSolution": true,
5+
"nodeVersion": "16.20.0",
6+
"sdksVersions": {
7+
"@microsoft/microsoft-graph-client": "3.0.2",
8+
"@microsoft/teams-js": "2.24.0"
9+
},
10+
"version": "1.21.1",
11+
"libraryName": "fast-register-to-appointment",
12+
"libraryId": "8840a13c-f490-41e6-9c2a-e5cba8dfba1f",
13+
"environment": "spo",
14+
"packageManager": "npm",
15+
"solutionName": "Fast Register to Appointment",
16+
"solutionShortDescription": "Fast Register to Appointment description",
17+
"skipFeatureDeployment": true,
18+
"isDomainIsolated": false,
19+
"componentType": "extension",
20+
"extensionType": "ApplicationCustomizer"
21+
}
22+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Quick Register to Appointment (SharePoint Event page)
2+
3+
Add a function to register directly to an event/appointment. User will be added to the attendees list.
4+
5+
## Summary
6+
7+
SharePoint Online provides a list of appointments (events) on a site. The "Events" web part can be used to display them on a page. Users can access the appointment details via the web part and view all the details. The detailed view provides a link that allows them to add the appointment to their personal calendar. An appointment entry also allows them to maintain an attendee list. The "Events" list provides the "Attendees" column, where multiple people can be added. However, there is no automatic function for this; the list must be edited manually.
8+
The special app extension adds a registration and deregistration function to the detailed view. Users can register for a specific appointment and later deregister with a simple click. Attendees are automatically managed in the attendee column of the list.
9+
10+
![UI of the generated form](./assets/fastregisterappointment.png)
11+
12+
*Extended interface of an appointment*
13+
14+
### Video
15+
16+
[![SharePoint Online: Fast & easy appointment booking](https://img.youtube.com/vi/_-aTpJPXRdA/hqdefault.jpg)](https://youtu.be/_-aTpJPXRdA)
17+
18+
## Compatibility
19+
20+
| :warning: Important |
21+
|:---------------------------|
22+
| Every SPFx version is optimally compatible with specific versions of Node.js. In order to be able to Toolchain this sample, you need to ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.|
23+
|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. |
24+
25+
This sample is optimally compatible with the following environment configuration:
26+
27+
![SPFx 1.21.1](https://img.shields.io/badge/SPFx-1.21.1-green.svg)
28+
![Node.js v22](https://img.shields.io/badge/Node.js-v22-green.svg)
29+
![Toolchain: Heft](https://img.shields.io/badge/Toolchain-Heft-green.svg)
30+
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
31+
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
32+
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
33+
![Local Workbench Unsupported](https://img.shields.io/badge/Local%20Workbench-Unsupported-red.svg "Local workbench is no longer available as of SPFx 1.13 and above")
34+
![Hosted Workbench Compatible](https://img.shields.io/badge/Hosted%20Workbench-Compatible-green.svg)
35+
![Compatible with Remote Containers](https://img.shields.io/badge/Remote%20Containers-Compatible-green.svg)
36+
37+
## Applies to
38+
39+
- [SharePoint Framework](https://aka.ms/spfx)
40+
- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
41+
42+
> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram)
43+
44+
## Contributors
45+
46+
- [Marc André Schröder-Zhou](https://github.com/maschroeder-z)
47+
48+
## Version history
49+
50+
| Version | Date | Comments |
51+
| ------- | ---------------- | ----------------------- |
52+
| 1.2 | 19.09.2025 | Upgrade to SPFx 1.21.1 |
53+
| 1.1 | 24.07.2024 | Upgrade to SPFx 1.18 |
54+
| 1.0 | 30.09.2023 | Initial Release |
55+
56+
57+
58+
## Minimal Path to Awesome
59+
60+
- Clone this repository
61+
- Ensure that you are at the solution folder
62+
- in the command-line run:
63+
- `npm install`
64+
- `gulp serve`
65+
66+
> Check your current Node version and installed SPFx-Framework version.
67+
68+
## Features
69+
70+
Allows quick and easy registration for an event.
71+
72+
## Help
73+
74+
Please contact me for further help or information about the sample.
75+
76+
## References
77+
78+
- [Getting started with SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
79+
- [Building for Microsoft teams](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/build-for-teams-overview)
80+
- [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
81+
- [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview)
82+
- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
83+
84+
## Disclaimer
85+
86+
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
87+
88+
<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-extensions/samples/react-quick-register-to-appointment" />
50.5 KB
Loading
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[
2+
{
3+
"name": "pnp-sp-dev-spfx-extensions-react-application-quick-register-to-appointment",
4+
"source": "pnp",
5+
"title": "Quick Register to Appointment (SharePoint Event page)",
6+
"shortDescription": "SharePoint Online provides a list of appointments (events) on a site. The \"Events\" web part can be used to display them on a page. Users can access the appointment details via the web part and view all the details. The detailed view provides a link that allows them to add the appointment to their personal calendar. An appointment entry also allows them to maintain an attendee list. The \"Events\" list provides the \"Attendees\" column, where multiple people can be added. However, there is no automatic function for this; the list must be edited manually. The special app extension adds a registration and deregistration function to the detailed view. Users can register for a specific appointment and later deregister with a simple click. Attendees are automatically managed in the attendee column of the list.",
7+
"url": "https://github.com/pnp/sp-dev-fx-extensions/tree/main/samples/react-application-quick-register-to-appointment",
8+
"longDescription": [
9+
"SharePoint Online provides a list of appointments (events) on a site. The \"Events\" web part can be used to display them on a page. Users can access the appointment details via the web part and view all the details. The detailed view provides a link that allows them to add the appointment to their personal calendar. An appointment entry also allows them to maintain an attendee list. The \"Events\" list provides the \"Attendees\" column, where multiple people can be added. However, there is no automatic function for this; the list must be edited manually. The special app extension adds a registration and deregistration function to the detailed view. Users can register for a specific appointment and later deregister with a simple click. Attendees are automatically managed in the attendee column of the list."
10+
],
11+
"creationDateTime": "2025-10-17",
12+
"updateDateTime": "2025-10-17",
13+
"products": [
14+
"SharePoint"
15+
],
16+
"metadata": [
17+
{
18+
"key": "CLIENT-SIDE-DEV",
19+
"value": "React"
20+
},
21+
{
22+
"key": "SPFX-VERSION",
23+
"value": "1.21.1"
24+
}
25+
],
26+
"tags": [],
27+
"categories": [
28+
"SPFX-APPLICATION-EXTENSION"
29+
],
30+
"thumbnails": [
31+
{
32+
"name": "fastregisterappointment.png",
33+
"type": "image",
34+
"order": 100,
35+
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-application-quick-register-to-appointment/assets/fastregisterappointment.png",
36+
"alt": "Web Part Preview"
37+
}
38+
],
39+
"authors": [
40+
{
41+
"gitHubAccount": "https://github.com/maschroeder-z",
42+
"pictureUrl": "https://github.com/maschroeder-z.png",
43+
"name": "Marc André Schröder-Zhou"
44+
}
45+
],
46+
"references": [
47+
{
48+
"name": "Overview of SharePoint Framework Extensions",
49+
"description": "You can use SharePoint Framework (SPFx) Extensions to extend the SharePoint user experience. With SPFx Extensions, you can customize more facets of the SharePoint experience, including notification areas, toolbars, and list data views. SPFx Extensions are available in all Microsoft 365 subscriptions for production usage.",
50+
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/extensions/overview-extensions?WT.mc_id=m365-15741-cxa"
51+
},
52+
{
53+
"name": "Use page placeholders from Application Customizer",
54+
"description": "Application Customizers provide access to well-known locations on SharePoint pages that you can modify based on your business and functional requirements. For example, you can create dynamic header and footer experiences that render across all the pages in SharePoint Online.",
55+
"url": "https://docs.microsoft.com/sharepoint/dev/spfx/extensions/get-started/using-page-placeholder-with-extensions?WT.mc_id=m365-15741-cxa"
56+
}
57+
]
58+
}
59+
]
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json",
3+
"version": "2.0",
4+
"bundles": {
5+
"quick-appointment-register-application-customizer": {
6+
"components": [
7+
{
8+
"entrypoint": "./lib/extensions/quickAppointmentRegister/QuickAppointmentRegisterApplicationCustomizer.js",
9+
"manifest": "./src/extensions/quickAppointmentRegister/QuickAppointmentRegisterApplicationCustomizer.manifest.json"
10+
}
11+
]
12+
}
13+
},
14+
"externals": {},
15+
"localizedResources": {
16+
"QuickAppointmentRegisterApplicationCustomizerStrings": "lib/extensions/quickAppointmentRegister/loc/{locale}.js"
17+
}
18+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json",
3+
"workingDir": "./release/assets/",
4+
"account": "<!-- STORAGE ACCOUNT NAME -->",
5+
"container": "fast-register-to-appointment",
6+
"accessKey": "<!-- ACCESS KEY -->"
7+
}

0 commit comments

Comments
 (0)