Project

General

Profile

Bug #2457

Eviter le double get pour les generic ajaxform

Added by Jérôme Schneider over 11 years ago. Updated over 9 years ago.

Status:
Rejeté
Priority:
Normal
Assignee:
Jérôme Schneider
Target version:
Start date:
01 February 2013
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:

Description

La fonction generic_ajaxform_dialog dans calebasse.dialog.js fait un double get. Il faudrait gérer ça comme la event_dialog de l'agenda.


Files

History

#1

Updated by Mikaël Ates over 11 years ago

  • Target version set to 144
#2

Updated by Mikaël Ates over 11 years ago

  • Target version changed from 144 to 159
#3

Updated by Mikaël Ates about 11 years ago

  • Project changed from 104 to Calebasse
  • Target version deleted (159)
#4

Updated by Mikaël Ates about 11 years ago

Pour éviter le double get, remplacer:
$('.stats').click(function() {
var url = 'form/' + this.id;
generic_ajaxform_dialog(url, 'Choix des parametres',
'#ajax-dlg', '700px', 'Extraire', false,
function (dialog) {
// code spe
});
});

par

$('.stats').click(function() {
var url = 'form/' + this.id;
$('#ajax-dlg').load(url,
function () {
$(this).dialog({title: 'Choix des parametres', width: '700px',
buttons: [ { text: "Fermer",
click: function() { $(this).dialog("close"); } }, { text: "Extraire",
click: function() { $("#ajax-dlg form").submit(); $(this).dialog("close"); } }]});
// code spe
});
return false;
});
});
#5

Updated by Mikaël Ates about 10 years ago

  • Target version set to 1.1.3
#6

Updated by Serghei Mihai about 10 years ago

  • Patch proposed set to No

Ce n'est pas l'appel à generic_ajax_dialog qui genere plusieurs appels GET, mais des multiples binds au click sur des boutons.
J'ajouterais un / à la fin de la variable url pour éviter un redirect vers l'url avec /

#8

Updated by Serghei Mihai about 10 years ago

  • Status changed from Nouveau to Résolu (à déployer)
#9

Updated by Benjamin Dauvergne about 10 years ago

Juste pour que ce soir clair: en quoi l'ajout du / limite les bind sur l'event click du bouton ?

#10

Updated by Serghei Mihai about 10 years ago

J'avais mal compris le problème.
Le souci vient du fait qu'on ne peut pas intercepter les redirects suite à la sousmission des formulaires.
La fonction generic_ajaxform_dialog ne voit pas la redirection et recharge la même page, dans la plupart des cas, ce que donne au final 2 GET sur la même url.
Cela pose d'autres problèmes ailleurs, comme l'affichage des notifications via django messages.

Je pense que nous devrions revoir notre façon de gerer les formulaires ajax

#11

Updated by Benjamin Dauvergne about 10 years ago

Ok donc il n'y a pas vraiment deux GET émis par le js mais 2 gets suite à redirection ce qui n'est pas bien grave. Par contre je ne vois pas en quoi ça perturbe les messages (en dehors du fait que ça ne doit pas marcher du tout si on extrait juste un bout de la page HTML renvoyée).

Si vous refondez cette partie du code vous pouvez regarder ce qu'on a fait sur gadjo et la nouvelle admin authentic, c'est assez simple et efficace:

On évite complètement les redirections en fin de vue en générant un JSON avec l'URL de l'entête Location. Je sais juste que ça ne marcherait pas avec des boites de dialogue récursives à cause des #id qui se marchent dessus.

#12

Updated by Mikaël Ates about 10 years ago

  • Status changed from Résolu (à déployer) to En cours
  • Target version changed from 1.1.3 to 1.3

Le problème étant plus complexe que prévu et non résolu, je déplace le ticket vers la prochaine version.

#13

Updated by Jérôme Schneider over 9 years ago

  • Status changed from En cours to Rejeté

Also available in: Atom PDF