Mergi la conținut
KAMOUniverse

Jurnal de schimbări

Ce e nou.

Fiecare îmbunătățire a platformei, pe măsură ce se livrează.

  1. · kamo-internal

    Cardul de pe ghilimelele de răspuns, istoriile manuale, evenimentele de bilete și autorii de bug-uri

    Ultimele patru suprafeţe care au numit un membru fără nimic de deschis, acum că MediaService trimite ID-urile (fa25989): - Răspunde citate: numele autorului citat deschide cardul, doar pe hover (citarea este saltul). Luate de la propriul membru al parintelui incarcat id-ul @kamo/chat-core's citez nu are nici un act de identitate la coleg chat-uri; într-un bilet de pe regula o față de balon urmează (partea proprie a privitorului, odată ce părțile sunt cunoscut, niciodată cuvintele unui vizitator); într-un inbox social numai pentru reprezentanţii organizaţiei. Exec2Exec Rămâne simplu: cross-org. - Hold'em history mână: jucătorul care a acționat (membru). - Evenimente de bilete: numele actorului este tăiat din propoziţia evenimentului (în jurul Numelui Membru) şi se deschide cardul lor atunci când biletul spune că sunt de partea privitorului (actorCard, isOwnSide). Global Bug bord trece nici o regulă, astfel încât evenimentele sale rămâne simplu. - Autori de bug-uri: doar numele unui coleg își deschide cartea de vizită (membruOrgId === org cititorului); Un membru al altei organizaţii, sau unul reţinut, rămâne un nume.

  2. · kamo-internal

    Afișează URL- ul apelare apelare înainte de a exista acreditări

    Generează un telefon-server UUID atunci când doarCall este selectat și arată Webhook URL imediat. Același ID este trimis pe crearea astfel încât URL-ul membru lipit în JustCall se potrivește serverului Kamo Registrele.

  3. · VOIPService

    Pre-asignează doarCall telefon server id pentru URL apelback

    Formularul de telefon nou generează un UUID înainte de a crea astfel încât membrul poate lipi URL-ul de rechemare webhook în apelul JustCall în timp ce solicita acreditări API. Creare acceptă că ID pentru JUST CALL; configurarea returnează URL-ul chiar și atunci când Rândul nu există încă.

  4. · VOIPService

    Servește URL- ul apelului telefonic pentru configurarea serverului telefonic

    Adaugă GET /api/voip/setup astfel încât setările UI să poată arăta exact URL- ul pentru webhook per-intentance fără codarea dură a gazdei de implementare.

  5. · kamo-internal

    Afișează URL- ul de apelare TjustCall pe noul telefon

    Suprafață URL-ul de apel per-intentanță pe apel nou-telefon și imagini de ansamblu tab-uri astfel încât membrii să știe ce să dea doarCall atunci când configurarea API şi webhooks. URL- ul este preluat de pe server, afișat cu un copiați butonul după creare și explicat pe formular înainte de telefon serverul ID există.

  6. · kamo-marketing

    Utilizați logo-ul complet PNG care plutește peste banner-ul previzualizare.

    Se înlocuieşte semnul SVG cu kamocrm-logo-full-v4, astfel încât semnul se extinde deasupra benzii roşii şi sub bara de nav.

  7. · kamo-internal

    Cartea de pe istoricul de livrare a lui "cine"

    EmailService trimite acum membrul din spatele fiecărei schimbări în istoricul opţional al unei adrese (actorMemberId, text). Pe Setări → Email → Deliverability numele unui coleg de acolo deschide lor carte de membru, așa cum face deja pe istoricul fila Opt Out lui. Destinatarul, sistemul şi Colegul registrul nu a putut menţine cuvintele şi o intrare fără un act de identitate citeşte exact ca înainte.

  8. · kamo-internal

    Cardul de pe pseudonimele de e-mail și accesul prin e-mail

    E-mailService trimite acum ID-urile membrilor pe pseudonime și acces partajat-box ca text. Ca numere JSON Acestea au fost rotunjite trecut 2^53, astfel încât aceste file se potrivesc cu nimeni pe listă și a imprimat numărul, și Revocarea accesului cuiva a trimis identitatea rotunjită, care nu a scos nimic. Alias "Atribuit" este acum numele membrului cu cardul lor. Cipurile de acces ale unei căsuţe poştale sunt transportate numai pe plan, deoarece fiecare cip este un buton (se șterge). Fisele de membru ale filei Mailboxes și un Atribuitul cutiei poştale personale a citit deja ID-uri EmailService trimite ca text (membru, membru desemnat Regulamentul (CE) nr. Aşa că cărţile lor erau deja exacte.

  9. · MediaService

    Citări, istorii de mână, evenimente de bilete și fire de bug trimite ID-ul un card de membru are nevoie

    Patru suprafeţe au arătat un membru după nume fără acte de identitate, aşa că cardul de membru al consolei nu a avut nimic de-a face cu asta. Deschide. Fiecare trimite acum ID-ul ca TEXT lângă numele pe care îl trimite deja (un ID de 19 cifre citit ca număr JSON este rotunjit în a altcuiva), și numai în cazul în care acest nume ajunge deja apelantului. - Răspunde citate: wireFields adaugă părinteSenderMemberId lângă părinteSenderName. Cuvintele unui vizitator de chat web sunt stocate sub membru al sistemului orga lui, astfel încât părintele unui vizitator nu poartă nici unul istoria citită la fel, indiferent dacă vizitatorul a dat sau nu un nume. Un fir de sistem-bug reţine cu numele, împotriva organizaţiei părinţilor. Rândurile Exec2Exec o poartă şi ea; consola le ţine simple. - Hold'em: fiecare linie mână-istorie (ActionView) poartă membruId, citește pe același rând mână-loc ca Numele, deci cei doi nu pot numi oameni diferiţi. - Bilete de sprijin: fiecare eveniment de sistem stochează actorulMemberId lângă actorName. Un eveniment care-şi dă numele Actorul (înmânarea AI citește "Asistent AI," stocat sub membrul sistemului) scade ID-ul stocat. - Microfoane de sistem: fiecare rând de filet poartă membruOrgId lângă membruId, reținut cu ea. Consiliul este global, iar orga este modul în care consola spune un coleg de la un membru al altei organizații. Teste: ChatReplyPreviewWireFieldsTest, SuportSystemEvenimentActorTest (nou); SystemBugThreadRedactionTest (+4), HoldemtableViewTest (+1). Fiecare nu reușește cu schimbarea sa returnat. Apartament complet 1005/1005 verde; curat originea/mainul a fost 994/994.

  10. · EmailService

    Istoria livrabilitatii numeste membrul din spatele fiecarei schimbari

    Setări → E-mail → Deliverability arată o adresă opt-out istorie cu care a făcut fiecare schimbare, dar HistoryView a trimis doar numele actorului, astfel încât pagina nu a putut deschide cardul de membru. Fiecare intrare acum poartă actorulMemberId alături de actor Nume: actorul registrului member id ca text, exact (un INT8 runde ca un număr JSON). Vizibilitatea este neschimbată: aceeași MANAGE EMAIL OPT OUTS apelanții văd deja că numele de membru aici, și ID-ul lor pe istoria fila Opt Out lui. DeliverabilityHistoryActorTest drive-uri GET /adresă și scrie răspunsul cu ObjectMapper aplicației: schimbarea unui membru poartă ID-ul ca un șir JSON, destinatarul nu poartă nici unul. Eșuează fără schimbare.

  11. · kamo-internal

    Cardul de pe lista de opt-out "ultima schimbat de"

    EmailService trimite acum membrul în spatele ultimei modificări a fiecărei adrese (ultimulActorMemberId, text). ă lista taie numele lor din "ultima schimbat de" teză (în jurul Numelui Membru) astfel încât să deschidă lor carte de membru Fără Id linia citește exact ca înainte.

  12. · EmailService

    Un rând opt-out poartă membrul în spatele ultimei schimbări

    Lista de opt-out numit care a făcut ultima schimbare a fiecărei adrese (ultimulActorName) dar nu cine sunt ei, așa că pagina setărilor nu a putut deschide cardul de membru. Fiecare rând poartă acum ultimulActorMemberId alături Numele "Citeşte de la ************* ca text, exact (o rundă INT8 ca JSON numărul). Înregistrările istorice deja purtau actorulMemberId.

  13. · kamo-internal

    Cardul de pe oameni serverele numesc acum

    Trimite datele serviciilor acum: - Istoricul documentelor (modificarile si descarcarile lui DocManager, istoricul materialelor de marketing): membrul după nume (membru) și ID-ul exact, în cazul în care rândurile au imprimat un număr rotunjit ca "Membru: 1170943544097472500." - Acţiuni (ShareDocumentDialog acţiuni existente, sertarul de materiale): faţa unui membru destinatar şi numele deschide-le cardul (primitorulmembruId). Sertarul citește câmpurile serverul nu a trimis (MemberName, isAlowEdit, expirăOn) Expirare arătat; ImgShareRecord descrie acum ceea ce ShareToMap scrie de fapt. - Cariere: "Ultima mutare" in sertarul de aplicatii (statusChangedById), managerul de angajare pe consiliul de membru (angajareaManagerId). - Rândul principal al contului (membru primar, pe care serverul îl trimite acum). - Linia de acoperire a unui loc de grup îl numeşte pe managerul său (managerMemberId). Fiecare câmp este opţional: absent, numele rămâne simplu exact ca înainte.

  14. · BillingService

    Acoperirea unui scaun de grup poartă identitatea membrului acestuia

    GET /api/billing/self/coverage named the Billing Group's manager (managerName) but not who they sunt, astfel încât pagina de plan a membrului nu a putut deschide cardul de membru al managerului. Acum poartă ManagerMemberId with the name, as text .

  15. · kamo-internal

    Cardul de pe admin, conduce și setări valori istorie, rezervări, cutii poștale, jurnale de audit, eroul de profil

    Fiecare membru rămas aceste ecrane arată deschide cartea de membru. Id-urile sunt corzile de date poartă, fiecare verificat pe originea/mainul serverului. - Istorie (EntityHistoryPanel; istorie de plumb și cont): un delegat modificat, membru primar sau added/recent member is their name with the card, on the stored Value, when the record or its Lista de actori le poate numi; titlul nativ brut este scăzut peste ea. Numele numai note rămân text. - Fețe în afara numelor securitizate, numai hover: membri ai contului, administratori de platforme, lead-lock carte de contact. Gestionați antetul drepturilor: MembruAvatar (46px, inel păstrat) și nume. Titlul Dev Machine. - Rezervări: "Repartised from" / "Filed by" ************* explicaţia tip instrument păstrat pe cuvintele; "Cerut de" în dialogurile de aprobare, prelungire și negare și subtitrare realocată (subtitrarea shell-ului de dialog este un nod acum); actor istoric (actorMemberId). - Reţeaua de plumb Coloana Agent: lista trimite ID-ul atribuit numai ca agentAsignate (LeadListDTO), astfel cardul nu s-a deschis niciodată acolo; acum îl foloseşte. - Vedere de plumb: cipul panel-lock (membru titularId); agent de acceptare reasign fierbinte (membru eveniment). - Opţiuni: setări actor istoric şi liniile "By" ale panoului principal (actorMemberId). - Căsuţe poştale: cipuri ale membrilor întreprinderii (membreId), asignat cutia poştală personală (membru desemnat). - Profil: Manager de lucru (manager Id, doar hover: un clic încă deschide culegător); numele eroului și fotografie pe dosarul altcuiva (membrul traseului). - Planuri si facturare: licente, membrii abonamentului, administratori de cont (membri); locuri cumparate pentru o altă organizaţie rămâne text. - Audit: membru log de acces org (numai pe hover; rândul deschide intrarea), actor de audit PHI (rânduri de personal Stay ids). Consolă ipotecară: asignat de sarcini, de stabilire a prețurilor, administrator de guvernanță. Stânga simplă: culegătoare și ecouri ale culegătoare (reatribuirea bulk, nou-atribuit de plumb, scindări de comision, primare agent, imita, comanda expert, atribui-a-licență, simulator politică); nume în interiorul butoanelor care să transporte vârfuri de instrumente (buton de rezervare); nemembri (selector de conturi, informații și destinatari de acțiuni; contacte, conturi de utilizator platforma, agenti AI, nume de agenti tastati, organizatii); propriul vizualizator înregistrare (erou, cip tapet, galerie avatar); confirmări și toasturi. golurile de date: managerul de acoperire a scaunului ************* nu trimite niciun ID); cont imagine de ansamblu membru primar (getClientDetail trimite membru primarId și membri[], pagina citește membru primar și spectacole --); istoric de livrare (IstoryView, nici un actr id); lista de opt-out (OptOutRow, numai nume); pseudonime de e-mail și acces în comun (entități, membru lung JSON) numere); voip proprietarMemberId (OrgPhoneNumberController, un brut Long; deja cu fir pe numere). Teste: membruSentince, cuRequestor, valori istorice, panou de plecare, actor de istorie opt-out, Actor de reţea PHI.

  16. · kamo-internal

    Cardul de pe plăcile de acasă, HR, KB, documente și e-semn

    Cei doi proprietari: Leaderboard Realizare și Afiliate Widgets Tablou de bord a avut cardul pe Numai 20px faţă. MemberFace (BoardChrome) ia acum numele rândului ca fiind copilul său, astfel încât fața și numele sunt un declanșator pe fiecare rând, linia proprie a privitorului inclus (membruId, un Java String pe ambele plăci). Declanşatorul îi îmbrăţişează pe cei doi, aşa că golul înainte ca scorul să nu deschidă nimic. Numele consiliului de realizări tip instrument (nivel de rang, număr de realizare) acum se plimbă pe puncte; placa de afiliere "numele · locul de muncă title" s-a dus, pentru că cartea se îndreaptă cu ambele (acelaşi oficial-alt-catalog titlul). Un fost membru rămâne fără card. - Arcade HIGH SCORES (AchievementBoardPanel): vârful de instrument la rând acoperit cardul; se plimbă pe Scorul acum. Tag-ul de trei litere și numele sunt un declanșator, "YOU" inclus. Acest lucru scade, de asemenea, Punctul negru subliniază umbra de text a cabinetului pictat sub fiecare nume în repaus. - PersonCell: vârful de unealtă pentru membri a stat în interiorul trăgaciului și a acoperit cardul ori de câte ori cardul deschis deasupra rândului. Eliminat; ID-ul este încă ceea ce fiecare apel trimite și ceea ce căutările se potrivesc. - HR Prezentare generală: cozile de atenţie (doar peste, rândurile sunt link-uri) şi matricea de conformitate. Insights training: atention (hover- only), stands, and the activity feed, take around {name} in propoziţia tradusă. HrSummaryDto şi HrAttendanceSummaryDto trimite membruId ca un String. - avanpremiere de formare si audienta legala - Nu. String) și statul de plată Rânduri de revizuire auto-meci (un cronologie-service Long, serializat ca text, releed verbatim). - Consolă de revizuire KB: "Înscrisă de {numele} pe {data} " tăiată în jurul numelui (membru submitator Id, String.valueOf in kbservice). - Solicitări de semnătură: expeditorul din linia "Trimisă de" a grilei (doar peste: rândul deschide sertarul) şi în cronologia sertarului (trimis de către membruId, String.valuanceOf in esigservice). - Partajare Binder: oamenii-cu-acces rânduri *************** ToStringSerializator). Stânga simplă: culegători şi selecţiile lor (MemberSearchDialog, ContSearchDialog, SignerCard's membru ales, cipuri de înscriere și formare oameni, membru de urmărire-cod, declanșator picurare sumar, disponibilitatea "editare" legendă; solicitanți (nu membri, pe scurt); semnatari; înscriși la picurare, autori sociali și .ics organizatori și participanți (fără identitate membru); toasturi și dialog linii subiect. Diferențe de date: listele de acțiuni ale documentului (beneficiar Numai numele), istoricul documentelor (membru număr JSON, nici un nume), KB versiunea istorie (Long editorMemberId, no editorName), carierele "ultima mutată de" (statusChangedByName only) și managerul de angajare al consiliului de carieră (închiriere Manager Numai numele). Teste: ambele placi, arcade, PersonCell, HR Prezentare generală, Training Insights, semnătura sertar și propoziția de revizuire KB. Fiecare eșuează împotriva componentei de origine/main.

  17. · kamo-internal

    Cardul pe chat, suport și ferestrele docului nume lângă fețe, și liniile care numesc oameni

    În cazul în care o față a deschis deja cartea de membru și numele de lângă ea nu a făcut, și pe liniile care nume de oameni. Fiecare ID este șirul de date deja transportă, verificat la server: MediaService rânduri de istorie și cadre live, ChatListRowDto, PrimitDto, SuportAgentMetricsDTO, SystemBugDTO; HoldemtableView. SeatView, ChessGameView and SecurityService's feed author all send ids as text. - transcrierea chat-ului: numele autorului mai sus de fiecare runda de mesaje (msg.memberId), in chat-uri cu doua persoane care nu poartă nici o faţă. Liniile de sistem "X adăugat / eliminat Y," "X stânga" (membru Id, tranzitMemberId) și deschiderea "creat cu" linie (membrurosterId) sunt tăiate în jurul sloturilor lor (noi aplicații/lib/sentinceSlots.ts, LeadsHistory s-a împărțit, a fost testat) astfel încât fiecare nume își deschide propriul card; fețele liniei de deschidere sunt MemberAvatar în sloturile MUI ale grupului, doar hover. - Indicator văzut: într-o conversație de trei sau mai multe, oamenii care au văzut ultimul mesaj sunt se confruntă cu eticheta (cinci, apoi +N), fiecare deschizând cartea. Ei au existat doar în interiorul vârful de unelte al etichetei, care este tras deasupra cardului; vârful de unelte păstrează numele și orele. Nu există chipuri între Doi oameni, regula bulelor. - Rândul listei de chat-uri: un titlu de chat fără nume este numele fiecărui membru (și al unui grup, nu numai un one-to-one), hover only; the preview's author (lastMessage.memberId) on chat rinds when they are unul dintre membrii rândului. Cuvintele unui contact social sunt stocate sub proprietar, deci nici un alt fel. - Bilete si ferestre sociale: numele expeditorului deasupra unei bule, in termenii pe care fata il foloseste deja (Doar partea proprie a TicketChat; SocialChat niciodată contactul). - Rândul Interacțiuni Center: Mai multe sfaturi de instrumente așezat pe propriul declanșator card, peste card. Eliminat; "Mai mult" rămâne ca numele cititorului de ecran al butonului. Avatarul desenat manual este MembruAvatar (38px, Inel și grirea inactivă păstrate). - Softphone CRM autor activitate recentă (post.author.id); suport agent de analiză (agentId). - Linie compactă Hold'em: numele jucătorului (sezut.membreId), pluteşte numai în interiorul butonului puck; numele doar vârful de instrument eliminat, cardul oferă numele complet. - Șah: discul și numele adversarului (opponentMemberId) la toate cele trei dimensiuni ale scaunului, niciodată cititorului Locul sau calculatorul. Discul îşi păstrează culoarea laterală, aşa că rămâne desenul scaunului. - Cardul de sistem Bugs și sertarul: numele reporterului (reporterId), numai atunci când reporterulOrgId este organizaţia proprie a cititorului (reporterCardId, testat): consiliul este al fiecărei organizaţii. Stânga simplă: culegători (dialog ad-membri, switcher cutie poștală, muta-la-folder, lista compozitorului din listă, panoul de invitare Hold'em, confirmările meniului de jocuri; oameni care nu sunt membri (adresă-book contactele, numerele SMS, partidele de call-history; corespondenţii prin poştă îşi păstrează propria carte de vizită); altele organizații (Exec2Exec, o parte îndepărtată a biletului și solicitant, nota de disponibilitate agent); propria faţă a telespectatorului (legătura de profil NavTop, compozitorul poştal); cod mort (clubul ChatArea şi OpenChatTabs nu au importatori); locuri un card nu poate trăi: HexHeadPopover (self the member's acţiuni, trase peste card), jetoane de reacţie (nume în interiorul unui toggle's tooltip), fereastra instrument bara de titlu (mânerul de tragere), linia de tastarea și bannerul rezultat Hold'em (ambele demontați sub carte în câteva secunde); frazele de stare șah (sezutul de lângă ele are cardul). Nr. de identificare în date: citate de răspuns (parentSender Numai numele), evenimentele sistemului de sprijin (numai ActorName); notificări (MemberNotification has no actor), Hold'em hand history (ActionView has no member Regulamentul (CE) nr. Rânduri de fir System Bugs (membruId, dar nici o organizație, pe o placă globală), mențiuni post.

  18. · kamo-internal

    Antetul cardului poartă tapetul pe care îl arată desktopul

    Trupa header arată acum wallpaper-ul desktop al membruului, prima lor fotografie pe aer, sau organizatiei atunci când aceasta este ceea ce desktop-ul lor joacă banda de culoare odată decodată. Un birou simplu păstrează banda; la fel face o fotografie care nu va Încărcaţi. SecurityService rezolva care (noul camp de tapet al cardului); setul organizatiei vine din UseOrgThemeImages, pe care fundalul consolei l-a umplut deja. Pictat de origine tematică (pagina img-src permite img-l), niciodată prin următoarea / imagine sau proxy imagine, care nu poate ajunge la o gazdă temă in-cluster .

  19. · SecurityService

    Cardul de membru poartă tapetul pe care îl arată desktopul

    GET /members / {id} / card câștigă "wallpaper" pentru antetul cardului, a rezolvat modul în care consola fundal și erou profil rezolva desktop unui membru: nici unul atunci când consola lor este setat la câmpie gradient; {url, ton} pentru primul lor tapet pe aer, în ordinea lor; {org: adevărat, ton} atunci când ei joacă organizaţia (clientul are deja cele Tonul este lor propriul fundalTone, astfel încât fotografia este spălat ca pe desktop lor. MemberWallpaperRezolvator citește fundalModă/backgroundTone de la magazinul de ui-preferences și pe-aer ThemeBackground rânduri, și se adresează imaginea exact ca ThemeBackgroundController (GenerateFileHash este acum împărtășit mai degrabă decât copiat). O citire eșuată, sau o gazdă domeniul tematic nu poate să fie derivate din, costă tapetul și niciodată cardul.

  20. · kamo-internal

    Cardul pe coada lunga

    Fiecare membru acest nume ecran deschide acum cartea de membru. Ids sunt sforile datele deja transportate, cu excepția cazului în care se menționează. - PersonCell / PersonStack (consola de asistenţă HR, 7 importatori): faţa şi numele sunt unul declanşator pe membruId; Avatarul MUI privat este MembruAvatar (aceeași nuanță, aceeași dimensiune). Un nou recuzita este oprit în cazul în care celula se află în ceva clickable (Rânduri de constatare a conformității, lista cărți și rânduri de masă). Tooltip-ul de membru-ID rămâne; stick-ul de nume al stivei dă drumul la carte. - Atributii de pregatire si retele de pachete alocate legal: echipaMemberId; initialele de stare Discurile sunt MemberAvatar (28/30px) - Probleme legate de rularea salariilor și linia de activitate a HR: MemberName on memberId. - KbPerson (4 importatori): MembruAvatar în interiorul cardului pe ************* vârful său de instrument "name" este ceea ce spune acum cartea, și s-ar fi așezat pe partea de sus a acesteia. Doar hover în interiorul pin clickable, atenție, review-quee și carduri stabilite. - KB articol byline: autorMemberId, care este un număr JSON, astfel încât un ID de 19 cifre ajunge rotunjit și cardul nu poate găsi autorul până când Kbservice nu-l trimite ca pe un șir de caractere. Traducerea: este tăiat în cazul în care localul pune numele, astfel încât numai numele este de declanșare. - Boards: MemberFace is MemberAvatar (20px, podium ring keen) inside the card ( Arcade HIGH SCORES name cell is a MemberName Un membru consiliul nu poate numi ("un fost membru") nu primește nici o carte; numele widget-urilor sunt neatinse. - Webinars: prezentatorul (alocat PresenterId) în Webinarii mei și vrăjitorul program, hover-numai în rândurile lor clickable; participanţi membri în Webinars My (vizitatorii nu au nici un ID şi rămâne simplu); prezentatorul paginii de plumb prin ************* acum tastat, cu un test pentru cardul cu şi fără ID. - Observaţii de creştere (membru;revizuit de cătremembruId pe întregul termen "revizuit de") şi coloana de membru a codurilor de urmărire (membreId, doar hover: rândul deschide sertarul). - Hold'em: numele altor jucători de pe placa de scaun și în rândurile de lobby (membreId, hover-numai în interiorul butonului mesei). Stânga simplă: acțiunile existente ale catalogului de acțiuni și acțiunile MaterialDetailDrawer (docsservice's lista de imagini trimite destinatar Numele și nici un membru ID), raportul ProgramDialog (un proprietar Numai numele, pe care nici un apelant nu trece), Hold'em HandHistory (acţiunile poartă un număr de scaun, nu un id membru). Pickers lăsat în pace: E-sign MemberSearchDialog, share dialog's search and destinatary chipss, Șah Selector adversarul NewGamePanel lui, legal lista filtru feroviar. Măsurată în Chrome în raport cu originea/componentele principale: PersonCell, PersonStack, KbPerson și Feţele de bord îşi păstrează dimensiunile cutiilor, centrul şi poziţia punctului fix.

  21. · kamo-internal

    Cardul pe chat şi clubul

    Suprafețe (fiecare id este șirul de date deja transportă): - ConversațieRow: fiecare față într-un rând de chat avatar stiva (membri[].memberId), și numele un un chat fără nume este intitulat cu, deschide cardul doar pe hover; un clic încă deschide conversaţie. Fețele sunt MemberAvatar în cadrul slotului MUI Avatar al grupului, a cărui clasă inel, suprapunere și "+N" atârnă off. O presă din interiorul cardului portalat nu mai intră în Button Base a lui Row şi face valuri. Fața solicitantului de sprijin este MembruAvatar fără card: Pe biroul platformei sunt membrii altei organizaţii. - ChatMembersPopover: fata si numele fiecarui membru sunt un MembruHoverCard (membruId); fata este Membru Avatar. Controalele de îndepărtare rămân în afara ei. - MesajAvatar ia un membru opţionalId: dat unul, faţa deschide cartea pe hover (nici o filă stop, nici un titlu nativ sub card). Passed by MessageBubble and MessageList (msg.memberId, numai chat-uri pentru membri), SocialChat (senderId, never the contact) și TicketChat (sendId, on on din partea telespectatorului, odată ce părțile sunt cunoscute, niciodată un vizitator web-chat: un bilet de două părți sunt de obicei două organizații). - PostCard și comentariuThread: numele autorului este MemberName și fața autorului este MembruAvatar cu cardul pe hover (author.id). Numele și fața PostCard păstrează click-ul pe pagina de membru. Stânga simplă: - SeenIndicator: chipurile văzute există doar în interiorul unui Tooltip MUI (z 1500, deasupra numărului 1305), astfel încât o carte deschisă de la unul ar fi trasă sub vârful uneltei. Are nevoie de feţele din vârful sculei. - Exec2ExecChat: cross-organization, iar cardul refuză membrii altor organizații. - Titlul unui chat de grup (numele alăturate sunt un șir) și prefixul expeditorului. Notă: o carte deschisă într-o fereastră de instrumente (chat, bilete și ferestre sociale, comutatorul de chat coloana) citește prezența în afara PrezentaProvider, care ToolDock este un frate al, așa că spune Offline. Teste: ConversationRow (carte de pe faţă şi titlu, clicul încă deschide conversație, o presă în carte nu unge rândul), MesajAvatar (carte numai cu un membru id), TicketChat (numai partea proprie, niciodată vizitator).

  22. · kamo-internal

    Cardul de pe lead-uri

    Fiecare loc unde ecranele de plumb numesc un membru (personal) deschide acum cartea de vizită a acelui membru. Ids sunt șir membru ID-uri datele deja transportă. - Vedere de plumb: agentul cardului de atribuire (pagina atribuitaLeadMemberId). AgentSelector și UI-ul cu plumb sunt neatinse. - Grila de plumb: coloana agent (alocatTeamMember.id), plan numai: este o celulă de rețea. - Softphone CRM: tigla "Atribuit" (atribuitTeamMember.id). - Cronologie de comunicare, membru de partea noastră a fiecărei intrări (intrare.membruId): titlul unei note și avatar (MemberChip înlocuiește MUI Avatar, același 20px), un titlu de chat de ieșire, membru într-un apel și un subtitlu de text outbound, expeditorul unui e-mail outbound. Titlurile sunt propoziții traduse, astfel încât întregul titlu este declanșatorul. Liderul de pe partea cealaltă rămâne simplu: Rândurile de chat de intrare nu poartă id membru, și pe un membru de e-mail intrareId este cel care a primit, nu S-a arătat expeditorul. Shell comuta evenimente pointer off peste coloana titlu astfel încât rândul este unul faceți clic pe țintă; numele optează înapoi, așa cum face LeadRefChip. Un apel sau e-mail care se extinde păstrează sale nume hover-numai și coajă trece clic pe nume, astfel încât rândul încă se extinde. - Lista biletelor de suport: agentul desemnat (alocatAgentId), doar hover: celula atribuie sau deschide Biletul. Asignează/Reasignează vârful de unelte al acestuia se mișcă pe lângă nume astfel încât să nu mai acopere cardul. - Istoricul conduce: fiecare membru într-o linie (membru, membru, membru, membru). O linie poate numi două membri în interiorul unei propoziții traduse, astfel încât este formatată cu un marker în locul fiecărui membru și Split on the markers: the words stay the locale's own, in its order, and no message changed. - Gestionarea creditelor: link-ul de profil al coloanei membre (membruId), hover numai astfel încât link-ul să-și păstreze click. - Oportunităţi rezervate: agentul principal (agentul primarMEMBRU). Un membru eliminat (fără nume) rămâne "Agent necunoscut." - Fila istorica principala: coloana "Schimbata de" (actor.memberId). Acesta este desenat de comun EnvironmentHistoryPanel, aşa că şi istoricul contului primeşte cardul. Stânga simplă: - Solicitant de bilete: formularul de contact public îşi depune biletele sub membrul sistemului de org fără isPublicChat, astfel încât cerereaId nu este fiabil persoana care cere. TicketHeader numește numai agentul în cadrul MemberPickerDialog. - Oportunităţi rezervate "Repartised from" / "Filed by" subtitrări şi ManagementReservationDialog's Subtitrare: numele din interiorul propozițiilor care poartă propriul lor tip de instrument sau cap un dialog. Agentul primar și rândurile separate de comision (ManageReservationDialog, CommissionSplitEditor) sunt culegătoare. - Valori vechi/noi ale istoricului de plumb pentru câmpul atribuit: readValue returnează textul. - Sarcinul principal: un şir gratuit fără acte.

  23. · kamo-internal

    Cardul de pe setările și listele de admin membri, facturare, administratori platformă, telefon, comisioane

    Cardul de membru pe setările și listele admin care arată oamenii. Fiecare nume deschide cardul pe hover, focus or tap; un nume care face deja ceva pe clic păstrează acel clic. - Membrii echipei (TeamMemberManager): numele de pe filele membrilor şi membrilor echipei (membru de grup) Id, avatarUrl pictat în card). Fila de clienti este falsa date, nu membri: la stânga simplu. - Membrii unui cont (cont/view/[id]/membri): fiecare nume (membruId), membri ai clientului inclusiv. Avatarul desenat manual este acum membruAvatar la 32px. - Proprietarii de taxe: numele fiecărui candidat (ID, care este ID-ul membru pe ambele liste se citește). - Grupuri de facturare: managerul de la "Paid by" (managerMemberId) și fiecare nume de listă (membru). Lista de grupuri "Plătit de <manager>" linie (managerMemberId): numele stă într-o traducere propoziţie fără etichetă pe care s-o agăţi, deci toată fraza e declanşatorul. - Administratori de platforme (AdministratorCard): numele (membruId); avatarul de mână este acum Membru Avatar la 48px. Un administrator dintr-o altă organizaţie citeşte "Nu în organizaţia ta" Doar dacă telespectatorul nu e Dumnezeu. - Setări Webinar, tabelul de disponibilitate de tip: fiecare prezentator (membru echipaId, ID membru). - Telefon: un număr de proprietar pe numere (membru proprietar Id; "a lungul" este de declanșare, și fapt ia o nodul acum); membrul desemnat pe ambele tabele de extensie (membru desemnat), pe plan orizontal și focus numai, astfel încât link-ul la setările lor de telefon păstrează clic; fiecare membru pe dispozitive mobile (membru). - Procesor al Comisiei: membru pe fiecare linie dintr-un lot trimis (membruId; o linie anulată a lovit prin, care linia unui părinte nu mai ajunge) și pe fiecare retragere (membru). Stânga simplă: alegătorii (MemberPickerDialog, linia compune Autocomplete, licențiatul cutii de verificare, butonul pick-a-manager); nume în interiorul propozițiilor de confirmare, vârfuri de instrumente și toasturi; Utilizatori PBX și apelanții de mesagerie vocală, care nu poartă nici un membru ID; și RelationManager, care listează organizaţii, nu oameni. PlatformAdminsTab își atrage oamenii doar prin AdministratorCard.

  24. · kamo-internal

    Cartea de vizită pe calendar, autori de documente și note de cont

    - Calendar: randurile de oaspeti rezolvate ale evenimentului deschid cardul de membru (previzualizarea publicului membruId, continuat pe GuestRow). O adresă tip mână nu are ID și rămâne text; o adresă tipată care aparține unui membru a fost deja promovat la un rând de membri. - Documente: "Uploaded by" in the document grill (DocsService createdByMemberId; the Shared tab folosește sharedBy) și versiunea cronologie byline (fiecare versiune a creatByMemberId, original Upload lui din istorie) deschide cardul de încărcare pe hover. Amândoi stau înăuntru ceva. Clickable, astfel încât cardul nu ia clic. - Note de cont: notele recente de prezentare si numele fila Note autorului (SecurityService acum trimite autor Nume alături de autorMemberId - Cardul păstrează evenimentele care încep ceva (click, apăsați, concentrați-vă, chei) de la barbotare prin portalul în rândul care deține numele, astfel apăsând o acțiune nu mai valuri sau selectați Acel rând. Capătul unei prese încă ajunge la fereastră, unde se termină ramer-motion în timp ce Tap.

  25. · DocsService

    Id membru uploader călătorește cu lista și istoria

    Lista de documente (/imagine/listă) și istoria unui document purta numai numele uploaderului, așa că kamo-internal ar putea arăta cine a încărcat un fișier, dar nu deschide cardul de membru. Ambele acum transporta createByMemberId, as text Autorul fiecărei versiuni Ale lor le-au purtat deja.

  26. · kamo-internal

    Cardul de membru

    O carte pentru fiecare nume de membru în kamo-intern, poarta de regula serverului SecurityService acum serveste (MemberInteractionPoliticy, securityservice 5063ea): chat, apel, întâlni acum, e-mail în față; text, program și un joc (chess / Texas Hold'em) în spatele More; profilul lor client-side membru, contul lor în subsol. O acțiune refuzată este trasă cu o blocare și spune de ce pe hover (politica de chat în propriile cuvinte ale orgului); o acțiune spectatorul nu poate lua este nu sunt desenate deloc. Piesele (app/componente/membri/card, app/lib/memberCard): -MemberName / MemberChip / MemberHoverCard UtilizaţiHoverCard (în intenţie, câte o carte la un moment dat, ancorare, Escape întoarce focus, atingeţi uşor), care câştiguri - MemberCard titlu · departament, ora locală și cât de departe sau în spatele tău, copii-la-verifica detalii. - MemberActionBar - MembruAvatar - acţiuni.ts Hold'em ca "play," nu "create," fiecare prins de un test. - cache.ts citiți prin utilizareSyncExternalStore astfel încât nici o stare nu este stabilită în interiorul unui efect. - MemberCardDialoguri Deci, "Schediule" se deschide gata pentru a alege un timp. Layer 1305: peste dialoguri MUI, astfel încât un nume într-un dialog devine încă cardul său; sub sfaturi de instrumente MUI. Cele trei copii ale acestor acțiuni au dispărut: - Rânduri de interacţiune Center trage banda comună de la interacţiune pe fiecare rând de listă; " Cartea completa. Profilul copiat manual al NavTopPanel şi porţile poştale sunt îndepărtate. - Hex-cap popover chat urmează decizia cardului pentru o discuție unu-la-unu. Contul său "View" a fost oferit tuturor și a condus la o pagină cei mai mulți membri sunt săriți de la; acum apare doar atunci când telespectatorul poate deschide acel profil şi merge la el. - MemberContactCard (lider lock holder/list) desenează piesele comune în loc de propria Call și Mesaj. Tabelul Webinar Presenters pune cardul pe fiecare prezentator și un avertisment chihlimbar "Fără timp de rezervare" în afară de orice prezentator un vizitator nu poate rezerva (mediaservice a9f20cc), cu un tip de instrument spunând ce să facă. Spec și plan: Nu-ţi face griji. - Nu. Restul de rollout urmează. Teste: memberCard lib (parse, cache, motive, ora locală, fiecare executor), MemberCard made (hover, tastatură, ascuns vs dimmed, More, footer, click conserved, no id, not found), prezentator goluri, poarta profil hex-cap. TSC curat; eslint nu adaugă nimic la numerele existente ale fișierelor atinse; Paznicii trec; 632 de teste peste directoarele atinse verzi.

  27. · MediaService

    Masa prezentatorilor poate vedea ce prezentatori nimeni nu poate rezerva

    GET *************** numai tipul organizației (orice altceva este "negăsit") areBookableTime, pentru avertisment lângă numele lor pe masa prezentatorilor. areBookableTime (membru, tip) este extras din WebinarsAsteptareaMyAvailability, care acum o numește, așa tabelul administratorului, markerul calendarului propriu al prezentatorului și pagina de rezervare toate trec prin bookableStarts și nu poate fi de acord dacă cineva poate fi rezervat. Teste: tabelul marchează un prezentator ale cărui ore au trecut și nu unul cu ore înainte (real aritmetica disponibilității), un alt tip de org nu se găsește, forma sârmă, și 403 fără Manage support. Apartament complet 994994.

  28. · SecurityService

    O regulă pentru ce poate face un membru cu altul, servit pe membru și pe rând

    Aceleaşi cinci acţiuni kamo-internal (orientarea Centrului de Interacţiuni, chat-ul hex-head popover, cardul de contact Lead-lock), fiecare decide în browser de la propria lectură a drepturilor. Nici doi de acord, nimeni nu a putut vedea chat politică sau orice despre persoana de la celălalt capăt, și rezultatul a fost butoane care nu a reușit pe clic. MembruInteracţiunePolitica (membri/card) este acum singura regulă, pură şi testată în tabel. Pe acțiune răspunde HIDDEN atunci când privitorul nu poate face acest lucru (fără scaun, org nu are dreptul la aplicație) sau REFUZAT cu o motiv de cod atunci când este această persoană în mod (politica de chat-ul INACTIVE, NO EMAIL, NO NUMBER, NO MOBIL, NO PLAYER): chat-ul nu este restricţionat; tinta este un coleg activ; politica de chat vă permite să-l porniţi (overRIDE CHAT POLICY pass) call seat canCall; orice extensie sau număr din fișier Scaun text canTrimiteTextMessages; un mobil care ia texte e-mail Email intitulat, ACCESS MAIL, scaun canSendEmail; o adresă la dosar Întâlnire/reprogramare ŞEDINŢĂ cu titlul, scaun poateMeet, START METING; un coleg activ profilează cele şase drepturi ale paginii sau ale zeului pentru un membru din partea clientului, AW ACCOUNTS ("Cont vizual") joc ambele părți pot juca: dreptul + PLAY CHESS/PLAY HOLDEM pe fiecare parte (proprietarul se află în) Datele de contact ale unui client sunt doar pentru un vizualizator care poate citi conturi. Aplicaţiile sunt Proiecţie ENTITLED (computeEffecticFeatures), aceeaşi cu cea a organizaţiei browser-ului.isEmail citește. MembruInteracţiuneServicii soluţionează vizualizator o dată drepturile, proprietarul și decide pentru un membru sau un întreg listă (drepturi joc citit o dată pe joc). GET *************** identitatea (numele, avatarul, titlul, departamentul, tipul; fus orar, disponibilitate), valorile de contact pe care politica le permite telespectatorului (ale unui coleg sunt cele registrul serveşte deja fiecărui membru), contul pentru un membru din partea clientului şi decizia. Un alt membru al orgii este 404, ca unul care nu există; ID-ul este un șir de cale. Vine sesiunea. Prin CallerSessionRezolvator, astfel încât ratchet nepăzit-endpoint recunoaște. /by-department rows win nu pot oferi niciodată lucruri diferite. LeadWebinarEntry câștigă prezenterMemberId, astfel încât pagina de plumb poate pune cardul pe numele prezentatorului. Teste: MemberInteractionPoliticyTest (17), MemberCardEndpointTest (forma de sârmă, contact reţinut, 404 între orgi, 400/401), MemberRosterInteractionTest. Cele cinci esecuri complete *********************************************sunt la fel cinci care eşuează la origine/staniu fără această schimbare.

  29. · kamo-internal

    Un semn roşu pe calendar când nimeni nu poate rezerva un webinar cu tine

    Prezentatorul unui webinar ale cărui ore s-au scurs nu a fost spus. Pagina de rezervare oferă doar nu ori, și singura persoană care poate repara este singura persoană produsul nu a menționat-o. Pictograma calendarului poartă acum un semn roşu, clipind ori de câte ori MediaService spune cel puţin un webinar acest membru prezintă nu mai are timp de rezervare (mediaservice ddf8e20). Calendarul este unde Prezentatorul declară acele ore, deci acolo e locul ghiontului. Pe hover numele opțiunii proprii este înlocuit cu ceea ce este greșit, pe care Webinars sunt în așteptare, și ce să facă Accept-gate folosește, pentru că un punct singur nu spune cuiva ce să meargă și de a face. Se plimbă pe chat-ul existent STOMP client mai degrabă decât deschiderea unei conexiuni: un cadru fără conținut pe ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* Obiectivul final autentificat pentru răspunsul său propriu. Seminţele nu sunt o reducere a preţurilor, iar subiectul este nucleul NATS. cu nici un pârâu, astfel încât un cadru publicat în timp ce această filă a fost adormit este plecat și prim-plan re-citire este singurul lucru care poate prinde o fereastră care pur și simplu a expirat, deoarece nimic nu scrie atunci. Sesiuni Că prezent nimic nu subscrie la toate, care este aproape toate dintre ele. Membrul ID este cel STRING: rotunjirea unui unic rowid() prin intermediul accesoriului numeric ar aboneaza-te la subiectul unui coleg si fii refuzat de garda serverului, lasand un semn care nu merge niciodata Traieste cu nimic pe ecran pentru a explica. Răspunsul este ținut etichetat cu membrul a fost citit pentru, Deci un sudo sau un comutator de sesiune arată noul membru EMPY mai degrabă decât precedentul stat Teste: prezentatorAvailability.test.ts pins destinație, cadru predicate (niciodată aruncă, indiferent de ajunge), parser (un organism în care nu poate avea încredere lasă marca singur) și vârful instrument împotriva real Dicţionar; ***************** conduce utilizarea realăNavAdornments şi citeşte ceea ce Nav ar trage. Stringurile sunt deja pe dictionarul principal. (96b07f0), fără plural în ele. TSC curat, eslint curat pe fisierele atins, paznicii trec, 318 teste nav verde.

  30. · MediaService

    Spune-i unui prezentator, în direct, când nimeni nu poate rezerva un timp cu ei

    Un prezentator ale cărui ore declarate au expirat este singura stare din această caracteristică care nu a fost raportată: pagina de rezervare oferă pur și simplu nu ori, vizitatorul pleacă, și persoana care ar putea repara într-o minut nu aude despre asta. Demo-ul propriului produs KamoCRM este în exact această stare astăzi Ultima fereastră a prezentatorului a fost 2026-09-03. GET *************** raspunsuri, doar pentru apelant: cate tipuri active şi care dintre ei nu mai are timp de rezervă. Pe tip, pentru că fiecare are propria sa lungime, avans minim și orizont; per prezentator, deoarece propriile lor ferestre minus propriile lor Rezervările şi calendarele sunt lucrurile pe care le pot schimba. Are aceeaşi aritmetică cu rezervarea. pagina nu gol pagina s-ar umple, sau stau întuneric în timp ce pagina nu are nimic de oferit. Trăiește peste priza existentă: Nu-ţi face griji. publică un cadru fără conținut pe **************** după comiterea a ceva care schimbă răspunsul fereastra de disponibilitate adăugată, modificată sau ștearsă; se adaugă sau se elimină din prezentatoarele unui tip; a sesiune rezervată (semnată sau de pe site-ul de marketing) sau anulată. Nu-ţi face griji. Pune-l pe *************** geamănul ştafetei de antrenament, şi StompDestination Authz păzește acea destinație per membru pe SUBSCRIBE și refuză Clientul SENDS: Numele unui membru al prezentatorului şi nepăzit ar lăsa pe oricine de pe orbită să urmărească un nume. Jurnalul colegului e plin şi gol. Rama nu poartă nici un titlu, nici ore și nici un conte recitește obiectivul în cadrul propriei sesiuni. Ceea ce nici un cadru poate anunța este o fereastră pur și simplu EXPIRING, pentru că nu se întâmplă nici un scris. Browser-ul re-citirea în prim plan este singurul lucru care ridică markerul atunci, motiv pentru care nu este opţional. Teste: PrezentatorAvailabilityGapTest conduce regula asupra unui membru realAvailability Serviciul (ore în trecut, ore înainte, ore consumate de propriile rezervări, o fereastră prea scurtă pentru a găzdui, un tip de două, nu prezintă nimic); *************** se fixează forma firului și forma 401; ************** ** BAR încuie harta subiect→destinaţie, paznicul şi sarcină utilă fără conținut. Apartament complet 991991.

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