Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.

feat(widgets): link-button widget with createFile action#67

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feature/impl-link-button-widget
Apr 30, 2026
Merged

feat(widgets): link-button widget with createFile action#67
rubenvdlinde merged 1 commit into
developmentfrom
feature/impl-link-button-widget

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Summary

Implements REQ-LBN-001..007 per spec on development.

  • New LinkButtonWidget.vue — styled button renderer with three action types (external / internal / createFile); icon via IconRenderer; admin/edit-mode suppression; disabled while in flight
  • New LinkButtonForm.vue — six-field sub-form (label, actionType select, url, IconPicker, bg/text colour); placeholder swaps with actionType; validate() requires label + url
  • New useInternalActions.js — singleton module-level registry (register/invoke/has); warns on miss, never throws
  • New POST /api/files/createFileController + FileService with strict filename regex validation, path-traversal rejection, admin-configurable extension allow-list (txt/md/docx/xlsx/csv/odt), overwrite-on-exists semantics; three new typed exceptions
  • widgetRegistry.js — added link entry with correct defaults
  • i18n — 14 new keys added to en/nl .js + .json files

Test plan

  • PHPUnit: 23 new tests (FileServiceTest + FileControllerTest) — all pass; pre-existing 6 DashboardShareApi errors unaffected
  • Vitest: 31 new tests (LinkButtonWidget + internalActions) — 144/144 pass; pre-existing WidgetContextMenu CSS issue unchanged
  • ESLint: 0 errors (24 pre-existing @SPEC warnings)
  • Stylelint: clean
  • PHPCS on lib/: new files all pass; 3 pre-existing failures in unrelated files

🤖 Generated with Claude Code

@rubenvdlinde rubenvdlinde added the ready-for-code-review Build complete — awaiting code reviewer label Apr 30, 2026
@rubenvdlinde
rubenvdlinde force-pushed the feature/impl-link-button-widget branch from a2cbe56 to 994af20 Compare April 30, 2026 20:28
@rubenvdlinde
rubenvdlinde merged commit 0a9e248 into development Apr 30, 2026
14 of 17 checks passed
@rubenvdlinde
rubenvdlinde deleted the feature/impl-link-button-widget branch April 30, 2026 20:28
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/mydash @ 7d73be9

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 103/103
npm ✅ 342/342
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-04-30 20:28 UTC

Download the full PDF report from the workflow artifacts.

@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/mydash @ 7706d61

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 103/103
npm ✅ 342/342
PHPUnit ⏭️
Newman ⏭️
Playwright ⏭️

Quality workflow — 2026-04-30 20:29 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

ready-for-code-review Build complete — awaiting code reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant