Frage
Wie kann ich Ticketformulare basierend auf der Organisation eines Benutzers ausblenden?
Antwort
Haftungsausschluss: Dieser Beitrag dient lediglich zu Demonstrationszwecken. Zendesk bietet keine Unterstützung oder Garantie für den Code. Zendesk unterstützt außerdem keine Drittanbietertechnologien wie JavaScript, jQuery oder CSS. Bitte posten Sie eventuelle Probleme im Abschnitt zu den Kommentaren, oder suchen Sie online nach einer Lösung.
Wenn Sie bestimmte Ticketformulare basierend auf dem Organisationsnamen des Benutzers ausblenden möchten, gehen Sie wie folgt vor:
Hinweis: Wenn Ihr Thema Guide Templating V2 verwendet, muss jQuery importiert werden. Ausführliche Informationen finden Sie im folgenden Beitrag: Importieren oder Aktualisieren von jQuery.
Schritt 1: Bestimmen Sie die Ticketformular-ID
- Gehen Sie zu Admin Center, navigieren Sie zur Seite Ticketformulare, und wählen Sie das entsprechende Ticketformular aus.
- Sie finden die ID-Nummer nach dem letzten Schrägstrich in der URL.
Schritt 2: Bestimmen Sie den Organisationsnamen
- Gehen Sie zum Admin Center und zu „Personen“.
- Suchen Sie nach der Organisation, um den richtigen Organisationsnamen zu bestimmen.
Schritt 3: Bearbeiten Sie den JavaScript-Code
Hinweis: Wenn der Benutzer nicht alle Zeichen wie „;“ und „}“ in der Vorlage angezeigt wird, funktioniert der Code nicht wie beabsichtigt und kann dazu führen, dass der Benutzer nicht auf das Benutzerprofil-Dropdownmenü zugreift und Dinge wie die Schaltflächen „Meine Aktivitäten“ und die Schaltfläche „Abmelden“ sehen.
- Klicken Sie in der Seitenleiste von Guide auf das Symbol Erscheinungsbild anpassen ().
- Klicken Sie auf das zu bearbeitende Design, um es zu öffnen.
- Klicken Sie auf das Optionsmenü, wählen Sie Code bearbeiten und anschließend Script.js aus.
- Kopieren Sie den unten stehenden Codeblock.
$(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); }); } });
- Ersetzen Sie
formID = 6502769669773
durch die Ticketformular-ID, die Sie ausblenden möchten. - Ersetzen Sie
"ZENDESK"
durch den Namen der Organisation, für die das Ticketformular sichtbar sein soll. - Fügen Sie den Code in die JavaScript-Vorlage Ihres Help Center-Codes ein.
- Speichern Sie die Vorlage und veröffentlichen Sie die Änderungen.
Der bereitgestellte Code reserviert Speicherplatz für andere Organisationen. Wenn Sie weitere Formulare und Organisationen hinzufügen möchten, kopieren Sie die oben genannte if-Anweisung und fügen Sie sie unter der vorhandenen if-Anweisung ein, wie unten dargestellt. Achten Sie darauf, die Ticketformular-ID durch die richtige ID und die gewünschte Organisation zu ersetzen, und sehen Sie nach, ob der Benutzer darin vorhanden ist. Wiederholen Sie diesen Vorgang für beliebig viele Ticketformulare und Organisationen.
Hinweis: Wenn Sie das Verhalten des Codes so ändern möchten, dass ein einziges Ticketformular für alle Organisationen außer der angegebenen angezeigt wird, entfernen Sie den Operator NOT
(!)
aus der if-Anweisung.
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();
}
Hinweis: Dieser Workflow funktioniert nicht für nicht authentifizierte Benutzer oder Benutzer ohne Organisation. Für diese Benutzer werden alle Formulare angezeigt.