Cette approche n’est nécessaire que dans certains scénarios spécifiques, par exemple si vous voulez utiliser un formulaire pour le Web Widget, mais pas dans le centre d’aide. Consultez Création et application de formulaires de ticket de marque pour savoir comment afficher différents formulaires pour différentes marques.
J’ai créé plusieurs centres d’aide pour toutes mes marques et je suis prêt à déployer des formulaires de ticket pour chacune de ces marques. Mais je ne veux pas que les formulaires pour ma marque principale s’affichent dans le centre d’aide de ma marque secondaire. Eh bien, cette astuce devrait suffire à régler ce problème.
Cet article couvre deux scénarios :
-
Sélection des formulaires de ticket pour les marques avec plusieurs formulaires
- Affichage d’un seul formulaire de ticket par marque
Comment trouver les ID des formulaires
Quand vous voulez masquer ou isoler un formulaire, pour pouvoir cibler des formulaires individuels, vous devez d’abord trouver les ID de ces formulaires. Cet article ne couvre pas la création de formulaire. Pour en savoir plus au sujet de la création formulaires de ticket, consultez Création de formulaires de ticket pour différents types de demandes.
Voici comment vous pouvez rapidement trouver les ID dans l’interface d’agent :
- Dans le Centre d’administration, cliquez sur l’icône Objets et règles () dans la barre latérale, puis cliquez sur Tickets > Formulaires.
- Cliquez sur le nom du formulaire que vous souhaitez masquer ou utiliser comme formulaire autonome.
- Notez l’ID du formulaire qui se trouve dans la barre d’adresse comme illustré ci-dessous :
- Répétez ce processus pour chaque formulaire que vous voulez masquer ou isoler.
Affichage de plusieurs formulaires par marque
Souvent, chaque centre d’aide doit gérer plusieurs types de demandes. Cette section vous explique comment masquer certains formulaires de ticket que vous ne voulez pas afficher dans le centre d’aide d’une marque spécifique, tout en permettant à l’utilisateur final de sélectionner les autres formulaires.
Le code
Maintenant que vous avez enregistré les formulaires de ticket que vous voulez masquer comme expliqué ci-dessus, vous pouvez maintenant les cibler avec le code ci-dessous.
Vous devez placer l’une de ces versions du code dans
$(document).ready(function(){
dans le modèle script.js
lors de la personnalisation de votre centre d’aide.
Option 1
Dans cette première option, il vous suffit de reproduire les lignes auxquelles se trouvent les ID des formulaires. Mes ID de formulaire sont
12775
et
31495
.
//remove the options from the dropdown selector $('#request_issue_type_select option[value="12775"]').remove(); $('#request_issue_type_select option[value="31495"]').remove(); //remove the options from the nesty-input after it's been created. $('.nesty-panel').on('DOMNodeInserted', function(e){ $(this).children('ul').children().remove('#12775'); $(this).children('ul').children().remove('#31495'); });
Option 2
Dans cette deuxième option, j’ai décidé d’utiliser un groupe et nous pouvons simplement saisir la liste des formulaires que nous voulons masquer entre les crochets
[ 12775,31495 ]
. Vous devez séparer les ID avec des virgules. La fonction sera exécutée en boucle jusqu’à ce tous les ID aient été supprimés.
$.each([ 12775,31495 ], function( index , formValue ) { $('#request_issue_type_select option[value="' + formValue + '"]').remove(); $('.nesty-panel').on('DOMNodeInserted', function(e){ $(this).children('ul').children().remove('#' + formValue); }); });
Affichage d’un formulaire par marque
Il est possible que vous n’ayez besoin que d’un formulaire par marque. C’est aussi un workflow tout à fait acceptable. Au lieu de devoir masquer toutes les autres marques, vous pouvez modifier votre lien Envoyer une demande de façon à diriger directement vos utilisateurs vers l’un de vos formulaires, puis masquer la liste déroulante « Choisissez votre problème ci-dessous » dans le formulaire.
Le code
Pour diriger vos utilisateurs vers un formulaire, vous devez connaître l’ID de ce formulaire, comme expliqué dans les étapes ci-dessus.
Il est facile de remplacer le lien Envoyer une demande en utilisant le langage de création de modèles du centre d’aide, Curlybars. Pour d’autres documents sur Curlybars et la création de modèles, cliquez ici.
Vous devez placer ce code dans le modèle d’en-tête dans lequel vous voulez que le lien Envoyer une demande apparaisse (n’oubliez pas de remplacer
ticket_form_id
par l’ID de votre formulaire). Cela prend la localisation en compte et le lien sera donc proposé dans la bonne langue si votre centre d’aide propose plusieurs langues.
<a href="{{page_path 'new_request' ticket_form_id='17369'}}">{{t 'submit_a_request'}}</a>
Suppression du menu déroulant de sélection de formulaire de ticket
Ensuite, il faut supprimer le menu déroulant de sélection de formulaire de ticket pour que les utilisateurs ne puissent pas sélectionner un autre formulaire pour la marque concernée. Vous devez placer ce code dans le modèle style.css
de votre centre d’aide :
.request_ticket_form_id{ display:none; }
Saisissez le CSS dans le modèle style.css
.
Fonctionnement
Quand la page de nouvelle demande est générée, tous les formulaires de ticket destinés aux utilisateurs finaux sont disponibles dans la liste déroulante. Le premier exemple supprime les options de formulaire que vous ne voulez pas afficher pour chaque marque spécifiée et le deuxième exemple dirige simplement les utilisateurs vers un formulaire spécifique pour votre marque.