Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-internal
Donnez aux options Linux un Tux qui saute
L'icône à côté de "Linux Desktop" et "Dev Machine" était une statique de 18,6 KB Pingouane. C'est maintenant un vecteur de 1,4 Ko qui rebondit, construit à plat. géométrie d'ellipse de sorte qu'il lit toujours comme un pingouin au 16 px les boutons le rendre à l'intérieur. L'animation est des images clés CSS à l'intérieur du SVG lui-même. Les navigateurs les dirigent pour un fichier chargé par l'intermédiaire de l'img, donc cela ne coûte pas JS, pas de re-remise et non deuxième demande, et elle honore la veille de la réduction de sa propre initiative. Il houblonne deux fois et s'appuie ensuite, parce qu'un pingon rebondissant perpétuellement à côté d'une nav L'étiquette est agitée plutôt que charmante. Vecteur plutôt qu'un GIF parce que quatre couleurs plates et pas de gradients sont les les vecteurs de cas gagnent droit: 555 octets gzippeds contre 19,7 KB pour le même 26 images en tant que GIF de 64 px, et exactes à toutes les tailles au lieu de soft sur un panneau de rétine. Le WebP animé était pire que le GIF ici - une palette est Ce que la couleur plate veut, et les prédicteurs de WebP n'ont rien à voir avec quoi fonctionner. L'administrateurCard avait sa propre copie de la 'img' plutôt que d'appeler le Ensemble partagé, donc l'œuvre d'art avait deux maisons et cet échange aurait nécessitaient deux modifications. Il appelle maintenant LinuxDesktopNavIcon.
· DocsService
Annoncez un épargne classique au membre qui l'a fait
Une WOPI économise sur une version CLASSIC publie maintenant docs.classic-saved. Ainsi l'éditeur Kamo PDF, s'il est ouvert sur la version remplissable du formulaire, peut redessiner les pages sur lesquelles reposent les champs au lieu de montrer celles sur lesquelles ils ont été placés. Core NATS et non-enregistré, correspondant à l'insigne d'entraînement: c'est un coup de pouce en direct, pas un log de journal durable. Un membre dont la douille est en panne l'afframent et voit correct octets la prochaine fois qu'ils ouvrent le document, qui est le comportement sans aucun de ceci. Les idées vont sur le fil comme des cordes. Ils sont au-delà de 2x53, et un nombre nu est arrondi par JSON.parse - l'éditeur se compare alors à un id qui le fait n'existent pas et ignorent tous les cadres qu'il a été envoyé. Rien dans le chemin d'annonce ne peut échouer la sauvegarde: les octets sont déjà stockés, et un 500 ici disait au membre que son édition était perdue alors qu'elle ne l'était pas.
· MediaService
Relais "la version classique vient d'être sauvegardée" à l'éditeur
DocsService publie docs.classic-saved.-memberid après qu'un WOPI a sauvé des terres sur une version CLASSIC; cela le met sur /topic/docs/saves/memberId/sur le STOMP connexion l'application est déjà en attente, donc un éditeur Kamo PDF ouvert sur le la version remplissable redessine au lieu de s'asseoir sur les pages les champs étaient placés au-dessus. Construit en tant que jumeau du relais d'entraînement délibérément - même NATS de base, identique une règle de sujet de un jeton, la même destination par membre - parce qu'un relais avec son les modes de défaillance seraient un deuxième ensemble à apprendre sans but lucratif. Le sujet est gardé par membre sur SEND ainsi que sous SUBSCRIBE. Sans se préparer publierait une carte en direct de la personne qui édite quel document, et un cadre falsifié ferait que l'éditeur de quelqu'un d'autre rejetterait le champ non écorché placement et rechargement.
· DocsService
Save En tant que branches un nouvel original, pas un nouvel exemplaire d'un seul exemplaire
PutRelativeFile n'a pas été mis en œuvre, donc "Save As" dans l'éditeur de LibreOffice l'a fait. Rien. Il fait maintenant ce que le membre veut dire par lui: les octets deviennent un tout nouveau ORIGINAL, comme s'ils avaient téléchargé le fichier, et cet original obtient immédiatement sa propre version CLASSIC - qui est l'id rendu à l'éditeur. Sauver en tant que C'est pourquoi ils les font exactement lorsque le téléchargement et l'ouverture auraient: Un original intact, et une copie classique qu'ils éditent. Retourner la source WOPI du nouvel original rendrait plutôt l'éditeur droit à l'écriture sur un téléchargement, ce qui est la chose que ce modèle existe pour s'arrêter. L'en-tête de cible suggéré n'est pas fiable pour être un nom de fichier. Docs envoie UTF-8 plutôt que l'UTF-7 modifié que la spécification demande, et très souvent n'envoie qu'une extension signifiant "même nom, nouveau format" - prise à la valeur faciale qui produit des documents littéralement nommés ".docx". getWopiBaseUrl est partagé plutôt que copié: une seconde copie dérivée serait manuellement L'éditeur, un hôte de rappel, son jeton n'a jamais été frappé.
· InitializerService
Déplacer les modèles existants sur des rangéesFORM-FORM-FILLABLE
Avant l'existence de versions, mettre les champs de formulaire sur un document joint à un document esign-tentate la rangée directement vers l'original, et l'onglet Modifié était "des originaux qui ont une conception". Une conception appartient maintenant à un dessin dérivé rangée et Originals ne contient que ce qui a été téléchargé - donc sans cela, chaque documenter un membre qui avait déjà mis les champs sur les arrêts figurant dans la rubrique Modifiée. Dérive les lignes manquantes, puis les repères les adhérents. Les deux sont idempotent à leurs propres conditions: l'encart est gardé par NOT EXISTS, et une fois l'img-id d'un modèle nomme la ligne dérivée qu'il ne correspond plus à celui d'un original id. La ligne dérivée partage l'original dat'id plutôt que copier les octets, pour la même raison que le mode d'émission en direct ne fait - rien n'écrit un ImgDat en place. Appliqué à l'avance sur cette impulsion: 4 documents dérivés, 4 modèles repointées, 0 laissé en attente, chacun partageant ses octets d'origine.
· kamo-internal
Semence 13 % des vitres d'un membre avec une couleur, et offrant du verre partout
Deux choses. PARTIE DES ARRIVES LAUNCHPADES COULÉS. Sur la première charge d'un membre, une fois par jour, Panneau a une probabilité de 13% de couleur de palette aléatoire. Assez que la plupart des gens en trouvent un ou deux vitres colorées et la page a une certaine vie en elle; assez peu qu'elle ne se lise jamais comme un décision quelqu'un a prise pour eux. Chaque vitre qu'il peint est à leur chose à changer ou à éblouir ce moment. Jamais deux fois, et le drapeau le dit plutôt que le vide des couleurs: un membre dont rouler n'a rien peint, ou qui a nettoyé ce qu'il a peint, a encore été ensemencé, et les réensemencer sur la charge suivante rependreait un lavabo qu'ils avaient délibérément fait clair. Il ne se déclenche qu'une fois que la liste de volets est COMPLETE - les widgets résolus, les notes ont été récupérées, les options navorées - parce qu'une vitre qui n'était pas encore apparue manquerait sa seule chance, Et il écrit immédiatement plutôt que par le debounce, annulant quoi que ce soit debounce tenait: que l'écriture en attente porte un instantané de pré-seed et annulerait la On écrive qui n'a pas de seconde chance. Le VERRE est un crètre maintenant. Le panneau translucide du produit est un swatch, donc un flottaison flottante note peut être en retrait du matériau sur un autre élément de la page porté - celui surface d'un membre ne pouvait pas revenir à l'aspect original. Il remplace le menu "non couleur" swatch, qui n'a jamais signifié de couleur: sur une note, il s'agit du jaune par défaut, qui est un swatch qui ment sur ce qu'il fait. Une couleur UNSET maintient ce qui signifie exactement ce qu'elle toujours voulu, donc rien d'écrit avant que la palette n'ait été repeinte discrètement. Son bg et son bord sont vraiment hexagones. Quinze places prennent le bord de la couleur résolue pour une barre de défilement, une règle, un caret ou une puce, et la tête hexagonale du dock alimente bg à travers un hexadécimonie un obscurcissant; une valeur translucide tomberait de tous en tant que couleur de repli. Uniquement le le papier lui-même est spécial. Et il reste à l'écart de STICKY-PALETTE, donc une nouvelle note ne peut jamais y faire pivoter - un qui est sorti translucide par hasard serait interprété comme un qui n'a pas réussi à charge.
· kamo-internal
Un menu a modifié et modifié comme ses propres enregistrements
"Ouvrir en documents" et "Edit PDF" ont disparu. Chaque ligne a Modify, qui offre "Modifier en mode rempli de forme" toujours et "Modifier en mode classique" uniquement lorsque le L'éditeur LibreOffice peut ouvrir le fichier. Ce dernier drapeau vient du serveur per document plutôt que du nom de fichier ici: une ligne remplissable sous forme de rapports extension de tout ce sur quoi il est actuellement basé, donc le dérivation dans le navigateur se trompe à l'heure où une version classique existe. L'onglet Modified est maintenant une question plutôt qu'une vue. Il était autrefois - -: les mêmes originaux indiqués deux fois - et a Une version modifiée est une ligne qui lui est propre, que la requête d'origine exclut maintenant. Chaque ligne porte un badge Classique ou Form Fillable, dans une colonne représentée uniquement sur Cet onglet. L'ouverture de l'un ou l'autre éditeur dérive la version dont il a besoin s'il n'y en a pas encore, donc la liste modifiée est invalidée sur le point de savoir si le membre est ou non en le regardant.
· DocsService
Versions modifiées de la fléchage au lieu d'éditer les originaux
Ouvrir un document à l'éditeur LibreOffice ne remet plus la original. Il tire la version CLASSIC de ce document, une fois, réutilisée tous les documents. temps après, et rendu non répétable par un index unique partiel - et éditant que au lieu de cela, qui est ce qui maintient l'onglet Originals tenant les octets du membre téléchargés. POST /api/docs/form-loadable/-id- fait de même pour la ligne de la ligne Kamo PDF editor s'ouvre. La surfusion ne coûte rien jusqu'à ce qu'elle soit à l'heure: une nouvelle version pointe L'original est l'ImgDat existant, et saranImgContent en écrit un nouveau sur le premier Sauvegarder, donc la copie possède ses octets à partir du moment où elle diffère et jamais auparavant. Un classique sauvegarde rebase la ligne remplissable de formulaire sur les nouveaux octets. Les domaines sont adressés par page position et ne sont pas délibérément déplacés avec eux: a edit qui reflue sur les pages peut les égarer, ce qui est la reprise du commerce refusant de laisser un membre éditer un document sur lequel il a déjà mis les champs. A Une recharge ratée est enregistrée et avalée - une ligne remplie de forme caègre est toujours ouvrirablement, et perdre l'édition classique à juste sauvegarder à ce sujet serait pire. La cartographie de la table des séances à l'intention des pays en ligne a maintenant une seule mise en œuvre plutôt qu'une seule. par contrôleur: il décide de l'autorisation qu'une demande porte, et de deux copies sont deux chances pour un d'arrêter de lire le niveau de sécurité et de distribuer le PUBLIC.
· InitializerService
Ajouter imgs.modified-kind et imgs.original-img-id
Les deux restent nuls - null kind signifie que la rangée est un original, donc il y a Rien à remblayer et pas d'étape NOT NULL, contrairement à la forme habituelle d'ajout de colonne. L'indice UNIQUE partiel est "à la plupart d'une version de chaque type par type règle d'origine" position où il ne peut pas être mis en course: deux onglets manquant les deux de la même manière Une recherche et les deux conclusions laisseraient sinon un membre avec deux classiques copies et aucun moyen de savoir laquelle leurs éditis ont atteint. Appliqué à Yugabyte avant cette poussée, selon l'ordonnance qui a pris des liants vers le bas: l'entité à double partagé cartographie les deux colonnes dès qu'elle expédie.
· kamo-shared-library
Diviser un document en sa version originale et dans sa version modifiée
imgs.modified-kind - imgs.original-img-id. On entend par nus la ligne IS a original - les octets qu'un membre téléchargé - qui est la lecture correcte pour chaque ligne qui est antérieure à cela et est pourquoi aucune des deux colonnes n'a besoin d'un remblai. Une ligne dérivée résout ses octets par l'intermédiaire d'un ImgDat plutôt que par original-img-id, donc la référence est nulle et non caucasienne à volonté: La fuite d'un original supprime ses métadonnées, et non son contenu, et ses versions continuer à travailler.
· kamo-internal
Des vitres recolorables et des notes épinglées se recolorables se recolorant la grille
QUATRIEME THINGS, une grille. TITRE DE PERSONNALISATION. Un widget peut maintenant déclarer «custom», et tous les cinq le font. Largeur du registre et la hauteur reste la DEFAULT et la coutume ajoute une poignée, il ne prend pas la conception l'opinion à l'abandon - et à ce vers quoi le membre le fait de le faire est stocké en regard de leur dossier de membre, Un widget qu'ils ont rendu plus grand est plus grand où qu'ils s'inscrivent. La poignée est clavier resizable également: c'est la seule façon de changer la taille d'une vitre, et de le laisser seulement pointer Allait quiconque ne peut pas utiliser une souris avec ce que son organisation a choisi. LES FEURES ROISSES. La piste de la grille est maintenant la moitié d'une unité, ce qui permet à une application de s'encliqueter. plus court qu'un widget: deux pavés d'applications empilent en hauteur un widget occupé. Deux moitiés rangées plus l'écart entre eux est toujours de 236px et la hauteur d'une carte de lanceur a toujours - donc rien d'autre sur la page a été déplacé. Les vitrages app rechargent par rangée seulement; une carte applicative par la colonne est le rythme du lactouve de lancement, et une tuile de lanceur à deux colonnes est un trou dans le grille avec une icône dans celle-ci. Docs, Calculateur et Support commencent deux rangées de grande taille parce que leur Carte IS une liste; tout le reste commence à la moitié d'une ligne et tombe sur une forme compacte qui montre l'icône et le nom sans phrase blurb clipsée en milieu de phrase. COULISSANTE. La palette de notes, le menu des notes, sur chaque volet. Peints à la merde Le verre de la vitre plutôt que sur celui-ci - une carte de lanceur est translucide par conception, donc teinte la carte laverait la couleur à rien. Un widget prend le contrôle en son propre en-tête, parce qu'il a déjà des contrôles dans ce coin et une superposition atterrirait sur le dessus de ses flèches de page; une carte app et une note obtiennent la superposition de coin, et les pas de la puce de broche en dehors de faire de la place. Les notes sont des notes. Ils étaient une bande au-dessus de la grille, ce qui signifiait qu'un membre pouvait Arrêtez chaque volet sur la page à l'exception de ceux-ci. Maintenant ils sont traînés, redimensionnés et colorés comme n'importe quoi d'autre, et toujours un clic d'être pris en charge comme un collant flottant. Note que IS flotteur garde sa fente, grisé et inerte, plutôt que de disparaître: l'enlever était et mal - la vitre que le membre avait positionné a disparu, tout après Il sauta une ramure, et fermant l'adhésif coupa tout le pas de tir. Son contrôle de couleur écrit dans le NOTA, pas à la vitre, de sorte qu'une note n'est pas jaune en deux endroits et bleu dans un tiers.
· kamo-internal
Dites à tous lorsqu'un événement invite l'organisation
· kamo-shared-library
Compter les invités d'un événement sans les charger
· kamo-internal
Inviter les départements, les types d'emplois et l'ensemble de l'organisation
· kamo-internal
Offrir des départements et des types d'emplois, et choisir plusieurs à la fois
· kamo-internal
Trois autres widgets - mail non lu, pistes nécessitant une action, la carte de temps d'aujourd'hui
Le système de widget payé pour lui-même: chacun d'eux est une entrée de registre et un composant, hériter de la grille, la traînée, l'ordre, le spectacle/calage par membre, les réglages l'écran et la politique des cinq-droits sans aucun de ces lieux d'apprentissage de son nom. UNREAD MAIL prend son comptage à partir du websocket EmailService pousse déjà et son enveloppes à partir de l'index des métadonnées, parce qu'un volet qui est à l'écran toute la journée ne doit pas dépenser le budget de connexion IMAP d'un membre sur un résumé. Le nombre n'est donc jamais shad et la liste est occasionnelle, ce qui est le bon chemin. L'ACTION NÉUANTE est en conséquence - les appels déjà manqués, puis les appels sur le point de être, alors les pistes dont le commentaire manquant empêche ce membre d'accepter plus. Il lit à travers le point d'extrémité de la grille EXISTANTe plutôt qu'un nouveau, délibérément: a Une deuxième voie devrait être ré-implémenté au plancher d'autorisation et le PHI à 164,312 b) l'enregistrement de l'accès, et celui qui s'est trompé subtilement serait un trou d'audit qui semble C'est exactement comme une fonctionnalité de travail. Aujourd'hui, le TEMPSARD montre où le membre se trouve, ce qu'il a réellement travaillé (repas et des ruptures prises, c'est pourquoi elle est dérivée des coups de poing plutôt que de temps écoulé), chaque poinçon sur l'enregistrement, et le bouton de poinçon. Il s'agit toujours avant il écrit, par le même dialogue de confirmation, le contrôle de la navigation utilise - un poinçon est un Le fichier de salaire n'est qu'un administrateur des ressources humaines ayant une raison écrite peut corriger. Ce widget avait aussi besoin du système pour faire croître une chose : une disponibilité HOOK. a) le membre frappe une horloge est un fait d'emploi persistant plutôt qu'un droit, de sorte qu'il a d'être pris en charge, et offrir une horloge à quelqu'un qui ne frappe pas une serait pire que pas de widget du tout. Une réponse nulle alors qu'il est inconnu est la charge-porte-charge Le pavé de lancement l'attend plutôt que de rendre une vitre et de le retirer à nouveau. /messages ouvre maintenant un message de ?folder-uid. Le widget de courrier distribue ce lien Et, comme le calendrier avant lui, chaque élément qu'il contenait précédemment atterrissait sur le dossier et a laissé le membre pour retrouver la chose lui-même.
· SecurityService
Semez les widgets de courrier et de plomb, et ajouter une graine universelle pour la carte de temps
Les widgets de courrier et de plomb suivent leurs droits de données exactement comme le font les comptes-poste. ACCESS-MAIL et VEW-LEADS - donc un détenteur gagne aucune donnée qu'il ne pourrait pas déjà atteindre Et les widgets ne sont pas invisibles. Le widget de la carte de temps n'a pas le droit d'hériter de, parce que les poinçons d'un membre sont fermées par leur inscription persistante plutôt que par un droit. Envie de l'enseigner MANAGE-TIMECARDS l'aurait remis aux administrateurs des droits de l'homme, qui, pour la plupart, ne l'ont pas fait. frapper une horloge, et à personne qui ne le fait. PERSONNES AUTRES DROIT ET DROIT DROITAIRES, avec un b) C'est délibérément une barre élevée inscrite dans son javadoc: un droit n'appartient là SEULEMENT que la capacité derrière elle est fermée par quelque chose d'autre qu'un droit, donc l'accorder à Tout le monde n'accorde rien qu'il ne puisse déjà faire. Il ne s'agit pas d'un raccourci pour "Nous aimerions que la plupart des gens aient cela". REQUISE est exclu de chacun d'entre eux, comme partout: c'est la seule politique qui retire le choix d'un membre, et c'est la décision d'une organisation à prendre.
· EmailService
Servir la page d'accueil non condensée à partir de l'index, jamais à partir de l'IDMAP
Un widget sur la page d'accueil est à l'écran pour tout le monde toute la journée, que ce soit ou pas est en train de lire le courrier et les connexions IMAP d'un membre sont un budget partagé de dix par utilisateur et IP pour l'ensemble de la gousse. Donc le condensé non divulé lit-on-metadata.search-index et ne tombe PAS sur le serveur de courrier comme le fait à juste titre le client de courrier; un widget qui a dépensé une connexion par chargement de la page d'accueil vacrait le client il résumés. La conséquence est que le LIST est aussi frais que la dernière synchronisation, et le widget est construit autour de ça: le comte à côté vient du cliché non lu en direct le websocket pousse déjà, donc le nombre de personnes agissent n'est jamais rassis même quand le les enveloppes sont en retard de quelques minutes. Il indique également si la boîte de réception a jamais été indexés, parce que "pas de courrier non lu" et "personne n'a ouvert cette boîte aux lettres" sont les mêmes l'image et des faits très différents. Enveloppes uniquement. body-texte est dans l'index et n'est délibérément pas envoyé: une page d'accueil est la surface supérieure de l'épaule du produit.
· kamo-shared-library
Trois autres widgets domestiques, et celui qui ne peut pas avoir de parent
Un courrier non lu pend et l'action nécessive en tête de VEW-LEADS, les deux par la même règle que les widgets de calendrier: un widget est fermé par le droit qui gouverne les données qu'il montre, donc accorder le widget ne peut jamais être un moyen de contourner cette porte. TIMECARD-TODAY-WIDGET est l'exception, et c'est une exception délibérée. Le membre est le propre les poinçons ne sont pas modélisés comme un droit n'importe où dans cette plate-forme a persisté dans le fait d'emploi, précisément parce qu'un droit s'estomperait à travers une le rôle de l'ensemble des subventions, le mode dieu et le modèle d'orge d'enfants, et disparaîtrait d'un membre licencié précis lorsque le HR doit produire sa dernière carte de temps. La porte sur que les données sont donc plus fortes qu'un droit, ne manquant pas, et le widget honore avant qu'il ne rende. Plutôt que de forcer un parent erroné ou de supprimer silencieusement le invariant, le test prend maintenant une liste d'autorisations de laND avec la raison jointe. Les totaux passent à 218/155/33/30 et 63 racines.
· kamo-internal
Rechercher des services et des types d'emplois aux côtés des personnes
· kamo-internal
Modéliser le public invité d'un événement sur le client
· EmailService
Publier et accepter le public invité d'un événement
· EmailService
Matérialiser le public d'un événement dans ses rangées d'invités
· EmailService
Résoudre le public invité d'un événement en personnes
· kamo-shared-library
Cartographier le public invité d'un événement et la source de chaque participant
· InitializerService
Ajouter la DDL pour le public invité d'un événement
· kamo-internal
Mettez des widgets en direct sur le pas de tir, en commençant par deux bandes de calendrier
Un widget est un vitrage vivant qui partage la grille, la traînée et l'ordre avec l'application des cartes plutôt que d'être assis à côté d'eux. L'ajout de la suivante est une entrée de registre unique plus un composant: il hérite de la grille, le spectacle/cache par membre, l'écran de réglages et la politique des cinq droits sans aucun de ces endroits apprenant son nom. La maçonnerie du rampe de lancement devait disparaître. Maçonnerie positionne des éléments dans des colonnes indépendantes, donc Rien dans celui-ci ne peut jamais être deux colonnes de large, et un système de widget dont la taille la plus large est "tous d'entre eux" ne peuvent pas y vivre. Une grille réelle rend une UNIT une colonne de largeur, une rangée de hauteur - cela signifie la même chose à une carte et à un widget, qui est ce qui Laissez un membre traîner un au-delà de l'autre et qu'il obtienne toujours une page qui s'étend. Pas de dense auto-flux: raccorde les discontinuités en tirant des éléments ultérieurs dans des trous antérieurs, et le L'ordre ici est celui du membre. Les wongles en place par leur organisation rendent dans leur propre bande une grille triable. Les laisser entrer et simplement refuser de les ramasser laisserait encore un le volet mobile doit être largué devant un - le même résultat que la politique existe empêcher, atteint de l'autre côté. L'exposition/la peau est stockée en tant que DEVIATIONS, et non sous la forme d'une liste de ce qui est en cours. Stockage de "ceux-ci sont allumés" gèlerait la page d'un membre au moment où ils l'ont touchée pour la dernière fois: un widget ajouté au Le mois prochain, ou nouvellement accordé, n'apparaîtra jamais. Stockage uniquement lorsque ils diffèrent de leur organisation signifie que les défauts continuent de circuler, et Exigé annule une épreuve stockée, de sorte qu'un changement de politique atteint exactement les membres, il était visant à. Les deux widgets calendriers montrent UN ÉVÉNEMENT PAR UNE ÉVÉE DE LA LARGE DE LA LARGE - quatre côte à côte sur une large Un pavé de lancement, un sur un téléphone - avec des flèches marchant à travers le reste dans des pages de ce même taille. Les créneaux horaires sont mesurés à partir de l'élément plutôt que de lire un point de rupture, donc un widget dans une grille étroite ou à un zoom étrange est dit la vérité. Les événements en cours sont en cours la barre de progression, et chaque décision "c'est-ce que cela se produit maintenant" est compensé par l'horloge du serveur: a un dispositif fonctionnant à quatre minutes à jeun ne doit pas montrer une réunion en cours avant que quelqu'un ne soit en place. c'est ça. Les changements arrivent au-delà d'une connexion STOMP partagée pour toutefois de nombreux widgets sont sur la page, avec un sondage de cinq minutes et une reprise sur l'onglet se concentrer sous-dessous. est le cas où un widget enlevé est retrouvé. le lance-pad ne laisse aucune trace d'une à la conception. Soi seulement: l'agencement d'un membre est stocké contre leur propre session. Chaque interrupteur qui refuse de bouger dit pourquoi, parce que trois de les quatre politiques sont celles de l'organisation et non celles du membre. /calendar ouvre maintenant un événement de ?eventId. Les deux widgets et les cartes de notification distribuer ce lien, et jusqu'à présent il a atterri le mois en cours sans indication quel événement était destiné.
· SecurityService
Semener les widgets du calendrier à tous ceux qui peuvent déjà lire le calendrier
Les deux widgets montrent à un membre exactement ce qui leur montre déjà, donc un calendrier Le lecteur ne prend pas de données qu'il n'a pas pu atteindre - ce qui fait de cela une graine sûre plutôt qu'une subvention. Sans elle, les widgets seraient éteints pour chaque l'organisation sur la plate-forme et les terres invisibles. Semrices AJOUP, OPTIONNELLES et MOBILES. NÉCESSITE volontairement n'est pas: il enlève un la capacité des membres à effacer sa propre page d'accueil, et aucun déploiement n'a le droit de procéder ce choix pour une organisation - un administrateur l'active quand il le pense. NEUF: DROIT DROIT ET SEÉSÉS S'emmène à Map.ofEntries; Map.of tops à dix paires et c'est treize.
· EmailService
Servir et annoncer les widgets du calendrier de la page d'accueil
CalendarWidgetService répond à ce dont un widget a réellement besoin et à la page calendrier hasEarlier/hasLater donc une flèche grise sort au lieu d'offrir une page vide. Le deux champs d'application sont désarticulés à dessein: le calendrier partagé de l'organisation pour un widget, le membre pour l'autre - donc une réunion de l'entreprise apparaît une fois plutôt que sur les deux vitres côte à côte. Ni les ids du calendrier ni l'identifiant du membre de la demande: l'appelant transmet l'organisation de la session et le membre et le service résolve le reste, donc une demande nommant quoi que ce soit d'autre n'a nulle part où le dire. CalendarChangePublisher pousse chaque écriture sur /topic/calendrier/org/org/orgId ou - toujours après l'engagement. La publication en ligne serait envoyer le nudge pendant que l'écriture est inengageue, et un widget qui répond à un nudge de Relecture de la course à la transaction et gagnerait généralement - redessiner avec l'état de l'état Il a déjà entendu parler de ce changement et de ne plus jamais entendre parler du changement. Les deux destinations sont gardées dans WebSocketConfig, dont la garde par or est maintenant une liste de préfixes comme le par membre.
· kamo-shared-library
Donnez à chaque home widget une politique de cinq droits, et pagez le calendrier pour elle
Dix droits arrivent comme deux blocs de cinq droits, un par widget, suspendu VISÉCALENDAIRE, parce qu'un widet doit être fermé par le droit qui régit les données il montre ou accorder le widget est un moyen de contourner cette porte. Chaque bloc est le widget lui-même plus les quatre politiques que chaque widget porte: Ajouté par défaut, Facultatif, Obligatoire et mobile. Les suffixes sont un contrat, pas un style de nommage: le widget le résolveur dérive tous les quatre du nom du parent, donc un widget shipping trois de ils traiteraient silencieusement le quatrième comme un congé pour tous sans rien accorder. RoleRightHierarchyTest maintenant épingle qui forme pour chaque widget il y aura jamais. Le total de la taxonomie épinglée passe à 203/141/32/30 et 62 racines, qui reprend également OVERRIDE-CHAT-POLICY - ajouté en 85b6607 sans mettre à jour les chiffres, de sorte que l'essai a échoué à HEAD. trois ou quatre événements et marchent dans les deux sens, et servir cela à partir de findVisibleToMemberInRange lira tout le calendrier d'un membre sur chaque page d'accueil charger et chaque nudge de websocket à jeter presque tout. La page d'ouverture est la requête mise à la touche inalTime, donc un événement déjà en cours reste sur le widget au lieu de le tomber au moment où il commence.

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