Commit graph

60 commits

Author SHA1 Message Date
Ashwin
f5c06542bc Show only the modules an org uses, on web and phone (1.24.0) 2026-10-23 19:16:58 +05:30
Ashwin
5341cd86a3 Add automation rule screens on web and phone (1.22.0) 2026-10-22 18:37:19 +05:30
Ashwin
785d6ccb87 Add custom object pages and screens, hidden unless the server offers them (1.20.0) 2026-10-21 20:39:48 +05:30
Ashwin
5ea76eb9a1 phase 1 2026-10-21 10:36:05 +05:30
Ashwin
3b90b5a08e upload 2026-10-20 21:48:14 +05:30
Ashwin
8eb68b5431 feat: implement invoice and estimate numbering settings (#802)
- Added fields for invoice and estimate number prefixes, date parts, padding, and starting numbers in the organization settings.
- Updated the organization edit and display screens to show examples of new invoice and estimate numbers based on the selected settings.
- Introduced validation for number prefixes and padding, ensuring compliance with server requirements.
- Implemented tests for the new numbering functionality, covering various scenarios including prefix validation and starting number rules.
- Enhanced the mobile app to reflect these changes in the organization settings and display screens.
2026-10-15 19:38:02 +05:30
Ashwin
8d79ff0c2e feat: add account statement feature with PDF download
- Implemented a new endpoint for generating account statements as PDFs.
- Added API configuration for fetching account statements and their PDFs.
- Created data models for account statements, including sections and entries.
- Developed a provider for managing account statement data retrieval.
- Introduced a new screen for displaying account statements with options to change the date range.
- Enhanced the account detail screen to include a button for accessing statements.
- Implemented unit tests for account statement functionality and provider behavior.
- Updated invoice formatting to correctly display negative amounts for payments and credits.
2026-10-15 18:45:23 +05:30
Ashwin
22c660ef44 chore: bump version to 1.14.0 and update currency options
- Updated version from 1.13.0 to 1.14.0 in backend/pyproject.toml and backend/uv.lock.
- Added South African Rand (ZAR) to currency options in frontend and mobile applications.
- Refactored currency and country options to use a centralized list in mobile and frontend.
- Added tests to ensure South African Rand and country options are correctly included.
2026-09-27 14:44:49 +05:30
Ashwin
ed4263a534 Refactor tests and add new functionality for ticket closing and mailbox handling
- Updated phone viewport test to check for new text related to SNS topics.
- Enhanced audit log screen tests with new credential events and filters.
- Modified mailbox form sheet tests to handle SNS Topic ARN correctly.
- Introduced new tests for ticket form close date functionality, ensuring correct behavior for optional close dates.
- Added support for organization timezone handling in tests, ensuring accurate date calculations based on user organization.
- Improved unit tests for mailbox and organization date handling, ensuring proper behavior for various scenarios.
- Implemented bulk close date functionality in ticket selection tests, verifying correct behavior for date selection and submission.
2026-09-27 11:43:51 +05:30
Ashwin
2be3f51efc Add comprehensive tests for ticket closing, calendar feed, deal board, macros, session caches, and web form models
- Implement tests for closing tickets via menu and status picker, ensuring correct API interactions and error handling.
- Create tests for calendar feed provider, verifying throttling behavior and success responses.
- Add tests for deal board provider, covering reading and moving deals, including edge cases for card movement and filters.
- Enhance macro tests to validate action parsing and application to tickets, including error handling.
- Introduce session cache tests to ensure proper cleanup on sign-out and validate session-scoped providers.
- Extend web form model tests to cover lead rotation functionality, ensuring correct serialization and defaults.
2026-09-27 06:28:09 +05:30
Ashwin
66421bbad0 Add ticket approval panel tests and enhance ticket board functionality
- Implement tests for ticket approval panel to verify approval request logic and visibility based on user roles.
- Add functionality to handle ticket movement based on server response for both tickets and leads.
- Introduce new tests for duplicate checking API to ensure correct handling of duplicates and merging logic.
- Remove outdated permissions tests that are no longer relevant.
- Update ticket board and lead board providers to include 'can_move' field for better control over ticket actions.
- Refactor existing tests to improve coverage and ensure accurate representation of API responses.
2026-09-26 23:33:20 +05:30
Ashwin
dd6ca2958d Add unit tests for organization admin checks and saved views provider
- Implement tests for `isOrgAdminProvider` to validate admin roles based on organization membership and role.
- Create tests for `saved_views_provider` to ensure correct API interactions for saving, renaming, and deleting saved views.
- Enhance ticket tree tests to accurately reflect inactive and merged ticket handling.
- Update CSV import tests to verify error handling and file saving functionality.
- Introduce tests for deal cards to ensure correct display of next steps and task statuses.
2026-09-26 20:38:32 +05:30
Ashwin
e26ab380fc Add unit tests for ticket board provider, status settable, web forms, CSV import, deal aging badge, and tickets selection
- Implement comprehensive tests for the ticket board provider to validate kanban and pipeline modes, including ticket movement and error handling.
- Create tests for ticket status settable to ensure proper status selection logic.
- Enhance web form model tests to cover ticket-specific fields and submission behavior.
- Introduce CSV import sheet tests to verify file handling and error reporting.
- Add deal aging badge tests to confirm correct display of aging statuses.
- Implement tickets selection tests to ensure UI responsiveness and functionality at various screen sizes.
2026-09-26 16:53:22 +05:30
Ashwin
794ff2dbd4 Refactor ticket and contact handling to improve visibility and access control
- Updated task views to utilize new access functions for accounts and contacts, ensuring users only see what they can access.
- Enhanced contact editing to maintain linked accounts even when not visible in the picker, preventing accidental unlinking.
- Introduced tests for contact form to verify linked account behavior.
- Implemented parent ticket handling to correctly display restricted tickets, ensuring hidden parents are represented accurately in the UI.
- Added tests for ticket parent visibility and interaction, confirming that restricted parents do not allow navigation.
- Improved ticket tree structure to handle restricted nodes, ensuring proper functionality during close operations.
2026-09-26 12:17:45 +05:30
Ashwin
41d4148edb feat: Enhance goal tracking with currency support and separate totals
- Updated goal model to include currency, allowing for multiple currencies in goals.
- Modified goal totals calculation to keep currencies separate and accurately reflect targets and achievements.
- Added tests to ensure correct handling of multiple currencies in goal tracking.
- Enhanced invoice reports to support multiple currencies, ensuring accurate reporting without summing across different currencies.
- Implemented lead board provider tests to validate lead movement and pipeline functionality.
- Introduced record edit verb tests for accounts, contacts, and leads, ensuring PATCH requests are correctly formed.
- Improved tag normalization to handle non-Latin scripts and prevent duplicates.
2026-09-26 10:06:25 +05:30
Ashwin
41250838ad Add comprehensive tests for web forms functionality
- Implement tests for web forms screen to ensure proper rendering and behavior on different devices.
- Create unit tests for web form model to validate JSON serialization and deserialization.
- Add tests for web forms provider to verify API interactions and state management.
- Ensure that publishing rules and field validations are correctly enforced in the tests.
2026-08-17 13:33:14 +05:30
Ashwin
8b20bc0edb feat: add goal history screen and integrate with goals screen
- Implemented GoalHistoryScreen to display finished goal periods and their attainment.
- Added navigation from GoalsScreen to GoalHistoryScreen via a history icon.
- Enhanced GoalsScreen to support filtering goals with a search bar and filter chips.
- Updated formatGoalValue function to handle new goal type 'ACTIVITIES'.
- Added unit tests for goal history, filtering, and goal types.
- Improved error handling and empty states for goal history and goals list.
2026-08-16 19:05:23 +05:30
Ashwin
d2a2d690fc feat: add time report feature with CSV export
- Implemented a new time report page in the frontend that displays totals by agent, ticket, or account over a specified date range.
- Added a CSV export functionality for the time report, allowing users to download their report data.
- Created API endpoint for exporting time report data in CSV format.
- Developed data models and providers for managing time report data in the mobile application.
- Integrated time report navigation into the mobile app, allowing users to access the report from the timesheet screen.
- Added unit tests for time report data parsing and API request handling.
2026-08-16 10:23:02 +05:30
Ashwin
3726150a2e feat: add SLA targets to escalation policies and tickets
- Enhance escalation policy tests to include first response and resolution hours.
- Introduce new SLA target fields in escalation policies and ensure they are correctly handled in the API.
- Implement SLA target handling in ticket properties, including at-risk and breached states.
- Update UI components to display SLA targets and their default values.
- Add validation for SLA hours input in forms, ensuring proper error handling.
- Create unit tests for SLA target functionality in both escalation policies and tickets.
2026-08-16 09:24:18 +05:30
Ashwin
cab3e92c60 feat: enhance article management with tagging system
- Implemented tagging functionality in the article editing and creation forms, allowing users to select tags for articles.
- Updated the article detail view to display related articles based on shared tags.
- Added a new portal view for customers to access help articles, including search functionality.
- Introduced a suggestions feature in the request form to display relevant articles based on user input.
- Enhanced the mobile solution detail screen to support tag selection and display.
- Updated data models to include tag IDs for articles, ensuring proper handling of tags in the backend.
- Added tests to verify the correct behavior of the tagging system in the solution detail screen.
2026-08-16 07:29:38 +05:30
Ashwin
a9e0dd9bc3 feat: enhance customer portal case management and article publishing
- Implemented a new customer portal for users to manage their support requests.
- Added functionality for users to create and view their support cases.
- Updated article publishing logic to clarify the distinction between approval and visibility in the ticket reply panel.
- Enhanced the comment model to include the author's name when comments are made through the customer portal.
- Improved UI/UX for the solutions and cases pages, ensuring better clarity on article status and visibility.
- Updated documentation to reflect changes in the API and customer portal features.
2026-08-15 23:59:44 +05:30
Ashwin
c96a5d3bbf feat: update icons to Lucide icons across various models and screens 2026-08-09 12:53:56 +05:30
Ashwin
c11ced7894 feat: add invoice template form screen and integrate with templates list
- Implemented `InvoiceTemplateFormScreen` for creating and editing invoice templates.
- Added functionality to pre-fill form fields from existing templates.
- Enhanced `InvoiceTemplatesScreen` to allow admins to create new templates and set defaults.
- Updated routing to include paths for creating and editing templates.
- Added tests for the new template form and its integration with the templates list.
- Ensured proper handling of admin-only actions and user permissions.
2026-08-08 15:47:13 +05:30
Ashwin
f132d17d0c feat: enhance profile screen with additional information and links
- Added teams and last signed in information to the profile screen.
- Introduced new link rows for API tokens, goals, timesheet, and tasks.
- Implemented a new _LinkRow widget for better navigation and UI consistency.

fix: update attachment handling in task and ticket detail screens

- Changed attachment opening logic to use API for downloads instead of direct file paths.
- Ensured that attachments without files are handled gracefully.

feat: add contact management to ticket form and detail screens

- Included contact selection in the ticket form, allowing users to link contacts to tickets.
- Updated ticket detail screen to display associated contacts.

refactor: improve API service for file uploads

- Modified the API service to support both POST and PUT methods for file uploads.

test: add unit tests for ticket contacts and document download URLs

- Created tests to ensure correct handling of ticket contacts and document download logic.
- Verified that the absence of contacts does not cause crashes and that payloads are correctly formed.
2026-08-08 14:18:17 +05:30
Ashwin
72d56514d6 feat: add Documents and Goals sections to MoreScreen
- Introduced new MenuRow items for Documents and Goals in the MoreScreen.
- Updated the navigation to link to the respective screens for Documents and Goals.

test: add comprehensive tests for Documents and Goals functionality

- Created unit tests for document handling, including sharing and editing permissions.
- Added tests for goal management, including creation, status tracking, and validation.
- Ensured coverage for edge cases in document and goal functionalities.

test: implement integration tests for Documents and Goals screens

- Developed integration tests to verify the rendering and functionality of Documents and Goals screens.
- Included tests for user roles (admin vs member) and their respective permissions.
2026-08-08 10:53:25 +05:30
Ashwin
ea2e52752a feat: add support ticket management features
- Implemented a new support ticket creation screen with form validation and file attachment capabilities.
- Added a support ticket detail screen to view ticket messages and reply functionality.
- Created a support ticket list screen to display all tickets with options to create new tickets.
- Enhanced API service to handle downloading private attachments securely.
- Updated attachment upload service to support file selection and validation for support tickets.
- Added unit tests for support ticket functionalities, including ticket creation, replies, and attachment handling.
- Introduced self-serve help options for deployments without support queues.
2026-08-08 09:38:37 +05:30
Ashwin
e40153ce47 feat(tickets): implement cascading close functionality for parent tickets
- Added a confirmation step for closing parent tickets that may have open child tickets.
- Introduced a new `close.js` module to handle the logic for identifying open descendants and generating summary messages.
- Updated the ticket detail page to include a close button that triggers the confirmation panel.
- Enhanced the close dialog to display the names of tickets that will be closed and allow users to add a resolution comment.
- Implemented tests for the new close functionality, ensuring correct behavior for various scenarios.
- Updated mobile app to reflect changes in the ticket closing process, including the handling of open descendants and resolution comments.
- Removed the old server endpoint for closing tickets with children, as the new logic is now handled client-side.
2026-08-08 07:40:40 +05:30
Ashwin
49cd93fa1d feat: add inbound email and approval rules settings to the mobile app
- Updated SettingsHubScreen to include new menu options for Inbound Email and Approval Rules.
- Implemented new screens for managing inbound emails and approval rules.
- Added tests for the new inbound email and approval rules functionalities, ensuring proper rendering and behavior.
- Created unit tests for ApprovalRule and Mailbox models, covering JSON serialization and business logic.
2026-08-08 06:56:35 +05:30
Ashwin
3a4ef40ba5 feat: Implement close-with-children dialog and related settings
- Added `close_with_children_dialog.dart` to handle the close ticket prompt with linked tickets.
- Updated `_closeWithChildren` method in `ticket_detail_screen.dart` to utilize the new dialog and respect organization settings for default checkbox state.
- Enhanced ticket closing feedback messages based on whether linked tickets were also closed.
- Introduced unit tests for `AccessToken` and `OrgSettings` to ensure proper serialization and functionality.
- Added tests for the new close-with-children dialog to verify UI behavior and settings integration.
- Updated existing tests to cover new functionality and ensure no regressions.
2026-08-08 01:18:27 +05:30
Ashwin
6bb00db95f feat: add reopen policy screen and related functionality
- Implemented ReopenScreen for managing the reopen policy, including admin-only access and editing capabilities.
- Added MenuRow for navigating to the Reopen policy settings in the SettingsHubScreen.
- Created unit tests for the ReopenPolicy model, covering JSON serialization and validation logic.
- Introduced BusinessCalendar model and tests for business hours functionality.
- Updated phone viewport tests to include scenarios for the reopen policy screen.
2026-08-08 00:33:39 +05:30
Ashwin
68554b89f6 Add escalation settings and tests for escalation policies
- Introduced a new menu option for 'Escalation' in the settings hub screen.
- Added tests for the escalation policies, including rendering, sorting, and behavior based on active/inactive states.
- Implemented logic to handle escalation policies in various scenarios, ensuring proper notifications and actions based on the policy configuration.
- Created unit tests to validate the functionality of escalation policies, including edge cases for targets and breach counts.
2026-08-08 00:11:15 +05:30
Ashwin
e9886b1d99 feat: add routing settings and implement routing rules tests
- Added a new menu option for routing settings in the settings hub screen.
- Implemented comprehensive tests for routing rules, covering various scenarios including rule creation, activation, deactivation, and condition handling.
- Introduced fake client for testing API interactions and ensured proper serialization of routing rules.
- Enhanced routing rule logic to handle active and inactive assignees correctly.
2026-08-07 23:46:49 +05:30
Ashwin
81e813bf3b feat: add tags management screen and functionality
- Introduced a new TagsScreen for managing tags across records.
- Implemented functionality for creating, turning off, turning on, and merging tags.
- Updated SettingsHubScreen to include a link to the new TagsScreen.
- Added tests for the TagsScreen to ensure proper rendering and functionality.
- Created unit tests for tag-related logic, including usage calculations and duplicate detection.
2026-08-07 23:06:14 +05:30
Ashwin
01ca6da166 Add unit tests for custom fields and macros functionality
- Implemented comprehensive tests for custom fields, covering key validation, draft validation, payload creation, and parsing.
- Added tests for macros, including permission checks, removal actions, draft validation, and payload structure.
- Established a fake HTTP client to simulate API responses for testing purposes.
- Ensured that all edge cases and expected behaviors are thoroughly validated in both custom fields and macros.
2026-08-07 20:11:01 +05:30
Ashwin
98c95e55b0 Add unit tests for invoice creation, notifications, and timesheet functionality
- Implement tests for contact billing rules in new_invoice_test.dart
- Validate line item payload structure and constraints in new_invoice_test.dart
- Create comprehensive tests for notifications provider in notifications_provider_test.dart
- Ensure correct handling of unread notifications and marking them as read
- Add tests for timesheet provider functionality in timesheet_provider_test.dart
- Verify time entry parsing, running timers, and week calculations
2026-08-07 19:32:32 +05:30
Ashwin
d886d9ada3 feat: add kanban board feature with board and lane management
- Introduced BoardScreen for kanban board functionality.
- Updated app router to include route for the board screen.
- Added UI components for creating and managing boards and lanes.
- Implemented card management within lanes, including adding, moving, and deleting cards.
- Enhanced tasks list screen with navigation to the board screen.
- Created unit tests for board provider to ensure correct functionality and API interactions.
2026-08-07 14:46:33 +05:30
Ashwin
d5a14d6514 feat: add TeamScreen for managing team members and roles
- Implemented TeamScreen to display active and deactivated team members.
- Added functionality to invite new members and manage roles (admin/member).
- Integrated error handling for API responses and loading states.
- Created reusable widgets for displaying member information and actions.

feat: enhance TasksListScreen with initial view filtering

- Modified TasksListScreen to accept an initial view parameter for filtering tasks.
- Implemented logic to apply filters based on dashboard badge taps.
- Updated UI to show active filters with clear options.

test: add unit tests for dashboard badge filters

- Created tests to verify the behavior of task and lead filters based on dashboard badges.
- Ensured correct API query parameters are sent for various filter scenarios.

test: add unit tests for team provider functionality

- Implemented tests for team provider to validate fetching and managing team members.
- Verified role changes, activation status updates, and invite functionality.
- Ensured proper handling of API responses, including error states.
2026-08-07 12:49:50 +05:30
Ashwin
ab27ea85fd Refactor dashboard API response to reduce payload size and improve performance
- Removed serialization of full account, contact, lead, and opportunity objects from the dashboard API response.
- Added new fields for urgent counts, pipeline by stage, revenue metrics, hot leads, tasks, activities, and goal summary.
- Updated the context building logic to only include counts and essential data.

Enhance JWT signing key validation in settings

- Added a check to ensure the SECRET_KEY is at least 32 bytes for HS256 JWT signing.
- Introduced warnings for development environments when the key is shorter than required.

Update environment variable documentation

- Clarified the requirements for the SECRET_KEY in the environment variables documentation, emphasizing the minimum length for security.

Revise mobile app API configuration for self-hosting

- Updated the mobile app to allow self-hosting by using `--dart-define` for API_BASE_URL and GOOGLE_SERVER_CLIENT_ID.
- Ensured that the app enforces HTTPS in release builds to secure JWT transmission.

Implement entity lookup for task linking in mobile app

- Created a new EntityLookup model to handle task attachments to accounts, leads, opportunities, and tickets.
- Refactored task form screen to utilize the new lookup mechanism, improving the user experience by providing real-time loading states and error handling.

Add unit tests for new features and configurations

- Implemented unit tests for API configuration, entity lookup, and task link picker to ensure functionality and reliability.
2026-08-07 10:05:19 +05:30
Ashwin
1da98d92cf feat: add contacts list screen with search and pagination
- Implemented ContactsListScreen to display a list of contacts with search functionality.
- Added infinite scrolling to load more contacts as the user scrolls.
- Created a count strip to show the number of contacts loaded.
- Added error handling and retry functionality for loading contacts.
- Introduced a new ContactRow widget for displaying individual contact details.

refactor: enhance deal form unsaved changes detection

- Replaced manual unsaved changes checks with a baseline snapshot comparison.
- Updated the deal form to capture the initial state of the form for better change detection.
- Improved the handling of unsaved changes for various fields in the deal form.

refactor: update lead form unsaved changes detection

- Implemented baseline snapshot comparison for unsaved changes in the lead form.
- Enhanced the lead form to ensure all relevant fields are considered for change detection.

feat: add accounts and contacts menu items in settings

- Added new menu items for Accounts and Contacts in the MoreScreen for easier navigation.

refactor: update task forms to use account options provider

- Changed references from accountsProvider to accountOptionsProvider in task forms for consistency.

fix: improve auth service sign-out process

- Updated the sign-out method to notify the server of the sign-out while ensuring local state is cleared.

test: add unit tests for account and contact parsing

- Created tests to validate the parsing of account and contact data from API responses.
- Ensured that the parsing logic correctly handles nested structures and missing fields.
2026-08-07 09:20:28 +05:30
Ashwin
c1fa72b667 feat: Implement organization creation feature
- Removed notification model and related exports.
- Added create organization functionality in AuthProvider and AuthService.
- Introduced OrgCreateScreen for organization creation with form validation.
- Updated routing to include organization creation and selection screens.
- Enhanced OrgSelectionScreen to allow users to create a new organization.
- Added tests for organization creation and validation logic.
2026-08-07 08:22:43 +05:30
Ashwin
4d2b67f7d8 feat: enhance solution detail screen with access control for editing and deleting
feat: add initial due date support in task form screen
fix: ensure completed tasks are displayed correctly in tasks list screen
fix: resolve layout issues in ticket detail screen buttons
fix: improve error messaging for network failures in API service
fix: handle organization data correctly in auth service
fix: update task row to prevent layout issues with dismissible actions
fix: ensure multi-select sheet buttons layout correctly
test: add tests for KPI cards in dashboard screen
test: add tests for deals filter sheet layout
test: add tests for solution detail screen access control
test: add tests for task create date functionality
test: add tests for task row dismissible behavior
test: add tests for tasks list screen behavior with completed tasks
test: add tests for API envelope handling
test: add tests for API service network failure handling
test: add tests for permissions logic
2026-08-06 23:35:54 +05:30
Ashwin
e3b5181b19 Refactor comments for clarity and consistency across multiple screens and services
- Updated comments in LeadsListScreen, MoreScreen, TaskDetailScreen, TaskFormScreen, TasksListScreen, TicketAnalyticsScreen, TicketDetailScreen, TicketsListScreen, ApiService, AuthService, CrashReporting, DealCard, TicketCard, MultiSelectSheet, KanbanColumn, StageStepper, TicketApprovalPanel, TicketPropertiesCard, and TicketTimePanel to improve readability and maintain a consistent style.
- Adjusted punctuation and phrasing for better flow and understanding.
2026-08-03 09:36:48 +05:30
ashwin
eaab9972ac feat: integrate Firebase Crashlytics, add dynamic task relation labels, and update task model fields 2026-05-17 02:09:09 +05:30
ashwin
acf38437bd feat: enhance ticket card UI with tags, relationship status, priority indicators, and assignee avatars, while adding resolution SLA tracking and backend filtering support. 2026-05-16 22:59:09 +05:30
ashwin
dd1e0468c5 feat: add teams lookup provider, enhance stage stepper with lost-deal status, and implement deal filtering/sorting logic 2026-05-15 08:49:28 +05:30
ashwin
aa987c62c7 feat: add user name field and implement profile update functionality in backend and mobile UI 2026-05-15 06:05:59 +05:30
ashwin
acb54f8c65 feat: add support for knowledge base solutions, ticket approvals, analytics, and custom fields with dynamic form generation 2026-05-14 04:11:18 +05:30
ashwin
814668aa6c feat: implement ticketing system enhancements including time tracking, notifications, escalation, approval workflows, and mobile application updates. 2026-05-10 07:55:13 +05:30
Ashwin
6de8794991 feat: Enable task detail navigation from dashboard, remove recent activity section, and optimize task update/patch logic. 2026-02-18 21:11:33 +05:30
Ashwin
666c59ada8 m16 2026-01-19 22:02:37 +05:30