Add 3-letter day names to all date displays
- Main display: 'Mon 10/15/25 6:00PM' (was '10/15/25 6:00PM') - Your Time in tooltip: 'Monday, October 15, 2025' (full day name) - Other timezones: All include ...
Add full month name display under Your Time in tooltip
- Added full date with month name (e.g., 'October 15, 2025') - Positioned between compact time and timezone abbreviation - Slightly larger font size (0.75rem) f...
Use compact date format without leading zeros (m/d/yy h:mmAM/PM)
- Changed from 'Oct 15, 2025, 6:00 PM' to '10/15/25 6:00PM' - Removed leading zeros from single-digit months, days, and hours - Compact AM/PM without space (6:0...
Prevent cell width adjustment by using fixed 180px width
- Outer container now has fixed width: 180px - Removed minWidth in favor of fixed width - Inner flex container handles content layout - No more width adjustment...
Make timer update every second and add 'ago' suffix to elapsed time
- Timer now updates EVERY SECOND regardless of age (truly live) - calculateTimeAgo() uses currentTime state for real-time calculation - Added ' ago' suffix to a...
Make timer truly live with constant recalculation and stabilize hover area
- Timer now recalculates on every render (truly live, no lag) - State updates trigger re-renders at smart intervals (1s to 1hr) - Fixed glitchy hover by adding ...
Make elapsed timer truly live and add elegant hover transformation
- Timer now updates every second for recent timestamps (truly live) - Hover over date transforms it to elapsed time (1M 18S, 27D 4H, etc) - Smooth animated tran...
Add live animated elapsed time timer to DateTimeDisplay tooltip
- Real-time updating timer showing time elapsed since timestamp - Smart formatting based on scale (1M 18S, 27D 4H, 2M 7D, etc) - Updates every second for recent...
Apply sophisticated nav bar gradient styling to DateTimeDisplay
- Tooltip background uses same gradient as NavPri (primary color mix with black) - Header and footer use subtle primary color gradients - Hover effects with pri...
Store and retrieve timezone from localStorage instead of API calls
- Updated validate route to fetch timezone from Redis session data - Store timezone in localStorage during validation - DateTimeDisplay now reads from localStor...
Add sophisticated DateTimeDisplay component with timezone support and global time tooltip
- Created reusable DateTimeDisplay component - Displays dates in user's timezone from *** session - Beautiful glassmorphic tooltip showing 8 relevant global tim...
Add modern form validation to all three settings tabs
- Added inline validation with error states and helper text - Required field validation with minimum/maximum length checks - Real-time error clearing as user ty...
Complete Department and JobTitle managers with full rights management system
Fix invalid date time error in SecurityRoleManager with robust date handling
Fix date formatting in SecurityRoleManager to resolve type error
Fix date formatting in SecurityRoleManager and add date type debugging
Improve error handling in SecurityRoleManager to handle role rights fetch failures independently
Fix security roles page by passing *** token in custom header
Optimize build-and-deploy workflow for parallel deployments and performance
Switch to tween animation and reduce auto-close delay to 2 seconds
用加载屏幕替换校验页面调试 UI - 使用现有的加载WithOrg组件 - 在OTK验证期间显示优雅的加载动画 - 用自动重定向显示成功/错误消息 - 删除所有调试信息面板
添加 Redis 复制时滞重试逻辑 - OTK 和 *** 现在读取重试 5 次, 延迟2秒 - 处理主对奴隶复制延迟 - 防止错误会话 - 未发现错误
Simplify validate flow - Let new cookie overwrite old one - Remove unnecessary cookie clear logic - useUserInfo skips redirect on validate page
Implement Redis-based user-info with sliding expiration - Read user data directly from Redis instead of calling SecurityService - Implement sliding session expiration (reset TTL on each read) - Redirect to login site if session expired - Enhanced logging for debugging
Update logout flow to use direct Redis access
Logout Flow Changes: - /logout (page): DELETE Redis session via /api/logout, forward to login/logout - /api/logout: Direct Redis DELETE (no SecurityService call...
FORCE REBUILD: Add extensive logging to /api/validate (Direct Redis)
Critical Change: - This endpoint does NOT call SecurityService - It queries Redis DIRECTLY for OTK validation - Extensive logging added to trace every step New...
Make *** cookie client-accessible & validate OTK directly in Next.js
Major Simplifications: - *** cookie is now client-accessible (httpOnly: false) - Both Next.js and Java can read the cookie directly - Cookie expires in 30 minut...
Fix build error and change *** length to 128 chars
Build Fixes: - Escape apostrophe in validate page (') - Add searchParams dependency to useEffect *** Length Change: - Update expected *** length from 512 ...
Add comprehensive debugging UI to validate page
- Show component render count and validation attempt count - Display OTK information and length validation - Show retrieved *** ID (512 chars) when successful -...
Fix OTK validation duplicate calls issue
- Add useRef to track validation attempts - Prevent duplicate API calls (critical for one-time keys) - Change useEffect deps to empty array (run once on mount) ...
