Consultar todos os avatares de usuário para obter a entidade real em vez de proxy
- Get userId from avatar, então query findByUserId (retorna entidades reais) - Encontrar avatar correspondente da lista e verificar a instância de - Isto evita ...
Usar o Hibernate LazyInitializer para obter a classe de entidade real do proxy
- Acesse HibernateProxy's LazyInitializer para obter classe persistente - Verifique se a classe persistente é AvatarFoto ou AvatarAvatar Creator - Inicialização...
Suprimir os avisos variáveis não utilizados na detecção do tipo avatar
Usar elenco direto para determinar o tipo de avatar em vez de reflexão
- Tente elenco para AvatarFoto primeiro para forçar a inicialização proxy - Acesse getFileExtension() diretamente após o elenco - Recuar para AvatarAvatar Criad...
Melhorar a detecção do tipo de proxy capturando InvocationTargetException
- Lidar com ClassCastException ao invocar métodos no proxy para determinar o tipo real - Tente getFileExtension primeiro (foto), em seguida, getStyle (Avatar Cr...
Melhore o manuseio do proxy Hibernate para detecção do tipo avatar
- Pesquisa hierarquia de classe e interfaces para o método getFileExtension - Use a reflexão para detectar AvatarFoto vs AvatarAvatar Creator quando a instância...
Recarregar o avatar do repositório para resolver a instância de proxy do problema do Hibernate
- Entidades Avataras carregadas de relacionamentos podem ser proxies Hibernate que falham em verificações - Recarregar avatar do repositório para obter o tipo d...
Garantir que as iniciais SVG são sempre criadas quando o avatar está ausente no HexHeadGroup
- Adicionar error manuseando fallback para criar iniciais SVG se a busca do avatar falhar - Consolidar as iniciais lógica de criação SVG - Garantir que o avatar...
Atualizar a lista de avatares após configurar o avatar como ativo
- Depois de definir o avatar como ativo, atualize a lista completa de avatars para obter atualizados isActive flags - Procurar e definir o avatar ativo da lista...
Determine active avatar by checking user.getAvatar() instead of RecordState
- Backend now correctly marks which avatar is active by comparing to user.getAvatar() - This ensures the isActive flag in the API response reflects the actual a...
Carregar avatar ativo da lista de avatars na página Perfil
- Obter lista de avatars e encontrar o marcado como activo - Defina ActiveAvatar do objeto avatar completo na lista (tem todos os detalhes e URL) - Remover a cr...
Detect member avatar override on page load even if returned as 'avatar'
- Add logging to see what API returns on initial load - Check if member has avatarId/memberAvatarId set to detect member override - If avatar ID matches memberA...
Ensure avatarId is always sent when activeAvatar exists
- Use corrected useDefaultUserAvatar value directly in save logic - If activeAvatar exists, always send avatarId (member override) regardless of flag - Improved...
Preserve avatar URL when saving and add defensive check
- Preserve profilePicture from activeAvatar when updating profileData after save - Add warning if activeAvatar exists but useDefaultUserAvatar is incorrectly tr...
Preserve avatar state after save to prevent revert
- Fixed save logic to properly send avatarId when avatar is selected - Preserve current activeAvatar and useDefaultUserAvatar state before refresh - If refresh ...
Update avatar state after saving profile to prevent revert
- After saving profile, refresh and update activeAvatar state from API response - Update useDefaultUserAvatar flag to match saved state - Ensures avatar remains...
Prevent avatar from switching to empty avatar when selecting
- Immediately set selected avatar in UI for instant feedback - Only update with refreshed data if it has a URL and is the same avatar - Prevents overwriting sel...
Keep avatar manager dialog open and fix profile avatar display
- Removed handleClose() calls when selecting, creating, or uploading avatars - Dialog now stays open so users can continue selecting/managing avatars - After cr...
Ensure avatar URL is properly preserved and displayed from database
- Changed URL handling to preserve empty strings (use ?? instead of ||) - Updated MemberHeader props to prioritize profileData.profilePicture which contains the...
Ensure avatar is properly set from database on profile tab load
- Fixed URL handling to use original API response URL instead of potentially null transformed value - Added synchronization between activeAvatar and userAvatars...
Resolve avatar display and persistence issues in profile tab
- Fix initial avatar display to show correct primary avatar instead of default initials - Fix avatar selection from list to properly update member avatar and pe...
Correctly construct security provider logo URL using domain parsing
Correct Next.js 15 route handler params type and remove .js extension from dynamic imports
Use GitHub actions directly instead of code.forgejo.org to avoid 503 errors
- Changed actions/checkout@v4 to **************** - Changed docker/login-action@v3 to **************** - Changed docker/build-push-action@v5 to ****************...
Obter organização provedor de segurança diretamente por ID em vez de a partir de array de redes
- Criada nova rota API /api/security/org/[id] para proxy SecurityService organization by ID endpoint - Configurações atualizadasView para obter segurança proved...
Use o mesmo padrão de URL para o logotipo do provedor de segurança como o logotipo atual org
- Substituir a primeira pasta no caminho atual do URL do logotipo da org pelo domínio do provedor de segurança - Substituir pontos por traços no domínio do prov...
Simplifique a geração de URL do logotipo para coincidir com padrões de página de rede e ThemeLogo
- Para org atual (Membro & Permissões): Use getThemePath() diretamente como ThemeLogo faz - Para provedor de segurança (Perfil): Use getThemePathForDomain() com...
Improve logo display in tabs - use icon prop with Box wrapper and add fallback logic
- Switched back to using Tab icon prop with Box wrapper for better MUI compatibility - Added fallback to use domains[0] if domain field is not available - Added...
Fix logo display in tab labels - use img tag in label instead of icon prop
- Changed from using Tab icon prop to embedding logo directly in label using Box with img tag - Added console logging to debug logo fetching and URL generation ...
Increase kubectl rollout timeout from 300s to 900s
- Increased kubectl rollout status timeout to 900 seconds (15 minutes) for both k1m1 and k2m1 deployments - This matches the increased progressDeadlineSeconds o...
Increase deployment progressDeadlineSeconds from 60s to 600s
- Increased progressDeadlineSeconds to 600 seconds (10 minutes) to allow Next.js app sufficient time to build and start - Previous 60 second timeout was too sho...
Handle ISO date format and improve avatarId type parsing
- Added support for ISO date format (YYYY-MM-DD) in addition to M/d/yyyy - Improved avatarId parsing to handle Number types (Double, BigDecimal, etc.) from JSON...
Add better error handling and logging for user/member save operations
- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...
Improve avatarId parsing to handle string, integer, and long types
- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors
Improve error handling and logging for member profile updates
- Added detailed logging to API route for PUT requests - Improved error response handling to include actual error messages - Fixed avatarId type conversion (str...
Add detailed logging to updateMemberProfile for debugging
- Added logging at start of updateMemberProfile method - Added logging before and after saving user and member - Improved error response to include error detail...
Improve error handling and refresh profile data after save
- Added detailed error messages when profile save fails - Profile data is now refreshed from server after successful save - Better error logging for debugging
Add support for updating user name fields and dateOfBirth in member profile
- Added UserRepository to MemberController - Updated updateMemberProfile to handle namePrefix, nameFirst, nameMiddle, nameLast, nameSuffix, nameFirstAKA, nameLa...
Remove URL input for backgrounds, improve upload error handling, fix avatar persistence
- Removed URL input field for backgrounds - only uploads via popup are allowed - Improved error handling for background uploads with detailed error messages - F...
Resolve lint errors in ProfileTab and MemberHeader
- Added Button import to MemberHeader - Fixed newAvatar scope issue in handleUploadPhoto and handleCreateAvatar Creator - Stored avatarIdToRefresh in outer scop...
Refresh profile data after setting avatar and ensure proper activation
- handleSelectAvatar now sets avatar as active via API and refreshes profile data - handleUploadPhoto and handleCreateAvatar Creator now update member and refre...
Convert null to undefined for avatarSrc type compatibility
- fetchMemberAvatar returns string | null but avatarSrc expects string | undefined - Use nullish coalescing operator to convert null to undefined
Add .js extension to dynamic imports for node16 module resolution
- TypeScript with node16 moduleResolution requires explicit file extensions - Changed relative imports to include .js extension
Use relative paths for dynamic imports of avatarUtils
- Changed dynamic imports from @/app/lib/avatarUtils to relative paths - Fixes TypeScript module resolution error during build
Fix async/await syntax error in HexHeadGroup useEffect
- Wrapped Promise.all in async function to fix build error - useEffect callbacks cannot be async directly
Update avatarUtils to use URLs directly from member profile
- Backend now includes avatar URLs in member profile response - Removed unnecessary second API call to /api/security/avatars/{id} - More efficient and works cor...
Use correct bucket and object path structure for MinIO uploads
- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.