You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You are preparing the **Smart Org Chart** SPFx web part for a public release. Work through each step below in order. Stop and report any blocking issues before continuing.
2
+
3
+
**Requested version:** $ARGUMENTS
4
+
(If blank, read `config/package-solution.json` for the current version, then ask the user what the new version should be before proceeding with any changes.)
5
+
6
+
---
7
+
8
+
## Step 1 — TypeScript check
9
+
10
+
Run `.\node_modules\.bin\tsc.cmd --noEmit`. If there are errors, list them and stop. Do not continue until the user confirms they are resolved.
11
+
12
+
---
13
+
14
+
## Step 2 — Determine the current feature set
15
+
16
+
Read these files:
17
+
-`src/webparts/smartOrgChart/SmartOrgChartWebPart.ts` — the property pane `getPropertyPaneConfiguration()` method lists every admin setting and feature toggle
18
+
-`src/webparts/smartOrgChart/components/SmartOrgChart.tsx` — the `currentView` state and header bar reveal the available views and user-facing features
19
+
20
+
From these, produce a definitive list of all views, admin settings, and user-facing features. Do not assume — derive it from the code.
21
+
22
+
---
23
+
24
+
## Step 3 — Update `docs/USER_GUIDE.md`
25
+
26
+
Read `docs/USER_GUIDE.md` in full. Then update it:
27
+
- Change the version number in the heading to the new version.
28
+
- Update the Table of Contents to match the actual sections you will write.
29
+
- Remove any sections that describe features no longer in the app (check against the feature list from Step 2).
30
+
- Add or update sections for features that are present in the app but missing or out of date in the guide. Use clear, user-facing language — write for a non-technical SharePoint admin audience.
31
+
- Keep accurate existing content unchanged.
32
+
- Do not remove the screenshots section; update screenshot filenames only if they change.
33
+
34
+
Write the complete updated file.
35
+
36
+
---
37
+
38
+
## Step 4 — Update `README.md`
39
+
40
+
Read `README.md` in full. Then update it:
41
+
- Update any version badge or version reference to the new version.
42
+
- Update the features table to exactly match the current feature set (no removed features, no missing new ones).
43
+
- Keep the prerequisites, installation, permissions, troubleshooting, and tech stack sections accurate.
44
+
45
+
Write the complete updated file.
46
+
47
+
---
48
+
49
+
## Step 5 — Update `CHANGELOG.md`
50
+
51
+
Run `git log --oneline $(git describe --tags --abbrev=0)..HEAD` to get commits since the last tag. If that fails (no prior tags), run `git log --oneline -20` instead.
52
+
53
+
Read `CHANGELOG.md` in full, then prepend a new entry for the new version following the existing format:
54
+
- Use today's date.
55
+
- Group changes under Added / Changed / Fixed / Removed headings as appropriate.
56
+
- Base the entries on the git log and your knowledge of changes made in this session.
57
+
58
+
Write the complete updated file.
59
+
60
+
---
61
+
62
+
## Step 6 — Security check
63
+
64
+
Before bumping versions, verify the repo is safe for public release:
65
+
66
+
1. Check `config/serve.json` — `initialPage` must be the placeholder `https://YOURTENANT.sharepoint.com/sites/YOURSITE/_layouts/workbench.aspx`, not a real tenant URL. If it contains a real URL, replace it with the placeholder.
67
+
2. Check `config/package-solution.json` — the `developer.name` field must not contain an internal organisation name. If it does, clear it to `""`.
68
+
3. Grep `src/` and `config/` for any hardcoded tenant domains (e.g. `.sharepoint.com`, `.onmicrosoft.com`) or personal email addresses. Report any findings.
69
+
70
+
Fix any issues found before continuing.
71
+
72
+
---
73
+
74
+
## Step 7 — Bump version numbers
75
+
76
+
Update exactly these two fields:
77
+
-`package.json` → `"version"`: set to the new version (e.g. `"1.2.0"`)
78
+
-`config/package-solution.json` → `"solution"."version"`: set to four-part form (e.g. `"1.2.0.0"`)
79
+
80
+
---
81
+
82
+
## Step 8 — Regenerate UserGuide.docx
83
+
84
+
Run:
85
+
```
86
+
node docs/generate-word.js
87
+
```
88
+
89
+
Report whether it succeeded or failed. If the script does not exist, note "N/A — no generate-word.js" in the checklist and continue to Step 9.
90
+
91
+
---
92
+
93
+
## Step 9 — Full release build
94
+
95
+
Run:
96
+
```
97
+
npm run package
98
+
```
99
+
100
+
This bundles in production mode and produces `sharepoint/solution/smart-org-chart.sppkg`. This may take a minute or two — wait for it to complete. Report success or any build errors. If errors occur, stop and report them — do not print the checklist until they are resolved.
101
+
102
+
---
103
+
104
+
## Step 10 — Release readiness checklist
105
+
106
+
Replace X.X.X below with the actual version number, and update the ✅/❌ status of each automated item based on what actually happened above. Then print it:
All notable changes to Smart Org Chart are documented here.
4
+
5
+
---
6
+
7
+
## [1.0.1] — 2026-05-30
8
+
9
+
### Added
10
+
-**Room account exclusion by pattern** — new *Exclude room accounts by pattern* field in the property pane. Comma-separated patterns (e.g. `conf-, room-, mrm@`) hide matching mailboxes from all views regardless of their account-enabled status, covering room mailboxes that have sign-in enabled as well as disabled ones.
11
+
-**Office location on org chart cards** — the office/location field now appears on node cards in the tree and drill-down views when enabled in User Preferences.
12
+
-**Configurable data source** — choose between Graph API (live, no indexing delay), SharePoint Search (legacy), or Auto (Graph with SP Search fallback).
13
+
-**List view in Employee Directory** — toggle between card grid and compact single-row list view.
14
+
-**Admin user filters** — property pane options to hide Azure AD guest accounts, hide disabled accounts, restrict to tenant domain, and exclude accounts by name pattern.
15
+
16
+
### Changed
17
+
-**Consistent accent color** — card borders, avatar backgrounds, job title text, and org chart connector lines now all follow the SharePoint site's color theme instead of using per-department hashed colors.
18
+
-**Expand All loads the complete org** — clicking Expand All in tree modes now performs a full BFS load from Microsoft Graph, fetching every level of the hierarchy rather than only expanding the pre-loaded nodes.
19
+
-**Horizontal tree layout** — the left-right tree now uses the same recursive layout as the top-down tree: each manager's reports appear in a column to their right, expanding outward as branches are opened.
20
+
-**Direct report count** — the badge on the expand button always shows a person's own direct report count; it no longer changes as deeper nodes are expanded.
21
+
-**Hide disabled accounts and hide guest accounts** now default to **On** for new web part instances.
22
+
-**Profile photo sizes increased** for clearer display at larger card sizes.
23
+
- Long job titles now wrap to two lines on org chart cards instead of truncating.
24
+
25
+
### Fixed
26
+
-`hideDisabledAccounts` and `hideGuestUsers` filters were not being applied when the Graph API data source was active.
27
+
- Horizontal and vertical tree layouts now maintain strict level alignment — all nodes at the same org depth appear in the same row/column.
28
+
29
+
### Removed
30
+
- Multi-column wrapping for managers with 8+ direct reports has been removed. All direct reports now appear in a single row (vertical) or column (horizontal), consistent with a traditional org chart layout.
31
+
32
+
---
33
+
34
+
## [1.0.0] — 2025-12-01
35
+
36
+
### Added
37
+
- Initial release.
38
+
- Employee Directory with A–Z filter, real-time search, paginated card grid, three card sizes, and per-user field visibility toggles.
39
+
- Org Chart with drill-down, vertical tree, and horizontal tree layouts.
40
+
- Person profile card with presence status, manager chain, and action buttons (Chat, Email, Call, Focus).
41
+
- Org chart toolbar: search, Find Me, layout picker, stats bar, department filter, user type filter, zoom controls.
42
+
- Four themes: Modern, Minimal, Corporate, Dark.
43
+
- PDF and PNG export.
44
+
- Demo mode with 150 / 500 / 1,000 person mock datasets.
45
+
- User preferences panel persisted to `localStorage`.
46
+
- Graph API and SharePoint Search data sources with automatic fallback.
47
+
- CI release workflow producing `smart-org-chart.sppkg`.
[](docs/USER_GUIDE.md)
9
+
7
10
A SharePoint Framework (SPFx) web part that provides a searchable **Employee Directory** and an interactive **Org Chart**, both powered by Microsoft Graph.
|**Real-time search**| Filters by name, title, email, or department as you type |
19
22
|**Alphabet filter**| A–Z filter bar, switchable between first name or last name |
23
+
|**List view**| Compact single-row list alternative to the card grid |
20
24
|**Org Chart**| Hierarchical tree built from the Azure AD `manager` field |
21
25
|**Three chart layouts**| Drill-down, vertical tree, and horizontal tree |
22
-
|**Lazy expand**|Child nodes are fetched on demand when you expand them|
23
-
|**Wide-org wrapping**|When a manager has 8+ direct reports the children automatically wrap into 2 rows/columns, keeping the chart readable without zooming|
26
+
|**Full Expand All**|Loads and expands the complete organisation from Microsoft Graph in one click|
27
+
|**Lazy expand**|Individual branches fetched on demand when expanded|
24
28
|**Department & user filters**| Narrow the chart to specific departments or hide guests/members |
25
-
|**User account filters**| Admin-controlled: hide disabled accounts, hide guests, restrict to tenant domain, exclude by name pattern |
26
-
|**Statistics panel**| Headcount by department, overlaid on the chart |
29
+
|**User account filters**| Admin-controlled: hide disabled accounts, hide guests, restrict to tenant domain, exclude by name pattern, exclude room mailboxes by pattern|
30
+
|**Statistics panel**| Headcount, departments, avg reporting span, overlaid on the chart |
|**Photo support**| Profile photos from Graph with base64 caching; initials avatar fallback |
33
+
|**Presence badges**| Live availability status from Microsoft Teams, refreshed every 60 seconds |
29
34
|**Export**| Download the current view as a PDF or PNG |
30
35
|**Demo mode**| Built-in mock data (150 / 500 / 1,000 people) for testing without Graph permissions |
31
-
|**Themes**| Modern, Minimal, Corporate, and Dark |
36
+
|**Themes**| Modern, Minimal, Corporate, and Dark — accent colours follow your SharePoint site theme |
32
37
|**Configurable data source**| Graph API (live, no indexing delay), SharePoint Search, or Auto (Graph with SP Search fallback) |
33
38
34
39
---
@@ -114,9 +119,9 @@ The web part requests two delegated Graph permissions. A Global or SharePoint Ad
114
119
1. In SharePoint Admin Center go to **Advanced** → **API access**.
115
120
2. Approve:
116
121
-`Microsoft Graph — User.Read.All`
117
-
-`Microsoft Graph — User.ReadBasic.All`
122
+
-`Microsoft Graph — Presence.Read.All`
118
123
119
-
> Without these approvals the web part loads but cannot retrieve user data.
124
+
> Without these approvals the web part loads but cannot retrieve user data or presence status.
120
125
121
126
### Add the web part to a page
122
127
@@ -164,7 +169,7 @@ You can also run the demo server manually and open it in a browser (see `demo/`
164
169
165
170
| Setting | Description |
166
171
|---|---|
167
-
| Chart theme | Modern, Minimal, Corporate, or Dark |
172
+
| Chart theme | Modern, Minimal, Corporate, or Dark — accent colours follow the SharePoint site theme |
168
173
| Default layout | Drill-Down, Vertical, or Horizontal |
169
174
170
175
**Data Source**
@@ -181,10 +186,11 @@ You can also run the demo server manually and open it in a browser (see `demo/`
181
186
182
187
| Setting | Default | Description |
183
188
|---|---|---|
184
-
| Exclude accounts |_(empty)_| Comma-separated words or patterns. Any user whose name, email, or UPN contains one of these is hidden everywhere (e.g. `conf-room, noreply, service`). |
189
+
| Exclude accounts |_(empty)_| Comma-separated words or patterns. Any user whose name, email, or UPN contains one of these is hidden everywhere (e.g. `noreply, svc-`). |
190
+
| Exclude room accounts by pattern |_(empty)_| Comma-separated patterns that identify meeting room mailboxes (e.g. `conf-, room-, mrm@`). Hidden regardless of account status. |
185
191
| Only show tenant users | Off | Hides accounts whose email domain does not match your tenant (removes gmail.com, hotmail.com, etc.). |
186
-
| Hide Azure AD guest accounts |On| Hides guest (B2B) accounts from all views. |
187
-
| Hide disabled accounts |On| Hides accounts with blocked sign-in (former employees, service accounts). |
192
+
| Hide Azure AD guest accounts |**On**| Hides guest (B2B) accounts from all views. |
193
+
| Hide disabled accounts |**On**| Hides accounts with blocked sign-in (former employees, service accounts). |
188
194
189
195
**Org Chart**
190
196
@@ -267,6 +273,8 @@ SharePointSmartOrgChart/
267
273
268
274
**Disabled / former employees still showing** — Open the property pane → User Filters and enable **Hide disabled accounts**. This requires the Graph API data source; SharePoint Search does not expose account status.
269
275
276
+
**Meeting rooms appearing in the directory** — Open the property pane → User Filters and add the naming pattern used for room mailboxes in your organisation to the **Exclude room accounts by pattern** field (e.g. `conf-, room-`). If your room accounts have blocked sign-in, enabling **Hide disabled accounts** will also remove them.
277
+
270
278
**Photos not loading** — User photos require the `User.Read.All` scope. Verify that profile photos are set in Microsoft 365.
271
279
272
280
**Build errors after `npm install`** — Ensure you are using Node.js 18. SPFx 1.18 is not compatible with Node 20+.
0 commit comments