Project

General

Profile

Bug #2457

Eviter le double get pour les generic ajaxform

Added by Jérôme Schneider about 11 years ago. Updated almost 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 about 11 years ago

  • Target version set to 0.4
#2

Updated by Mikaël Ates almost 11 years ago

  • Target version changed from 0.4 to 0.9
#3

Updated by Mikaël Ates over 10 years ago

  • Project changed from APS42 to Calebasse
  • Target version deleted (0.9)
#4

Updated by Mikaël Ates over 10 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 over 9 years ago

  • Target version set to 1.1.3
#6

Updated by Serghei Mihai over 9 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 over 9 years ago

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

Updated by Benjamin Dauvergne over 9 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 over 9 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 over 9 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 over 9 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 almost 9 years ago

  • Status changed from En cours to Rejeté

Also available in: Atom PDF