Empêcher le scroll au chargement ajax avec la class "noscroll" pour les boutons #3655

Closed
opened 7 years ago by miros · 7 comments
miros commented 7 years ago

En complément de la révision r18894, on pourrait vérifier la présence de la classe "noscroll" sur les boutons ajax pour déclencher de défilement ou non.

dans spip/prive/javascript/ajaxCallback.js ` 729 on remplacerait

jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){
	var leform = this;
	var url = jQuery(this).attr('action').split('#');
	jQuery(this)
	.prepend(""+(url[1]?"":""))
	.ajaxForm({
		beforeSubmit: function(){
			jQuery(blocfrag).animateLoading().positionner(false);
		},
		onAjaxLoad:false,
		success: function(c){
			jQuery.spip.on_ajax_loaded(blocfrag,c);
			jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd
		}/*,
		iframe: jQuery.browser.msie*/
	})
	.addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload
});

par

jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){
	var leform = this;
	var url = jQuery(this).attr('action').split('#');
	var scrollwhensubmit = !jQuery(this).is('.noscroll');
	jQuery(this)
	.prepend(""+(url[1]?"":""))
	.ajaxForm({
		beforeSubmit: function(){
			jQuery(blocfrag).animateLoading()
			if (scrollwhensubmit)
			    jQuery(blocfrag).positionner(false);
		},
		onAjaxLoad:false,
		success: function(c){
			jQuery.spip.on_ajax_loaded(blocfrag,c);
			jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd
		}/*,
		iframe: jQuery.browser.msie*/
	})
	.addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload
});
En complément de la révision r18894, on pourrait vérifier la présence de la classe "noscroll" sur les boutons ajax pour déclencher de défilement ou non. dans spip/prive/javascript/ajaxCallback.js ` 729 on remplacerait <pre> jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){ var leform = this; var url = jQuery(this).attr('action').split('#'); jQuery(this) .prepend("<input type='hidden' name='var_ajax' value='1' /><input type='hidden' name='var_ajax_env' value='"+(ajax_env)+"' />"+(url[1]?"<input type='hidden' name='var_ajax_ancre' value='"+url[1]+"' />":"")) .ajaxForm({ beforeSubmit: function(){ jQuery(blocfrag).animateLoading().positionner(false); }, onAjaxLoad:false, success: function(c){ jQuery.spip.on_ajax_loaded(blocfrag,c); jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd }/*, iframe: jQuery.browser.msie*/ }) .addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload }); </pre> par <pre> jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){ var leform = this; var url = jQuery(this).attr('action').split('#'); var scrollwhensubmit = !jQuery(this).is('.noscroll'); jQuery(this) .prepend("<input type='hidden' name='var_ajax' value='1' /><input type='hidden' name='var_ajax_env' value='"+(ajax_env)+"' />"+(url[1]?"<input type='hidden' name='var_ajax_ancre' value='"+url[1]+"' />":"")) .ajaxForm({ beforeSubmit: function(){ jQuery(blocfrag).animateLoading() if (scrollwhensubmit) jQuery(blocfrag).positionner(false); }, onAjaxLoad:false, success: function(c){ jQuery.spip.on_ajax_loaded(blocfrag,c); jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd }/*, iframe: jQuery.browser.msie*/ }) .addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload }); </pre>
b_b commented 7 years ago
Owner
There is no content yet.
b_b commented 7 years ago
Owner

Salut, peux-tu fournir un diff stp ? Cela sera plus lisible que des extraits de code :)

Salut, peux-tu fournir un diff stp ? Cela sera plus lisible que des extraits de code :)
b_b commented 7 years ago
Owner

Version cible mise à 3.1

**Version cible mise à 3.1**
Poster

Pas de souci, le voici !

Pas de souci, le voici !
Poster

Oups, petite erreur dans le diff, voilà la version corrigée.

Oups, petite erreur dans le diff, voilà la version corrigée.
Owner

Assigné à cedric

**Assigné à cedric**
Poster

Appliqué par commit r23523.
Statut changé à Fermé

Appliqué par commit r23523. **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.