Compare commits

...

2 Commits

Author SHA1 Message Date
wmantly 51784f2f27 Merge pull request #80 from theta42/help-icon-relocate
Move help links from the global header onto each relevant card
2026-07-17 19:56:29 -04:00
wmantly 4c59b1fabb Move help links from the global header onto each relevant card
The single header-wide help icon (added last release) pointed at a
per-page doc guess, but a page can have several cards covering different
topics (e.g. Integrations has both OAuth and LDAP cards). Removed it and
added a small help icon directly to each card that has real corresponding
doc content, linking straight to that doc -- Invite User/Add new
user/User List/Service Accounts (users.ejs), group cards (groups.ejs),
OAuth Apps + LDAP connection cards (integrations.ejs), My groups/Members
of <uid>'s group/New API Token (profile.ejs).

Bumps to v1.1.11.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KDEx8ghuZR61pqPXc6da9C
2026-07-17 19:54:19 -04:00
8 changed files with 26 additions and 28 deletions
+8 -2
View File
@@ -6,7 +6,12 @@ correspond to git tags (`vX.Y.Z`) and `nodejs/package.json`'s `version`.
## [Unreleased] ## [Unreleased]
## [1.1.10] - 2026-07-17 ## [1.1.11] - 2026-07-17
### Changed
- Moved the help (❓) link out of the global header and onto each relevant card individually (Invite User, Add new user, User List, Service Accounts, group cards, OAuth/LDAP integration cards, My groups, Members of `<uid>`'s group, New API Token) — each now deep-links straight to the doc that actually covers it, instead of one generic header icon.
Bumps to v1.1.11.
### Added ### Added
- A help icon (❓) in the top-right header now deep-links to the doc most relevant to the current page (falls back to the docs index elsewhere). - A help icon (❓) in the top-right header now deep-links to the doc most relevant to the current page (falls back to the docs index elsewhere).
@@ -83,7 +88,8 @@ First tagged release. Establishes the `vX.Y.Z` tag convention that the in-app up
- Unix/POSIX and LDAP bind-only service account support, distinct from real-person accounts. - Unix/POSIX and LDAP bind-only service account support, distinct from real-person accounts.
- Merged OAuth Apps + LDAP Info into a single Integrations page. - Merged OAuth Apps + LDAP Info into a single Integrations page.
[Unreleased]: https://github.com/theta42/sso-manager-node/compare/v1.1.10...HEAD [Unreleased]: https://github.com/theta42/sso-manager-node/compare/v1.1.11...HEAD
[1.1.11]: https://github.com/theta42/sso-manager-node/compare/v1.1.10...v1.1.11
[1.1.10]: https://github.com/theta42/sso-manager-node/compare/v1.1.9...v1.1.10 [1.1.10]: https://github.com/theta42/sso-manager-node/compare/v1.1.9...v1.1.10
[1.1.9]: https://github.com/theta42/sso-manager-node/compare/v1.1.8...v1.1.9 [1.1.9]: https://github.com/theta42/sso-manager-node/compare/v1.1.8...v1.1.9
[1.1.8]: https://github.com/theta42/sso-manager-node/compare/v1.1.7...v1.1.8 [1.1.8]: https://github.com/theta42/sso-manager-node/compare/v1.1.7...v1.1.8
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "t42-sso-manager", "name": "t42-sso-manager",
"version": "1.1.10", "version": "1.1.11",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "t42-sso-manager", "name": "t42-sso-manager",
"version": "1.1.10", "version": "1.1.11",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "^7.3.0", "@fortawesome/fontawesome-free": "^7.3.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "t42-sso-manager", "name": "t42-sso-manager",
"version": "1.1.10", "version": "1.1.11",
"private": true, "private": true,
"author": [ "author": [
{ {
+2
View File
@@ -142,6 +142,7 @@
<div class="card-header"> <div class="card-header">
<i class="fa-solid fa-object-group"></i> <i class="fa-solid fa-object-group"></i>
Add new group Add new group
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="card-body"> <div class="card-body">
@@ -167,6 +168,7 @@
<h5> <h5>
<i class="fa-solid fa-arrows-down-to-people"></i> <i class="fa-solid fa-arrows-down-to-people"></i>
Group: {{ cn }} Group: {{ cn }}
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</h5> </h5>
<ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist"> <ul class="nav nav-tabs card-header-tabs" id="myTab" role="tablist">
<li class="nav-item"> <li class="nav-item">
+4
View File
@@ -250,6 +250,7 @@
<div class="card-header bg-info bg-opacity-10"> <div class="card-header bg-info bg-opacity-10">
<i class="fa-solid fa-circle-info"></i> <i class="fa-solid fa-circle-info"></i>
OpenID Connect Endpoints OpenID Connect Endpoints
<a href="/docs/oauth" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-body"> <div class="card-body">
<p class="mb-2 text-muted small"> <p class="mb-2 text-muted small">
@@ -276,6 +277,7 @@
<div class="card-header"> <div class="card-header">
<i class="fa-solid fa-plus"></i> <i class="fa-solid fa-plus"></i>
Register OAuth Client Register OAuth Client
<a href="/docs/oauth" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="card-body"> <div class="card-body">
@@ -411,6 +413,7 @@
<div class="card shadow-lg"> <div class="card shadow-lg">
<div class="card-header shadow"> <div class="card-header shadow">
<i class="fa-solid fa-circle-info"></i> Connection details <i class="fa-solid fa-circle-info"></i> Connection details
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-body"> <div class="card-body">
<p class="text-muted small"> <p class="text-muted small">
@@ -488,6 +491,7 @@
<div class="card shadow-lg"> <div class="card shadow-lg">
<div class="card-header shadow"> <div class="card-header shadow">
<i class="fa-solid fa-terminal"></i> Set up a Linux host (ldap-client) <i class="fa-solid fa-terminal"></i> Set up a Linux host (ldap-client)
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-body"> <div class="card-body">
<p class="text-muted small"> <p class="text-muted small">
+5 -1
View File
@@ -351,6 +351,7 @@
<i class="fa-solid fa-users-viewfinder"></i> <i class="fa-solid fa-users-viewfinder"></i>
My groups My groups
<div class="float-end"> <div class="float-end">
<a href="/docs/ldap" class="text-reset me-2" title="Help"><i class="fa-solid fa-circle-question"></i></a>
<i class="fa-solid fa-arrows-up-down"></i> <i class="fa-solid fa-arrows-up-down"></i>
</div> </div>
</div> </div>
@@ -396,6 +397,7 @@
<i class="fa-solid fa-people-group"></i> <i class="fa-solid fa-people-group"></i>
Members of <span id="personal-group-uid-label"></span>'s group Members of <span id="personal-group-uid-label"></span>'s group
<div class="float-end"> <div class="float-end">
<a href="/docs/ldap" class="text-reset me-2" title="Help"><i class="fa-solid fa-circle-question"></i></a>
<i class="fa-solid fa-arrows-up-down"></i> <i class="fa-solid fa-arrows-up-down"></i>
</div> </div>
</div> </div>
@@ -610,7 +612,9 @@
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<div class="card shadow-lg"> <div class="card shadow-lg">
<div class="card-header"><i class="fa-solid fa-plus"></i> New API Token</div> <div class="card-header"><i class="fa-solid fa-plus"></i> New API Token
<a href="/docs/api" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="card-body"> <div class="card-body">
<p class="text-muted small">A personal access token lets scripts and services call the SSO management API as you, with your permissions. Treat it like a password.</p> <p class="text-muted small">A personal access token lets scripts and services call the SSO management API as you, with your permissions. Treat it like a password.</p>
-22
View File
@@ -64,9 +64,6 @@
</li> </li>
</ul> </ul>
<div class="form-inline mt-2 mt-md-0"> <div class="form-inline mt-2 mt-md-0">
<a id="cl-help" class="nav-link text-light me-3" href="/docs" title="Help">
<i class="fa-solid fa-circle-question"></i>
</a>
<a id="cl-username" class="navbar-text text-light me-3" href="/" style="display: none;"> <a id="cl-username" class="navbar-text text-light me-3" href="/" style="display: none;">
<i class="fa-solid fa-user me-1"></i><span id="cl-username-text"></span> <i class="fa-solid fa-user me-1"></i><span id="cl-username-text"></span>
</a> </a>
@@ -101,19 +98,6 @@
sessionStorage.setItem('update-banner-dismissed', '1'); sessionStorage.setItem('update-banner-dismissed', '1');
} }
// Deep-link the header help icon to whichever doc is most relevant to
// the current page. No server-side "current section" local exists (every
// res.render() call shares one values object, see routes/index.js), so
// this follows the same client-side path-matching convention already
// used for the top-nav active-link highlighting just below. Unmapped
// pages fall back to the docs index (already /docs, the anchor's default).
var HELP_DOCS_BY_PATH = {
'/users': 'ldap',
'/groups': 'ldap',
'/integrations': 'ldap',
'/oauth/authorize': 'oauth',
};
$(document).ready(async function(){ $(document).ready(async function(){
// Set the correct link to active in the top nav bar // Set the correct link to active in the top nav bar
@@ -125,12 +109,6 @@
} }
}) })
// /users/:uid (profile pages) should still map like /users.
var path = window.location.pathname.toLocaleLowerCase();
var helpSlug = HELP_DOCS_BY_PATH[path] ||
(path.indexOf('/users/') === 0 ? HELP_DOCS_BY_PATH['/users'] : null);
if(helpSlug) $('#cl-help').attr('href', '/docs/' + helpSlug);
// Set the correct login/logout button, and reveal the current user's // Set the correct login/logout button, and reveal the current user's
// name (linking to their profile) once we know who they are. // name (linking to their profile) once we know who they are.
var me = await app.auth.isLoggedIn(); var me = await app.auth.isLoggedIn();
+4
View File
@@ -126,6 +126,7 @@
<i class="fas fa-user-plus"></i> <i class="fas fa-user-plus"></i>
Invite User Invite User
<span class="float-end"> <span class="float-end">
<a href="/docs/ldap" class="text-reset me-2" title="Help"><i class="fa-solid fa-circle-question"></i></a>
<i class="fa-solid fa-arrows-up-down"></i> <i class="fa-solid fa-arrows-up-down"></i>
</span> </span>
</div> </div>
@@ -151,6 +152,7 @@
<i class="fas fa-user-plus"></i> <i class="fas fa-user-plus"></i>
Add new user Add new user
<small class="text-muted">(check <b>This is a service account</b> below to create one — it'll show up under the Service Accounts tab)</small> <small class="text-muted">(check <b>This is a service account</b> below to create one — it'll show up under the Service Accounts tab)</small>
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="card-body"> <div class="card-body">
@@ -163,6 +165,7 @@
<div class="card-header"> <div class="card-header">
<i class="fa-solid fa-users"></i> <i class="fa-solid fa-users"></i>
User List User List
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="table-responsive"> <div class="table-responsive">
@@ -232,6 +235,7 @@
<i class="fa-solid fa-gears"></i> <i class="fa-solid fa-gears"></i>
Service Accounts Service Accounts
<small class="text-muted">— Unix/POSIX accounts something runs as, not a person. Create one from the People tab's "Add new user" form.</small> <small class="text-muted">— Unix/POSIX accounts something runs as, not a person. Create one from the People tab's "Add new user" form.</small>
<a href="/docs/ldap" class="text-reset float-end" title="Help"><i class="fa-solid fa-circle-question"></i></a>
</div> </div>
<div class="card-header actionMessage" style="display:none"></div> <div class="card-header actionMessage" style="display:none"></div>
<div class="table-responsive"> <div class="table-responsive">