ChangeLog
Version [UNRELEASED]
Initial Release
This is the first stable release of the Kanban Workspaces extension for TYPO3 as preview/experimental alpha version.
Supported Versions
- TYPO3: 13.4.0+ (v13 LTS) && 14.3.0+ (v14 LTS)
- PHP: 8.2.0 to 8.5.99
- Browsers: TYPO3 Backend policy, last two supported versions of (Chrome, Firefix, Safari)
New Features
- Checklist items per stage – In Admin Tools > Workspaces, edit a workspace and expand a custom stage; add, reorder, or remove checklist entries in the "Checklist items" inline section.
- Checklist in Send to Stage modal – When moving a card to a stage, the modal shows that stage's checklist (list with icon per item) below the info banner; empty stages show no checklist section.
- Assign user to card – Card context menu (⋯) → Assign opens a modal to set Title (optional), Description (optional), and Assignee (required; select from backend user list).
- Assignee on card – Each card shows the assignee in the footer (avatar image from FAL when available, otherwise user initial).
- Assignment notification email – When you assign a different user (not yourself) with a valid email, that user receives an email (Fluid templates, SystemEmail layout).
- Cleanup on publish – When a record is published via TYPO3 workspace publish, assignment rows for that record/workspace are removed automatically.
- Kanban Board Interface - Visual drag-and-drop interface for workspace stage management
- Multi-stage Workflow Support - Support for custom workspace stages with drag-and-drop transitions
- Depth-based Content Filtering - Filter displayed content by page tree depth (0-4 levels or infinite)
- Multi-language Support - Filter content by system languages (all languages, specific languages)
- Stage-based Filtering - Show items from specific workflow stages
- Backend Module Integration - Integrated into TYPO3 Web module with proper navigation
- Dynamic Stage Configuration - Auto-configuration from workspace settings
- Configurable Default Stages - Option to disable default TYPO3 stages (stage 0)
- Custom Default Stage - Set which stage new records are assigned to
- Event Listener Support - AfterDataGeneratedForWorkspaceEvent listener for stage management
- TYPO3 v13 Compatibility - Full support for TYPO3 v13.4.0+ LTS
- Persistent Filter State Per User - User filter preferences are automatically saved and restored on subsequent visits
- Bulk Stage Transitions - Drag-and-drop functionality for moving multiple items between workflow stages simultaneously
Technical Details
- Framework: TYPO3 v13.4.0+ && TYPO3 v14.3.0+
- PHP: PHP 8.2.0+
- Architecture: Modern TYPO3 service container, dependency injection
- Code Quality: PSR-12 compliant, full type declarations, TYPO3 coding standards
- Documentation: Comprehensive documentation for administrators, editors, and developers
- Table:
tx_kanbanworkspaces_stage_checklist– stores stage (FK tosys_workspace_stage), title, sorting (seeext_tables.sql). - TCA:
Configuration/TCA/tx_kanbanworkspaces_stage_checklist.php;Configuration/TCA/Overrides/sys_workspace_stage.phpaddschecklist_itemsinline to workspace stage form. - Icons:
Configuration/Icons.phpregisterskanban-workspaces-stage-checklist(Resources/Public/Icons/checklist.svg) for TCA and modal list items. - Controller:
KanbanWorkspacesController::getChecklistForStage()loads and deduplicates items; stage config passed to frontend includeschecklistarray per stage. - Frontend:
ui/ModalController.jsrenders checklist inopenSendToStageModal;targetStagepassed from approve/revert handlers so checklist and banner show for the correct stage. - Table:
sys_workspaces_assignee– stores assignee (be_user), table_name, record_uid, workspace_id, stage_id, title, description (seeext_tables.sql). - TCA:
t3ver_assigneecolumn added to all versioned tables (referencessys_workspaces_assignee); seeConfiguration/TCA/Overrides/t3ver_assignee.php. - Ajax route:
kanban_workspace_assign(path/kanban-workspace/assign) →AssignAjaxController::assignAction; seeConfiguration/Backend/AjaxRoutes.php. - Services:
AssigneeMappingService(persist/cleanup),AssignmentNotificationService(email); both public inConfiguration/Services.yaml. - Event listeners:
AssigneeEnrichmentListener(AfterDataGeneratedForWorkspaceEvent– enriches workspace data with assignee/avatar);AssigneeCleanupAfterPublishListener(AfterRecordPublishedEvent– cleanup). - Email templates:
Resources/Private/Templates/Email/AssignmentNotification.htmlandAssignmentNotification.txt; MAIL config (e.g.defaultMailFromAddress, transport) required for sending.
Documentation
- Administrator: Stage Checklist (Workspace Stages) – where and how to configure checklist items; see Administrator.
- Administrator Guide - Installation, configuration, access control, troubleshooting; see Administrator.
- Configuration: MAIL and Ajax route configuration for assignment emails; see Configuration.
- Configuration Guide - All configuration options, TypoScript, service configuration
- Editor: Stage checklist in the Send to Stage modal – when it appears and what you see; see Editor.
- Editor: Editor > AssignUser – flow, email notification, avatar display, testing, troubleshooting.
- Editor Guide - Using the kanban board, workflow management, best practices
- Developer: Stage Checklist feature (implementation) – TCA, controller, JS, CSS, data model; see Developer.
- Developer: Assign feature implementation (controllers, services, listeners, DB, TCA); see Developer.
- Developer Guide - Architecture, API reference, extending the extension
- Known Problems - Known issues, limitations, workarounds, reporting bugs
Installation & Setup
- Composer-based installation via
web-vision/kanban-workspaces - Automatic backend module registration
- Zero-configuration default setup
- Optional Extension Manager settings for customization
Backend Module Features
- Located at: Web > Kanban Workspaces
- Available to all workspace-enabled backend users
- Supports multiple workspaces simultaneously
- Respects TYPO3 access control and workspace permissions
- Responsive stage display with color coding
- Filter controls for depth, language, and stage
- Automatic asset loading (CSS, JavaScript modules)
JavaScript Module System
- Uses TYPO3's modern ES6 module system
- Loads main app module:
@web-vision/kanban-workspaces/App.js - Modular architecture:
App.js(entry point) instantiates theWorkspaceBoardorchestrator (WorkspaceBoard.js), which delegates to focused collaborators undercore/(event emitter, horizontal scroll, utilities),data/(WorkspaceApi,DataTransformer) andui/(BoardRenderer,DragController,ModalController,FilterController,CardActions) - Integrates with TYPO3 workspaces send-to-stage functionality
- Asynchronous module loading for optimal performance
Performance Optimizations
- Efficient database queries through TYPO3 repositories
- Lazy loading of workspace data
- Client-side filtering for quick response
- Respects workspace context automatically
- Optimized asset loading strategy
Workspace Integration
- Full integration with TYPO3 core workspaces
- Supports all workspace stages and transitions
- Respects workspace edit/delete permissions per stage
- Automatic stage configuration from workspace settings
- Event listener for stage assignment on record generation
Known Limitations
- Module only visible in active workspaces (not in Live workspace)
- Requires modern browser with ES6+ support (IE11 not supported)
- Maximum practical depth of 4-5 levels for optimal performance
- Desktop-optimized interface (mobile support planned)
- Respects TYPO3 core workspace limitations