4871c6032e
feat: extract bookmarks as standalone module with MintyPHP\Module\Bookmarks namespace
...
Moves bookmarks from core hardcoding into modules/bookmarks/ as a
fully self-contained module, following the same pattern as addressbook.
Module contributions via platform slots:
- aside.tab_panel: bookmark sidebar panel
- topbar.right_item: bookmark toggle button
- layout.body_end_template: bookmark/group dialogs
- layout.head_style: bookmark CSS (form + sidebar)
- runtime.component: bookmark-save and bookmark-panel (phase: late)
- search.resource_item: bookmarks in global search (user-scoped via {{userId}})
Backend fully in module namespace (MintyPHP\Module\Bookmarks\*):
- Service: BookmarkService, BookmarkServicesFactory, BookmarkRepositoryFactory
- Repository: BookmarkRepository, BookmarkGroupRepository, BookmarkNavigationRepository
- Support: BookmarkUrlNormalizer
- Providers: BookmarksSessionProvider, BookmarksLayoutProvider, BookmarksSearchProvider
Core cleanup:
- Removed all bookmark-specific markup from core templates
- Removed core DI registrations for bookmark services
- Removed core bookmark pages, JS, CSS
- AuthSessionTenantContextService delegates to module SessionProvider
Architecture guards:
- NoBookmarksHardcodingTest: verifies zero bookmark references in core
- testModuleClassesUseModuleNamespace: prevents core namespace leakage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 22:20:20 +01:00
c7b8fd516a
feat: extend module platform with UI slots, runtime components, CLI tooling and {{userId}} search support
...
Completes the generic module platform that enables modules to contribute
UI elements, runtime JS components, and search resources without any
core hardcoding.
New generic UI slot types:
- topbar.right_item: module-contributed topbar buttons
- layout.body_end_template: module-contributed dialog/overlay templates
- layout.head_style: module-contributed global CSS
- runtime.component: declarative JS component registration with phase ordering
New infrastructure:
- ModuleAutoloader: PSR-4 autoloading for module-local PHP classes
- ModuleRuntimePageBuilder: symlinks module pages into runtime directory
- ModuleRuntimeAssetPublisher: publishes module CSS/JS to web/modules/
- ModulePermissionSynchronizer: syncs module permissions to DB
- CLI scripts: module-runtime-sync, module-build, module-migrate,
module-permissions-sync, module-assets-sync
- {{userId}} placeholder in SearchDataService for user-scoped search queries
- Component runtime with phased initialization (early/default/late)
- AppContainer.protectExistingBindings() to prevent module→core overwrites
- Architecture tests: ModuleStructureContractTest, CoreTemplateIsolationTest,
FrontendComponentRuntimeContractTest, AppContainerIsolationContractTest
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 22:19:56 +01:00
d9805c45d3
fix: address code review findings for bookmark feature (H1–L5)
...
Fix broken tests (H1), align interface signatures with implementations (H3),
remove dead code (H4), add missing input guard (M1), replace raw $_SESSION
access with SessionStoreInterface (M2), sync update script schema (M4),
use shared getAppBase utility (L2), document fragment stripping (L3),
and apply app- CSS class prefix convention (L5).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-17 22:58:07 +01:00
9688848401
Global Boomarks
2026-03-14 21:45:58 +01:00
00366d7000
UI max width details
2026-03-14 15:58:10 +01:00
2b915f5a43
refactor: extract shared form utils, add aria-live regions and reduced-motion support
...
DRY duplicated helpers (escapeAttr, belongsToForm, isSubmitControl,
isEditableTarget) into web/js/core/app-form-utils.js and update 7
consumers. Add aria-live="polite" to flash messages, async messages,
and search results for screen reader announcements. Add
prefers-reduced-motion support to CSS tooltips.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 22:28:46 +01:00
d9f07dcd63
fix: web/ quick wins — CSS cleanup, ARIA tabs, and file header comments
...
CSS:
- Remove duplicate li::before block in app-search.css
- Fix typo: search-reuslt → search-result in app-search.css
- Remove commented-out CSS rules in app-flash.css
- Add descriptive header comment to all 27 CSS component files
JS:
- Complete WAI-ARIA Tabs pattern: generate IDs, add aria-controls on
tab buttons and aria-labelledby on tab panels (app-tabs.js)
- Add JSDoc header comments to ~33 JS files (core + components)
- Add explanatory block comment to app-boot.js (why classic IIFE)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 22:21:37 +01:00
ee5930d728
style: update app-tabs and sidebar components
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 21:59:09 +01:00
cb7256aebc
variablen und empty states
2026-03-12 16:47:53 +01:00
0b9014dcbf
page update
2026-03-12 14:09:06 +01:00
24a6b79f7a
Fix tenant SSO status mode and refactor status UI tiles
2026-03-12 10:01:24 +01:00
e9f73bc96a
ui changes and role switch added
2026-03-12 09:41:18 +01:00
a1c7c9cf7d
Standardize global empty-state UI component
2026-03-11 21:38:15 +01:00
6286ec4179
settings ui/ux optimization
2026-03-09 22:29:45 +01:00
1b872f145c
added details card component
2026-03-09 21:57:52 +01:00
9a08f96c11
agent foundation
2026-03-06 00:44:52 +01:00
c5f657c8c8
listen ansichten verbessert
2026-03-05 11:17:42 +01:00
8f4dd5840d
major update
2026-03-04 15:56:58 +01:00
25370a1a55
add composer-unused, comprehensive docs, and project restructure
...
- Add icanhazstring/composer-unused as dev dependency for dependency hygiene checks
- Add German documentation (docs/) covering architecture, conventions, workflows, and developer checklists
- Add API layer (ApiAuth, ApiBootstrap, ApiResponse), audit, scheduler, custom fields, and SSO services
- Add Microsoft OIDC SSO, API token management, and user lifecycle features
- Add swagger-ui vendor integration and OpenAPI spec
- Add production Docker setup and bin/ scripts
- Update composer dependencies, config, templates, and frontend assets throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-22 15:27:35 +01:00
3eb9cc0ac4
big restructure
2026-02-11 19:28:12 +01:00
cd59ccd99b
baseline
2026-02-04 23:31:53 +01:00