Bonjour !
J'ai galéré pendant facilement une journée pour mettre en place un système de gestion d'équipe avec le sortable elements de prototype.
Ma liste se présente de cette manière : on a une div par employé affichant son nom, prénom et l'équipe à laquelle il appartient. Les div en vert sont pour les chef d'équipe et, au dessous de cette div, en blanc, se trouve tous les membres de l'équipe. Donc c'est affiché de manière "hiérarchique", voici un aperçu :
Mais même si mon affichage est hiérarchiques, je n'utilise aucunement des <ul><li>, mais bien des divs tous du long, l'appel sortable_elements est le suivant :
Donc je surveille mon div "employes_equipes", je rends draggable les tags "div", uniquement ceux disposant de la classe "equpes_employe" (je ne veux pas qu'on puisse dragger les chef d'équipes), un petit effet highlight à la fin et mon appel Ajax est un get vers mon action sort.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <%= sortable_element("employes_equipe", :tag => :div, :only => "equipes_employe", :complete => visual_effect(:highlight, 'employes_equipe'), :url=> { :action => :sort }, :method => :get, :handle => "employe_drag_hover", :with=>"'id=' + $(Draggables.activeDraggable.element.id).down(2).down(0).id + '&equipe=' + $(Draggables.activeDraggable.element.id).previous('.equipes_equipe').id") %>
Maintenant, pour clarifier un peu le with, je récupère en fait l'id d'une image contenu dans le div draggé (qui me donne l'id de l'employé) et le nom de l'équipe (qui est fait l'id des divs vert, ceux des chef d'équipe).
Et, après avoir puissamment transpiré, ça marche ! Mais j'ai un problème lorsque en arrivant dans ma page, les premiers voir deuxième employé que je drag je les met dans "Aucune équipe", ça ne s'exécute pas toujours !! C'est complétement aléatoire et je ne sais même pas si c'est uniquement lié au div "Aucune équipe" (qui renvoit juste une id vide pour l'équipe et qui fonctionne très bien).
Je ne vais pas vous montrer mon controller et tout ça, parce que de ce côté là, ça marche très bien, mais mon problème vient de l'appel AJAX. Précision : j'ai bel et bien nommé mes items selon la convention "item_id" afin que le Serialize de la méthode sortable_elements ne pose aucun problème. (voir ici : http://www.ruby-forum.com/topic/66894)
Donc avez-vous une idée ? Au pire je pourrais repasser tout ça en <ul><li> mais est-ce possible d'avoir ce même affichage avec ces balises ? D'autant que les li comme les ul devront contenir 3 span en "block" d'une trentaine de % chacun...
Merci d'avance...







Répondre avec citation




Partager