2 // Un petit plugin jQuery pour ajouter une classe au survol d'un element
3 $.fn
.hoverClass = function(c
) {
4 return this.each(function(){
6 function() { $(this).addClass(c
); },
7 function() { $(this).removeClass(c
); }
13 var accepter_change_statut
= false;
15 * Utilisee dans inc/puce_statut pour les puces au survol
20 * @param string script
22 function selec_statut(id
, type
, decal
, puce
, script
) {
24 node
= $('.imgstatut'+type
+id
);
26 if (!accepter_change_statut
)
27 accepter_change_statut
= confirm(confirm_changer_statut
);
29 if (!accepter_change_statut
|| !node
.length
) return;
31 $('.statutdecal'+type
+id
)
32 .css('margin-left', decal
+'px')
35 $.get(script
, function(c
) {
37 node
.attr('src',puce
);
47 * Utilisee dans inc/puce_statut pour les puces au survol
52 * @param string action
54 function prepare_selec_statut(node
, nom
, type
, id
, action
)
59 .load(action
+ '&type='+type
+'&id='+id
);
63 // deplier un ou plusieurs blocs
64 jQuery
.fn
.showother = function(cible
) {
66 if (me
.is('.replie')) {
67 me
.addClass('deplie').removeClass('replie');
72 .addClass('blocdeplie')
73 .removeClass('blocreplie')
74 .removeClass('togglewait');
81 // replier un ou plusieurs blocs
82 jQuery
.fn
.hideother = function(cible
) {
84 if (!me
.is('.replie')){
85 me
.addClass('replie').removeClass('deplie');
90 .addClass('blocreplie')
91 .removeClass('blocdeplie')
92 .removeClass('togglewait');
99 // pour le bouton qui deplie/replie un ou plusieurs blocs
100 jQuery
.fn
.toggleother = function(cible
) {
101 if (this.is('.deplie'))
102 return this.hideother(cible
);
104 return this.showother(cible
);
107 // deplier/replier en hover
108 // on le fait subtilement : on attend 400ms avant de deplier, periode
109 // durant laquelle, si la souris sort du controle, on annule le depliement
110 // le repliement ne fonctionne qu'au clic
111 // Cette fonction est appelee a chaque hover d'un bloc depliable
112 // la premiere fois, elle initialise le fonctionnement du bloc ; ensuite
113 // elle ne fait plus rien
114 jQuery
.fn
.depliant = function(cible
) {
116 if (!this.is('.depliant')) {
121 .addClass('depliant');
123 // effectuer le premier hover
124 if (!me
.is('.deplie')) {
126 .addClass('togglewait');
127 var t
= setTimeout(function(){
128 me
.toggleother(cible
);
134 // programmer les futurs hover
138 if (!me
.is('.deplie')) {
139 me
.addClass('togglewait');
140 if (t
) { clearTimeout(t
); t
= null; }
141 t
= setTimeout(function(){
142 me
.toggleother(cible
);
148 if (t
) { clearTimeout(t
); t
= null; }
150 .removeClass('hover');
153 // gerer le triangle clicable
154 /*.find("a.titremancre")
156 if (me.is('.togglewait') || t) return false;
166 jQuery
.fn
.depliant_clicancre = function(cible
) {
167 var me
= this.parent();
168 // gerer le triangle clicable
169 if (me
.is('.togglewait')) return false;
170 me
.toggleother(cible
);
175 * Recharger les blocs d'une page exec
176 * et changer la class du body si necessaire
177 * Par defaut les blocs recharges sont #navigation,#extra
178 * mais il suffit de passer des valeurs differentes en second argument
183 function reloadExecPage(exec
, blocs
){
187 blocs
="#navigation,#extra";
188 jQuery(blocs
).find('>div').ajaxReload({args
:{exec
:exec
}});
189 if (exec
.match(/_edit$/))
190 jQuery('body').addClass('edition');
192 jQuery('body').removeClass('edition');