Exemples de filtres interactifs personnalisés
En tant qu’administrateur, vous pouvez créer des widgets de filtres interactifs personnalisés pour fournir des options de filtrage avancées sur les tableaux de bord.
Cas d'utilisation
Cet exemple explique comment créer un filtre personnalisé pour filtrer les rapports sur la table de tâches ou ses tables enfants. Le filtre affiche uniquement les enregistrements où l’utilisateur actuel est l’appelant. Le filtre expose deux boutons à l’utilisateur, un bouton pour ajouter le filtre et un bouton pour supprimer le filtre.
Créer un widget de filtre interactif personnalisé
Créez des widgets de filtres interactifs personnalisés pour fournir des options de filtrage avancées sur les tableaux de bord.
Avant de commencer
Rôle requis : administrateur
Procédure
Que faire ensuite
Définissez la logique de filtrage.
Créer une option de filtre de date/heure personnalisée
Lorsque la sélection standard des options de filtre de date/heure ne répond pas à vos besoins, vous pouvez créer une option personnalisée.
Avant de commencer
Suivez ces étapes pour créer une option de filtre de date/heure personnalisée qui peut ensuite être incluse dans n’importe quel filtre interactif basé sur la date/l’heure à utiliser sur un tableau de bord. Dans cet exemple, vous créez une option de filtre pour une période de deux semaines, une quinzaine.
Rôle requis : admin.
Procédure
Définir la logique de filtrage : exemple
Après avoir créé le filtre interactif, ajoutez la logique de filtrage.
Avant de commencer
Rôle requis : administrateur
Procédure
Résultats
Le filtre interactif personnalisé apparaît sur le tableau de bord auquel vous avez ajouté le bloc de contenu dynamique. Il se trouve également dans la liste des blocs de contenu du panneau Ajouter des widgets .
Exemple de filtre interactif personnalisé : rapports multiples
Vous pouvez utiliser un filtre interactif personnalisé pour filtrer plusieurs rapports à l’aide de différentes tables. Il existe deux API différentes pour publier un filtre interactif pour une ou plusieurs tables. Cet exemple filtre un rapport sur les tables d’incidents et de problèmes par groupe d’affectation à l’aide d’un filtre interactif personnalisé.
A propos des filtres interactifs personnalisés sur plusieurs tables
- Les filtres interactifs personnalisés qui s’appliquent à une seule table utilisent la fonction DashboardMessageHandler.publishFilter().
- Les filtres interactifs personnalisés qui s’appliquent à plusieurs tables utilisent la fonction DashboardMessageHandler.publishMessage().
- Avant de publier, un appel de filtre interactif à la fonction SNC.canvas.interactiveFilters.setDefaultValue() est requis.
- Un appel à la fonction SNC.canvas.interactiveFilters.removeDefaultValue() ou à la fonction DashboardMessageHandler.removeFilter() est requis avant de réinitialiser le filtre.
Un filtre interactif personnalisé qui appelle la méthode publishFilter() plusieurs fois actualise le rapport associé le même nombre de fois. Des appels répétés à cette méthode peuvent entraîner des problèmes de performances.
Comment appliquer un filtre interactif personnalisé à plusieurs tables
L’exemple suivant filtre le rapport par groupe d’affectation dans les tables Incident [incident] et Problème [problem].
DashboardMessageHandler.publishMessage() accepte plusieurs filtres sous forme de tableau. Construisez le tableau de filtres, puis créez une instance unique de DashboardMessageHandler qui appelle DashboardMessageHandler.publishMessage([filters]). Cette méthode actualise le widget une seule fois.
<?xml version="1.0" encoding="UTF-8"?>
<j:jelly xmlns:j="jelly:core" xmlns:g="glide" xmlns:g2="null" xmlns:j2="null" trim="false">
<script>
var my_dashboardMessageHandler = new DashboardMessageHandler("my_unique_id");
function publishMultipleFilter() {
<!-- Mutliple filters can be passed as an array -->
var finalFilter = [{"table":"incident","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}, {"table":"problem","filter":"assignment_group=6fcd3b573b331300ad3cc9bb34efc447"}];
<!-- call setDefaultValue first -->
SNC.canvas.interactiveFilters.setDefaultValue({
id: my_dashboardMessageHandler._unique_id,
filters: finalFilter,
}, false);
<!-- then call Publishmessage to publish filters-->
my_dashboardMessageHandler.publishMessage(finalFilter);
}
function clearFilter() {
SNC.canvas.interactiveFilters.removeDefaultValue(my_dashboardMessageHandler._unique_id, false);
my_dashboardMessageHandler.removeFilter();
}
</script>
Example of a filter that filters incident and problem table where the assignment group is Problem solving
<input id="allTasks" type="button" value="All" onclick="clearFilter();" />
<input id="onlyMine" type="button" value="Assignment group is [Problem solving]" onclick="publishMultipleFilter();" />
</j:jelly>