Pregunta
¿Cómo se ocultan los formularios de ticket en función de la organización de un usuario?
Respuesta
Descargo de responsabilidad: Este artículo se ofrece con fines de instrucción únicamente. Zendesk no ofrece soporte para el código ni lo garantiza. Zendesk tampoco puede admitir tecnologías de terceros como JavaScript, jQuery o CSS. Publique cualquier problema que tenga en la sección de comentarios o intente buscar una solución en Internet.
Para ocultar formularios de ticket específicos según el nombre de la organización del usuario, siga estos pasos:
Nota: Si su tema usa Guide Templating V2, jQuery debe ser importado. Si desea más detalles, consulte el artículo: Importar o actualizar jQuery.
Paso 1: Busque la ID del formulario de ticket
- Vaya al Centro de administración, vaya a la página Formularios de ticket y seleccione el formulario de ticket correspondiente.
- Busque el número de ID en la URL después de la última barra diagonal.
Paso 2: Busque el nombre de la organización
- Vaya al Centro de administración y diríjase a Personas.
- Explore o busque organizaciones para encontrar el nombre correcto de la organización.
Paso 3: Edite el JavaScript
Nota: Si el usuario no copia todos los caracteres como “;” y “}” de la plantilla, el código no funcionará según lo previsto y puede impedir que el usuario acceda al menú desplegable del perfil de usuario y vea cosas como el botón Mis actividades y el botón Cerrar sesión.
- En Guide, haga clic en el ícono Personalizar diseño () en la barra lateral.
- Haga clic en el tema que desea editar para abrirlo.
- Haga clic en el menú de opciones y seleccione Editar código y Script.js.
- Copie el bloque de código siguiente.
$(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); }); } });
- Reemplace la variable
formID = 6502769669773
con la ID del formulario de ticket que desea ocultar. - Reemplace
"ZENDESK"
con el nombre de la organización para la cual desea que se vea el formulario de ticket. - Pegue el código en la plantilla de JavaScript del código del Centro de ayuda.
- Guarde la plantilla y publique los cambios.
El código proporcionado reserva espacio para otras organizaciones. Para agregar formularios y organizaciones adicionales, copie la declaración if anterior y colóquela bajo la declaración if existente como se muestra a continuación y asegúrese de reemplazar la ID del formulario de ticket con la correcta y la organización que desea verificar y ver si el usuario se encuentra en ella. Repita este procedimiento para todos los formularios de ticket y organizaciones que desee.
Nota: Si desea cambiar el comportamiento del código para mostrar un formulario de ticket a todas las organizaciones excepto la especificada, elimine el operador NOT
(!)
de la declaración 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();
}
Nota: Este flujo de trabajo no funciona para los usuarios no autenticados ni para los usuarios que no tienen una organización. Para estos usuarios, se mostrarán todos los formularios.