Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· SecurityService
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileExtension} - Update all URL generation to use hash instead of ID - Add backward compatibility: generate hash for old avatars without hash - Update photo upload, Avatar Creator creation, update, and delete operations - Prevents enumeration attacks by making file names unpredictable
· kamo-shared-library
Adaugă câmp Hash fișier la entitatea Avatar pentru stocarea securizată a fișierelor
- Adăugaţi coloana de fişierHash pentru a stoca SHA-256 hash de ID avatar - Hash este folosit pentru numele de fișier MinIO pentru a preveni atacurile de enumerare - Format: {hash}
· kamo-internal
Reconstruieşte Avatar UI - modern, interactiv, lustruit. Platforma returnează URL-urile direct
· SecurityService
Rebuild avatar system - backend generates presigned URLs directly like backgrounds
· kamo-internal
Adaugă acreditări MinIO la configurarea k8s
· kamo-internal
Generează URL-uri presemnate în Next.js utilizând MinIO SDK cu domeniul tematic
· kamo-shared-library
Adaugă metoda PresignedUrlWithEndpoint pentru URL-urile presemnate ale obiectivului personalizat
· kamo-internal
Adaugă creație Avatar Creator avatar, management de fundal cu reordonare și suport complet pentru biblioteca avatar/background
· SecurityService
Add avatar and background management endpoints
· kamo-shared-library
Adaugă clase AvatarFoto şi AvatarAvatar Creator, reface structura moştenirii Avatar
· SecurityService
Organize MinIO storage with folder structure and add Avatar Creator SVG support
- Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avatars * members/backgrounds/ for background images - Added SVG file generation and storage for Avatar Creator avatars - Avatar Creator avatar creation/update now accepts SVG string and saves to MinIO - All presigned URL generation updated to use new folder paths - SVG files are saved when Avatar Creator avatars are created or updated
· SecurityService
Add avatar, background, and member profile management endpoints
- Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Extended MemberController with GET/PUT endpoints for member profile data - All endpoints support MinIO uploads to 'internal' bucket with presigned URL generation - Avatar endpoints support photo uploads and Avatar Creator avatar creation - Background endpoints support member-specific backgrounds - Member profile endpoints support updating avatar selection from user's collection
· kamo-shared-library
Adaugă repertorii Avatar și UserBackground și suport URL presemnat
- Adăugat AvatarRepository cu metode de a găsi avatare de către utilizator - Adăugat UserBackgroundRepository cu metode pentru a găsi fundaluri de către utilizator/membru - Adăugați metode PresignedUrl la MiniOStorageService pentru generarea URL-urilor de acces temporar - URL-uri presemnate implicit la 7 zile de expirare, timp de expirare configurabil
· kamo-shared-library
Adaugă UserFoto și UserBackground entități cu relații utilizator/membru
- Create UserPhoto entity pentru stocarea fotografiilor de utilizator și de profil ale membrilor - Create UserBackground entity pentru stocarea imaginilor de fundal ale utilizatorului și ale membrilor - Ambele entităţi sprijină asociaţiile la nivel de utilizator (membru=null) şi membru (membru setat) - UserFoto include campul isSet pentru a indica ce fotografie este activa in prezent - UserBackground include sortId field pentru comandarea mai multor fundaluri - Ambele entităţi folosesc EmbRecordState deturnabile pentru urmărirea creaţiei, actualizărilor şi stării active - Adăugat indexuri de baze de date adecvate pentru optimizarea performanţelor
· kamo-internal
Adăugați componenta comună a avatarului/rescrierilor de fond la nivelul membrilor
- Creat componenta MemberHeader cu imagini de fundal şi afişaj avatar - Opţiuni de suprascriere la nivel de membru adăugate pentru avatar şi fundal (utilizaţi utilizator implicit vs specific membrilor) - Profil actualizatTab pentru a utiliza componenta comună MemberHeader - Termene de membru ActualizatePermisiiTab pentru utilizarea componentei comune MemberHeader - Antetul apare acum atât pe profil cât și tab-uri de acces - Adaugă comutatoare pentru "Use implicit Utilizator Avatar" și "Folosește fundalul implicit al utilizatorului" - Suportă URL-ul personalizat al imaginii de fundal atunci când nu folosește fundalul tematic implicit
· kamo-marketing
Adaugă suport tactil pentru codor magnetic pentru dispozitive mobile
· kamo-internal
Schimbă grila în aranjament AutoHeight pentru a arăta toate înregistrările fără bara de defilare
- Set domLayout pentru a AutoHeight astfel încât grila se extinde pentru a se potrivi toate rândurile - Eliminați deversarea: ascunse din cutii container grilă - Elimina inaltime: 100% constrangere din cutia de invelitoare - Grilă arată acum toate înregistrările de pe pagina curentă fără bara de defilare verticală
· kamo-internal
Înlocuiește coloana de adrese cu coloanele de stat și de stradă
- Elimină coloana de adrese și adresaRenderer - Adăugaţi coloana de stat după Contact (arată subdiviziune/cod de stat) - Add Street column after State (shows 'street, town' format) - Inlocuiti adresaFilterValue cu statFilterValue si streetFilterValue - Adăugați filtru de dropdown stat cu toate statele SUA - Adăugați câmpul filtru text Street - Actualizarea logicii de filtrare pentru coloanele State and Street - Eliminați filtrarea adresei din filtratoarele resetate
· kamo-internal
Actualizează lățimea coloanei la valorile specificate
- Modificați lățimea coloanei de identificare a plumbului de la 300px la 245px - Coloana de contact rămâne flexă: 1 pentru a prelua lățimea rămasă - Modificați lățimea coloanei de stare de la 200px la 65px - Modificarea sub Statusului latimea coloanei de la 200px la 120px - Schimbă lățimea coloanei agentului de la 150px la 120px - Actualizarea lățimilor corespunzătoare de câmp filtru pentru a se potrivi coloane - Adăugați constrângeri explicite minWidth și maxWidth atunci când este necesar
· kamo-internal
Actualizează ID-urile de plumb simulate la alfanumeric aleatoriu și setează coloana de adrese la 170px
- Adăugați funcția de generareRandomLeadId pentru a crea șiruri alfanumerice aleatorii de lungime 13 - Modificarea ID-urilor de plumb de la numere succesive la alfanumerice aleatorii (de exemplu, '34FDK69HWGPPK) - Actualizare latimea coloanei adresei de la 250px la 170px cu min/max explicit - Actualizare lățimea recipientului filtru adresa pentru a se potrivi 170px
· kamo-internal
Actualizează lățimea coloanei și înlocuiește butoanele de acțiune
- Modificarea lățimii coloanei de la 155px la 170px (create și alocate) - Actualizare containere de câmp filtru data pentru a se potrivi lățimea 170px - Înlocuiţi butoanele 'Export Selected', 'Share' şi 'Delete Selected' cu: - "Reasign Selected ({amount selected} " cu People icon - "Schimbarea stării selectate ({suma selectată} ") " cu pictograma SwapHoriz - Importă oameni și icoane SwapHoriz din Material-UI - Butoni arată dinamic numărul selectat în etichete
· kamo-internal
Adăugați partea de jos a frontierei gri subțire la file secundare
- Adăugaţi borduraBottom: "1px solid rgba (0, 0, 0, 0, 0, 0,12) " la recipientul filelor de stare - Potriviri cu stilul gasit pe /lides/view/ page - Creează separare vizuală între file și conținut de mai jos
· kamo-internal
Adăugați fundaluri gri la câmpurile de filtrare rămase și alinierea la partea de jos
- Schimbarea alinierii rândului filtrului de la centru la flex-end (aliniare inferioară) - Adăugați fundal gri (#f8fafc) la toate containerele de câmp de filtrare rămase - Adăugați raza de frontieră și padding pentru a potrivi styling filtru data - Câmpurile de filtrare regulate se aliniază la partea de jos, înălțimea de potrivire a câmpului de date de jos - Câmpurile date rămân mai înalte cu dispunere stivuite - Toate câmpurile de filtrare au acum tratament de fond gri consistent
· kamo-internal
Câmpuri de filtrare Stack data vertical cu fond gri izolat
- Modificarea campurilor de filtrare data de la plan orizontal la vertical (flexDirecția: coloană) - Adăugați fundal gri (#f8fafc) numai până în prezent cutii de filtrare, nu întregul rând filtru - Setati latimea explicita de 220px pentru campurile de filtrare - Eliminați fundal gri din recipientul principal cu filtru - Adăugaţi raza de frontieră până în prezent cutii de filtrare pentru o mai bună separare vizuală
· kamo-internal
Îmbunătățește aranjamentul UI și crește datele machete
- Face textul mai mic pentru câmpurile de filtrare data (fontSize: 0.75rem pentru intrare, 0.7rem pentru etichete) - Mutați Căutare rapidă la aceeași linie ca filele de stare, aliniate la dreapta - Creșteți conduce de la 50 la 250 - Elimină coloana acțiunilor din grilă - Curățarea aspectului prin eliminarea secțiunii duplicat bara de căutare
· kamo-internal
Adaugă componente filtru interval de date pentru coloanele create și alocate
- Adăugați variabile de stare pentru filtrele de interval de date create și alocate (datele de început/sfârșit) - Creați componente filtru interval de date cu câmpurile Data de pornire și data de sfârșit - Adăugați componente filtru interval de dată la rând filtru personalizat pentru coloane create și alocate - Actualizare logica RowDate filtrate pentru a filtra după intervale de date - Câmpurile de date goale nu înseamnă nicio restricție (toate datele pentru acest scop) - Actualizează funcția de resetareFilters pentru a șterge filtrele de interval de date - Filtrele de date suportă intervale parţiale (doar pornire, doar capăt sau ambele)
· kamo-internal
Faceți clic pe link-uri și adăugați dublu clic pentru a deschide plumb
- Actualizare ContactRenderer pentru a afișa primul și ultimul nume așa cum a subliniat link-uri clickable - Adăugați peClick handler pentru a contacta numele care deschide plumbul prin intermediul ViewLead sau navighează la /leads/view/:id - Adăugaţi pe RowDoubleClicked handler la AgGridReact pentru a deschide plumb atunci când rândul este dublu click - Numele de contact au acum culoarea primară, subliniază, și efectul hover - Dublu click oriunde pe un rând deschide plumbul
· kamo-internal
Adaugă pictograme la filtrul de dropdown substatus și actualizează contractele trimise
- Actualizarea "contractelor semnate" la "contracte trimise" pentru a se potrivi cu Java enum - Schimbare pictogramă pentru contractele trimise din atribuire pentru a trimite pictograma - Adăugați pictograme la sub-status dropdown elemente de meniu filtru - Importă pictogramă Trimite din Material-UI - Iconițe afișate lângă fiecare sub-status opțiune în filtrul de dropdown
· kamo-internal
Adaugă pictograme unice pentru fiecare sub-status cu culori de stare părinte
- Adăugați pictograme unice și relevante pentru fiecare substatus (de exemplu, PersoanăAdăugați pentru plumb nou, Mesaj pentru mesajul stâng) - Pictograme mentine culoarea statusului parintelui (verde pentru proaspat, albastru pentru Reckoning, portocaliu pentru Ferma, rosu pentru Grim, gri pentru Void) - Importa icoane suplimentare Material-UI pentru sub-statusuri - Actualizare a obține SubStatusIcon pentru a cartografia fiecare sub-status la pictograma sa unică - Fresh: PersonAdd, Message, Event, Program, PlayArrow, Descriere, ShoppingCart, Plata - Reckoning: Sync, Atribuire, Atribuire TurnedIn, Build, LocalShipping - Ferma: LocalFlorist, ThumbDown, TelephoneDisabled, Business, AtaşatMoney, AccesibilityNew, Block - Grim: Print, SignalWifiOff, PersonOff, Warning, DoNotDistrub, Restore FromTrash - Void: știință, ContentCopy
· kamo-internal
Adaugă icoane în substatus coloană potrivire starea părintelui culori
- Adăugaţi funcţia de ajutor SubStatusIcon pentru a determina pictograma bazată pe starea părintelui - Pictogramele sub-status folosesc aceleasi icoane si culori ca si starea lor de parinte - Substaturi proaspete: verde NewReleases pictogramă - Sub-statusuri Reckoning: pictograma albastru Gavel - Substaturi agricole: pictograma agriculturii portocalii - Sub-statusuri Grim: pictogramă corb roșu - Sub-statusuri Voide: gri Anulează pictograma

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit