Changelog
Cosa c'è di nuovo.
Ogni miglioramento alla piattaforma, come si spedisce.
· SecurityService
Dire quali locali ogni voce è realmente tradotto in
La sitemap del sito di marketing ora elenca ogni versione linguistica di ogni voce, e ogni pagina di entrata nomina gli altri come il suo hreflang alterna. A traduzione riga non è la prova di uno: TraduciServizio risponde direzioni esso non ha alcun fornitore per con la fonte inglese, quindi ogni fila ta, e la sw e th righe di voci vecchie, ripetere la parola titolo inglese per parola. Nome quelli punterebbero motori di ricerca a pagine che canoniche di nuovo in inglese. - No, no. restituisce, per voce, le località il cui titolo o descrizione differisce dall'inglese, rispetto al database in lotti di 1.000 ids. - /pubblico / sitemap trasporta `locali` per voce e prende ordine=più vecchio, così il I file di changelog della sitemap si riempiono e non cambiano mai. - /public/entry/{slug} porta `locales` e `translated` significa ora un reale traduzione piuttosto che una fila.
· kamo-internal
Void un'organizzazione da Piattaforma -> Configurazione -> Organizzazioni
La scheda Organizzazioni guadagna sub-tabs Active e Void, e di ogni organizzazione cassetto un modo per annullarlo — o, sulla scheda Void, per ripristinarlo. - Sottotitoli attivi / Void sopra la directory, contati dal server activeOrgs / voidedOrgs (che seguono la ricerca, qualsiasi scheda è aperta). La scheda vive nell'URL come orgStatus=void, come il resto della console vista; è un luogo, non un filtro, quindi Clear lo mantiene. - La sezione Void del cassetto (mai sulla piattaforma org) apre una conferma che incantesimi ciò che il vuoto fa: tutti dentro è firmato, lascia /network, sign-in e ogni lista, il suo creatore è trattato come mai avere creato, e nulla viene cancellato. - Un cassetto di org vuoto conduce con "Voided <date> by <operator>" e Ripristino; i controlli di prova e di prodotto della piattaforma sono spenti. - I rifiuti del server — la piattaforma org, l'org in cui siete firmati, dal vivo sotto-orgs, ancora in carica — sono mostrati nella finestra di dialogo, in parole. - E' una cosa da fare. (SecurityService applica MANAGE ORGANIZZAZIONI). backend: kamo-shared-library d2c09630, securityservice 6c8d789, billingservice 072ca5f, mediaservice db90b81; inglese in kamo-translation-dictionary deba6215.
· MediaService
Il gallo non nomina più un'organizzazione vuota
Un'organizzazione annullata dalla Piattaforma -> Configurazione -> Organizzazioni (orgs.is active = FALSE) non esiste da nessuna parte ma la scheda Void della console. trovareOwnedOrgsByOwnerIds — la copia propria del roster di "che org fa ciascuno proprio esecutivo", tenuto per l'org id accanto ad ogni titolo — ora porta lo stesso filtro live-org la ricerca condivisaOwnedTitlesByOwnerIds e findDistinctOwnerUserIds guadagnato in kamo-shared-library d2c09630. Pinned in Exec2ExecQueryParseTest, che lo analizza anche contro il modello dell'entità.
· BillingService
Schede attive e Void nella directory della piattaforma org
La scheda delle Organizzazioni della console ora si divide in sotto-tabs Active e Void. A organizzazione vuota è orgs.is active = FALSE (set by SecurityService's vuoto endpoint); la directory è l'unico posto che ancora ne elenca uno — nella scheda Void, così un operatore può trovare per ripristinare. - GET /api/billing/platform/orgs prende status=void; qualsiasi altra cosa, incluso nessun stato, elenca solo org dal vivo. Ogni chiamante più anziano — il mago del commercio ricerca target-org tra loro — chiede senza status, quindi nessuno di loro può essere mostra un'organizzazione che non esiste più. - Le righe portano voided, voidedAt, voidedByUserId e un vuoto idratatoByName (una ricerca in batch, solo quando la pagina ha righe vuote). - Aggregates seguire la scheda, e aggiungere activeOrgs / voidedOrgs, che ignorano il scheda (entrambi le schede hanno bisogno di entrambi i numeri) mentre onora ogni altro filtro. - I conti di Sub-org lasciano fuori i bambini vuoti. - L'istantanea di memorizzazione notturna e il report di storage della piattaforma saltano vuoto org; la storia è mantenuta e la gestione del gap dello scrittore cattura un org restaurato. Verificato le dichiarazioni generate in sola lettura contro il database live: Active 40 righe / conta 40 + 0, Void 0 righe.
· SecurityService
Void un'organizzazione, e non lasciare alcun modo di raggiungere uno vuoto
Piattaforma -> Configurazione -> Le organizzazioni possono ora annullare un'organizzazione. Il vuoto è orgs.is active = FALSE; questo commit aggiunge l'azione e fa ogni modo INTO un'organizzazione rifiuta uno vuoto. L'azione — POST******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** MANAGE ORGANIZZAZIONI (la scheda ha ragione): - OrgVoidService rifiuta, non cambia nulla: la piattaforma org, il org l'operatore è firmato, un org con sub-orgs dal vivo, e un org ancora essendo addebito (un abbonamento PAID live con un prezzo, mirandolo o pagato dal suo conti). Altrimenti imposta la bandiera, registra voided at / voided by user id, e revoca ogni sessione dei suoi membri. Ripristino cancella tutti e tre. Nulla viene cancellato; i membri e i dati ritornano come erano. - 200 con il nuovo stato, 404 sconosciuto, 409 con un motivo che la console traduce. I modi in cui: - KSessionService.createSession — la vita ogni *** è coniata attraverso — rifiuta un org vuoto tramite VoidedOrgGuard (non registrato PK letto, fallisce aperto), successivo al cancello del conto sintetico. - my-networks lascia vuoti org fuori: lo schermo di casa conta le sue righe èOwner decidere se un membro ha creato un org, quindi un membro il cui unico creato org è stato annullato è offerto il flusso create-your-first-org di nuovo. tutte le reti segue tramite il getAllOrganizations(). - enter-as e cross-org impersonation risposta 404, come per un org mancante. - Il sondaggio di sessione termina una sessione all'interno di un org vuoto (backstop per uno coniato prima che la bandiera atterrasse). - Scambio di dispositivi mobili, auto-login post-verificazione, la directory di rete ricerca e la casella di posta / email di lavoro-email sign-in lookups saltare vuoto org. - Contare la panoramica della piattaforma, spazzare lo storage e leggere il rapporto di impatto non aperto l'enumerazione dal vivo. Ho gia' fatto domanda al database dal vivo.
· kamo-shared-library
Un'organizzazione vuota è lasciata fuori da ogni elenco e la ricerca host
Gli operatori della piattaforma possono ora annullare un'organizzazione da Piattaforma -> Configurazione -> Organizzazioni. Il vuoto è org. is active = FALSE — il segnale di bandiera e l'host la risoluzione era già in fase di controllo — in modo da questo cambiamento di biblioteca rende gli elenchi che non ha mai controllato concorda: - findAllLive(): l'enumerazione org meno sintetico-di proprietà e vuoti org. Il punto di strozzatura dietro l'orco. elenco, tutte le reti e il numero di diagnostica, ora lo legge. findAllExcludingFakeOwned() rimane così i servizi costruiti prima di questo ancora compilare. - findAllByVerifiedDomain: il dominio di un org non si risolve più, quindi si ferma l'accettazione dei firmatari e delle registrazioni. - trovareOwnedTitlesByOwnerIds / findDistinctOwnerUserIds: the Exec2Exec roster no più a lungo nomi organizzazioni vuote come di chiunque. - Organization.voidedAt / voidedByUserId: who voided it and when, for the scheda Void della console. Mai serializzato. Colonne applicate al database live prima di questo impegno... - Organization.isVoided(): legge lo stato record, mai memorizzato due volte. - Il PATCH generale non accetta più il recordState: il vuoto e il ripristino sono i solo gli scrittori di is active, quindi le impostazioni salvano che riecheggia la riga non possono ripristinare tranquillamente un org vuoto.
· kamo-internal
I titoli epici nelle gocce del bar siedono su un piatto più scuro del marchio
Nome di un menu nella parte superiore e in ogni sezione intestata (Supporto on-line di Supporto), "Bugs & Miglioramenti", "Training"; Docs' "Create new") ora siedono su un piatto arrotondato dell'organizzazione primario, più scuro, in pieno bianco — quindi un titolo legge come un'etichetta sulle sue righe piuttosto che uno più riga per fare clic. Il punto forte va più leggero, i titoli vanno più scuri; i due non assomigliano mai. Il piatto è nero traslucido (TOPIC PLATE), che sul terreno è il terreno mescolato verso nero: stessa tonalità, qualunque sia il marchio. Un "primario fisso al N%" sarebbe uscito più leggero del sotto un menu all'estremità sinistra del bar, dove la rampa di cucitura parte dal mix 60% del bar. Misurato in un vero e proprio browser oltre 11 marche a entrambe le estremità della barra: ogni piatto è 0.73-0.80 del terra accanto a esso su ogni canale (nessuno spostamento di tonalità), bianco su di esso è 7,4:1 o meglio, e il glide mai atterra su un titolo. Una guardia in navTopMenuIsWhite.test.ts spilla entrambi i titoli al piatto.
· kamo-internal
Faccia sui messaggi solo in conversazioni di tre o più
Un volto accanto a ogni messaggio dice alla gente a parte, e tra due persone il lato un messaggio è già disegnato su che - così il volto dell'angolo ora appare solo quando tre o più persone sono nella conversazione (mostraFaces), e mai mentre il conte è sconosciuto, quindi una faccia non viene mai mostrata e poi tolta. - Chat: contato dal roster la finestra già detiene, che segue le persone unire e lasciare dal vivo; una chat di due persone non chiede nemmeno volti. - Sostegno, Social, Exec2Exec: il conteggio del server, ora sui volti (MediaService e722c90) - ogni persona una volta che tutti i posti che tengono, un contatti sociali inclusi. Nome/attribuzione insiemi e l'auricolare di fila che fare spazio per il viso applicare solo quando è lì. - SMS e AI Chat sono sempre due parti (un membro numero e un altro; il membro e l'assistente), quindi il loro codice facciale viene rimosso completamente - indietro a esattamente quello che erano - insieme all'usoFotografia e il glifo di MessageAvatar, che solo usavano.
· MediaService
La risposta dei volti dice quante persone sono nella conversazione
# GET ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ mette una faccia accanto a ogni messaggio solo quando tre o più persone sono in una conversazione, dal momento che tra due, il lato un messaggio è disegnato su già dice chi l'ha scritto. Contato dai sedili, non gli autori - qualcuno che ha scritto e lasciato mantiene un faccia su quello che hanno scritto senza essere nella conversazione; meno nessuno no più idoneo per una conversazione dal vivo (la regola del roster di chat, che mantiene sempre lo spettatore); una volta per PERSON, perché una persona può tenere diversi sedili (un cliente Exec2Exec è seduto da ogni organizzazione da cui hanno scritto); più il contatto di una conversazione sociale, che non ha alcuna fila membro affatto. Un web-chat La sede del visitatore è il membro SYSTEM dell'org, quindi conta una volta, come loro.
· kamo-marketing
Generare le mappe del sito per richiesta, e dare ogni cambiamento la propria pagina
/sitemap.xml era un file di metadati prerenderato al momento della costruzione, in un contenitore che non può raggiungere KBService o SecurityService, così ogni schieramento spedito sitemap senza articolo help-center in esso fino al primo aggiornamento ISR. E /api/sitemap ha mantenuto una seconda copia dell'elenco di pagina che si era allontanato da esso. - /sitemap.xml è un indice sitemap generato per richiesta. Elenca /sitemaps/pages.xml (pagine scritte a mano, pagine di raccolta, post del blog e ogni articolo della base di conoscenza, con hreflang) e /sitemaps/changelog/ (5.000 voci di changelog ciascuna). /api/sitemap e /api/sitemap/changelog/ sono i rendering JSON dello stesso modulo, app/lib/sitemap-source.ts. - L'elenco delle pagine scritte a mano vive una volta, in app/lib/sitemap-pages.ts, e guardia: sitemap non riesce la costruzione quando un percorso statico non è né elencato né escluso con un motivo. - /changelog si trova sul server: ?page=N, con ?project= e ?type= risposto da SecurityService, dove i vecchi filtri nascondono solo voci tra i 50 sullo schermo. Ogni pagina è la propria canonica; le viste filtrate sono Noindex, segui. - Ogni voce ha una propria pagina a /changelog/ <slug>, collegata alle voci da un lato. È canonico all'inglese dove il locale non ha traduzione ancora, e una vecchia ortografia del suo indirizzo 308s alla corrente Uno. La homepage striscia link a queste pagine. - Le statistiche e i filtri sono letti sul server. Il percorso /api/changelog/stats provenivano dall'aver servito il totale del contenitore di costruzione di 0.
· SecurityService
Dare ad ogni voce pubblica un indirizzo, e pagina l'elenco sul server
Il changelog pubblico ha servito voci senza identificatore, quindi il sito di marketing non potrebbe collegarsi a uno né elencarli in una mappa del sito. Ogni voce porta ora slug - il suo titolo inglese in forma URL, quindi dodici caratteri del suo commit - e: - E' una cosa da fare. restituisce una voce con le voci da un lato. È trovato solo dal prefisso hash, quindi un'entrata il cui il titolo è cambiato ancora si risolve al suo vecchio indirizzo, e il chiamante reindirizza a quello attuale. - GET /api/changelog/public/sitemap restituisce ogni voce slug, titolo e data in pezzi fino a 5.000, leggendo tre colonne per riga. - GET /api/changelog/public accetta filtri `project` e `type`, che possono solo restringere l'elenco pubblico e gli ordini su (dataCommessa, id): commit condividere un timestamp non scambiare più pagine tra due richieste. Una pagina è a 100 voci. Le query vivono in PublicChangelogService piuttosto che CommitLogRepository, quindi Nessuno di questo ha bisogno di un rilascio condiviso-librario.
· kamo-internal
Ogni messaggio indossa il volto dell'autore, nell'angolo della bolla
In ogni finestra di chat popup tool - Chat, Supporto, Exec2Exec, Social, SMS, AI Chat - ogni messaggio ora porta una foto 16x16 che sovrappone la bolla superiore sinistra angolo per un messaggio a sinistra e il suo angolo in alto a destra per uno a destra. Ogni messaggio, non solo il primo di una corsa: il vecchio volto della finestra di Chat intestazione linea è andato, e le linee di nome / contributo sono inset in modo che il volto non sieda mai sulla loro prima lettera. Iniziali solo quando la persona non ha foto. Il volto è a tre valori (MessageAvatar): un URL è una foto, provata come la sua variante sm e poi come la file full-size (le piccole varianti sono lato server opzionale; gli upload più vecchi mancano loro); null è iniziali; non definito - non noto ancora - è un disco vuoto, quindi qualcuno con una foto non lampeggia mai come iniziali mentre è guardato su. Da dove arrivano le foto. Le finestre leggevano solo lo spettatore directory membro (membri del team ACTIVE dell'org firmato), in modo semplice Membri, l'altro lato di un biglietto di supporto o una conversazione Exec2Exec, e chiunque avesse lasciato un gruppo è stato disegnato come iniziali con una foto sulla loro profilo. Ora un negozio per conversazione (app/lib/chat/sessionFaces.ts) legge Il nuovo GET di MediaService... - tutti sulla conversazione E chiunque ci abbia mai scritto, dal proprio profilo, su un host la console può caricare - attraverso un file di route del proprio (/api/media non è un prefisso prolungato). Una volta il primo messaggio di un nuovo arrivato ri-asks; qualcuno il server ancora non copre, o tutti mentre un vecchio MediaService non può rispondere, ritorna alla ricerca della directory le finestre utilizzate prima. Le righe che non devono mai indossare la faccia del membro che sono memorizzate sotto: - un visitatore web-chat (conservato sotto il membro SYSTEM di org, il proprietario) ottiene il iniziali del visitatore; - un contatto sociale (costruito sotto il proprietario della connessione) ottiene la foto loro il fornitore ha dato, attraverso il proxy immagine. SMS: i testi inviati sono propri dello spettatore (una conversazione appartiene a uno dei membri numero); quelli ricevuti indossano la foto del contatto dalla directory l'intestazione legge, le loro iniziali, o un segno di telefono per un numero nessuno viene salvato sotto. AI Chat: la foto del membro su quello che hanno chiesto; l'assistente, che non ha profilo, indossa la scintilla AI. Le righe negli elenchi 4px-packed senza linea di nome sopra ottengono 4px di headroom: misurato in Chrome reale, il volto altrimenti seduto 1-2px dal timestamp del prima.
· kamo-internal
La scheda Richieste di firma e il salvataggio di un collega nell'editor dei modelli
Richieste di firma, tra modelli e comuni nel Docs manager: ogni documentare i modelli della collezione inviati per la firma, in una griglia pagina sul server e diviso in tre secchi (non eseguiti, parzialmente eseguito, Fully Executed), ognuna mostra quanti sono nuovi a questo membro. La scheda mostra il totale che è nuovo. Guardare un secchio cancella il suo conto per questo membro solo, e la scheda si apre sul primo secchio che tiene qualcosa di nuovo. Colonne: il documento e chi l'ha inviato, i firmatari (un anello per segnalatore nel colore di dove si trovano), x di y firmato, stato, inviato, ultima attività e completamente giustiziato. Ogni riga può nudge tutti ancora in attesa, scaricare il documento eseguito, il certificato di completamento o entrambi come ZIP, e aperto la richiesta. Il cassetto della richiesta aggiunge un nudge per signer, cosa è successo quando, e ritirare la richiesta con un motivo. L'editor di modelli ora registra che ha un modello aperto (un battito cardiaco Per salvare o ripristinare un collega. quel file lo raggiunge, e dice chi ha fatto il cambiamento. Il suo argomento dal vivo costruito dal membro id come un numero JS, che gira oltre 2^53, così il non è mai arrivato. Ora usa la stringa id.
· ESigService
Richiesta di firma per il Docs manager, con nuovi conti per membro
Il responsabile Docs riceve una scheda Richieste di firma: ogni documento di una collezione modelli inviati per la firma, in tre secchi per firma (nobody, alcuni, o tutti hanno firmato), ciascuno con quanti sono nuovi a questo membro. /api/esig/requests elenca un secchio una pagina alla volta, ordinati e ricercati in il database. /conti dà il conteggio totale e nuovo di ogni secchio, e /seen riporta che un membro ha guardato un secchio. Ciò che ogni membro ha visto esign request views ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** da membro, collezione e secchio. Una richiesta è nuova in un secchio quando è entrato quel secchio dopo l'ultima volta che il membro ha guardato lì. Per richiesta: prenderlo, nudge i firmatari ancora in attesa (una re-invita con un linea di promemoria, al massimo una volta all'ora per signer), ritirare e scaricare il documento eseguito, il certificato di completamento, o entrambi come ZIP. La lettura ha bisogno di VIDEO DOCUMENTI; nuocere e ritirare i requisiti EDIT DOCUMENTS. A la richiesta è raggiungibile solo attraverso un modello in una collezione che il membro può vedi, alla loro autorizzazione.
· DocsService
Un salvataggio raggiunge ogni collega con il modello aperto
Un salvataggio del file di un modello ha detto solo il membro che l'ha salvato, quindi un collega con lo stesso modello aperto mantenuto posizionare i campi sulle pagine che il file aveva spostato da. L'editor di modelli ora dice quando ha un modello aperto: POST Non e' vero. ogni 30 secondi mentre è, DELETE quando chiude. OpenEditorRegistry mantiene che in Redis come un set ordinato per documento (member -> lapse time, 95 s), quindi un editor che è scomparso senza chiudere gocce da solo. Un salvataggio pubblica una cornice per membro con il modello aperto, ciascuno sul proprio argomento di quel membro, e dice chi ha fatto il cambiamento. L'orologio controlla che il membro può leggere il documento, il modo in cui ogni lettura fa. Un ripristino ora dice anche ai colleghi, con la versione di design che ha riportato indietro, così il loro editor ricarica i campi e le pagine.
· MediaService
Un volto per ogni messaggio in ogni finestra di chat
E' il momento giusto. risposte, per una conversazione, la foto disegnare accanto a ogni messaggio: tutti su di esso ora E tutti coloro che hanno scritto in esso (un gallo dimentica le persone che hanno lasciato; i loro messaggi non), ciascuno elencato in memberIds se hanno o meno una foto, così la console può dire "nessuna foto: iniziali" da "non chiesto ancora". Le foto sono Exec2ExecFaces.memberFotografie - la foto del profilo del membro, altrimenti la persona stessa - costruita sul vivo dello spettatore host tema, quello che la console img-src permette. Una conversazione sociale anche nomina il suo contatto (non un membro affatto) come `counterpart`, con il fornitore foto. Perché il server: l'unica fonte della console era il membro dello spettatore directory - membri del team ACTIVE dell'org sottoscritto - così semplici Membri, i tutto l'altro lato di un biglietto di supporto o una conversazione Exec2Exec, e chiunque che aveva lasciato un gruppo erano tutti disegnati come iniziali con una foto sul loro profilo. La ricerca per-membro potrebbe ricadere su rifiuti altri org. Chi può chiedere è chi può leggere la trascrizione (un membro sottoscritto, una sessione che esiste): un volto dice meno dei messaggi accanto a esso. Inoltre: la storia legge ora tags ciò che un contatto sociale ha scritto come SOCIAL VISITOR sotto il nome del contatto, come la cornice dal vivo ha sempre. Queste righe sono memorizzate sotto il membro del proprietario della connessione, quindi una conversazione ricaricata ha archiviato il parole del contatto sotto il nome del proprietario, dalla parte del proprietario quando il proprietario era lettura - e avrebbe messo la foto del proprietario accanto a loro.
· MediaService
Un link di incontro nella conversazione, sempre sul Kamo Meet della piattaforma
# POST # permette a entrambi i lati di una conversazione Exec2Exec aggiungere un link di riunione, dietro lo stesso cancello che invia un messaggio. L'incontro è creato come L'organizzazione PLATFORM, su Kamo Meet, sul dominio live della piattaforma (meet.kamocrm.com / <room>), chi chiede - il white-label del cliente incontra host o Zoom metterebbe un incontro con KamoCRM dirigenti su una società KamoCRM è semplicemente parlare con - con il chiamante come suo creatore. È poi inviato come messaggio del chiamante attraverso Exec2ExecService. post, quindi raggiunge entrambi i lati live, rialzato, distintivo e spinto; un codice di accesso, quando le camere della piattaforma ne hanno bisogno, va accanto. Non e' vero. risolve Kamo Meet per un org qualsiasi fornitore ha scelto (le sue impostazioni soddisfano ancora, le credenziali di un altro fornitore non lo fanno), e Non e' vero. crea attraverso di essa; il percorso di creazione esistente è invariato. Nessun diritto di START MEETING viene chiesto al chiamante: questo diritto riguarda la propria organizzazione incontri, e questo non è loro.
· kamo-internal
Aggiungi un link di incontro alla conversazione - sempre Kamo Meet della piattaforma
Entrambi i lati di una finestra Exec2Exec ora portano la fotocamera le altre finestre di chat hanno: collegamento di riunione. L'incontro è creato da MediaService come organizzazione PLATFORM, sulla indirizzo Kamo Meet della piattaforma (meet.kamocrm.com/...), da qualsiasi parte lo preme - mai il il proprio white-label del cliente incontra host o provider - e pubblicato come messaggio del pressatore, quindi arriva in entrambe le finestre dal vivo, rialzato e contrassegnato come qualsiasi messaggio. I collegamenti nella trascrizione Exec2Exec sono ora cliccabili, attraverso lo stesso linkifyPlainText ogni altra finestra di chat utilizza (esportato da MessageList piuttosto che copiato).
· kamo-internal
Filtri, volti e presenza della scrivania; un distintivo Exec2Exec che brucia
Centro di interazione > Chats > Exec2Exec ottiene due filtri sotto i sottotitoli: Org Owner (All | Org-less | Org Owner) e Ordina per (Ultimo Messaggio | Ultimo accesso) con un ASC/DESC Interruttore. Ricordati per la sessione del browser come ogni posto nel pannello, e un fresco La sessione si apre su All | Latest Sign In | Desc. Qualcuno che non ha un appuntamento dura in entrambi i casi. Ogni riga ora mostra la propria foto del cliente (iniziale solo quando non ne hanno), se sono online, quando hanno firmato per l'ultima volta e quando la conversazione è stata parlata per l'ultima volta... nel fuso orario del membro - accanto al conteggio non letto. La scrivania si rilegge una volta minuto mentre è visibile, così la presenza non va stallo. La finestra Exec2Exec disegna ogni foto dell'esecutivo di KamoCRM dal loro profilo membro KamoCRM nella sua striscia di partecipanti, e la foto del cliente nell'intestazione della scrivania, portata dal riga roster o dalla cornice che ha alzato la finestra. Il controllo Exec2Exec di NavTop, per un cliente e per la scrivania, brucia mentre tutto è non letto: una cometa di oro, bianco e luce del cielo che corre intorno al bullone, un'onda d'oro, la bullone calci ogni due secondi e il conteggio battere. Sotto movimento ridotto detiene ancora e rimane acceso, e il conteggio è parlato nel nome del pulsante. I conti erano già vivere sul WebSocket illeggibile.
· kamo-internal
File e modelli, cronologia delle versioni e impostazioni di versione
I membri hanno chiesto documenti che mantengono la loro storia come il loro l'organizzazione sceglie, e per i modelli che stanno da soli invece della divisione originale/modificato. I servizi già lo tengono (uno record per documento, img versions, una modalità per org e per categoria); questa è l'app web sopra di esso. Docs manager - I file e le schede Modelli sostituiscono Originali e Modificati. Un modello è un documento con uno strato modello, fatto da un file (o un altro modello) di "Add Template Layer" e separato da esso da allora in poi. - Azioni di fila, nell'ordine richiesto. File: Scarica, Modifica file, Aggiungi strato modello, Aggiungi al legante, Condividi, Invia a cestino. Aggiungi modelli Modifica modello dopo Modifica file. Un'azione che il membro non ha diritto non è mostrato; uno il documento non può supportare (un PDF nel classico editor, pagine ancora in fase di preparazione) viene mostrata disabilitata con la sua ragione. - Una colonna di versione: una pillola di lettura v4, con un punto ambra quando un manuale copia di lavoro ha passato la sua ultima snapshot, aprendo la storia. - La condivisione è offerta in ogni collezione, non solo i Miei Doc. Remi di rifiuti può essere ripristinato. I conti dei piè di pagina sono quelli aperti. Versione cassetto storia - Le pagine della versione selezionata su un palco (un mazzo delle versioni sotto esso, pagina per pagina, campi di un modello disegnato sopra di loro) e versioni su una rotaia, la più nuova prima, con quello che ha prodotto ciascuno e chi. - Confronta le diapositive dello stato corrente in qualsiasi versione precedente. - Prendere snapshot (manuale), Ripristino (confermato nelle parole del modalità categoria: che cosa il ripristino diventa, e che cosa scarterà), Nome una versione, Scarica qualsiasi versione, Carica una nuova versione con progresso. Editor di modelli - Modifica file sottostante apre il file del modello nel classico editor in un'altra scheda. Ogni salvataggio arriva sopra l'argomento salva; le pagine sono refetched e redrawn sotto i campi in atto, con nessun ricarico a schermo intero e nulla si è perso, e la pillola versione si sposta al nuovo numero. Un chip dice che il file è aperto altrove e riporta il membro. - La pillola di versione e il cassetto di storia sostituiscono il solo design pannello di versione: la versione di un modello è il suo file e i suoi campi insieme, e un restauro mette entrambi indietro. - Le anteprime della pagina sono chiave sul contenuto id, quindi la cache del browser può non mostrare mai le pagine del documento è passato da; un PDF ancora essere reso è atteso piuttosto che segnalato come un errore. Impostazioni impostazioni - Gestione dei documenti > Generale: impostazione predefinita dell'organizzazione versione (Automatico, snapshot manuale, Off), disegnato come fa a una storia, e le categorie che impostano il proprio. - Configurazione di una categoria: seguire il default o scegliere il proprio; categorie la piattaforma si blocca a Automatic dire così. - La tabella delle categorie guadagna una colonna di versione. Le stringhe del dizionario sono atterrate prima in kamo-translation-dictionary 9b83d282.
· MediaService
Faccia sulla scrivania — foto di un cliente, ultimo accesso e presenza
Il roster della scrivania ora trasporta, per ogni cliente, la propria foto (users.avatar id, costruita su l'host tema live dell'operatore — l'unico la loro console carica immagini da), quando ultimo firmato in ovunque sulla piattaforma (users.last login, parsed una volta e inviato forma di ultimaActivityAt), e se una delle loro file membri detiene un socket live. La striscia dei partecipanti ottiene ogni foto dell'esecutivo di KamoCRM dal loro profilo membro KamoCRM (membro avatar, altra persona), costruito per la console dello spettatore; e la cornice che solleva una finestra della scrivania porta la foto del cliente accanto al loro nome. Tutto vive in un piccolo componente Exec2ExecFaces: caricato da id piuttosto che dal pigro Associazione JOINED (il cui proxy non ha percorso fotografico), un avatar letto e una presenza spazza per pagina, e ogni fallimento si degrada alle iniziali / offline piuttosto che mancare il roster.
· DocsService
Leggi lo strato di un modello per versione di progettazione
La cronologia della versione disegna i campi di un modello sulle pagine di ogni versione. Le ha chiesto attraverso una versione del documento (/{imgId}/{n}/design), e una copia di lavoro del modello non ha nessuno: i suoi campi sono stati salvati dopo l'ultimo istantanee, in una versione di progettazione nessun nome di versione di documento ancora, in modo da lo stato corrente non poteva essere disegnato sotto la versione manuale. E' il momento giusto. legge il strato per versione di design invece, dietro le stesse porte del resto la storia. Un file non ha uno strato e risposte con nessuno.
· ConversionService
Carica una nuova versione di un documento
L'unico modo per cambiare un file che l'editor del documento non può aprire - un PDF soprattutto, che è quello che la maggior parte I modelli sono. # POST # prende il nuovo file, lo scandisce per malware e content-addresses esattamente come primo upload, e consegna il cambiamento a E' il momento giusto. (kamo-shared-library 6d0523e8): il documento mantiene il suo id, nome, azioni, leganti e strato di modello, e la sua modalità di versione della categoria decide che cosa è tenuto di quello che ha tenuto - una nuova versione sotto Automatico, la copia di lavoro che si muove sotto Manuale, un sovrascrittura sotto Disabilitazione. La versione PDF e le miniature delle pagine sono fatte per i nuovi byte dai lo stesso conduttivo viene eseguito un upload. DIT DOCUMENTI, non CREATE DOCUMENTI: nulla di nuovo è creato. La politica di estensione della categoria si applica ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** bytes - una nuova versione può essere un formato diverso, e l'estensione del nome lo segue. Rifiuto per un pacchetto legale EXECUTED - il record firmato HR rilasciato a un membro, che nessuno dà una nuova versione, nemmeno il suo soggetto - tramite IssuedArtifactLookup, un repository locale di sola lettura sopra l'entità di assegnazione condivisa; e per le collezioni di ipoteca per partito, che il generico immagini endpoints mai toccare. esign.repos è ora scansionato qui, perché una versione di un modello registra la versione di design del suo strato.
· ESigService
Salvare i campi di un modello è una versione del modello
Un modello è un documento con uno strato di campi sopra di esso, e una versione di esso è entrambi metà: la sua byte e quel livello. I risparmi del file sottostante raggiungono già la storia della versione (kamo-shared-library 6d0523e8, docsservice 3ef26d1); questa è l'altra metà. salvareDesign e disegnare la mano al cambiamento a ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** transazione come la scrittura di progettazione, quindi una versione non nomina mai un disegno che è stato rotolato indietro. Ciò che scrive è la modalità di versione della categoria: sotto Automatica una nuova versione del modello (un membro salva entro dieci minuti crescere una versione, così premendo Salva dopo ogni campo è ancora una versione del lavoro), sotto Manuale la copia di lavoro si muove, sotto Disabilitato nulla. A strato chiave su qualcosa che non è un documento id non ha storia da scrivere, e salva come prima.
· DocsService
File e modelli, modificati in posizione, con le versioni ogni categoria mantiene
Un documento è stato due record: il caricamento, che nulla ha modificato, e una copia modificata ha derivato il prima volta qualcuno l'ha aperto in entrambi i redattori. Il direttore Docs ha mostrato la coppia come "Originals" e "Modificato", e i membri l'hanno trovato confuso. Un documento è un record ora, e che cosa ogni cambiamento mantiene il contenuto che sostituisce è la modalità di versione della categoria (kamo-shared-library 6d0523e8): Disabili, automatici o manuali. Modifica - /open modifica il documento stesso - un file, o un modello di byte ("Edit Underlying File"). /new apre il documento creato. Né deriva più una copia. Un salvataggio classico passa attraverso la nuova versione. Automatico (il token WOPI ora porta un id sessione, quindi una seduta che autosaves è una versione), la copia di lavoro che si muove sotto Manuale, una sovrascrittura sotto Disabilitazione. - L'avviso di salvataggio ora spara per qualsiasi documento i cui byte effettivamente cambiato - non per un rientro file - e porta la versione che ha scritto; un editor di template aperto sul documento ridisegna. - Salva Come fa un nuovo FILE e l'editor continua in esso. - Un salvataggio ancora in arrivo per una copia classica lasciata dal vecchio modello (una scheda aperta prima della distribuzione) atterra sul suo originale invece di una fila niente liste. Modelli - Cosa? ("Add Template Layer"): un nuovo modello che condivide i byte della fonte e nient'altro da allora, nella stessa collezione, cartella e livello di accesso. Ramificata da un modello che può trasportare i campi del modello: i firmatari vengono copiati e ogni signerUid nel disegno è riscritto alla sua copia. Il suo strato prende il nome da esso, e il suo primo la versione registra quello che è stato fatto da. Prende CREATE DOCUMENTS - fa un documento. - /form-fillable apre solo un modello; un file risponde 409 NOT A TEMPLATE. Versioni... - cronologia; snapshot (con un nome opzionale); rinomina; restaura; e ogni versione scarica, PDF, pagina thumbnails e modello-layer design. Stessi cancelli dei percorsi di byte imaging: VIEW/EDIT documenti, organizzazione e sdoganamento, il cancello del pacchetto emesso dalle risorse umane, il mutuo per partito collezioni, e l'audit di accesso PHI su ogni byte letto. I byte della versione sono immutabili, quindi sono memorizzati in modo tale, e una vecchia versione scaricata è chiamata "Name (v3).ext". Elenco e impostazioni - L'elenco è una query (DocumentListQuery, su un repository di specifiche locali): il vecchio filtro in-memory dopo la paging potrebbe cadere un tipo raro - un modello tra 300 file - fuori dalla pagina. fileOnly / templatesSeleziona solo le due schede; le righe portano la bandiera del modello, il contenuto id e una versione sommaria. Le copie classiche del vecchio modello non sono mai elencate. - Impostazioni: GET|PUT /imaging/settings/versioning per il default dell'organizzazione; assoc-config e categorie portano il override di ogni categoria, a che cosa si risolve, e se è bloccato. Scrive prendere MANAGE DOCS SETTINGS, che le pagine delle impostazioni sempre richiesto e questi endpoint mai controllato. - Classic salva ora le miniature della pagina chiave sul dat del documento, come sempre hanno fatto i upload; i lettori di thumbnail guardano in entrambi i luoghi, quindi i documenti salvati prima di oggi mostrano ancora le loro pagine. Schema: E' il momento giusto. (applicato). Dati: ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* righe derivate con uno strato modello diventano modelli, le 2 modifiche classiche dal vivo si piegano nella loro originali come v2, e ogni copia classica è in pensione.
· kamo-shared-library
Versioni di documenti, e la modalità di versione un'organizzazione sceglie
I documenti sono stati due record: il caricamento, che nulla ha modificato, e una copia modificata ha derivato la prima volta qualcuno l'ha aperto per modificare. I membri hanno trovato la coppia confusa, e ha montato nessuno regole reali - un'organizzazione vuole ogni modifica tenuta, un'altra vuole una copia e nessuna storia, una terzo vuole congelare uno stato di proposito e continuare a lavorare sopra di esso. Un documento è un record ora, e ciò che accade al suo precedente contenuto quando cambia è un modalità di versione scelta per organizzazione (img org assoc.versioning mode) e per categoria di documento Che vince? - DISABLED: il cambiamento sovrascrive. Una copia, nessuna storia. - AUTO: ogni cambiamento è la versione successiva e quella vecchia è mantenuta. Una sessione di editori classici è una versione tuttavia spesso si autosaves; un membro modello-strato salva entro dieci minuti sono anche una versione. - MANUAL: cambia sovrascrivendo una copia di lavoro sulla parte superiore dell'ultima snapshot; un membro snapshot per mantenere uno stato permanente e continua a modificarlo sopra di esso. Il caricamento è la prima snapshot. Unset ovunque, una categoria è AUTO - l'unica modalità che non perde nulla, come il modello che sostituisce mai perso un upload. Una categoria i cui documenti sono record (overwrite off e not settable, ad esempio. Grafico paziente) è bloccato a AUTO. - ImgVersion / img versions: una versione è un POINTER per la riga img dats indirizzi dei contenuti documento tenuto, più la versione di design modello-layer su un modello. Mantenere uno non costa nulla fino a quando i byte si muovono senza di esso. - DocumentoVersione Servizio: un percorso di scrittura per "il contenuto di questo documento è cambiato" - applicareContentChange, recordTemplateLayerChange, snapshot, ripristino, recordBranch - così le modalità significa lo stesso se il cambiamento provenisse da un classico salvataggio (DocsService), un nuovo upload documento (ConversionService) o salvataggio di uno strato modello (ESigService). Le versioni sono scritte lazily: un documento che non è mai cambiato non ha nessuno, e il primo cambiamento mantenuto scrive v1 dal stato prima di esso, così un'organizzazione può accendere la versione in qualsiasi momento senza backfill. Il ripristino è di per sé una nuova versione sotto AUTO; la storia non è mai riscritta. La firma elettronica i repository sono ObjectProviders, dal momento che non tutti i servizi li scansiona (SharedLibBeanSafetyTest). - Img.isTemplate() sopra la bandiera has form layer esistente, ed èRetiredDerivedCopy() per il copie classiche il vecchio modello lasciato dietro, che nessun elenco mostra di nuovo. Per le pillole di versione su una pagina di modelli in una sola domanda. Una nuova versione incontra la sua prima regola di upload. Lo schema è ************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ prima di questo commit: img org assoc viene letto su ogni upload, quindi la colonna deve esistere prima.
· kamo-internal
Un sovrapposizione del logo Nav e un sovrapposizione del logo di carriera
Behavior & Etichettatura guadagna altri due sovrapposizioni logo nel vocabolario altri sei usi - un token, risolto contro la tavolozza dell'org: - "Nav Logo Overlay", direttamente sotto "Home Page Logo Overlay". Pagamenti logo semplice nella parte superiore della rotaia nav primaria (NavPri) - qualsiasi contrassegnare le mostre ferroviarie, società o software - crollato e ampliato. In-app come la sua home page sibling, quindi cavalca il record org attraverso OrgContext: lo schema della rotta org, Organizzazione. daJSON (che corre due volte sulla strada per il browser) e gli oggetti di OrgProvider lo portano tutti, e prende effetto su salvare. - "Careers Logo Overlay", direttamente sotto "Register Site Logo Overlay". Verniciato da kamo-careers dal servizio di sicurezza a colori tema config.json (10d4a9e), come il sign-in, sign-up e app quelli. Quel sito rilegge il file orariamente, e il suggerimento lo dice. Corregge anche il percorso di salvataggio per tre sovrapposizioni esistenti: sign-in, sign-up e le applicazioni sono state memorizzate ma mai copiate nello stato salvato, quindi le loro righe di sola lettura hanno mostrato la scelta precedente fino a un reload, e la prossima modifica è iniziata da esso. logoOverlayWiring.test.ts cammina tutte le otto sovrapposizioni attraverso i sette posti ognuno deve apparire (stato, carico, modifica buffer, controllo sporco, PUT corpo, sincronizzazione post-save, entrambe le viste), controlla entrambi i punti di vista elencarli nella stesso ordine, i controlli en.json ha ogni nome e suggerimento - la guardia i18n non può vedere le chiavi che la pagina costruisce da una variabile - e controlla entrambi I ThemeLogos di NavPri prendono il colore. Contro il precedente LabelManager fallisce per nav, carriere e i tre sincronismo post-save mancanti. Verificato in Chrome con il reale NavPri in bundle su contesti storditi: la scatola del logo è invariata e la silhouette prende Bianco, Nero e Org è secondario più leggero, crollato e ampliato. Bisogno di kamo-shared-library 7d80fa7b e servizio di sicurezza 10d4a9e per il due colonne da salvare; il dizionario porta le quattro stringhe inglesi.
· SecurityService
Cuocere la sovrapposizione del logo della carriera in config.json
kamo-careers dipinge il logo dell'org nella sua intestazione e non ha OrgContext; legge il tema config.json sul server, lo stesso file di login, registrarsi e le applicazioni prendere i loro overlays da. Così la carriera sovrapposizione va anche lì, come carriereLogoOverlayColor: il TOKEN risolto contro la tavolozza di org qui, assente quando l'org non ha scelto nessuno - che è come ogni il cliente legge "no overlay". Bisogno di kamo-shared-library 7d80fa7b E' il momento giusto. che questo costruire clona dal principale. L'overlay del nav, aggiunto nel stessa libreria commit, è in-app e raggiunge il browser sul record org se stesso; niente qui lo cuoce. Verificato: principale e l'intero set di sorgenti di prova compilano contro quello biblioteca. 14/14 (due nuovi: la chiave è portato, e un org che sovrasta solo il suo sito di registrazione non ottiene chiave di carriera), OrgThemeProvisionServiceTest 20/20.
· kamo-shared-library
Un logo sovrapposizione per il nav rail e uno per il sito di carriera
Altre due colonne nel vocabolario home logo overlay stabilito: a token, non un hex, quindi un org che rebrands mantiene un overlay che corrisponde i suoi nuovi colori. Sia nullable senza backfill - null è NONE, che è che ogni org sembra oggi. nav logo overlay dipinge il semplice logo nella parte superiore del kamo-internal ferroviario nav primario. La sua colonna perché la ferrovia è un'ombra oscurata di il colore primario; la testata bianca della home page raramente vuole lo stesso ombra. Consegnato attraverso OrgContext come la sua home page sibling. carriers logo overlay dipinge il logo dell'intestazione su kamo-careers. Quel sito non ha OrgContext, quindi il servizio di sicurezza cuoce il colore risolto nel tema config.json, il percorso di login, registrazione e applicazioni già prendere. patchOrganization è un ALLOW-LIST, quindi entrambi i nomi vanno lì anche, e una nuova prova cammina ogni sovrapposizione la pagina delle impostazioni invia - non solo questi due - perché una colonna il metodo non nomina è accettato con un 200 e mai immagazzinato. Provato rimuovendo le due nuove linee: 3 dei suoi 4 casi falliscono. Le colonne sono state aggiunte alla tabella live orgs a mano prima di questa spinta (ddl-auto non è nessuno e InitializerService non è dispiegato): ALTER TABLE orgs ADD COLUMN IF NOT EXISTs nav logo overlay VARCHAR(24); ALTER TABLE orgs ADD COLUMN IF NOT EXISTS carriers logo overlay VARCHAR(24);
· kamo-internal
Una testa Exec2Exec minimizzata corre una corrente di luce intorno al suo cerchio
Una linea per gli esecutivi di KamoCRM non deve mai sedersi nel molo, come un'altra chiacchierata. La la testa ridotta ora trasporta un cerchio di energia: un arco oro-bianco-a-sky che corre intorno al esagono, una controcorrente più sottile inseguendo l'altra strada, e un'aura d'oro pulente dietro loro. Sotto la preferenza-ridotta-mozione detiene ancora come un anello d'oro luminoso. L'effetto è una proprietà a livello di utensile (hexHeadEffect sulla voce della piattaforma Exec2Exec), ri-iniettato con l'icona su ogni abito, così ogni testa Exec2Exec ottiene e nessun altro La testa può.

Il tuo universo ti sta aspettando.
Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.
Gratis per sempre — nessuna carta di credito richiesta