Pergunta
Como posso ocultar formulários de ticket com base na organização de um usuário?
Resposta
Aviso Legal: Este artigo destina-se apenas a fins informativos. A Zendesk não oferece suporte nem garantia ao código. A Zendesk também não oferece suporte à tecnologias terceirizadas como JavaScript, jQuery ou CSS. Publique problemas encontrados na seção de comentários ou pesquise por uma solução online.
Para ocultar formulários de tickets específicos com base no nome da organização do usuário, execute as seguintes etapas:
Observação: Se o seu tema usa Guide Templating V2, jQuery será necessário ser importado. Para obter detalhes completos, consulte o artigo: Importação ou atualização do jQuery.
Etapa 1: Encontre o ID do formulário de ticket
- Vá para a Central de administração, vá para página Formulários de ticket e selecione o formulário de ticket adequado.
- Encontre o número da ID no URL após a última barra.
Etapa 2: Encontre o nome da organização
- Vá para a Central de administração e vá para Pessoas.
- Explore ou pesquise as organizações para localizar o nome da organização correta.
Etapa 3: Edite o JavaScript
Observação: Se o usuário não copiar todos os caracteres como “;” e “}” do modelo, o código não funcionará conforme o esperado e poderá impedir que o usuário acesse a lista suspensa de perfil do usuário e veja itens como o botão Minhas atividades e Sair.
- No Guide, clique no ícone Painel de personalização () na barra lateral.
- Clique no tema que você deseja editar para abri-lo.
- Clique no menu de opções, selecione Editar código e selecione Script.js.
- Copie o bloco de códigos apresentado abaixo.
$(document).ready(function() { var formID = 6502769669773; // Change this to the form ID you wish to remove var userOrgs = window.HelpCenter.user.organizations; var userOrgNames = userOrgs.map(org => org.name); if (!(userOrgNames.includes("ZENDESK"))) { // Specify the organization name here // If the user does not belong to the organization specified, remove the form option from the dropdown $('#request_issue_type_select option[value="' + formID + '"]').remove(); $('.nesty-panel').on('DOMNodeInserted', function(e) { $(this).children('ul').children().remove('#' + formID); }); } });
- Substitua a variável
formID = 6502769669773
pela ID do formulário de ticket que você quer ocultar. - Substitua
"ZENDESK"
pelo nome da organização para a qual você deseja que o formulário de ticket fique visível. - Cole o código no modelo JavaScript do seu código da central de ajuda.
- Salve seu modelo e publique as alterações.
O código fornecido reserva espaço para outras organizações. Para adicionar mais formulários e organizações, copie a instrução if acima e coloque-a na instrução if existente, como abaixo, garantindo a substituição da ID do formulário de ticket pela correta e a organização na qual você deseja verificar se o usuário está participando. Repita isso para os formulários de ticket e organizações desejados.
Observação: Se você quiser alterar o comportamento do código para exibir um formulário de ticket para todas as organizações, exceto a especificada, remova o operador NOT
(!)
da instrução if.
for (var c in HelpCenter.user.organizations) {
if (HelpCenter.user.organizations[c].name !== "ZENDESK"){
$("#TICKT_FORM_ID").remove();
}if (HelpCenter.user.organizations[c].name !== "MYORG"){
$("#TICKET_FORM_ID2").remove();
}
Observação: Esse fluxo de trabalho não funciona para usuários não autenticados ou para os que não têm uma organização. Para esses usuários, todos os formulários serão exibidos.