Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· SecurityService
Dizer em que locais cada entrada é realmente traduzida
O site de marketing agora lista todas as versões linguísticas de cada entrada, e cada página de entrada nomeia os outros como seu hreflang alterna. A Tradução linha não é prova de um: TranslateService responde direções ele não tem provedor para com a fonte inglesa, então cada linha ta, e o sw e as linhas de entradas mais antigas, repita o título em inglês palavra por palavra. Nomeação Eles apontariam os motores de busca para páginas canônicas de volta ao inglês. - Está bem. retorna, por entrada, os locais cujo título ou descrição difere do inglês, comparado no banco de dados em lotes de 1.000 ids. - /public/sitemap carrega `locales` por entrada e toma order=oldest, assim que o Os arquivos changelog do sitemap preenchem e nunca mudam. - /público/entrada/{slug} transporta `locales', e `traduzido` agora significa um real tradução em vez de uma linha.
· kamo-internal
Evitar uma organização da Plataforma -> Configuração -> Organizações
A aba Organizações ganha sub-tabs Activos e Void, e cada organização gaveta uma maneira de vocá-lo — ou, na aba Vazio, para restaurá-lo. - Active / Void sub-tabs acima do diretório, contado a partir do servidor activeOrgs / voidedOrgs (que seguem a pesquisa, seja qual for a página aberta). A aba vive no URL como orgStatus=void, como o resto do console view; é um lugar, não um filtro, então Clear o mantém. - A secção Vazio da gaveta (nunca na plataforma org) abre uma confirmação que soletra o que a micção faz: todo o interior é assinado para fora, deixa /rede, login e cada lista, seu criador é tratado como nunca ter criou-o, e nada é apagado. - A gaveta de uma org vazia leva com "Voided <date> by <operator>" e Restaurar; Os seus controlos de ensaio e de produtos da plataforma estão desligados. - Rejeições do servidor — plataforma org, a org em que está inscrito, live sub-orgs, ainda sendo carregados — são mostrados no diálogo, em palavras. - Post ************* por uma rota de retransmissão (O Serviço de Segurança impõe a MANAGEM ORGANIZAÇÕES). Infra-estrutura: biblioteca partilhada-kamo d2c09630, serviço de segurança 6c8d789, serviço de cobrança 072ca5f, mediaservice db90b81; Inglês em kamo-tradução-dictionary deba6215.
· MediaService
A lista já não nomeia uma organização anulada
Uma organização anulada da Plataforma -> Configuração -> Organizações (orgs.is active = FALSE) não existe em nenhum lugar, exceto na aba Void do console. findOwnedOrgsByOwnerIds — a própria cópia da lista de "que orgs faz cada executivo próprio", mantido para o id org ao lado de cada título — agora carrega o mesmo filtrar live-org o achado compartilhadoOwnedTitlesByOwnerIds e findDistinctOwnerUserIds ganhas em kamo-shared-library d2c09630. Pined in Exec2ExecQueryParseTest, que também analisa-o contra o modelo de entidade.
· BillingService
Páginas Ativas e Vazios no diretório org da plataforma
A aba Organizações do console agora se divide em sub-tabs Ativos e Void. A organização nula é orgs.is active = FALSE (definido pelo vazio do SecurityService endpoint); o diretório é o único lugar ainda listando um — na aba Void, para que um operador possa encontrá-lo para restaurar. - GET /api/billing/platform/orgs assume status=void; qualquer outra coisa, incluindo sem status, lista apenas orgs ao vivo. Cada visitante mais velho — o mago do comércio busca do alvo-org entre eles — pergunta sem status, então nenhum deles pode ser mostrou uma organização que já não existe. - As linhas carregam vazio, vazioAt, vazioByUserId e um hidratado vazioByName (uma procura em lote, apenas quando a página tiver anulado as linhas). - Agregados siga a aba, e adicione ActiveOrgs / voidedOrgs, que ignoram o aba (ambas as abas precisam de ambos os números) enquanto honra todos os outros filtros. - Contagens de sub-org deixam de fora crianças vazias. - O snapshot de armazenamento noturno e o relatório de armazenamento da plataforma pulam vazio a história é mantida e a manipulação da lacuna do escritor pega uma org restaurada. Verified as declarações geradas somente leitura contra o banco de dados ao vivo: Active 40 linhas / conta 40 + 0, Vazio 0 linhas.
· SecurityService
Esvaziar uma organização, e não deixar entrar um vazio
Plataforma -> Configuração -> As organizações podem agora anular uma organização. O vazio é orgs.is active = FALSE; este commit adiciona a ação e faz TODOS OS CAMINHOS DE UMA organização recusam uma vazia. A ação - POST ************* e /restore, ORGANIZAÇÕES DE GESTÃO (o próprio direito da aba): - OrgVoidService recusa, não alterando nada: o org da plataforma, o org operador é assinado em, uma org com sub-orgs ao vivo, e uma org ainda sendo cobrado (assinatura ao vivo do PAID com um preço, visando-o ou pago pela sua Contas). Caso contrário, ele define a bandeira, registros nublados at / nucleed by user id, e revoga todas as sessões dos seus membros. A restauração limpa os três. Nada é excluído; membros e dados retornam como eram. - 200 com o novo estado, 404 desconhecido, 409 com uma razão que o console traduz. As entradas em: - KSessionService.createSession — a cintura cada *** é cunhada através — recusa uma org anulada via VoidedOrgGuard (leitura PK descascada, falha em abrir), próxima Para o portão da conta sintética. - my-networks deixa orgs vazios OUT: a tela inicial conta suas linhas isOwner para decidir se um membro criou uma org, então um membro cujo o org foi anulado é oferecido o fluxo create-your-primeiro-org novamente. Todas as redes segue através do getAllOrganização(). - resposta de imitação de enter-as e cross-org 404, como para uma org desaparecida. - A pesquisa de sessão termina uma sessão dentro de uma org vazia (backstop para uma cunhada Antes de a bandeira aterrar). - Troca de dispositivos móveis, auto-login pós-verificação, o diretório de rede pesquisa e a caixa de correio / work-email não vigiado checkups de login skip voided orgs. - Contagem de visão geral da plataforma, varreduras de armazenamento e o relatório de impacto de falhas lido a enumeração ao vivo. Já se candidatou à base de dados ao vivo.
· kamo-shared-library
Uma organização vazia fica de fora de cada listagem e procura no host
Operadores de plataformas agora podem anular uma organização da Plataforma -> Configuração -> Organizações. O vazio são orgs. is active = FALSE — o sinal de entrada e a máquina resolução já estavam verificando — então esta mudança de biblioteca faz as listas que nunca verificou concorda: - findAllLive(): a enumeração de org menos orgs sintéticos e nulos. O ponto de estrangulamento atrás da org. lista, todas as redes e os diagnósticos contam, agora lê-lo. findAllExcludingFakeOwned() permanece assim que os serviços construídos antes disso ainda compilam. - findAllByVerifiedDomain: o domínio de uma org nula já não resolve, por isso pára Aceitar as inscrições e os registos. - findOwned TitlesByOwnerIds / findDistinctOwnerUserIds: a lista Exec2Exec no Nomes mais longos anularam organizações como as de qualquer um. - Organization.voidedAt / voidedByUserId: quem voidou e quando, para o Página Void da consola. Nunca serializado. Colunas aplicadas à base de dados ao vivo Antes deste commit ************* em serviço de segurança). - Organization.isVoided(): lê o estado de registro, nunca armazenado duas vezes. - A organização geral PATCH já não aceita registroEstado: vazio e restauração são os somente escritores de is active, assim que uma configuração salvar que ecoa a linha de volta não pode silenciosamente restaurar uma org vazia.
· kamo-internal
Títulos de tópicos nas dropdowns do bar sentam-se em uma placa mais escura da marca
Nome próprio de um menu em sua parte superior e cada cabeçalho de seção (Suporte "Online Support", "Bugs & Melhorias", "Formação"; "Criar novo" do Docs agora sentar em uma placa arredondada da organização primário, mais escuro, em branco completo — assim um título lê como um rótulo sobre suas linhas em vez de mais uma linha para clicar. O destaque do hover vai mais leve, os títulos ficam mais escuros; os dois nunca se parecem. A placa é preta translúcida (TOPIC PLATE), que sobre o solo é o solo misturado para preto: mesma tonalidade, qualquer que seja a marca. Um "primário fixo em N%" teria saído mais leve do que o chão sob um menu na extremidade esquerda do bar, onde a rampa de costura começa a partir da mistura de 60% do bar. Medida em um navegador real mais de 11 marcas em ambas as extremidades da barra: cada placa é 0,73-0,80 do chão ao lado dele em cada canal (sem mudança de tonalidade), branco sobre ele é 7.4:1 ou melhor, e o deslize Nunca pousa numa direcção. Um guarda em navTopMenuIsWhite.test.ts pinos ambos os títulos para a placa.
· kamo-internal
Faces em mensagens apenas em conversas de três ou mais
Um rosto ao lado de cada mensagem diz as pessoas separadamente, e entre duas pessoas o lado uma mensagem é desenhada em já faz isso - então a face de canto agora aparece Só quando três ou mais pessoas estão na conversa (mostra Faces), e nunca Enquanto a contagem é desconhecida, então um rosto nunca é mostrado e depois levado. - Chat: contado da lista que a janela já mantém, que segue as pessoas entrar e sair ao vivo; um bate-papo de duas pessoas nem sequer pede rostos. - Suporte Social, Exec2Exec: a contagem do servidor, agora na resposta faces (MediaService e722c90) - cada pessoa uma vez, no entanto, muitos lugares que ocupam, um contacto social incluído. Nome/conjuntos de atribuição e a cabeceira da linha que abrir espaço para o rosto aplicar-se apenas quando estiver lá. - SMS e AI Chat são sempre duas partes (um número de membro e outro); o membro e o assistente), então seu código facial é removido inteiramente - para trás para exatamente o que eles eram - juntamente com o usoOwnPhoto e Mensagem de Avatar, Que só usaram.
· MediaService
A resposta dos rostos diz quantas pessoas estão na conversa
Agora tem "participantes" na consola. coloca um rosto ao lado de cada mensagem apenas quando três ou mais pessoas estão em um conversa, uma vez que entre dois, o lado uma mensagem é desenhada em já diz que o escreveu. Contado dos assentos, não dos autores - alguém que escreveu e deixou mantém um rosto no que eles escreveram sem estar na conversa; menos ninguém não mais tempo elegível para uma conversa ao vivo (a própria regra do chat, que sempre mantém o espectador); uma vez por pessoa, porque uma pessoa pode segurar vários assentos (um cliente Exec2Exec está sentado de cada organização que eles escreveram); mais o contacto de uma conversa social, que não tem nenhuma linha de membros. Um web-chat O lugar do visitante é o membro do sistema de orgs, por isso conta uma vez, como eles.
· kamo-marketing
Gere os mapas do site por solicitação e dê a cada alteração sua própria página
/sitemap.xml foi um arquivo de metadados pré-renderizado em tempo de compilação, em um recipiente que não pode chegar ao KBService ou SecurityService, então cada implantação enviada Mapa do site sem nenhum artigo de help-center nele até a primeira atualização ISR. E... /api/sitemap manteve uma segunda cópia da lista de páginas que tinha derivado dele. - /sitemap.xml é um índice sitemap gerado por solicitação. Lista /sitemaps/pages.xml (páginas escritas à mão, páginas de coleção, postagens no blog e todos os artigos de base de conhecimento, com hreflang) e /sitemaps/changelog/<n>.xml (5.000 entradas changelog cada). /api/sitemap e /api/sitemap/changelog/<n> são as renderizações JSON do mesmo módulo, app/lib/sitemap-source.ts. - A lista de páginas escrita à mão vive uma vez, em app/lib/sitemap-pages.ts, e guard: sitemap falha na compilação quando uma rota estática não está listada nem excluídos com uma razão. - /changelog é páginado no servidor: ?page=N, com ?project= e ?type= respondido pelo SecurityService, onde os filtros antigos só escondiam entradas entre Os 50 no ecrã. Cada página é sua própria vista canônica; filtradas são Noindex, sigam. - Cada entrada tem sua própria página em /changelog/<slug>, vinculada às entradas De ambos os lados. É canónico para o Inglês onde o local não tem tradução ainda, e uma grafia mais antiga de seu endereço 308s para o atual Uma. A tira homepage links para estas páginas. - Estatísticas e filtros são lidos no servidor. A rota /api/changelog/stats Eles vieram de ter servido o total do recipiente de construção de 0.
· SecurityService
Dê a cada entrada pública um endereço e página da lista no servidor
O changelog público serviu entradas sem identificador, de modo que o site de marketing não poderia vincular a um nem listá-los em um mapa do site. Cada entrada agora carrega um slug - seu título em inglês em forma de URL, em seguida, doze caracteres de seu commit haxixe - e: - Está bem. retorna um item com os itens De ambos os lados. Ele é encontrado pelo prefixo hash sozinho, então uma entrada cuja o título mudou ainda resolve em seu endereço antigo, e o chamador redireciona para o atual. - GET /api/changelog/public/sitemap retorna o slug, título e data de cada entrada em pedaços de até 5.000, lendo três colunas por linha. - GET /api/changelog/public aceita filtros “project” e “type”, que podem apenas reduza a lista pública, e as ordens em (dateCommited, id): commits partilhando uma data- horário não mais trocar páginas entre dois pedidos. Uma página é Capturado a 100 entradas. As consultas ao vivo em PublicChangelogService em vez de CommitLogRepository, então nada disto precisa de uma liberação da biblioteca compartilhada.
· kamo-internal
Cada mensagem usa o rosto do seu autor, no canto da bolha
Em cada janela popup de chat - Chat, Support, Exec2Exec, Social, SMS, IA Chat - cada mensagem agora carrega uma foto 16x16 que se sobrepõe ao topo esquerdo da bolha canto para uma mensagem à esquerda e seu canto superior direito para um à direita. Cada mensagem, não só a primeira de uma execução: a janela de chat a linha do cabeçalho desapareceu, e as linhas de nome/atribuição estão inseridas para que o rosto nunca fique na sua primeira carta. Iniciais apenas quando a pessoa não tem foto. A face tem três valores (MessageAvatar): uma URL é uma foto, tentada como sua variante sm e então como o arquivo full-size (pequenas variantes são opcionais lado do servidor; falta de uploads antigos Eles); null é iniciais; indefinido - ainda não conhecido - é um disco em branco, então alguém COM uma foto nunca pisca como iniciais enquanto é pesquisado. De onde vêm as fotos. As janelas usadas para ler apenas as próprias lista de membros (membros da equipa ACTIVE da org-assinada), todo o outro lado de um ticket de suporte ou uma conversa Exec2Exec, e qualquer um que tinha deixado um grupo foram desenhados como iniciais com uma foto em seu Perfil. Agora uma loja por conversação (app/lib/chat/sessionFaces.ts) lê O novo GET da MediaService. - toda a gente na conversa E todos que já escreveram nele, a partir de seu próprio perfil, em um host o console pode carregar - através de um arquivo de rota próprio (/api/media não é um prefixo aproximado). A primeira mensagem de um recém- chegado volta a perguntar uma vez; alguém do servidor ainda não cobre, ou todos, enquanto um serviço de mídia mais antigo não pode responder, retorna para o diretório procurar as janelas usadas antes. As linhas que nunca devem usar o rosto do membro são armazenadas em: - um visitante de web-chat (armazenado sob o membro do sistema de org, o proprietário) As iniciais do visitante; - um contato social (armazenado sob o proprietário da conexão) provedor deu, através do proxy de imagem. SMS: os textos enviados são próprios do visualizador (uma conversa pertence a um membro número); os recebidos usam a foto do contato do diretório o cabeçalho leituras, suas iniciais, ou uma marca de telefone para um número em que ninguém é salvo. AI Chat: a foto do membro sobre o que eles pediram; o assistente, que não tem perfil, usa o brilho da IA. Linhas nas listas 4px-embaladas sem linha de nome acima obter 4px de headroom: medido em cromado real, o rosto de outra forma sat 1-2px a partir do timestamp do Mensagem antes.
· kamo-internal
A página Pedidos de Assinatura e a página de gravação de um colega no editor de modelos
Pedidos de Assinatura, entre Modelos e Comuns no Gestor de Documentos: cada documento os modelos da coleção enviados para assinatura, em uma grade páginada no servidor e dividido em três baldes (Não executado, parcialmente executado, Totalmente Executado), cada mostrando quantos são novos para este membro. A página mostra o total que é novo. Olhando para um balde limpa sua contagem para este membro Só, e a conta abre no primeiro balde segurando algo novo. Colunas: o documento e quem o enviou, os signatários (um anel por signo no cor de onde estão), x de y assinado, status, enviado, última atividade e totalmente executado. Cada linha pode cutucar todos ainda esperando, baixar o documento executado, o certificado de conclusão ou ambos como ZIP, e aberto O pedido. A gaveta de pedidos adiciona um empurrão por sinal, o que aconteceu quando, e retirar o pedido com uma razão. O editor de modelos agora registra que ele tem um modelo aberto (um batimento cardíaco) Para salvar ou restaurar um colega. esse arquivo chega até ele, e diz quem fez a mudança. Seu tópico ao vivo foi construído a partir do ID membro como um número JS, que roda ids passados 2^53, assim o O aviso de salvação nunca chegou. Agora usa a string ID.
· ESigService
Pedidos de assinatura para o gestor Docs, com novas contagens por membro
O gerenciador de Docs recebe uma aba Solicitações de Assinatura: cada documento de uma coleção modelos enviados para assinatura, em três baldes por assinaturas (ninguém, alguns, ou todos assinaram), cada um com quantos são novos para este membro. /api/esig/requests lista um balde uma página de cada vez, ordenada e pesquisada em a base de dados. /conta dá a contagem total e nova de cada balde, e /visto registra que um membro olhou para um balde. O que cada membro já viu vive em esign request views Aplicável à mão. por membro, coleção e balde. Um pedido é novo em um balde quando ele entrou naquele balde depois que o membro olhou pela última vez lá. Por pedido: obtê-lo, cutucar os signatários ainda à espera (um reinvite com um linha de lembrete, no máximo uma vez por hora por assinante), retirá-lo, e baixar O documento executado, o certificado de conclusão ou ambos como ZIP. Necessidades de leitura VER DOCUMENTOS; nudging e retirada necessidade EDIT DOCUMENTOS. A request só é acessível através de um modelo em uma coleção que o membro pode Veja, ao seu alcance.
· DocsService
Um salvamento atinge cada colega com o modelo aberto
Uma gravação do arquivo de um modelo disse apenas ao membro que o salvou, então um colega com o mesmo modelo aberto continuou colocando campos sobre páginas o arquivo se moveu A partir de agora. O editor de modelo agora diz quando tem um modelo aberto: POST **************************** a cada 30 segundos enquanto estiver, DELETE quando estiver Fecha. OpenEditorRegistry mantém isso em Redis como um conjunto ordenado por documento (member -> lapso de tempo, 95 s), então um editor que desapareceu sem fechar gotas Por si só. Uma gravação publica uma moldura por membro com o modelo aberto, cada um no tópico do membro, e diz quem fez a mudança. O relógio verifica que o membro pode ler o documento, da forma como cada leitura faz. Uma restauração agora diz aos colegas também, com a versão de design que trouxe de volta, assim seu editor recarrega os campos assim como as páginas.
· MediaService
Uma face para cada mensagem em cada janela de conversação
- Está bem. respostas, para uma conversa, a foto para desenhar ao lado de cada mensagem: todos nela agora E todos os que já escreveram Nela (a lista esquece os que foram embora; as suas mensagens não), cada um listado em memberIds se eles têm ou não uma foto, então o console pode dizer "sem foto: iniciais" de "não perguntado sobre ainda". Fotos são Exec2ExecFaces.memberFotos - foto do perfil do membro, caso contrário o próprio - construído sobre o espectador ao vivo host tema, aquele que o console img-src permite. Uma conversa social também nomeia o seu contacto (não um membro) como «contraparte», com o prestador foto. Por que o servidor: a única fonte do console era o próprio membro do visualizador directório - Membros da equipa activa da org-assinada - Membros tão simples, o todo o outro lado de um ticket de suporte ou uma conversa Exec2Exec, e qualquer pessoa todos os que deixaram um grupo foram desenhados como iniciais com uma foto em seu perfil. A pesquisa por membro pode cair sobre recusa outras orgs. Quem pode perguntar é quem pode ler a transcrição (um membro assinado, uma sessão que existe): um rosto diz menos do que as mensagens ao lado dele. Além disso: a história lida agora marca o que um contato social escreveu como SOCIAL VISITOR sob o nome do contato, como sempre tem a moldura ao vivo. Essas linhas são armazenadas sob o membro do proprietário da conexão, então uma conversa recarregada arquivou o as palavras do contato sob o nome do proprietário, do lado do proprietário quando o proprietário era leitura - e teria colocado a foto do proprietário ao lado deles.
· MediaService
Um link de encontro na conversa, sempre no Kamo Meet da plataforma
* ******************************* permite ambos os lados de uma conversa Exec2Exec adicionar um link de reunião, atrás do mesmo portão que enviar uma mensagem. O encontro é criado como o organização PLATFORM, em Kamo Meet, no domínio ao vivo da plataforma (meet.kamocrm.com/<room>), quem quer que pergunte - o anfitrião do encontro de um cliente branco ou o Zoom iria marcar uma reunião com o KamoCRM executivos em uma empresa KamoCRM está apenas falando com - com o chamador como seu criador. Está. então postou como mensagem do chamador através do Exec2ExecService. post, assim que atinge ambos os lados viva, levantada, marcada e empurrada; uma senha, quando os quartos da plataforma precisam de uma, vai ao seu lado. **************************** resolve Kamo Meet para uma org qualquer fornecedor que tenha escolhido (as suas configurações de reunião ainda se aplicam, as credenciais de outro provedor não), e **************************** cria através dele; o caminho de criação existente é inalterado. Nenhum direito START MEETING é solicitado ao chamador: esse direito é sobre sua própria organização reuniões, e este não é deles.
· kamo-internal
Adicionar um link de reunião para a conversa - sempre Kamo Meet da plataforma
Ambos os lados de uma janela Exec2Exec agora carregam a câmera as outras janelas de bate-papo têm: Adicionar uma Ligação de reunião. O encontro é criado pela MediaService como a organização PLATFORM, sobre Kamo Meet endereço da plataforma (meet.kamocrm.com/...), qualquer que seja o lado pressiona - nunca o o próprio cliente se encontra com o anfitrião ou provedor - e postou como mensagem do chega em ambas as janelas ao vivo, levantada e marcada como qualquer mensagem. Links na transcrição Exec2Exec agora são clicáveis, através do mesmo linkifyPlainText every outra janela de chat usa (exportada da MessageList em vez de copiada).
· kamo-internal
Filtros, rostos e presença da secretária; um crachá Exec2Exec que queima
Centro de Interação > Conversas > Exec2Exec recebe dois filtros sob os sub-tabs: Org Proprietário (Todos sem org Proprietário de org) e Ordem por (Última mensagem □ Última sessão) com um ASC/DESC Troca. Lembrado para a sessão do navegador como todos os lugares no painel, e um novo sessão abre em Todos . Última sessão em . Alguém sem encontros dura de qualquer forma. Cada linha agora mostra a própria foto do cliente (iniciais apenas quando eles não têm nenhum), se Eles estão online, quando entraram pela última vez e quando a conversa foi falada pela última vez em... no fuso horário do membro - ao lado da contagem não lida. A mesa re-ler-se uma vez minuto enquanto é visível, para que a presença não fique estagnada. A janela Exec2Exec tira a foto de cada executivo do KamoCRM do seu perfil de membro do KamoCRM em sua tira participantes, e a foto do cliente no cabeçalho da mesa, roster linha ou da moldura que levantou a janela. Controle Exec2Exec da NavTop, para um cliente e para a mesa, queima enquanto qualquer coisa é não lido: um cometa de ouro, branco e céu luz correndo ao redor do parafuso, uma onda de choque ouro, o Bolso chutando a cada dois segundos e a contagem batendo. Sob o movimento reduzido que detém Ainda e permanece acesa, e a contagem é falada em nome do botão. As contas já eram ao vivo sobre o WebSocket não lido.
· kamo-internal
Arquivos e Modelos, histórico de versões e configurações de versão
Os deputados pediram documentos que mantenham a sua história da forma como organização escolhe, e para modelos que ficam por conta própria da divisão Original/Modificada. Os serviços já registo por documento, img versions, um modo por org e por categoria); Este é o aplicativo da web sobre ele. Gestor de documentos - Abas Arquivos e Modelos substituir Originais e Modificados. Um modelo é um documento com uma camada de modelo, feito a partir de um ficheiro (ou outro template) por "Adicionar Camada de Modelo" e separe-se dele a partir de então. - Ações de linha, na ordem solicitada. Arquivos: Baixar, Editar arquivo, Adicionar camada de modelo, Adicionar ao aglutinante, Compartilhar, Enviar para o lixo. Modelos adicionar Editar modelo após Editar arquivo. Uma acção que o membro não tem direito a não é mostrado; um documento não pode suportar (um PDF no clássico editor, páginas ainda em preparação) é mostrado desativado com sua razão. - Uma coluna da versão: uma leitura da pílula v4, com um ponto âmbar quando um Manual A cópia de trabalho ultrapassou o seu último instantâneo, abrindo o histórico. - A partilha é oferecida em todas as colecções, não só no My Docs. Linhas de lixo pode ser restaurado. Contagens de rodapé são a guia aberta. gaveta de histórico de versões - Páginas da versão selecionada em um palco (um deck das versões sob ele, página por página, os campos de um modelo desenhados sobre eles) e o versões em um trilho, o mais novo primeiro, com o que produziu cada um e quem. - Compare desliza o estado atual em qualquer versão anterior. - Tirar instantâneo (Manual), Restaurar (confirmado nas palavras do modo da categoria: o que a restauração se torna, e o que ela descartaria), Nome uma versão, Baixar qualquer versão, Enviar uma nova versão com progresso. Editor de modelos - Editar o arquivo subjacente abre o próprio arquivo do modelo no clássico editor em outra aba. Cada salvar lá chega sobre o tópico salva; as páginas são refeitas e redigidas sob os campos no local, com nenhum reload da tela cheia e nada perdido não salvo, e a pílula da versão vai para o novo número. Um chip diz que o arquivo está aberto em outro lugar e leva o membro de volta para ele. - O comprimido da versão e a gaveta do histórico substituem o design painel de versão: a versão de um modelo é seu arquivo e seus campos juntos, e uma restauração coloca ambos de volta. - As pré-visualizações da página são chaveadas no ID de conteúdo, para que o cache do navegador possa nunca mostrar páginas de onde o documento foi movido; um PDF ainda sendo o renderizado é esperado em vez de reportado como um erro. Configurações - Gestão de Documentos > Geral: padrão da organização versão (Automatic, Manual snapshots, Off), desenhado como o que cada faz para uma história, e as categorias que definir o seu próprio. - Configuração de uma categoria: siga o padrão ou escolha o seu próprio; categorias que a plataforma trava para Automatic dizer isso. - A tabela de categorias ganha uma coluna de Versionamento. As cordas do dicionário pousaram primeiro no dicionário kamo-tradução 9b83d282.
· MediaService
Faces na mesa – foto de um cliente, última entrada e presença
A lista da mesa agora carrega, para cada cliente, sua própria foto (users.avatar id, built on o host de tema ao vivo do operador — o único de onde o console carrega imagens), quando Última sessão iniciada em qualquer lugar da plataforma (users.last login, analisado uma vez e enviado em forma de últimaAtividadeAt), e se alguma de suas linhas de membros detém um soquete ao vivo. Os participantes tiram a foto de cada executivo do KamoCRM do seu perfil de membro do KamoCRM (member avatar, else the person's), construído para o console do espectador; e o quadro que levanta uma janela de mesa carrega a foto do cliente ao lado do nome. Tudo isso vive em um pequeno componente Exec2ExecFaces: carregado pelo id ao invés de fora do preguiçoso Associação Associada (cujo proxy não tem caminho de foto), um avatar lido e uma varredura de presença por página, e cada falha degrada-se para iniciais / offline em vez de falhar na lista.
· DocsService
Leia a camada de um modelo pela versão de design
O histórico de versões desenha os campos de um modelo sobre as páginas de cada versão. Pediu-lhes através de uma versão do documento (/ {imgId}/{n}/design), e um cópia de trabalho do template não tem nenhum: seus campos foram salvos após o último snapshot, em uma versão de design sem nomes de versão de documento ainda, então o o estado atual não pôde ser desenhado em versão manual. - Está bem. lê o camada por versão de design em vez, atrás dos mesmos portões que o resto de a história. Um arquivo não tem camada e respostas sem nenhuma.
· ConversionService
Enviar uma nova versão de um documento
A única maneira de alterar um arquivo que o editor de documentos não pode abrir - um PDF acima de tudo, que é o que mais Os modelos são. * ******************************* toma o novo ficheiro, verifica- o para malware e conteúdo-aborda exatamente como um primeiro upload, e entrega a mudança para **************************** (kamo-shared-library 6d0523e8): id, nome, compartilhamentos, aglutinantes e camada de modelo, e o modo de versão da sua categoria decide o que é conservado do que detinha - uma nova versão sob Automatic, a cópia de trabalho movendo-se sob Manual, e sobrescrever em Desabilitado. As miniaturas de versão PDF e página são feitas para os novos bytes pelo Mesmo oleoduto que um upload executa. EDIT DOCUMENTS, não CREATE DOCUMENTS: nada de novo é criado. Política de extensão da categoria aplica- se **************** é público para isto), e o tipo é lido do bytes - uma nova versão pode ser um formato diferente, e a extensão do nome segue-o. Recusado para um pacote legal EXECUTED - o registro assinado RH emitido a um membro, que ninguém dá uma nova versão, nem mesmo seu assunto - através de EmitidoArtifactLookup, um repositório local somente para leitura sobre a entidade de atribuição partilhada; e para as colecções hipotecárias por parte, que o genérico Endpoints de imagem nunca tocam. esign.repos agora está digitalizado aqui, porque uma versão de um modelo registra a versão de design da sua camada.
· ESigService
Salvar os campos de um modelo é uma versão do modelo
Um modelo é um documento com uma camada de campos sobre ele, e uma versão dele é ambas as metades: seu bytes e essa camada. Os salvamentos do arquivo subjacente já atingem o histórico da versão (kamo-shared-library 6d0523e8, docsservice 3ef26d1); esta é a outra metade. salvar o Design e RetrocederDesign entregar a mudança para ************* no mesmo transação como o design escrever, assim uma versão nunca nomeia um projeto que foi rebolo. O que escreve é o modo de versão da categoria: em Automático uma nova versão do modelo (um membro economiza dentro de dez minutos crescer uma versão, então pressionando Salvar após cada campo é ainda uma versão do trabalho), no Manual a cópia de trabalho move, em Desabilitado nada. A layer keyed em algo que não é um documento id não tem histórico para escrever, e salva como antes.
· DocsService
Arquivos e modelos, editados no local, com as versões que cada categoria mantém
Um documento era dois registros: o upload, que nada editou, e uma cópia modificada derivada do É a primeira vez que alguém o abre em qualquer editor. O gerente do Docs mostrou o par como "Originais" e "Modificado", e os membros acharam confuso. Um documento é um registro agora, e o que cada um muda keeps do conteúdo que substitui é o modo de versão da categoria (kamo-shared-library 6d0523e8): Desactivado, Automático ou Manual. Edição - /open edita o próprio documento - um arquivo, ou os próprios bytes de um modelo ("Editando Arquivo Subjacente"). /new abre o documento que criou. Nem deriva mais uma cópia. - Um salvamento clássico passa por uma nova versão. Automático (o token WOPI agora carrega um ID de sessão, então uma sessão que salva automaticamente é uma versão), a cópia de trabalho movendo-se sob Manual, uma substituição sob Desabilitado. - O aviso de salvamento agora dispara para qualquer documento cujos bytes realmente mudaram - não para um re-enviado arquivo - e carrega a versão que escreveu; um editor de modelo aberto no documento redesenha. - Salvar Como faz um novo FILE eo editor continua nele. - Um salvamento ainda chegando para uma cópia clássica deixada pelo modelo antigo (uma aba aberta antes da implantação) pousa em seu original em vez de uma linha nada lista. Modelos - Post ************************* ("Adicionar camada de modelo"): um novo modelo que compartilha o bytes de origem e nada mais a partir de então, na mesma coleção, pasta e nível de acesso. Ramificado a partir de um modelo que pode transportar os campos desse modelo: assinantes são copiados e cada singerUid no projeto é reescrito para sua cópia. Sua camada é nomeada em sua homenagem, e sua primeira A versão grava do que foi feito. Toma CREATE DOCUMENTS - ele faz um documento. - /form-filável abre apenas um modelo; um arquivo responde 409 NOT A TEMPLATE. Versões... - histórico; instantâneo (com um nome opcional); renomear; restaurar; e download de cada versão, PDF, miniaturas de página e design de camada de modelo. Os mesmos portões que os caminhos do byte de imagem: VER / EDIT Documentos, organização e apuramento, a porta de pacotes emitida pelo RH, a hipoteca por partido coleções, e a auditoria de acesso PHI em cada byte lido. Os bytes da versão são imutáveis, por isso eles estão em cache como tal, e uma versão antiga é chamada de "Nome (v3).ext". Listagem e configurações - A lista é uma consulta (DocumentListQuery, sobre um repositório de especificações local): o antigo filtro de memória após o paging poderia soltar um tipo raro - um modelo entre 300 arquivos - fora da página. apenas / templatesApenas selecione as duas abas; as linhas carregam a bandeira do modelo, o ID do conteúdo e Um resumo da versão. As cópias clássicas do antigo modelo deixado nunca são listadas. - Configurações: GET oPUT /imaging/settings/versioning para o padrão da organização; assoc-config e as categorias carregam o cancelamento de cada categoria, o que ele resolve, e se ele está bloqueado. Escreve tomar MANAGEM DOCS SETTINGS, que as páginas de configuração sempre exigido e estes endpoints nunca Verificado. - Clássico salva agora miniaturas de página chave no próprio dat do documento, como os uploads sempre fizeram; o os leitores de miniaturas olham em ambos os lugares, então os documentos salvos antes de hoje ainda mostram suas páginas. Esquema: **************************** (aplicado). Dados: Corre assim que esta construção for lançada. as linhas derivadas com uma camada de modelo tornam-se modelos, as 2 edições clássicas ao vivo dobram originais como v2, e cada cópia clássica é aposentada.
· kamo-shared-library
Versões do documento e o modo de versão que uma organização escolhe
Os documentos eram dois registros: o upload, que nada editou, e uma cópia modificada derivada do primeira vez que alguém o abriu para editar. Os membros acharam o par confuso, e não encaixava ninguém regras reais - uma organização quer cada edição mantida, outra quer uma cópia e nenhum histórico, Terceiro quer congelar um estado de propósito e continuar trabalhando em cima dele. Um documento é um registro agora, e o que acontece com seu conteúdo anterior quando ele muda é um modo de versão escolhido por organização (img org assoc.versioning mode) e por categoria de documento **************** que ganha: A mudança substitui. Uma cópia, sem história. - AUTO: cada mudança é a próxima versão e a antiga é mantida. Uma sessão de edição clássica é uma versão, no entanto, muitas vezes salva automaticamente; um membro template-layer salva dentro de dez minutos são uma versão também. - MANUAL: alterações sobrescrever uma cópia de trabalho no topo do último instantâneo; um membro instantâneos para manter um estado permanentemente e continua a editar em cima dele. O upload é o primeiro instantâneo. Desmarcado em todos os lugares, uma categoria é AUTO - o único modo que não perde nada, como o modelo que substitui Nunca perdi um carregamento. Uma categoria cujos documentos são registros (sobrescrever e não definir, por exemplo. Quadros de pacientes) está bloqueado para AUTO. - ImgVersion / img versions: uma versão é um POINTER para a linha img dats de conteúdo documento detido, mais a versão de design da camada de modelo em um modelo. Manter um não custa nada até que os bytes continuem sem ele. - DocumentVersioning Serviço: o caminho de escrita para "o conteúdo deste documento mudou" - applyContentChange, recordTemplateLayerChange, snapshot, restaura, recordBranch - assim os modos significa o mesmo se a mudança veio de uma gravação clássica (DocsService), um novo upload sobre o documento (ConversionService) ou uma camada de modelo salva (ESigService). As versões são escritas lazily: um documento que nunca mudou não tem nenhum, e a primeira mudança mantida escreve v1 do state before it, para que uma organização possa ativar o versioning a qualquer momento sem backfill. Restaurar é uma nova versão sob AUTO; história nunca é reescrita. O sinal eletrónico repositórios são ObjectProviders, uma vez que nem todos os serviços os verificam (SharedLibBeanSafetyTest). - Img.isTemplate() sobre o flag has form layer existente, e isRetiradoDerivedCopy() para o cópias clássicas do antigo modelo deixado para trás, que nenhuma listagem mostra novamente. - ******************* para comprimidos de versão numa página de modelos numa consulta. É público, por isso uma nova versão cumpre a regra do primeiro upload. O esquema é: antes deste commit: img org assoc é lido em cada upload, então a coluna tinha que existir primeiro.
· kamo-internal
Sobreposição de Logotipo Nav e Sobreposição de Logotipo de Carreiras
Comportamento & Rotulagem ganha mais duas sobreposições de logotipo no vocabulário outros seis uso - um token, resolvido contra a paleta do próprio org: - "Nav Logo Overlay", diretamente sob "Home Page Logo Overlay". Pinta o logotipo simples no topo do trilho de navegação primária (NavPri) - qualquer que seja marcar os programas ferroviários, empresa ou software - colapsou e expandiu. In-app como seu irmão home page, então ele monta o registro org através OrgContext: esquema da rota org, Organização. fromJSON (que funciona duas vezes no caminho para o navegador) e adereços da OrgProvider todos carregam, e faz efeito na salvação. - "Carreira Logo Overlay", diretamente em "Register Site Logo Overlay". Pintado por kamo-carreiras do serviço de segurança de cor assa para o tema config.json (10d4a9e), como o login, inscrição e aplicativos. Esse site re-leia o arquivo a cada hora, e a dica diz isso. Também corrige o caminho de salvamento para três sobreposições existentes: sign-in, sign-up e aplicativos foram armazenados, mas nunca copiados de volta para o estado salvo, então suas linhas somente de leitura mostraram a escolha anterior até uma recarga, a próxima edição começou a partir dela. logoOverlayWiring.test.ts anda todos os oito sobreposições através dos sete lugares que cada um deve aparecer (estado, carga, buffer de edição, verificação suja, PUT body, post- save sync, ambas as views), verifica ambas as views listá- las na mesma ordem, verifica en.json tem cada nome e dica - o guarda i18n não pode ver as chaves que a página compila a partir de uma variável - e verifica ambas as Os ThemeLogos do NavPri tomam a cor. Contra o gerenciador de etiquetas anterior falha na navegação, carreiras, e os três pós-salvadores desaparecidos. Verificado no Chrome com o NavPri real empacotado sobre contextos stubbed: a caixa de logotipo está inalterada e a silhueta leva Branco, Preto e o O secundário mais leve de org, entrou em colapso e expandiu-se. Necessários Kamo-shared-library 7d80fa7b e serviço de segurança duas colunas para salvar; o dicionário carrega as quatro cordas inglesas.
· SecurityService
Asse o logotipo do site carreiras sobreposição em config.json
kamo-carreiras pinta o logotipo da org em seu cabeçalho e não tem OrgContext; lê o tema config.json no servidor, o mesmo arquivo de login, registrar e aplicativos tomar suas sobreposições de. Então, a sobreposição de carreiras vai também, como carreirasLogoOverlayColor: o TOKEN resolveu contra o paleta de org aqui, ausente quando o org escolheu nenhum - que é como cada O cliente lê "sem sobreposição". Precisa de uma biblioteca partilhada com kamo 7d80fa7b **************************** que esta construção clones de main. A sobreposição do carril de navegação, adicionado no mesma biblioteca commit, é in-app e atinge o navegador no registro org em si; nada aqui o assa. Verificado: main e toda a fonte de teste definida compila contra isso biblioteca; **************************** 14/14 (dois novos: a chave é transportado, e uma org que sobrepõe apenas o seu site de inscrição carreiras chave), OrgThemeProvisionServiceTest 20/20.
· kamo-shared-library
Um logotipo sobreposição para o nav rail e um para o site carreiras
Mais duas colunas no vocabulário home logo overlay estabelecido: a token, não um hex, então uma org que rebrands mantém uma sobreposição que combina as suas novas cores. Ambos nulláveis sem backfill - null é NENHUM, que é como se parece cada org hoje. nav logo overlay pinta o logotipo simples no topo do kamo-internal Trilho de navegação primário. Sua própria coluna porque o trilho é uma sombra escura de a cor primária; o masthead branco da página inicial raramente quer o mesmo sombra. Entregue através do OrgContext como seu irmão home page. careers logo overlay pinta o logotipo do cabeçalho em kamo-carreiras. Aquele sítio. não tem OrgContext, por isso o serviço de segurança ajusta a cor resolvida na tema config.json, o login de rota, registro e aplicativos já tomar. patchOrganização é um ALLOW-LIST, então ambos os nomes vão lá também, e um novo test walks cada sobreposição da página de configurações envia - não apenas estes dois - porque uma coluna o método não nome é aceito com um 200 e nunca armazenado. Provado pela remoção das duas novas linhas: 3 de seus 4 casos falham. As colunas foram adicionadas à tabela de orgs ao vivo à mão antes deste empurrão (ddl-auto não é nenhum e o InicializerService não é implementado): TABELA ALTERA orgS ADD COLUNN SE NÃO EXISTE NAV logo overlay VARCHAR(24); TABELA ALTA orgS ADD COLUNN SE NÃO EXISTE carreiras logo overlay VARCHAR(24);
· kamo-internal
Uma cabeça Exec2Exec minimizada executa uma corrente de luz ao redor de sua borda
Uma linha para os executivos do KamoCRM nunca deve sentar-se na doca parecendo mais uma conversa. Sua cabeça minimizada agora carrega uma borda de energia: um arco de ouro-para-branco-para-céu hexágono, uma contra-corrente mais fina perseguindo o outro caminho, e um pulsante ouro aura atrás Eles. Sob preferes-reduzido-moção que mantém ainda como um anel de ouro brilhante. O efeito é uma propriedade de nível de ferramenta (hexHeadEffect na entrada da plataforma Exec2Exec), re-injectado com o ícone em cada desova, então cada cabeça Exec2Exec obtê-lo e nenhum outro A cabeça pode.

Seu universo está esperando.
Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.
Gratuito para sempre — não é necessário cartão de crédito