feat: add optional volume descriptions for UI

Added VOLUME_DESCRIPTIONS config dict allowing optional user-friendly
descriptions for volumes shown in management UI.

Changes:
- Added VOLUME_DESCRIPTIONS dict in jupyterhub_config.py (optional, co-defined
  with DOCKER_SPAWNER_VOLUMES)
- Exposed volume_descriptions via c.JupyterHub.template_vars
- Updated home.html to conditionally display descriptions if defined
- If volume not in VOLUME_DESCRIPTIONS, no description shown (UI remains agnostic)

Configuration example:
VOLUME_DESCRIPTIONS = {
    'home': 'User home directory files, configurations',
    'workspace': 'Project files, notebooks, code',
    'cache': 'Temporary files, pip cache, conda cache'
}

Documentation:
- Updated .claude/CLAUDE.md with Manage Volumes implementation details
- Simplified Restart Server section for consistency
- Added template variables to doc/ui-template-customization.md

UI now shows volume name, Docker volume path, and optional description
(if configured). Fully backward compatible - descriptions are optional.
This commit is contained in:
stellarshenson
2025-11-09 22:50:13 +01:00
parent 96f3d546b0
commit 12953ee4d6
4 changed files with 47 additions and 30 deletions

View File

@@ -8,6 +8,10 @@ JupyterHub templates extended using Jinja2 to add custom UI features (server res
- Changes require Docker rebuild with `--no-cache` flag
- JupyterHub 5.4.2 uses Bootstrap 5 (not Bootstrap 4)
**Template Variables** (via `c.JupyterHub.template_vars`):
- `user_volume_suffixes`: List of volume suffixes from `DOCKER_SPAWNER_VOLUMES`
- `volume_descriptions`: Optional dict mapping suffixes to descriptions
**JavaScript Integration**:
All custom JavaScript wrapped in RequireJS to ensure library loading:
```javascript