Domanda
Come posso nascondere i moduli ticket in base all'organizzazione di un utente?
Risposta
Avvertenza: Questo articolo viene fornito solo a scopo didattico. Zendesk non offre alcun supporto o garanzia per il codice. Inoltre, Zendesk non supporta tecnologie di terzi come JavaScript, jQuery o CSS. Se riscontri eventuali problemi, lascia un commento o prova a cercare una soluzione online.
Per nascondere moduli ticket specifici in base al nome dell'organizzazione dell'utente, procedi come segue:
Nota: Se il tuo tema usa Guide Templates V2, è necessario importare jQuery. Per tutti i dettagli, leggi l'articolo: Importazione o aggiornamento di jQuery.
Passaggio 1 - Trova l'ID del modulo del ticket
- Vai al Centro amministrativo, accedi alla pagina Moduli ticket e seleziona il modulo ticket appropriato.
- Trova il numero ID nell'URL dopo l'ultima barra.
Passaggio 2 - Trova il nome dell'organizzazione
- Vai al Centro amministrativo e accedi a Persone.
- Sfoglia o cerca le organizzazioni per trovare il nome corretto.
Passaggio 3 - Modifica JavaScript
Nota: se l'utente non copia tutti i caratteri come ";" e "}" dal modello, il codice non funzionerà come previsto e potrebbe impedire all'utente di accedere al menu a discesa del profilo e vedere elementi come il pulsante Le mie attività e il pulsante Esci.
- In Guide, fai clic sull’icona Personalizza aspetto () nella barra laterale.
- Fai clic sul tema che intendi modificare per aprirlo.
- Fai clic sul menu delle opzioni e seleziona Modifica codice e poi Script.js.
- Copia il blocco di codice qui sotto.
$(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); }); } });
- Sostituisci
formID = 6502769669773
con l’ID del modulo ticket da nascondere. - Sostituisci
"ZENDESK"
con il nome dell’organizzazione per la quale desideri sia visibile il modulo ticket. - Incolla il codice nel modello JavaScript del codice del Centro assistenza.
- Salva il modello e pubblica le modifiche.
Il codice fornito riserva spazio per altre organizzazioni. Per aggiungere ulteriori moduli e organizzazioni, copia l'istruzione if qui sopra e inseriscila sotto l'istruzione if esistente in basso, assicurandoti di sostituire l'ID del modulo ticket con quello corretto e di inserire l'organizzazione che vuoi controllare per verificare la presenza dell’utente al suo interno. Ripeti l'operazione per tutti i moduli ticket e le organizzazioni che vuoi.
Nota: se vuoi cambiare il comportamento del codice in modo da mostrare un modulo ticket a tutte le organizzazioni tranne quella specificata, rimuovi l’operatore NOT
(!)
dall’istruzione 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: questo workflow non funziona con gli utenti non autenticati o che non hanno un'organizzazione. Per questi utenti verranno visualizzati tutti i moduli.