Skip to content

Features/agency - #5

Merged
striker561 merged 38 commits into
mainfrom
features/agency
Jul 5, 2026
Merged

Features/agency#5
striker561 merged 38 commits into
mainfrom
features/agency

Conversation

@striker561

Copy link
Copy Markdown
Owner

No description provided.

striker561 added 30 commits July 4, 2026 20:46
added traits to help livewire handle actions with out duplication
Add client management features including client list and creation components
updated the agent md
- improve client creation error handling
- Add client viewing functionality and
Implement client view component with details and invitation management
- Removed legacy controller files and API response handling.
- Updated contributing guidelines to reflect Livewire-first architecture.
- Enhanced client creation process in Livewire components, ensuring authenticated user is passed.
- Improved error handling for business rule failures in services, allowing Livewire to render field errors automatically.
- Added new method `findClient()` in `ClientService` for better client retrieval.

This commit streamlines the codebase by eliminating unnecessary controllers and enhancing the Livewire integration for client management.
Implement project management features

- Added project creation and listing components using Livewire.
- Introduced `CreateProjectData` DTO for structured project data handling.
- Enhanced `ProjectService` to manage project creation and retrieval.
- Implemented client search functionality in the project creation modal.
- Updated navigation to include a dedicated projects page.
- Added tests for project creation and client search functionalities.

This commit establishes a foundational structure for managing projects within the agency, improving user experience and functionality.
Enhance project management features with currency and status improvements

- Added label and symbol methods to ProjectCurrency enum for better currency representation.
- Introduced label and badgeColor methods to ProjectStatus enum for improved status display.
- Updated Project model to include formatted budget, due date, client display name, and a summary for project listings.
- Refactored project creation view to utilize dynamic currency options and improved project listing view for better readability.
- Added tests for project status and currency functionalities, ensuring accurate representation and formatting.

These changes enhance the user experience by providing clearer project information and improving the overall presentation of project data.
Introduce data table components for agency management

- Added `x-ui.data-table` and related components for displaying agency data in a structured format.
- Implemented `x-ui.data-table.primary-cell`, `x-ui.data-table.action-cell`, and `x-ui.data-table.view-button` for enhanced interactivity and presentation.
- Created `x-ui.data-table.empty` for handling empty cell values gracefully.
- Updated documentation to include new components and usage guidelines for agency list pages.

These additions improve the user interface for managing clients and projects, providing a more organized and user-friendly experience.
Refactor agency project and client listings to use new data table components

- Replaced existing table structures with `x-ui.data-table` for improved presentation and interactivity in both projects and clients lists.

- Updated project and client views to utilize new primary and action cell components for better organization and user experience.

- Removed deprecated notification methods in favor of event dispatching for project viewing.

- Cleaned up unused attributes in the Project model to streamline data handling.

These changes enhance the overall user interface and maintain consistency across agency management features.
Add ViewProject component for detailed project display

- Introduced a new Livewire component, `ViewProject`, to handle the display of project details in a modal.
- Implemented methods for opening and closing the project view, including error handling for non-existent projects.
- Enhanced `ProjectService` with a `findProject` method to retrieve project details by unique ID.
- Created a Blade view for the project modal, showcasing project information such as name, client, budget, and progress.
- Updated agency projects page to include the new `ViewProject` component.
- Added tests to ensure proper functionality of the project viewing feature.

These changes improve the user experience by providing a dedicated view for project details, enhancing the overall project management interface.
Enhance enums with label and badgeColor methods for improved display

- Added label and badgeColor methods to CredentialType, DeliverableStatus, DeliverableType, MeetingLocation, MeetingStatus, and MilestoneStatus enums for better user interface representation.
- Each method provides a user-friendly label and a corresponding badge color for various enum cases, enhancing the overall clarity and usability of the application.

These changes improve the visual representation of enum values across the application, contributing to a more intuitive user experience.
- Controller base class with AuthorizesRequests trait
- ProjectHubController: renders hub section pages (overview, milestones, deliverables, credentials, meetings)
- EnsureProjectAccess middleware: resolves {projectUniqueId}, enforces ProjectPolicy::view, attaches Project to request
- Register 'ensureProjectAccess' middleware alias
- Add project hub routes under /agency/projects/{projectUniqueId}
- x-agency.project-hub.shell: shared chrome with breadcrumbs, title, status badge, client meta, tab links, content card, and modals slot
- Overview page: project stats card (client, budget, dates, progress bar, description)
- Project model: add list_summary accessor for inline client · budget display
- MilestonesList: sortable, ordered milestone list with status badges and progress
- CreateMilestone: floating flyout modal with name, description, due date
- Milestone section page using hub shell
- DeliverablesList: filterable list by milestone, with type and status badges
- CreateDeliverable: floating flyout modal with name, type, milestone selector, due date
- Deliverable section page using hub shell
- CredentialsList: table with name, type, last accessed, reveal/edit/delete actions
- CreateCredential: flyout modal for adding name, type, username, password, URL
- EditCredential: flyout modal for updating credentials
- ViewCredential: flyout modal for revealing stored credentials
- Credentials section page using hub shell
- MeetingsList: upcoming and past meetings with status badges
- ScheduleMeeting: flyout modal with title, description, date/time, duration, location
- Meetings section page using hub shell
- DeliverableService: add getDeliverablesForProject and getDeliverablesForMilestone
- MeetingService: add getMeetingsForProject
- MilestoneService: add createOrderedMilestone and getMilestonesForProject
- ViewProject flyout: wire placeholder sections for milestones and deliverables
- AgencyProjectHubTest: 300+ assertions covering overview, milestones, deliverables, credentials, meetings
- EnsureProjectAccessTest: middleware unit tests
- Update AgencyProjectsTest for project model changes
- AGENTS.md: document project hub pattern (shell, controller, middleware, Livewire conventions)
- CONTRIBUTING.md: document hub page architecture
- Added a scope triat that i used in all the model to get for project-specific queries
-  Added analytics query builders and scopes
- Introduced ProjectOverviewData and ProjectOverviewStats classes to encapsulate project overview data.

