Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· SecurityService
Dites quelles locales chaque entrée est vraiment traduite dans
Le sitemap du site du site de marketing répertorie désormais toutes les versions linguistiques de chaque site. l'entrée, et chaque page d'entrée nomme les autres comme son hreflang alterne. A la ligne de traduction n'est pas la preuve d'une seule: TraductionService répond aux instructions de l'établissement n'a pas de fournisseur pour la source anglaise, donc chaque ta row, et le sw et ème rangée d'entrées plus anciennes, répéter le mot de titre anglais pour mot. Désignation Ceux-ci pointeraient les moteurs de recherche sur des pages qui revenaient en anglais. - Retours, par entrée, les lieux de vente dont le titre ou la description diffère de l'anglais, par rapport à base de données dans des lots de 1 000 ids. - /public/sitemap transporte "locales" par entrée et prend l'ordre - le plus ancien, donc le Les fichiers de changelog de site se remplissent puis ne changent jamais. - /public/entry/slug- transporte "locales", et "traduit" signifie maintenant un réel traduction plutôt qu'une ligne.
· kamo-internal
Vid une organisation de la Plateforme
L'onglet Organisations gagne les sous-onglets actifs et Voids, et chaque organisation un tiroir un moyen de l'annuler - ou, sur la languette de Vide, de le restaurer. - Sous-onglets actifs/Vid au-dessus du répertoire, comptés à partir du serveur activeOrgs / voidedOrgs (qui suivent la recherche, quel que soit l'onglet ouvert). L'onglet vit dans l'URL sous le nom d'orggStatus-void, comme le reste de la console pointer; c'est un endroit, pas un filtre, donc Clear le garde. - La section Vide du tiroir (jamais sur la plate-forme org) ouvre une confirmation qui énonce ce que l'on fait de l'évitement: tout le monde à l'intérieur est signé, il quitte /network, connexion et chaque liste, son créateur est traité comme n'ayant jamais a créé, et rien n'est supprimé. - Un tiroir d'une truite d'orge vidé avec "Voided 'date" par "Herator" et Restore; ses essais et les contrôles des produits de la plate-forme sont éteints. - Les refus du serveur - organisme de plate-forme, l'organisme dans lequel vous êtes connecté, en direct sous-orges, toujours facturées - sont indiquées dans le dialogue, en mots. - POST - par une voie relais (SecurityService fait appliquer les organisations à l'intérieur de la loi). Arrilée: kamo-shared-library d2c09630, service de sécurité 6c8d789, service de facturation 072ca5f, media service db90b81; anglais en kamo-translation-dictionary deba6215.
· MediaService
Le fichier ne désigne plus une organisation annulée
Une organisation annulée de la Plateforme (orgs.is-active et FAUX) n'existe nulle part, mais l'onglet Void de la console. findOwnedOrgsByOwnerIds - la copie de la liste de "qui s'adresse à chacune d'elles owns d'entreprise", conservée pour l'org id à côté de chaque titre - porte maintenant le même en direct-org filtrer le logiciel partagé findOwnedTitlesByOwnerIds et findDistinctWwnerUserIds a gagné en kamo-shared-library d2c09630. Écubé dans Exec2ExecQueryParseTest, qui l'analyse également contre le modèle de l'entité.
· BillingService
Onglets actifs et Vid dans le répertoire de l'org de la plateforme
L'onglet Organisation de la console scinche maintenant s' divise en sous-tabulaires actifs et Vid. A L'organisation annulée est orgs.is-active et FALSE (fixé par le vide de SecurityService) point d'extrémité); le répertoire est le seul endroit qui en énumère toujours un - sur l'onglet Vide, Un opérateur peut donc le trouver à restaurer. GET/api/billing/platform/orgs prend le statut - exempt de tout autre objet, y compris pas de statut, liste en direct uniquement. Chaque appelant vieilli et le sorcier du commerce la recherche d'orges cibles parmi eux - demande sans statut, donc aucun d'entre eux ne peut être a montré une organisation qui n'existe plus. - Les rangées sont vides, videsAnchies, annuléesByUserId et hydratées videsByName (une recherche par lots, uniquement lorsque la page a vidé les rangées). - Les agrégats suivent l'onglet, et ajouter activeOrgs / voidedOrgs, qui ignorent le onglet (les deux onglets ont besoin des deux nombres) tout en honorant tous les autres filtres. - Les cas inférieurs d'orge laissent de côté les enfants annulés. - L'instantané de stockage nocturne et le rapport de stockage de la plate-forme sautile annulé orgs; l'histoire est conservée et le traitement de la lacune de l'écrivain attrape une orgement restaurée. Vérifié les instructions générées en lecture seule par rapport à la base de données en direct: Actif 40 rangées / nombres 40 x 0, rangées de Vide 0.
· SecurityService
Vider une organisation, et ne laisser aucun moyen en avenu
Les organisations peuvent désormais annuler une organisation. Le vide est orgs.is-active et FAUX; cet engagement ajoute l'action et fait Dans tous les sens d'une organisation refuser un annulation. L'action - POST - et /restore, MANAINES-ORGANISATIONS (le droit de l'onglet) : - OrgVoidService refuse, ne change rien: la plate-forme org, l'orge l'opérateur est connecté, un organisme avec des sous-orges vivants, et un orge est toujours charged (abonnement payant en direct avec un prix, le ciblant ou payé par son comptes). Sinon, il fixe le drapeau, enregistre les enregistrements vides - à / virés - par - utilisateur-id, et révoquer chaque session que ses membres tiennent. Restaurer en blanchi les trois. Rien n'est supprimé; les membres et les données reviennent en l'état. - 200 avec le nouvel état, 404 inconnu, 409 avec une raison que la console traduit. Les modalités d'utilisation: KSessionService.createSession - la taille de chaque - est frappé à travers refuse une orge annulée via VoidedOrgGuard (non caché PK read, failverte), suivant à la porte du compte synthétique. - mes réseaux laisse des orgs vides OUT: l'écran d'accueil compte ses rangées d'abris de décider si un membre a créé un OG, de sorte qu'un membre dont la création seule L'orge a été annulée se voit offrir à nouveau le flux de création d'un premier or. suit via le partage getAll Organisations(). - la réponse d'entrée et d'imylation entre les ors croisés 404, comme pour une gen. - Le scrutin se termine par une séance à l'intérieur d'un org vidé (arrêt de secours pour une frappe avant que le drapeau n'atrotise). - Échange d'appareils mobiles, auto-logine post-vérification, répertoire réseau La recherche et les recherches de la boîte aux lettres non arborées/sactérisées de courrier de travail permettent de sauter des syndicales vides. - Nombre d'aperçus de la plate-forme, balayages de stockage et rapport d'impact en panne et lecture l'énumération vivante. - déjà appliquée à la base de données en direct.
· kamo-shared-library
Une organisation annulée est laissée à l'abri de chaque liste et de chaque recherche d'hôtes.
Les opérateurs de la plate-forme peuvent désormais vider une organisation de la Plateforme Organisations. Le vide est orgs.is-active FAUX : l'indicatif du drapeau et l'hôte résolution vérifiée déjà - donc ce changement de bibliothèque fait les inscriptions qui n'ont jamais vérifié qu'il est d'accord: - trouver AllLive(): l'énumération d'orge moins les orgs de restitution synthétiques et annulations. - le point d'étranglement derrière l'orge liste, tous les réseaux et les diagnostics comptent, le lise maintenant. findAllExclingFakeOwned() reste donc les services construits avant que cela ne compile. - findAllByVerifiedDomain: un domaine d'organisation annulé ne se résout plus, il s'arrête donc l'acceptation des inscriptions et des inscriptions. - findOwnedTitlesByOwnerIds / findDistinctOwnerIds: la liste Exec2Exec non les noms plus longs annulent les organisations comme n'importe qui. - Organisation.ÉludedAt / voidedByUserId: qui l'a annulé et quand, pour le l'onglet Void de la console. Jamais enchaîné. Colonnes appliquées à la base de données en direct avant cet engagement - en service de sécurité). - Organization.isVoided(): indique l'état d'enregistrement, jamais stocké deux fois. - L'orge générale PATCH n'accepte plus l'état d'enregistrement : la nullité et la restauration sont les uniquement les écrivains de is-active, donc un réglage sauve qui fait écho à la ligne à fond ne peut pas Rends tranquillement une org évidée.
· kamo-internal
Les titres des titres du bar se trouvent sur une assiette plus sombre de la marque
Un menu nom propre en haut et à chaque rubrique (Soutien en ligne de l'appui, "Bugs" Améliorations, formation, Docs' "Créer neuf") maintenant, s'associant à une plaque arrondie de l'organisation. primaire, plus foncé, en blanc en plein air - donc un titre lit comme une étiquette sur ses rangées plutôt qu'une plus ligne à cliquer. Le point culp du survol devient plus clair, les titres deviennent plus sombres, les deux ne se ressemblent jamais. La plaque est noire translucide (TOPIC-PLATE), qui sur le sol est le sol mélangé vers noir : la même teinte, quelle que soit la marque. Un "primaire à N%" fixe serait sorti plus léger que le sol sous un menu à l'extrémité gauche de la barre, où la rampe de couture commence à partir du mélange de 60 % de la barre. Mesurée dans un navigateur réel sur 11 marques aux deux extrémités de la barre: chaque plaque est de 0,73-0,80 du sol à côté de lui sur chaque canal (pas de déplacement de la teinte), blanc sur lui est de 7,4%:1 ou mieux, et la glisse ne débarque jamais sur une rubrique. Un garde dans navTopMenuIsWhite.test.ts épingles les deux titres à la plaque.
· kamo-internal
Faces aux messages uniquement dans les conversations de trois ou plus
Un visage à côté de chaque message dit aux gens, et entre deux personnes, C'est ainsi que le côté apparaît maintenant un message qui fait déjà - donc la face de coin apparaît maintenant seulement lorsque trois personnes ou plus sont dans la conversation (montre des visages), et jamais alors que le compte est inconnu, donc un visage n'est jamais montré puis enlevé. - Chat : compte à partir de la liste, la fenêtre dispose déjà, qui suit les personnes Rejoindre et partir en direct; une discussion à deux personnes ne demande même pas de visages. - Soutien, Social, Exec2Exec: le comptage du serveur, maintenant sur la réponse face (MediaService e722c90) - chaque personne une fois, quelle que soit la plupart des sièges qu'elle détient, a les contacts sociaux inclus. Insets de nom/d'attribution et la marge de manœuvre faire de la place pour le visage uniquement lorsqu'il est là. - Les SMS et AI Chat sont toujours deux parties (un numéro de membre et un autre; le membre et l'assistant), de sorte que leur code du visage est complètement supprimé - en retour à exactement ce qu'ils étaient - avec l'utilisationOwnPhoto et le glyphe de MessageAvatar, que seuls ils ont utilisé.
· MediaService
La réponse en face dit combien de personnes sont dans la conversation
GET - maintenant porte "participants": la console met un visage à côté de chaque message uniquement lorsque trois personnes ou plus sont dans un conversation, puisque entre deux, le côté sur lequel un message est déjà tiré dit qui l'a écrit. Désocié des sièges, pas des auteurs - quelqu'un qui a écrit et laissé garde un face sur ce qu'ils ont écrit sans être dans la conversation; moins personne n'est plus longtemps éligible à une conversation en direct (règle de la liste de discussion, qui toujours garder le spectateur); une fois par PERSONNE, parce qu'une personne peut en tenir plusieurs sièges (un client Exec Exec est assis de chaque organisation dont ils ont écrit); plus le contact d'une conversation sociale, qui n'a pas de rang de membre du tout. Un chat en ligne Le siège du visiteur est le membre du SYSTEME de l'organisation, donc il compte une fois, comme eux.
· kamo-marketing
Générer les cartes de site par demande, et donner à chaque modification sa propre page
/sitemap.xml était un fichier de métadonnées pré-rendu au moment de la construction, dans un conteneur qui ne peut pas atteindre KBService ou SecurityService, de sorte que chaque déploiement a expédié un sitemap sans article de centre d'aide jusqu'au premier rafraîchissement de l'ISR. Et /api/sitemap a conservé un deuxième exemplaire de la liste des pages qui s'en est éloignée. - /sitemap.xml est un indice de carte de sitemap généré par demande. Il énumère les listes. /sitemaps/pages.xml (pages manuscrites, pages de collection, billets de blog et chaque article de base de connaissances, avec hreflang) et /sitemaps/changelog/.n.xml (5 000 entrées de journal de change chacune). /api/sitemap et /api/sitemap/changelog/zn sont les rendus JSON du même module, app/lib/sitemap-source.ts. - La liste de pages manuscrites vit une fois, dans app/lib/sitemap-pages.ts, et garde:sitemap échoue dans la construction lorsqu'une route statique n'est ni listée ni exclus avec une raison. - /changelog est mis en page sur le serveur: ?page-N, avec ?project et ?type répondu par SecurityService, où les anciens filtres ne cachaient que les entrées parmi les 50 à l'écran. Chaque page est sa propre canonique; les vues filtrées sont noindex, suiv. - Chaque entrée a sa propre page à l'adresse /changelog/-slug, liée aux entrées de part et d'autre. C'est canonique à l'anglais où la localité n'a pas traduction à ce jour, et une orthographe plus ancienne de son adresse 308s à l'heure actuelle l'un. La page d'accueil est reliée à ces pages. - Les stataires et les filtres sont lus sur le serveur. La route /api/changelog/stats Ils venaient d'avoir servi le conteneur de la construction de 0.
· SecurityService
Donner à chaque entrée publique une adresse et pager la liste sur le serveur
Le journal de change du public servait des entrées sans identifiant, donc le site de marketing ne peuvent ni établir un lien vers un ni les énumérer dans un sitemap. Chaque entrée porte maintenant un slug - son titre anglais en URL, puis douze caractères de son engagement hash - et: - GET - retourne une entrée avec les entrées de part et d'autre de celle-ci. Il est trouvé par le préfixe de hachage seul, donc une entrée dont le titre a changé de résolution à son ancienne adresse, et l'appelant redirige vers le courant. - GET /api/changelog/public/sitemap retourne chaque loup, titre et date de chaque entrée en morceaux allant jusqu'à 5 000, lire trois colonnes par ligne. - GET /api/changelog/public accepte les filtres « projet » et « type », qui peuvent ne fait que restreindre la liste publique et les commandes (dateEntrée, id): le partage d'un horodatage n'échange plus de pages entre deux requêtes. Une page est Capuchonné à 100 entrées. Les questions vivent dans PublicChangelogService plutôt que CommitLogRepository, donc rien de tout cela n'a besoin d'une libération de bibliothèques partagées.
· kamo-internal
Chaque message porte le visage de son auteur, sur le coin de la bulle
Dans chaque fenêtre d'outil de discussion - Chat, Support, Exec2Exec, Social, SMS, IA Chat - chaque message porte maintenant une photo de 16x16 qui chevauche le haut-gauche de la bulle coin pour un message à gauche et son coin supérieur droit pour un sur la droite. Chaque message, pas seulement le premier d'une course: la fenêtre du Chat est le vieux visage dans le la ligne d'en-tête a disparu, et les lignes de nom/d'attribution sont incrustentes de sorte que le visage ne s'assoit jamais sur leur première lettre. Initiale uniquement lorsque la personne n'a pas de photo. Le visage est à trois valeurs (MessageAvatar): une URL est une photo, essayée comme sa variante d'Osm et puis comme fichier de grande taille (les petites variantes sont facultatives côté serveur; les téléchargements plus anciens n'ont pas est nulle; nuls est des initiales; indéfinis - ce qui n'est pas encore connu - est un disque vierge, donc Quelqu'un avec une photo ne clignote jamais en tant qu'initiales pendant qu'il est levé les yeux. D'où viennent les photos. Les fenêtres utilisées pour ne lire que le spectateur est propre annuaire des membres (membres de l'équipe ACTIVE de l'organisation signée), donc simples membres, l'autre face d'un ticket d'assistance ou d'une conversation Exec2Exec, et quiconque avait quitté un groupe a été dessiné comme des initiales avec une photo sur leur profil. Maintenant, un magasin par conversation (app/lib/chat/sessionFaces.ts) se lit désormais La nouvelle GET de MediaService - tout le monde sur le et tous ceux qui y ont déjà écrit, à partir de leur propre profil, sur un l'hôte la console peut se charger - à travers un fichier de route propre (/api/média n'est pas un préfixe proxié). Le premier message d'un nouveau venu se ré-offre une fois; quelqu'un le serveur toujours ne couvre pas, ou tout le monde alors qu'un service Media plus âgé ne peut pas répondre, retomba à la recherche du répertoire les fenêtres utilisées auparavant. Les rangées qui ne doivent jamais porter la face de l'organe sous lequel elles sont stockées: - un visiteur de chat en ligne (en stock sous le membre du SYSTEME de l'orge, le propriétaire) obtient le les initiales des visiteurs; - un contact social (stocké sous le propriétaire de la connexion) obtient la photo de son un fournisseur a donné, par l'intermédiaire de l'indicateur de proxy. SMS: les textes envoyés sont les siens du téléspectateur (une conversation appartient à un membre nombre); reçues portent la photo du contact du répertoire de l'en-tête Les lectures, leurs initiales, ou une marque téléphonique pour un numéro personne n'est sauvegardé. AI Chat: la photo du membre sur ce qu'ils ont demandé; l'assistant, qui n'a pas Profil, porte l'éclat de l'IA. Les rangées dans les listes 4px bourrées sans ligne de nom ci-dessus obtiennent 4px de marge de tête: mesurée en chrome réel, le visage s'est sinon satté 1-2px à partir de l'estampon-temporel de la message avant.
· kamo-internal
L'onglet Demandes de signature et la sauvegarde d'un collègue dans l'éditeur de modèle
Demandes de signature, entre les modèles et les catégories communes dans le gestionnaire des documents: documenter les modèles de la collection envoyés pour signature, dans une grille paged sur le serveur et divisé en trois seaux (non éteints, partiellement exécutés, Entièrement exécuté), chacun indiquant combien d'entre eux sont nouveaux pour ce membre. L'onglet montre le total qui est nouveau. En regardant un seau efface son comptage pour ce membre Uniquement, et l'onglet s'ouvre sur le premier seau tenant quelque chose de nouveau. Colonnes: le document et qui l'envoie, les signataires (un anneau par signataire dans le couleur de leur emplacement), x de y signé, statut, envoyé, dernière activité et intégralement exécutées. Chaque rangée peut pousser tout le monde encore en attente, télécharger le le document exécuté, le certificat d'achèvement ou les deux en tant que zip, et ouvert la demande. Le tiroir de demande ajoute un coup de pouce par signataire, ce qui s'est passé quand, et le retrait de la demande avec une raison. L'éditeur de modèle enregistre maintenant qu'il a un modèle ouvert (un rythme cardiaque à - donc un collègue est sauvé ou restauré de Ce fichier l'atteint, et il dit qui a fait le changement. Son sujet en direct était construit à partir du membre id en tant que numéro JS, qui tourne ids au-delà de 2x53, donc le Sauvegarder l'avis n'est jamais arrivé. Il utilise maintenant la chaîne d'identification.
· ESigService
Demandes de signature pour le gestionnaire Docs, avec de nouveaux décomptes par membre
Le gestionnaire Docs reçoit un onglet Signature Demandes: chaque document est un recueil des modèles envoyés pour signature, en trois seaux par des signatures (personne, certains, ou tout le monde l'a signé), chacun avec combien d'entre eux sont nouveaux pour ce membre. /api/esig/requais liste un seau une page à la fois, triée et recherchée dans la base de données. /counts donne le total et le nouveau comptage de chaque seau, et/ont en place Les enregistrements qu'un membre regardait un seau. Ce que chaque membre a vu vit dans esign-request-views - appliqué à la main), claviéraux par membre, collecte et seau. Une demande est nouvelle dans un seau lorsqu'il est Il est entré dans ce seau après que le membre eut regardé là. Par requête: recherchez-le, ne poussez toujours les signataires en attente (une ré-insuscite avec une ligne de rappel, au plus une fois par minute par signataire), retirez-le et téléchargez-le le document exécuté, le certificat d'achèvement, ou les deux en tant que zip. La lecture a besoin de VEW-DOCUMENT; rassasier et retirer les besoins d'ÉTIT-DOCUMENTS. A la demande n'est accessible que par le biais d'un modèle dans une collection que le membre peut voir, à leur autorisation.
· DocsService
Un épargne parvient à chaque collègue avec le modèle ouvert
Une sauvegarde du fichier d'un modèle ne dit que le membre qui l'a sauvegardé, donc un collègue avec le même modèle ouvert en plaçant des champs sur des pages que le fichier avait déplacé à partir de. L'éditeur de modèle dit maintenant quand il a un modèle ouvert: POST Toutes les 30 secondes pendant qu'il est, DÉLETE quand il se ferme. OpenEditorRegistry conserve cela dans Redis comme un ensemble trié par document (membre -------------------------------------------- par lui-même. Une sauvegarde publie une image par membre avec le modèle ouvert, chacun sur le sujet de ce membre, et dit qui a fait le changement. La montre vérifie que le membre peut lire le document, comme le fait chaque lecture. Une restauration indique maintenant aux collègues aussi, avec la version de conception qu'il a ramenée. Ainsi, leur éditeur recharge les champs ainsi que les pages.
· MediaService
Un visage pour chaque message dans chaque fenêtre de discussion
GET et réponses, pour une conversation, la photo de tirer à côté de chaque message: tout le monde dessus maintenant ET tous ceux qui ont jamais écrit (une liste oublie les personnes qui sont parties; leurs messages n'en ont pas), chacun est listé dans MemberIds, qu'ils aient ou non une photo, de sorte que la console peut dire "pas de photo: initiales" de "non encore interrogés". Les photos sont Exec2ExecFaces.memberPhotos - la photo de profil du membre, sinon la personne - construite sur le live du spectateur l'hôte de thème, celui que permet l'img-src de la console. Une conversation sociale également nomme son contact (et non un membre du tout) en tant que "contreparteparte" avec le fournisseur photo. Pourquoi le serveur: la seule source de la console était le membre du téléspectateur Répertoire - membres de l'équipe ACci de l'organisation signée - si simples Membres, de l'autre face d'un ticket d'assistance ou d'une conversation Exec2Exec, et de toute personne qui avaient quitté un groupe ont tous été dessinés en initiales avec une photo sur leur profil. La recherche par membre qu'il pourrait retomber sur les orssements refuse. Qui peut demander qui peut lire la transcription (un membre signé, une session qui existe): un visage dit moins que les messages à côté d'elle. Aussi: l'histoire lise maintenant tags ce qu'un contact social a écrit comme SOCIAVISEUR sous le nom du contact, comme l'a toujours fait le cadre en direct. Ces lignes sont stockées sous le membre du propriétaire de la connexion, de sorte qu'une conversation rechargée a déposé le les mots du contact sous le nom du propriétaire, du côté du propriétaire, lorsque le propriétaire était lire - et aurait mis la photo du propriétaire à côté d'eux.
· MediaService
Un lien de réunion dans la conversation, toujours sur Kamo Meet de la plate-forme
POST - permet de chaque côté d'une conversation Exec2Exec ajouter un lien de réunion, derrière la même porte que l'envoi d'un message. La réunion est créée en tant que L'organisation PLATFORM, sur Kamo Meet, sur le domaine en direct de la plateforme (meet.kamocrm.com/.room), Quiconque demande - l'hôte de la marque blanche d'un client ou qui accompagne le groupe de travail de KamoCRM Les dirigeants d'une entreprise KamoCRM ne font que s'en prendre à l'appelant comme créateur. C'est puis posté comme message de l'appelant via Exec2ExecService.post, de sorte qu'il atteint les deux côtés live, levé, inquiété et poussé; un code d'accès, quand les pièces de la plate-forme en ont besoin, va à côté. - résout Kamo Meet pour un organisme quel que soit le fournisseur dont il dispose choisi (ses paramètres de réunion s'appliquent toujours, les références d'un autre fournisseur ne le font pas), et C'est par là qu'il crée; le chemin de création existant est inchangé. On ne demande pas à l'appelant de droit: ce droit est question de sa propre organisation. et celui-ci n'est pas leur.
· kamo-internal
Ajouter un lien de réunion vers la conversation - toujours la rencontre Kamo de la plate-forme
Les deux côtés d'une fenêtre Exec2Exec portent maintenant la caméra que les autres fenêtres de discussion ont: lien de réunion. La réunion est créée par MediaService en tant qu'organisation PLATFORM, l'adresse Kamo Meet de la plate-forme (meet.kamocrm.com/...), quelle que soit la face qui l'appuie - jamais le le client en marque blanche rencontre l'hôte ou le fournisseur - et affiché comme message du presseur, de sorte qu'il arrive dans les deux fenêtres en direct, surélevée et badge comme n'importe quel message. Les liens dans la transcription Exec2Exec sont maintenant cliquables, via le même linkifyPlainText tous les autres utilisations de la fenêtre de discussion (exportée à partir de MessageList plutôt que copiée).
· kamo-internal
Filtres, visages et présence du bureau; un badge Exec Exec qui brûle
Interaction Center - Chats - Exec2Exec obtient deux filtres sous le sous-onglet: Org Owner (Tous - Org-less - Org Owner) et Commande par (Dernier message et Dernière connexion) avec un ASC/DESC commutateur. Se souviennent pour la session du navigateur comme chaque endroit dans le panneau, et un nouveau La séance s'ouvre sur All - Latest Sign In - Desc. Quelqu'un sans tri n'est en triant durent dans l'autre. Chaque ligne montre maintenant la propre photo du client (initiales seulement lorsqu'il n'en a pas), si Ils sont en ligne, quand ils se sont inscrits pour la dernière fois et quand la conversation a été prononcée pour la dernière fois en - dans le fuseau horaire du membre - à côté du compte non lu. Le bureau se relit une fois un minute pendant qu'elle est visible, de sorte que la présence ne va pas périmée. La fenêtre Exec 2Exec dessine la photo de chaque exécutif de KamoCRM à partir de son profil de membre KamoCRM dans la bande de ses participants, et la photo du client dans l'en-tête du bureau, tirée du ligne de la liste ou du cadre qui a soulevé la fenêtre. NavTop's Exec Control, pour un client et pour le bureau, brûle tout est non lu: une comète d'or, blanche et un ciel léger courant autour du boulon, une onde de choc en or, le boulon qui donne des coups de pied toutes les deux secondes et des coups de comptage. En vertu d'une demande réduite, elle tient still et reste allumé, et le compte est parlé dans le nom du bouton. Les décomptes étaient déjà Vivent sur le WebSocket non lu.
· kamo-internal
Fichiers et modèles, historique des versions et paramètres de version
Les membres ont demandé des documents qui conservaient leur histoire dans la manière dont ils l'organisation choisit, et pour les modèles qui se présentent seuls à la place de la division originale/modifiée. Les services le tiennent déjà (un enregistrement par document, imprg-versions, un mode par org et par catégorie); Voici l'application web dessus. Gestionnaire des documents - Les onglets de fichiers et de modèles remplacent Originals et Modifiés. Un modèle est un document avec une couche de modèle, fabriqué à partir d'un fichier (ou d'un autre modèle) par "Ajouter la couche de modèle" et séparé de celui-ci à partir de là. - Les actions en ligne, dans l'ordre demandé. Fichiers: Télécharger, fichier d'édition, Ajouter Couche de gabarit, Ajouter au liant, Partager, Envoyer à la poubelle. Ajouter des modèles Modifier le modèle après l'édition du fichier. Une action que le membre n'a pas le droit de n'est pas indiqué; un document ne peut pas être supporté (un PDF dans le classique éditeur, pages en cours de préparation) est montrée désactivée avec sa raison. - Une colonne Version : une pilule lisant v4, avec un point jaune lorsqu'un manuel Une copie de travail a dépassé son dernier instantané, ouvrant l'histoire. - La part est offerte dans chaque collection, pas seulement dans My Docs. Pinces à éclats peuvent être restaurés. Les nombres de pied sont l'onglet ouvert. Tirant de l'histoire de la version - Les pages de la version sélectionnée sur une scène (un jeu des versions sous- il, page par page, les champs d'un modèle les a dessinés sur eux) et le des versions sur un rail, le plus récent en premier, avec ce qui a produit chacun et qui. - Comparer les diapositives de l'état actuel dans toute version antérieure. - Prenez un instantané (manuel), Restaurer (confirmé dans les mots de la mode de catégorie: ce que la restoration devient, et ce qu'elle rejetterait), Nommez une version, Télécharger n'importe quelle version, Télécharger une nouvelle version avec progrès. Éditeur de modèle - Modifier le fichier sous-jacent ouvre le propre fichier du modèle dans le classique éditeur dans un autre onglet. Chaque sauvegarde y arrive sur le sujet des sauvegardes; les pages sont refaites et redessinées sous les champs en place, avec pas de rechargement plein écran et rien de non-sauveté perdu, et la version pilule se déplace vers le nouveau nombre. Une puce dit que le fichier est ouvert ailleurs et ramène le membre à elle. - La pilule de la version et le tiroir historique remplacent uniquement la conception panneau de version: la version d'un modèle est son fichier et ses champs ensemble, et une restauration remet les deux. - Les aperçus de page sont mis à la clé sur le contenu id, de sorte que le cache du navigateur peut ne jamais montrer les pages du document qui s'est déplacé; un PDF est toujours rendu est attendu plutôt que signalé comme une erreur. Paramètres - Gestion des documents - Généralités : la défaillance de l'organisation version (automatique, instantanés manuels, étoff), dessinée comme chaque c'est à l'histoire, et aux catégories qui fixent les leurs. - Configuration d'une catégorie: suivre la valeur par défaut ou choisir la sienne; catégories les serrures de la plate-forme à Automatic. - Le tableau des catégories permet de gagner en acquérant une colonne Versionnement. Les cordes de dictionnaire ont d'abord atterri en kamo-traduction-dictionary 9b83d282.
· MediaService
Faces sur le bureau - photo d'un client, dernière connexion et présence
La liste du bureau porte maintenant, pour chaque client, sa propre photo (utilisateurs.avatar-id, construite sur l'hôte de thème en direct de l'opérateur - le seul de leur console charge des images de), lorsqu'ils la dernière connexion n'importe où sur la plateforme (utilisateurs.der.login, parsed une once et envoyé dans le la forme de lastActivityAt), et si l'une de leurs rangées membres détient une douille en direct. La bande de départ des participants reçoit la photo de chacun des cadres de KamoCRM à partir de leur profil de membre de KamoCRM (avatar du membre, sinon celui de la personne), construit pour la console du spectateur; et le cadre qui soulève une fenêtre de bureau porte la photo du client à côté de son nom. Tout cela vit dans un petit composant Exec2ExecFaces: chargé par id plutôt que par le paresse. Association JOINED (dont le proxy n'a pas de chemin photo), un avatar lu et un balayage de présence par page, et chaque échec se dégrade en initiales/off en ligne plutôt qu'à l'échec de la liste.
· DocsService
Lire la couche d'un modèle selon la version conception
L'historique des versions tire les champs d'un modèle sur les pages de chaque version. Il les a demandé par le biais d'une version du document (/-imgId-/-design), et d'une version de la lettre La copie de travail du modèle n'a pas été remplie: ses champs ont été sauvegardés après la dernière instantané, dans une version de conception, sans nom de version de document, de sorte que l'état actuel ne peut pas être dessiné dans le cadre du version du Manuel. GET - lit le la version de couche par conception au lieu de la version, derrière les mêmes portes que le reste de l'histoire. Un fichier n'a pas de couche et répond sans réponse.
· ConversionService
Télécharger une nouvelle version d'un document
La seule façon de changer un fichier que l'éditeur de document ne peut pas ouvrir - un PDF avant tout, ce qui est le plus les modèles le sont. POST prend le nouveau fichier, l'analyse pour les logiciels malveillants et le contenu l'adresse exactement en tant que premier téléchargement, et l'apporte le changement à (calibraire kmo-shared 6d0523e8): le document conserve son id, nom, partage, reliure et couche de gabarit, et le mode de versioning de sa catégorie décide ce qui est conservé de ce qu'il détenait - une nouvelle version sous Automatic, la copie de travail passant sous Manuel, un écraser sous les ordres des handicapés. Les découpes PDF et les vinaisons de page sont faites pour les nouveaux octets par le un même pipeline, un parcours de téléchargement. ÉDIT-DOCUMENTS, pas CRÉATE-DOCUMENTS: rien de nouveau n'est créé. La politique de vulgarisation de la catégorie est public à cet effet), et le type est lu à partir du byets - une nouvelle version peut être un format différent, et l'extension du nom suit. Refusé pour un paquet juridique EXECUTED - le procès-verbal signé du HR délivré à un membre, que personne ne donne une nouvelle version, pas même son sujet - par l'intermédiaire de IssuedArtifactLookup, un dépôt local en lecture seule sur l'entité d'affectation partagée; et pour les recouvrements hypothécaires par les parties, que le générique les points d'extrémité d'imagerie ne se touchent jamais. esign.repos est maintenant balayé ici, parce qu'une version d'un modèle enregistre la version de conception de sa couche.
· ESigService
Engant les champs d'un modèle est une version du modèle
Un modèle est un document avec une couche de champs dessus, et une version de celui-ci est les deux moitiés: son octets et cette couche. Les sauvegardes de son fichier sous-jacent atteignent déjà l'historique des versions (calibraire kmo-partarique 6d0523e8, docsservice 3ef26d1); c'est l'autre moitié. Restez la commande de la commande de la commande de la commande transaction comme l'écrit le design, donc une version ne nomme jamais un design qui a été en arrière. Ce qui écrit est le mode de versioning de la catégorie: sous Automatic une nouvelle version du modèle (Les économies d'un membre en dix minutes augmentent d'une version, donc en appuyant sur Save après chaque champ est toujours une version de l'ouvrage), dans le Manuel, la copie de travail déplace, sous Handicap rien. A stratifié sur quelque chose qui n'est pas un document id n'a pas d'historique à écrire, et sauvegarde comme avant.
· DocsService
Fiches et modèles, édités en place, avec les versions que chaque catégorie conserve
Un document était deux enregistrements: le téléchargement, que rien n'a édité, et une copie modifiée a dérivé la première fois que quelqu'un l'a ouvert dans l'un ou l'autre éditeur. Le gestionnaire Docs a montré la paire sous la rubrique "Originals" et "Modifié", et les membres ont trouvé la confusion. Un document est un record maintenant, et ce que chacun change les conserves du contenu qu'il remplace est le mode de versioning de la catégorie (kamo-shared-library 6d0523e8): Handicapés, automatiques ou manuels. Édition - /open édite le document lui-même - un fichier, ou les octets d'un modèle ("Edit Underlying File"). /nouveau ouvre le document qu'il a créé. Ni l'un ni l'autre ne tire une copie. - Une sauvegarde classique passe par - une nouvelle version sous Automatique (le jeton WOPI porte maintenant un id de session, donc une séance assise que les économiseurs sont un version), la copie de travail en déplaçant selon le Manuel, un écrasement sous la rubrique Handicap. - La préavis de sauvegarde est désormais tiré pour tout document dont les octets ont effectivement changé - pas pour un nouvel envoyé et porte la version qu'il a écrite; un éditeur de modèle s'ouvre sur le document redessine. - Save As fait un nouveau FILE et l'éditeur continue de l'intérieur. - Une sauvegarde toujours arrivant pour une copie classique laissée par l'ancien modèle (un onglet ouvert avant le déploiement) atterrit sur son original au lieu d'une ligne, rien ne liste. Modèles - POST - ("Add Template Layer"): un nouveau modèle partageant le octets de la source et rien d'autre à partir de là, dans la même collection, le même niveau de dépliant et d'accès. Branché à partir d'un modèle qu'il peut porter dans les champs de ce modèle: les signataires sont copiés et tous les champs signerUed in the design est réécrit sur sa copie. Sa couche est nommée d'après lui, et son premier La version enregistre ce à quoi elle a été fabriquée. Prend rendez-vous - il fait un document. - /form-loadable n'ouvre qu'un modèle; un fichier répond à 409 NOT-A-TEMPLATE. Versions - - historique; instantané (avec un nom facultatif); renommer; restaurer; et téléchargement de chaque version, PDF, Vignettes de page et conception de la couche-cadre. Mêmes portes que les chemins d'octets d'imagerie: VIEW/EDIT les documents, l'organisation et l'autorisation, l'ensemble de mesures, l'hypothèque par partie les collections et l'audit d'accès de l'Institut sur tous les bytes lus. Les octets de version sont immuables, donc ils sont mis en cache en tant que tels, et une ancienne version téléchargée est nommée "Nom (v3).ext". Liste et paramètres - La liste est une requête (DocumentListQuery, sur un référentiel de spécification local): l'ancien Un filtre dans la mémoire après la radiomessagerie pourrait laisser tomber un type rare - un modèle parmi 300 fichiers - sur la page. fichiersSeun / templatesSélectionnerse les deux onglets; les lignes portent le drapeau de modèle, le contenu id et un résumé de la version. Les copies classiques de l'ancien modèle restant ne sont jamais listées. - Paramètres : OBET-PUT/imagerie/réglage/version pour la défaillance de l'organisation; assoc-config et les catégories portent l'emportant sur l'emporte sur chaque catégorie, ce à quoi elle décide et si elle est verrouillée. Écrits prendre MANAGE-DOCS-SETTINGS, que les paramètres des pages ont toujours requis et ces critères d'évaluation n'ont jamais été vérifiés. - Classic sauvegarde maintenant les vignettes de la page clé sur le document lui-même, comme les téléchargements l'ont toujours fait; Les lecteurs de vignette regardent dans les deux endroits, donc les documents sauvegardés avant aujourd'hui montrent encore leurs pages. Schéma: (appliqué). Données: - courir une fois cette construction déployée: le 5 les lignes dérivées avec une couche de modèle deviennent des modèles, les 2 éditions classiques en direct se replient dans leur les originaux en v2, et chaque copie classique est retirée.
· kamo-shared-library
Versions de documents et mode de version d'une organisation choisit
Les documents étaient deux enregistrements: le téléchargement, que rien n'a édité, et une copie modifiée a dérivé la première fois que quelqu'un l'a ouvert pour l'éditer. Les membres ont trouvé la paire confuse, et il n'a pas tenu personne les règles réelles - une organisation veut que chaque édition conservée, une autre veut un exemplaire et pas d'antécédent, un troisième veut geler un État à dessein et continuer à travailler sur le dessus. Un document est un enregistrement maintenant, et ce qui arrive à son contenu précédent quand il change est une mode de version choisi par organisation (img-org-assoc.versioning-mode) et par catégorie de documents - qui gagne): - DISABLE : le changement écrase. Une copie, pas d'histoire. - AUTO: chaque changement est la prochaine version et l'ancienne est conservée. Une session d'éditeur classique est une version, cependant, elle économise souvent automatiquement; la couche-d'un membre économise en dix minutes sont également une version. - MANUEL: modifier l'écrasement d'une copie de travail au-dessus du dernier instantané; un membre prend des clichés à conserver a état en permanence et continue à éditer sur le dessus. Le téléchargement est le premier instantané. Sans éteindre partout, une catégorie est AUTO - le seul mode qui ne perd rien, comme le modèle qu'il remplace Je n'ai jamais perdu un téléchargement. Une catégorie dont les documents sont des enregistrements (écrasés et non réglables, par ex. Cartes de patients) est verrouillée à AUTO. - ImgVersion/img-versions: une version est une POINTER à la ligne des img-dats à l'adresse du contenu document conservé, plus la version de conception de la couche de modèle sur un modèle. Garder un seul coût n'est rien jusqu'à ce que les octets passent sans elle. - DocumentVersioningService: le seul chemin d'écriture pour "le contenu de ce document a changé" - appliquerContentChange, enregistrementTemplateLayerChanger, snapshot, restore, recordBranch - donc les modes signifier la même chose si le changement provient d'une sauvegarde classique (DocsService), un nouveau téléchargement sur le document (ConversionService) ou une couche de modèle (SesigService). Les versions sont écrites paresseuse: un document qui n'a jamais changé n'a pas, et le premier changement conservé écrit v1 du Présente avant, afin qu'une organisation puisse activer la version à tout moment sans remplissage. La restauration est elle-même une nouvelle version sous AUTO; l'histoire n'est jamais réécrite. La signature électronique Les référentiels sont des ObjectProviders, puisque tous les services ne les scannent pas (SharedLibBeanSafetyTest). - Img.isTemplate() sur le drapeau has-form-couche existant, et est RetiredDerivedCopy() pour le copies classiques l'ancien modèle laissé derrière, ce que l'on ne fait à nouveau apparaître. - Pour les pilules de version sur une page de modèles dans une requête. - est public, donc une nouvelle version répond à sa première règle de téléchargement. Le schéma est en docs, appliqué au groupe. avant cet engagement: img-org-assoc est lu à chaque téléchargement, donc la colonne devait exister en premier.
· kamo-internal
Un logo Nav superposition et un logo de carrière
Comportement et étiquetage gagne deux autres superpositions de logo dans le vocabulaire six autres usages - un jeton, résolu contre la propre palette de l'organisme: - "Nav Logo Overlay", directement sous "Home Page Logo Overlay". Peintures un logo simple en haut du front de fer primaire (NavPri) - n'importe lequel marquer les émissions de rail, l'entreprise ou le logiciel - effondrée et étendue. Dans l'application comme sa page d'accueil, donc il fait passer l'enregistrement de l'ordre à travers OrgContext: le schéma de l'itinéraire de l'organisation, Organization.fromJSON (qui fonctionne) deux fois sur le chemin du navigateur) et les accessoires d'OrgProvider le portent tous, et il prend effet à la sauvegarde. - "Careers Logo Overlay", directement sous "Register Site Logo Overlay". Peint par des kamo-carrières du service de sécurité de couleur cuit dans le theme config.json (10d4a9e), comme les connexions, les inscriptions et les applications. Ce site relit le fichier toutes les heures, et l'indice le dit. Correction également du chemin d'enregistrement pour trois superpositions existantes: connexion, inscription et les applications ont été stockées mais n'ont jamais été refroidies dans l'état sauvegardé, donc leurs lignes en lecture seule ont montré le choix précédent jusqu'à ce qu'il soit rechargé, et le L'édition suivante commence à partir de là. logoOverlayWiring.test.ts marche tous les huit superpositions à travers les sept les emplacements doivent apparaître chacun (état, chargement, tampon d'édition, contrôle sale, PUT le corps, la synchronisation post-sauvegardée, les deux vues), vérifie les deux vues les liste dans le Le même ordre, les contrôles en.json ont chaque nom et indication - le garde i18n ne peut pas voir les clés que la page construite à partir d'une variable - et vérifie les deux Le logos ThemeLogos de NavPri prend la couleur. Contre le précédent LabelManager Il échoue pour la navigation, les carrières et les trois synchronisés après l'enregistrement. Vérifié dans Chrome avec le vrai NavPri bundled sur des contextes stubbés: la boîte de logo est inchangée et la silhouette prend Blanche, Noir et le le secondaire le plus léger, s'est effondré et s'est étendu. Besoignez la bibliothèque kémo-sashared 7d80fa7b et le service de sécurité 10d4a9e pour le deux colonnes à sauvegarder; le dictionnaire porte les quatre cordes anglaises.
· SecurityService
Cuire le logo du site de carrière superposé dans config.json
kamo-careers peint le logo de l'ordonnance dans son en-tête et n'a pas d'OrgContext; il lit le thème config.json sur le serveur, le même login de fichier, les inscriptions et les applications prennent leurs superpositions. Donc les carrières se superposent là aussi, comme careersLogoOverlayColor: le TOKEN se résoudra contre le la palette d'orgs ici, absente quand l'orge n'a choisi rien - ce qui est comment chaque Le client dit "pas de superposition". Besoin de kamo-shared-library 7d80fa7b que cette construction crée des clones à partir de l'essentiel. La superposition du rail de la nav, ajoutée dans le le même engagement de bibliothèque, est dans l'application et atteint le navigateur sur l'enregistrement d'une aire de correspondance lui-même, rien ici ne le fait cuire. Vérifié: l'ensemble de la source d'essai principal et l'ensemble de la source d'essai se compilent contre bibliothèque; 14/14 (deux nouveaux: la clé est portatif, et un rég qui ne superpose que son site d'inscription n'obtient pas un cailles d'emploi), OrgThemeProvisionServiceTest 20/20.
· kamo-shared-library
Un logo superposition pour le nav rail et un pour le site des carrières
Deux autres colonnes dans le vocabulaire home-logo-overlay établies: a jeu, pas un hexagone, donc un og qui rebrands garde une superposition qui correspond ses nouvelles couleurs. Les deux sont nuls sans remplissage - nul n'est PAS à quoi chaque séance ressemble aujourd'hui. Le logo simple peint le logo simple au sommet du kimo-internal rail de la nav primaire. Sa propre colonne parce que le rail est une teinte obscurcie de la couleur primaire; la tête de mât blanche de la page d'accueil veut rarement la même ombre. Livré par OrgContext comme sa page d'accueil frère. Carrières-logo-overlay peint le logo de l'en-tête sur les zoomes. Ce site n'a pas d'OrgContext, de sorte que le service de sécurité écrase la couleur résolue dans le theme config.json, la connexion, l'enregistrement et les applications de la route prennent déjà. patch L'organisation est une LISTE DE L'ALLAGE, donc les deux noms vont là aussi, et un nouveau test marche chaque superposition que la page des paramètres envoie - pas seulement ces deux - parce qu'une colonne la méthode ne nomme pas est acceptée avec un 200 et jamais stocké. Prouvé en supprimant les deux nouvelles lignes: 3 de ses 4 cas échouent. Les colonnes ont été ajoutées à la table des orgs vivants à la main avant cette poussée (en basonboto n'est pas nul et InitializerService n'est pas déployé): TABLEILLANT ALTER GARDE ADD COLONNE PAS EXISTES Navizozo-overlay VARCHAR(24); TABLE D'ALLTER orgs AJOUTER COLONNE IF NOT EXISTS careers-logo-overlay VARCHAR(24);
· kamo-internal
Une tête d'Exec2Exec minimisée fait arrondir un courant de lumière autour de sa jante
Une ligne vers les dirigeants de KamoCRM ne doivent jamais s'asseoir dans le dock en ayant l'impression d'une conversation de plus. C'est La tête minimisée porte maintenant une jante énergétique: un arc or-blanc-à-cisselle faisant le tour de la course hexagone, un contre-courant plus fintant à la poursuite de l'autre voie, et une aura d'or pulsée derrière eux. Sous préfère-un mouvement réduit, il tient toujours comme un anneau d'or brillant. L'effet est une propriété de niveau outil (hexHeadEffect sur l'entrée de la plate-forme Exec), réinjecté avec l'icône sur chaque frayon, donc chaque tête d'Exec2Exec l'obtient et pas d'autre la tête de la boîte.

Votre univers vous attend.
Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.
Gratuit pour toujours — aucune carte de crédit requise