| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 35640 |
17 d 10 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Skip escalations in ticket overview Message column, compact escalation styling in detail dialog
- Pass lastMessageMap to ticket overview templates for all three views
(myTicket, managerTicket, myPartnerTicket)
- Template Message column prefers lastMessageMap over activityMap
- Escalation activities in detail dialog render as compact centered
system messages with pill styling instead of chat bubbles
- Add .system-activity CSS for compact centered gray pill style |
|
| 35626 |
18 d 9 h |
amit |
/trunk/ |
Ticket system: add unread tracking, pagination, search, and partner notifications |
|
| 35617 |
20 d 8 h |
amit |
/trunk/ |
Filter invisible subcategory tickets for CRM and end users only
- CRM users: Cannot see tickets with visibility=0 subcategories
- Sales/RBM/ABM users: Can see all tickets (no filtering)
- End users in web module: CRM users filtered, others see all
- Uses getTicketSubCategoryMap() for efficient batch lookup
- Named query filters by tbc.visibility=true for recent tickets |
|
| 35607 |
20 d 10 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fix partner position assignment error for newly added partners
- Changed validation from cached retailerService.getFofoRetailers(false) to direct fofoStoreRepository.selectAll() query
- This ensures newly added partners are validated correctly without waiting for cache to expire (30 mins) |
|
| 35603 |
20 d 13 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Allow Sales and RBM teams to resolve their own category tickets
- Sales team can now resolve tickets in Sales category
- RBM team can now resolve tickets in RBM category
- CRM team can still resolve all tickets
- Added isSalesUser, isRbmUser flags and category IDs to template model
- Updated ticket.vm canResolve logic to check user category against ticket category |
|
| 35601 |
20 d 14 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Filter out Sales/RBM Escalation tickets from CRM user's My Tickets view
- CRM users should not see Sales Escalation (84) and RBM Escalation (83) subcategory tickets
- These escalation tickets are internal and not relevant for CRM team |
|
| 35594 |
21 d 6 h |
amit |
/trunk/ |
Ticket system: CRM access, category filtering, UI improvements
CRM Team Access:
- CRM users can see all tickets in myticket and managerTicket views
- CRM users can assign/edit tickets from all views
- Only CRM can mark tickets as resolved
Category Filtering (hidden from CRM):
- Sales category (ID 4) and Sales Escalation subcategory (ID 84)
- RBM category (ID 18) and RBM Escalation subcategory (ID 83)
UI Improvements:
- Partner name link opens partnerPerformance in new tab (reusable via .partner-link class)
- Edit modal shows ticket ID and partner name in title
- Resolve confirm shows ticket ID and partner name
- Fixed duplicate class attributes in buttons
- Modal shows after content loads (removed data-toggle conflicts)
Version bump: JS 313, CSS 34 |
|
| 35592 |
21 d 14 h |
amit |
/trunk/ |
Ticket system improvements: N+1 query fixes, authorization checks, CRM access, UI fixes
- Fix N+1 queries in getSubCategoryIdAndCategoryMap and getAuthUserAndEsclationByPartnerId
- Add authorization checks to ticket endpoints (getActivities, closeTicket, createActivity, editTicket, editPartnerTicket, createLastActivity)
- CRM users can now see all tickets to handle partner communications
- Only CRM team members can mark tickets as resolved
- Fix duplicate HTML IDs in ticket templates (changed to classes)
- Fix getSubCategoryId() bug in edit-ticket modals
- Add message field to create-ticket form
- Update cs.js to use class selectors |
|
| 35590 |
25 d 7 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Require at least one partner in createPosition and updatePartnerPosition
- Reject null or empty fofoIds with 'At least one partner must be specified'
- Position must have either [0] (All Partners) or specific partner IDs |
|
| 35589 |
25 d 7 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fix fofoId validation to allow 0 (All Partners) in createPosition and updatePartnerPosition
- fofoId=0 is a sentinel value meaning 'All Partners'
- Skip validation when fofoIds contains only 0
- Reject mixed lists like [0, 123, 456] to prevent inconsistent data
- Fixes regression introduced in r35570/r35571 |
|
| 35571 |
30 d 5 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
Quick wins and medium effort improvements for ticket system
Quick Wins:
- Add input validation to updatePartnerPosition (check positionId, regionId, fofoIds exist)
- Keep SortOrder import (from javax.swing, needed for pagination)
Medium Effort:
- Extract common modal CSS and HTML to shared partials (activity-modal-styles.vm, activity-modal.vm)
- Add null safety checks for maps in getTicket, getMyPartyTicketTicket, getManagerTickets
- Fix N+1 query in getMyPartyTicketTicket: batch fetch tickets using selectAllOpenTickets(fofoIds) instead of loop |
|
| 35570 |
30 d 6 h |
amit |
/trunk/ |
Ticket system improvements: Fix N+1 query in getActivity, add input validation in createPosition, optimize getManagerTickets
- DocumentRepository: Add selectByIds for batch fetching documents
- CsController.getActivity: Replace N+1 document fetch with batch query, remove incorrect persist during GET
- CsController.createPosition: Add validation for authUserId, categoryId, regionId, and fofoIds before creating position
- CsController.getManagerTickets: Fix duplicate activity query, fetch only required AuthUsers instead of all users |
|
| 35569 |
30 d 6 h |
amit |
/trunk/profitmandi-fofo/src/main/ |
CRM-only external communication + performance & security improvements
Feature:
- Restrict external communication (COMMUNICATION_OUT) to CRM team only (category_id=9)
- Non-CRM users can only send internal communications
- Hide internal/external checkbox for non-CRM users in UI
Performance:
- Eliminate duplicate AuthUser fetch in getTicket() - reuse variable
- Eliminate duplicate activity query (selectAll called twice)
- Fetch only needed AuthUsers instead of all users for activity display
- Same optimizations applied to getMyPartyTicketTicket()
Security:
- Add escapeHtml() function to prevent XSS in activity messages
- Applied to all user-generated content display
UX:
- Add loading spinner while fetching activities
Code Quality:
- Add ActivityType constants for consistent usage
- Add toBool() helper for cleaner boolean checks
- Refactored loadActivities() for better readability |
|
| 35395 |
63 d 1 h |
amit |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
Fixed performance |
|
| 34913 |
174 d 1 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
show all parties ticket to abm |
|
| 34908 |
174 d 15 h |
ranu |
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/ |
abm allowed for csv upload |
|
| 33864 |
495 d 15 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
created by showed in tickets |
|
| 33778 |
518 d 14 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
created by showed on manager tickets |
|
| 33244 |
668 d 13 h |
ranu |
/trunk/ |
add signature added profitmandi exception |
|
| 33081 |
708 d 14 h |
ranu |
/trunk/profitmandi-fofo/src/main/ |
ticket category internal and external |
|