- Enhanced ProjectService with methods to calculate project progress and retrieve project overview data, including caching logic.

- Updated ProjectHubController to utilize the new overview functionality.

- Created a new overview Blade component for displaying project statistics and progress.

- Modified existing shell and overview pages to integrate the new overview component and improve layout.

- Updated CSS styles for the project overview section to enhance visual presentation.

- Added tests for project overview functionality, ensuring accurate data retrieval and caching behavior.
…ng, and milestone creation

- SaveCredentialData: readonly DTO with fromArray/toAttributes for credential mutations
- SaveDeliverableData: readonly DTO for deliverable creation with type, milestone linkage, metadata
- SaveMeetingData: readonly DTO for meeting scheduling with location, duration, status defaults
- SaveMilestoneData: readonly DTO for milestone creation with auto-order and status default
…ire components per domain

Replaced separate create-edit workflows with a single Save* modal per domain.
All services now consume DTOs instead of raw arrays.

Credentials:
- Merged CreateCredential + EditCredential into SaveCredential
- SaveCredential handles both create and edit via  presence

Deliverables:
- Renamed CreateDeliverable to SaveDeliverable, consumes SaveDeliverableData

Meetings:
- Replaced ScheduleMeeting with SaveMeeting, consumes SaveMeetingData

Milestones:
- Replaced CreateMilestone with SaveMilestone, consumes SaveMilestoneData

Services refactored to accept DTOs:
- CredentialService: createCredential(SaveCredentialData), updateCredential(SaveCredentialData)
- DeliverableService: createDeliverable(SaveDeliverableData)
- MeetingService: createMeeting(SaveMeetingData)
- MilestoneService: createMilestone(SaveMilestoneData), updateMilestone(SaveMilestoneData)
…bile, consistency, and Save* components

- Replaced raw flux:table with x-ui.data-table wrapper across milestones, deliverables, credentials, meetings
- Added x-agency.project-hub.section for consistent section header + panel layout
- Refactored all list views: mobile-responsive columns, truncation, secondary info on mobile
- Renamed form views to match Save* components (save-credential, save-deliverable, save-meeting, save-milestone)
- Deleted edit-credential.blade.php (merged into save-credential)
- Updated view-credential for Save* pattern
- Refreshed create-client, view-client, view-project to align with current UI conventions
…ge layouts

- x-agency.project-hub.shell: tightened spacing, consistent breadcrumb + tab pattern
- x-agency.project-hub.section: new shared section component (panel + header)
- overview: added project-overview__section-header class for section titles
- data-table: improved responsive handling, tighter overflow wrapping
- app.css: added handoff-data-table and project-overview styles
- Page shells: aligned all section pages with the updated shell API
… for DTOs and Save* pattern

- CredentialServiceTest: create + update credential via SaveCredentialData
- DeliverableServiceTest: create deliverable via SaveDeliverableData, file upload flow
- MeetingServiceTest: create meeting via SaveMeetingData, status transitions
- MilestoneServiceTest: create milestone via SaveMilestoneData, status + reorder
- ProjectServiceTest: reflect service signature changes
- AgencyProjectHubTest: 100+ new assertions for Save* component flows, mobile states
replace Create/Edit components with Save components for credentials, deliverables, meetings, and milestones
Refactor agency client and project management components to use Save* pattern

- Replaced CreateClient and CreateProject components with SaveClient and SaveProject for unified create/edit functionality.
- Introduced SaveClientData and SaveProjectData DTOs for structured data handling.
- Updated ClientsList and ProjectsList to dispatch Save* modals for client and project creation.
- Refactored associated views and tests to align with new Save* component structure and ensure proper functionality.
Enhanced documentation with UI conventions, directory structure, and added Code of Conduct and Security Policy
Documented key design decisions regarding UUIDs and event handling in architecture; updated contributing guidelines for query parameters.
fixed larastan screams
Add changelog and update README with license and CI badge
Fixed the CI Bug and added more test
Update CI configuration to remove optional dependencies during Node.js installation
@striker561
striker561 merged commit c44afd1 into main Jul 5, 2026
1 check passed
@striker561
striker561 deleted the features/agency branch July 5, 2026 00:51
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