feat: final system synchronization, notification system completion, and UI/UX enhancements#292
feat: final system synchronization, notification system completion, and UI/UX enhancements#292Riomalos-ZyrrahFeil merged 46 commits intomainfrom
Conversation
…debounce, and RxJS refactor
…g new report model field
…g notifications as read
…ing for photo uploads
…ages in detail modal
…ges in claim form modal
feat(frontend-filter): optimize location filter with search caching, debounce, and RxJS refactor
feat(frontend-notification): implement management features and enhance UX
feat: automate linked item unarchiving and hide unnecessary buttons
|
|
||
| return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status)); | ||
| } | ||
| return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status)); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.
|
|
||
| return ResponseEntity.ok(paginatedResponse); | ||
| } | ||
| private final CopyOnWriteArrayList<SseEmitter> emitters = new CopyOnWriteArrayList<>(); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 89). Please break this line.
| User authenticatedUser = (User) authentication.getPrincipal(); | ||
| int userId = authenticatedUser.getUserId(); | ||
|
|
||
| Map<String, Object> paginatedResponse = service.listByUserId(userId, page, size, status); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 93). Please break this line.
| .collect(Collectors.toList())); | ||
| } | ||
|
|
||
| User reporter = userRepository.findById(report.getUserId()).orElse(null); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 81). Please break this line.
| @Query("UPDATE Match m SET m.status = :status WHERE m.matchId = :id") | ||
| int updateMatchStatus(@Param("id") int id, @Param("status") String status); | ||
|
|
||
| @Query("SELECT m FROM Match m WHERE m.lostReportId = :reportId OR m.foundReportId = :reportId") |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 97). Please break this line.
| this.patchFormForExistingClaim(claim); | ||
| return foundReport ? this.userService | ||
| .getUserById(foundReport.user_id) : of(null); | ||
| return foundReport ? this.userService.getUserById(foundReport.user_id) : of(null); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.
| } | ||
|
|
||
| // Connects to your Spring Boot image controller | ||
| const secureBaseUrl = environment.apiUrl.replace('http://', 'https://').replace(/\/$/, ''); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.
| </div> | ||
|
|
||
| <div class="reminder-box"> | ||
| <p><strong>Note:</strong> You may be asked to provide additional proof of ownership.</p> |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.
| return locations | ||
| .filter(option => option.toLowerCase().includes(filterValue)) | ||
| .slice(0, 5); | ||
| switchMap(([value, locations]: [string | null, string[]]): Observable<string[]> => { |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.
| if (this.unreadCount() === 0) return; | ||
|
|
||
| const previousCount = this.unreadCount(); | ||
| const previousStatus = this.notifications.map(n => ({ id: n.notif_id, status: n.status })); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.
fix: remove duplicate function
|
|
||
| return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status)); | ||
| } | ||
| return ResponseEntity.ok(Map.of("success", true, "message", "Match status updated to " + status)); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.
|
|
||
| return ResponseEntity.ok(paginatedResponse); | ||
| } | ||
| private final CopyOnWriteArrayList<SseEmitter> emitters = new CopyOnWriteArrayList<>(); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 89). Please break this line.
| User authenticatedUser = (User) authentication.getPrincipal(); | ||
| int userId = authenticatedUser.getUserId(); | ||
|
|
||
| Map<String, Object> paginatedResponse = service.listByUserId(userId, page, size, status); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 93). Please break this line.
| .collect(Collectors.toList())); | ||
| } | ||
|
|
||
| User reporter = userRepository.findById(report.getUserId()).orElse(null); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 81). Please break this line.
| @Query("UPDATE Match m SET m.status = :status WHERE m.matchId = :id") | ||
| int updateMatchStatus(@Param("id") int id, @Param("status") String status); | ||
|
|
||
| @Query("SELECT m FROM Match m WHERE m.lostReportId = :reportId OR m.foundReportId = :reportId") |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 97). Please break this line.
| this.patchFormForExistingClaim(claim); | ||
| return foundReport ? this.userService | ||
| .getUserById(foundReport.user_id) : of(null); | ||
| return foundReport ? this.userService.getUserById(foundReport.user_id) : of(null); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.
| } | ||
|
|
||
| // Connects to your Spring Boot image controller | ||
| const secureBaseUrl = environment.apiUrl.replace('http://', 'https://').replace(/\/$/, ''); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.
| </div> | ||
|
|
||
| <div class="reminder-box"> | ||
| <p><strong>Note:</strong> You may be asked to provide additional proof of ownership.</p> |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 102). Please break this line.
| return locations | ||
| .filter(option => option.toLowerCase().includes(filterValue)) | ||
| .slice(0, 5); | ||
| switchMap(([value, locations]: [string | null, string[]]): Observable<string[]> => { |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 92). Please break this line.
| if (this.unreadCount() === 0) return; | ||
|
|
||
| const previousCount = this.unreadCount(); | ||
| const previousStatus = this.notifications.map(n => ({ id: n.notif_id, status: n.status })); |
There was a problem hiding this comment.
📏 Style Violation: Line exceeds 80 characters
(Current: 95). Please break this line.
The primary focus of this update is the completion of the automated notification system, the finalization of the item-matching workflow, and a total polish of the user interface to ensure the app is stable and easy to use.
Status: System Core Finalized & Optimized.
Co-authored-by: Riomalos-ZyrrahFeil your-email@example.com
Co-authored-by: siervo-jallaine jallaine-email@example.com
Co-authored-by: durante-stephanie stephanie-email@example.com
Co-authored-by: florido-maydelyn maydelyn-email@example.com