[SP 2016 – SP 2013] Filtrer dynamiquement un affichage Gantt sur SharePoint

[SP 2016 – SP 2013] Filtrer dynamiquement un affichage Gantt sur SharePoint

Nativement, il n’est pas possible de filtrer les colonnes d’un affichage Gantt sur SharePoint 2013 et suivants. Lorsque vous avez une multitude de tâches sur plusieurs projets (ou clients, etc…), l’affichage Gantt commence à présenter des limites.

Aussi, en ajoutant une webpart de type “éditeur de script” dans votre page, vous pourrez filtrer l’affichage selon n’importe qu’elle information contenue dans votre liste (client, projet, etc…). Dans l’exemple ci-dessous, nous avons filtré l’affichage en fonction du champ “Affaire” (qui est un champ de recherche allant taper dans une liste des affaires).

Procédure à suivre :

  1. Retirer la chronologie,
  2. Modifier la page,
  3. Ajouter un composant webpart : éditeur de script,
  4. Coller le contenu du script ci-dessous,
  5. Modifier le script pour le faire correspondre à la liste.
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%20language%3D%22javascript%22%20type%3D%22text%2Fjavascript%22%3E%20%0A%0AjQuery(document).ready(function()%20%7B%20%0A%0AonGetCustomersList()%3B%0AjQuery('select').on('change'%2C%20function()%20%7B%0Avar%20e%20%3D%20document.getElementById(%22selectprojet%22)%3B%0Avar%20nomprojet%20%3D%20e.options%5Be.selectedIndex%5D.text%3B%09%0Awindow.location.href%20%3D%20%22https%3A%2F%2Fxxx.qualishare.com%2Fprojet%2FLists%2FPlanning%2FPlanning.aspx%3FFilterField1%3DAffaire%26FilterValue1%3D%22%2Bnomprojet%3B%0A%09%7D)%3B%0A%20%7D)%3B%0A%0Afunction%20onGetCustomersList()%20%7B%0Avar%20requestUri%20%3D%20_spPageContextInfo.webAbsoluteUrl%20%2B%20%22%2F_api%2FWeb%2FLists%2FGetByTitle('Projets')%2FItems%3F%24select%3DTitle%22%3B%0AjQuery.ajax(%7B%0A%20%20%20%20%20type%3A%20%22GET%22%2C%0A%20%20%20%20%20url%3A%20requestUri%2C%0A%20%20%20%20%20contentType%20%3A%20%22application%2Fjson%22%2C%0A%20%20%20%20%20headers%3A%20%7B%20Accept%3A%20%22application%2Fjson%3Bodata%3Dverbose%22%20%7D%2C%0A%20%20%20%20%20success%20%3A%20onListDataReturned%2C%0A%20%20%20%20%20error%20%3A%20onError%0A%7D)%3B%0A%7D%0A%0Afunction%20onListDataReturned(data)%20%7B%0Avar%20odataResults%20%3D%20data.d.results%3B%0Avar%20i%20%3D%200%3B%0Awhile%20(odataResults%5Bi%5D)%20%7B%0A%0AjQuery('%23selectprojet').append('%0A%0A%0A%0A%0A%3Coption%20value%3D%22'%2BodataResults%5Bi%5D.Title%2B'%22%3E'%2BodataResults%5Bi%5D.Title%2B'%3C%2Foption%3E')%3B%0Ai%2B%2B%3B%0A%7D%0A%7D%0A%0Afunction%20onError(err)%20%7B%0Aalert%20(%22error%22)%3B%0A%7D%0A%0A%0A%20%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="<script>" title="<script>" />
Sélectionner un projet à visualiser :

</p>
<form> 
<select id="selectprojet">

<option value="0">Sélectionner</option>

</select>
</form>
<p>

Vous obtiendrez alors un sélecteur qui filtrera votre affichage dynamiquement :

Capture

Partager cette publication

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *