Skip to content

feat: public intake forms with embed and submission handling (#261)#308

Draft
rubenvdlinde wants to merge 2 commits intodevelopmentfrom
feature/261/public-intake-forms
Draft

feat: public intake forms with embed and submission handling (#261)#308
rubenvdlinde wants to merge 2 commits intodevelopmentfrom
feature/261/public-intake-forms

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Closes #261

Summary

Implemented a complete public intake form system for Pipelinq enabling external websites to capture leads through embedded forms. The implementation includes form schema definitions, public submission endpoints with honeypot spam detection and rate limiting, service layer for contact/lead creation, and a full-featured Vue.js UI for form management with field builder, submission tracking, and CSV export capabilities.

Spec Reference

Changes

  • lib/Settings/pipelinq_register.json — added intakeForm and intakeSubmission schema definitions
  • lib/Service/IntakeFormService.php — service for submission processing, validation, spam/rate limit checking, field mapping, embed code generation, and CSV export
  • lib/Controller/PublicFormController.php — public (no-auth) endpoints for form rendering and submission with CORS support
  • lib/Controller/IntakeFormController.php — authenticated endpoints for embed code, submission list, and CSV export
  • appinfo/routes.php — added public and authenticated form routes
  • src/store/store.js — registered intakeForm and intakeSubmission object types
  • src/router/index.js — added form management routes
  • src/navigation/MainMenu.vue — added Forms settings navigation item
  • src/views/forms/FormManager.vue — list view for all forms with status and action buttons
  • src/views/forms/FormBuilder.vue — form builder with drag-and-drop field editor and field-to-entity mapping
  • src/views/forms/FormSubmissions.vue — submission history table with export CSV functionality

Test Coverage

All classes and public methods include @SPEC PHPDoc tags linking to openspec/changes/public-intake-forms/tasks.md for full traceability. Implementation builds on existing Pipelinq patterns (ObjectService API, Vue component structure, Nextcloud integration).

Al Gorithm Hydra Builder and others added 2 commits April 20, 2026 20:52
Added traceability tags to IntakeFormService, PublicFormController, and
IntakeFormController classes and their public methods to link back to
openspec/changes/public-intake-forms/tasks.md.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
All implementation tasks have been completed:
- Schema definitions added to pipelinq_register.json
- Backend services, controllers, and routes implemented
- Frontend views and store registrations completed
- Navigation and routing configured

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/pipelinq @ dfe57fb

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

Spec coverage: 14% (42 tests / 298 specs)


Quality workflow — 2026-04-20 20:55 UTC

Download the full PDF report from the workflow artifacts.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant