ChangeLog
Version 0.0.2
New Features
- Disable reset to editing stage – New extension configuration option
disableResetToEditingStage; when enabled it prevents TYPO3's DataHandler from resetting a workspace record's stage back to the editing stage (stage 0) after a field update. - Custom titles for default stages – New extension configuration options
customStageEditTitle,customStageReadyToPublishTitleandcustomStagePublishTitleto override the titles of the default TYPO3 workspace stages (Editing, Ready to publish, Publish). Each accepts a plain string or aLLL:EXT:...translation reference; empty keeps the TYPO3 default. Implemented by extendingStagesService::getStageTitle().
Breaking / Removed
- Disable default stage and Default StageId - Disabling default stage (
editing) and configure a default custom stage id to use has been removed; Removing default stageeditingis not reasonable and theDefault Custom Stage Idneeds to be done on workspace level because multiple workspaces does not have the same custom stage at all. Removed for now and postponed to be added in more workable stage at a later point.
Version 0.0.1
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
- 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