IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Aka Guymelef

Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview"

Noter ce billet
par , 28/02/2015 à 20h17 (1052 Affichages)
Par défaut les contenus sont affichés de manière arborescente dans l'onglet Contenus du Back-Office. Cependant dans la définition d'un Content Type il est possible d'activer le mode "listview" qui permet ne plus afficher les contenus enfants dans l'arborescence mais au travers d'une liste dans la zone d'édition. Fonctionnalité qui est utile pour soulager la vue arborescente en cas de nombreux sous-éléments (commentaires, participations, etc.).

Par défaut la liste est triée sur la date de dernière modification et propose d'être triée selon d'autres champs mais pas par celui qui nous intéresse : SortOrder.

En effet les éléments fils d'un contenus possède chacun une valeur d'ordre, stockée dans cette propriété, et qui permet de définir dans quel ordre ils s'affichent et le webmaster à la capacité de changer cet ordre au travers d'une action dans le Back-Office. Sauf que ce champ n'apparaît pas dans la liste et du coup les webmasters ne voient pas les éléments dans leur ordre "naturel" ce qui les perturbent grandement.

Malheureusement ceci n'est pas configurable dans Umbraco (à ma connaissance), il faut donc modifier le contrôleur javascript pour changer l'ordre d'affichage par défaut. Notez que comme nous allons modifier un fichier javascript nous n'aurons pas besoin de recompiler les DLLs du projet.

Le fichier en question se situe ici : /Umbraco/Js/umbraco.controllers.js

Retrouvez le contrôleur listViewController et intéressez-vous à l'objet javascript $scope.options qu'on peut trouver aux alentours de la ligne 4544 :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$scope.options = {
    pageSize: 10,
    pageNumber: 1,
    filter: '',
    orderBy: 'UpdateDate',
    orderDirection: "desc"
};

En changeant les valeurs des propriété orderBy et orderDirection vous pourrez changer le tri par défaut de la liste. Ainsi pour avoir une liste triée par SortOrder :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
$scope.options = {
    pageSize: 10,
    pageNumber: 1,
    filter: '',
    orderBy: 'SortOrder',
    orderDirection: "asc"
};

Comme toujours avec la partie JS du Back-Office d'Umbraco, pensez à vider les fichiers de cache das App_Data pour voir apparaître vos modifications.

Attention à la montée de version !
Étant donné que nous avons modifié un fichier appartenant au cœur d'Umbraco, une rigueur supplémentaire doit être apportée lorsque vous procéderez à une montée de version, soyez sûr de fusionner correctement ce fichier ou marquez dans votre process de refaire cette modification (particulièrement utile si vous travaillez en équipe sur le projet).

Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Viadeo Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Twitter Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Google Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Facebook Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Digg Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Delicious Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog MySpace Envoyer le billet « Umbraco 7 - Back Office - ordonner les éléments par SortOrder dans un affichage de type "listview" » dans le blog Yahoo

Catégories
DotNET , ASP.NET

Commentaires