Discourse Mostrar Nome Completo nas Menções

|||
|-|-|-|
| :eyeglasses:|Preview| https://theme-creator.discourse.org/theme/megothss/discourse-show-name-mentions |
| :hammer_and_wrench:|Repository| GitHub - megothss/discourse-show-name-mentions: A discourse theme component to display the full name instead of usernames in @mentions |
| :question:|Install Guide|Como instalar um tema ou componente de tema|
| :open_book:|New to Discourse Themes?| Guia para iniciantes sobre o uso de temas do Discourse

Install this theme component

Um componente de tema para exibir o nome completo em vez de nomes de usuário em menções (@).

Este componente de tema carrega o nome completo do usuário e exibe @nomedeusuario em vez de @nomedeusuário nas menções.

Este componente funciona simplesmente substituindo o nome de usuário pelo nome do usuário (se disponível) ao exibir as postagens. Nada muda durante a edição. Você ainda marca @nomedeusuário como sempre no compositor.

Ele também adiciona a classe .mention-fullname ao elemento âncora a.mention se você desejar estilizar as menções de nome completo de forma distinta.

A exibição do cartão ao clicar nas menções @nomedeusuario permanece totalmente funcional.

Caso de uso:

Imagine uma instância do Discourse onde cada nome de usuário segue o padrão X9999999 (uma letra e sete números). Agora imagine que há 100 mil usuários registrados.

Não é muito amigável, certo? Infelizmente, este é um cenário muito real e não imaginário. A instância do Discourse está vinculada ao SSO e todos os nomes de usuário seguem a política corporativa.

É muito melhor neste caso ler @John Doe em vez de @X9999999.

Configurações:

  • show_fullname_in_mentions: Se ativado, as menções @ mostrarão o @nomedeusuario em vez do @nomedeusuário
17 curtidas

Olá Sérgio, obrigado pelo componente de tema!

Eu tentei, mas depois de experimentar, vejo que ele cria alguma inconsistência em termos de UX.

É o que acontece: tenho este usuário cujo nome de usuário é “oli44” e nome completo “Henri Oliver”. Com o seu componente de tema, agora exibe “Henri Oliver”, o que é ótimo e adiciona melhor contexto. Mas então, digamos que eu sou outro usuário que não sabe que “Henri Oliver” atende pelo nome de usuário “oli44”, como posso mencioná-lo em minha postagem?

Vou procurar por “Henri Oliver” e de fato verei “oli44”, mas como posso saber que é a pessoa real?

Por esse motivo, como está, finalmente não o ativarei por enquanto. Você conhece algum outro componente de tema/plugin que resolveria esse problema? Tentei procurar por isso, mas não consegui encontrar.

Ou talvez haja uma maneira de o seu componente de tema ainda mostrar o nome de usuário (por exemplo: @Henri Oliver (oli44)) para que, quando eu precisar mencionar essa pessoa, eu saiba o que procurar?

Obrigado de qualquer forma por esta ótima adição.

3 curtidas

Você simplesmente digita @ seguido por Henri Oliver. Após a confirmação, @+nome de usuário será inserido na sua postagem.

Ao pesquisar, tanto o nome de usuário quanto o nome completo são exibidos.
Qual é o problema?

Você pode personalizar a renderização em um fork facilmente:

1 curtida

Vejo duas questões:

Haverá uma requisição ajax por menção ao servidor.
Isso pode levar a limitação em páginas com muitos nomes de usuário (como diretórios de usuários fornecidos pelo usuário)?

A tradução de nome de usuário para nome completo em cache não reconhecerá alterações no nome completo. Quanto tempo vive este cache?

Gostaria de saber se a informação necessária (nome de usuário → nome completo) poderia ser fornecida através de um plugin complementar, o que tornaria essas questões obsoletas.

Como estávamos enfrentando os problemas esperados, criei um plugin que fornece os nomes completos junto com as menções:

Consequentemente, a solicitação ajax foi removida do componente.

Também adicionei uma opção para configurar o template usado para renderizar menções:

2 curtidas

As requisições ajax eram obrigatórias se quiséssemos nos ater a um componente de tema?

Se for esse o caso, convido você a criar um novo tópico de Plugin, se considerar seu trabalho confiável o suficiente para ser usado por outras pessoas :slight_smile:

Não tenho permissão para escrever nessa categoria…

Não sei. Como estou apenas investigando o desenvolvimento de plugins/componentes, escolhi coletar esses dois hacks para obter o comportamento desejado.

Mas talvez outros queiram se juntar para aprimorá-lo.

1 curtida

Você precisa solicitar acesso na página do grupo :slight_smile:

https://meta.discourse.org/g/plugin_authors

1 curtida

Você acabou de postar isso e eu acabei de instalar o plugin do autor original assim que você postou. A questão é que notei que o plugin do autor original não suporta nomes completos para grupos. No entanto, parece que você adicionou grupos. Se sim, parabéns! Seu plugin merece seu próprio tópico, dado o que você habilitou!

Talvez eu não esteja fazendo algo certo, mas ativei seu componente de tema e plugin e não estou mais vendo o nome completo nas menções.

Você reaqueceu suas postagens?

1 curtida

Obrigado! Agora eu fiz. A pesquisa de grupos também seria possível? Eu tenho meu grupo trust_level_0 chamado everyone. Se o plugin também pudesse usar o nome completo para as menções de grupo, esta seria uma maneira legal de fazer as menções globais trust_level_0 parecerem menções de everyone.

Agora ele usa (você também precisa atualizar o componente).

Infelizmente, o link do nome do grupo não abrirá o grupo quando clicado.

1 curtida

Como o plugin inclui as informações ao assar os posts. Esteja ciente de que, se o usuário atualizar o nome completo, ele não será atualizado no post, a menos que o post seja re-assado.

Preciso atualizar algumas coisas neste componente de tema. Remover as chamadas Ajax agora é possível se o status do usuário estiver habilitado.

Tentarei fazer isso em breve.

2 curtidas

Exatamente. Ele deve observar as alterações nos nomes de usuários e grupos:

2 curtidas

Refazer é caro. Isso pode ser problemático em algumas comunidades, dependendo da frequência com que os usuários mudam seus nomes.

Tenha isso em mente.

1 curtida

Obrigado. Em nossa comunidade escolar mais formal, os nomes não mudarão com frequência.

Em princípio, os nomes poderiam ser adicionados enquanto se envia conteúdo já pronto. Parece que você prefere este caminho?

Funciona na maioria das vezes. Não tenho certeza por quê, mas mesmo que eu tenha o nível de confiança 0 renomeado para todos, ele não aplica o rótulo a ele.


Grupos que não são de nível de confiança funcionam e exibem seus nomes completos.

EDIT: Ah, porque a coluna full_name na tabela groups não contém o valor modificado do nome completo dos grupos de nível de confiança! Verificando o explorador de dados, está nulo. Hmm?

Pela imagem acima, parece que você alterou as entradas de i18n para trust_level_0.

Tente Group.find(10).update! full_name: \"TESTTEST\" no console do rails.

Isso pode ter efeitos colaterais, considerando que alterar nomes completos de grupos internos não é permitido na interface do usuário.

De fato. Tentei isso e funcionou sem nenhum impacto sério. Existe alguma maneira de incorporar grupos sem ter que usar o plugin e apenas usando o componente de tema? Isso é realmente preferível para mim, já que não gosto de ter que fazer “raking” se puder evitar.