Widen prefix/suffix fields and lead info dropdowns to show full content
Ensure email on own row, improve dropdown widths, enhance country selector visibility
Email on own row, widen lead info dropdowns, improve country selector with flags
Redesign lead creation form with complete name fields, proper dropdown sizing, country field, and improved phone layout
Enhance lead creation form with modern UI, validation, error handling, and improved UX
Add phone extension support to CreateLeadRequest, UpdateLeadRequest, and LeadDTO
Add type assertion for mortgageFields.isRepresented boolean check
Add extension property to Phone interface to support phone extensions
Add LeadProspectType, vendor/product, bestContactTime, phone extension/isText, and residential mortgage fields to lead creation form
Filter markets to show only active markets on lead creation page
Replace secondary color with primary color variations and gradients
Resolve MultipleBagFetchException and fix custom form persistence
- Simplified CustomFormRepository query to avoid multiple bag fetches - Fixed LeadMarketService to properly save and load custom form associations - Use saveAnd...
Properly save and load custom form associations for markets
- Removed repository delete, now using JPA orphan removal for cleanup - Initialize lazy marketCustomForms collection before clearing - Ensure collections are in...
Resolve MultipleBagFetchException in CustomFormRepository
- Simplified findByIdAndOrganizationId query to avoid fetching multiple bags - Removed LEFT JOIN FETCH for stacks and fields in same query - Collections are now...
Reload market after create/update to initialize lazy collections
- Updated createMarket and updateMarket to reload market using getMarketById - This ensures all lazy collections (marketCustomForms, vendorProducts) are initial...
Add salesSubType to LeadMarket interface and use it in edit form
- Added salesSubType field to LeadMarket interface to match DTO - Updated handleEditClick to use salesSubType from DTO when setting parent/child types - This fi...
Resolve MultipleBagFetchException by using transactional lazy loading
- LeadMarketRepository: Reverted to simple query without multiple JOIN FETCH - LeadMarketService: Added @Transactional(readOnly=true) to getMarketById with expl...
Type error: Block-scoped variable 'getAgentFilterMemberId' used before its declaration.
Use passed systemFields for field mapping interface grouping
- FieldMappingInterface: Fixed getSystemFieldsByCategory to use passed-in systemFields prop instead of default BASE_SYSTEM_FIELDS - FieldMappingInterface: Added...
Correct path handling for mortgage fields and custom form data in lead imports
- Fixed mortgage fields to use 2-part paths (mortgageFields.loanAmount) in setNestedFieldOnCreateRequest - Fixed custom form data to use 3-part paths **********...
Add eager loading for repository queries to fix lazy loading issues
- CustomFormRepository: Added LEFT JOIN FETCH for stacks and fields in findByIdAndOrganizationId - LeadMarketRepository: Added LEFT JOIN FETCH for marketCustomF...
Make email/username login case-insensitive
- Normalize input username/email to lowercase before comparison - Use LOWER() function on database column for case-insensitive matching - Fixes issue where user...
Reset state on market data load failure to prevent stale data
- Added state reset in else block when response.ok is false - Ensures selectedMarketConfig and customFields are cleared on failed market load - Maintains consis...
Fix syntax error and add debug logging for market field loading
- Fixed syntax error in complex type assertion by breaking into proper interfaces - Added debug logging to track market data, salesSubType, and custom form load...
Use salesSubType for mortgage field detection in manual import
- Updated LeadMarket interface to match DTO structure (customForms only has basic info initially) - Fixed comment to clarify salesSubType is used for mortgage d...
Add salesSubType field to LeadMarketDTO for mortgage field detection
- Added salesSubType field to distinguish between parent SaleType and sub-types - When SaleType has a parent (e.g., RESIDENTIAL_MORTGAGE), salesType becomes the...
Add complete Kamo logo SVG with all 14 paths
Embed full SVG content directly instead of partial paths
Use CSS-only approach for Kamo logo
Removed broken SVG file mount, using CSS background-image to load external logo directly on #logo element
Fix logo.svg to reference external Kamo logo URL
Use SVG image element to embed external logo instead of complex paths with broken transforms
Replace Roundcube logo.svg with Kamo logo SVG
Mount custom logo.svg to **************** to replace the Roundcube watermark/background logo
Add custom CSS file to override Roundcube watermark logo
- Created custom.css with watermark override - Mount CSS file to /var/www/html/custom.css - Configure Roundcube to load additional_stylesheets
Replace all Roundcube logos with Kamo logo including watermark
Updated skin_logo config to array format to cover: - Main header logo - Small collapsed header logo - Inbox watermark/background logo
Add mail subdomain to auto-cert SUBDOMAINS list
Enables automatic SSL certificate creation for mail.kamocrm.com
Expose Postfix ports 25 and 587 via hostPort for inbound mail
Required for receiving external SMTP connections on K1M1
Add missing Next.js API routes for leads endpoints
- Added /api/security/leads route for GET (all leads) and POST (create lead) - Added /api/security/leads/[id] route for GET, PUT, DELETE operations - Added ****...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
