Bonjour,
Je travaille sur un outil (Aurea.CRM) que je peux enrichir avec mes propres scripts JavaScript.
Cet outil dispose d'un outil d'administration qui permet, par exemple sur un bouton, de piloter certaines de ses propriétés en appelant des fonctions JavaScript.
J'ai donc un bouton, que je souhaite rendre visible ou non selon les droits de l'utilisateur.
Comme vous le voyez, j'ai pas la main sur grand chose, c'est un appel synchrone à une fonction, qui va me retourner un objet indiquant si l'objet est visible et/ou grisé.
J'ai donc écrit une fonction JavaScript, reposant sur le Framework de l'outils :
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Test: function(e) { var res; u8.services.schema.getConditionalRights({uid: e.parent.link, options: {flags:"CheckUpdateRight"}}, function(o) { res = (o._rights.length === 0); } ); return {visible: res}; }
Seul hic, la méthode u8.services.schema.getConditionalRights() est asynchrone, et le call back s'exécute après que je sois sorti de la fonction Test().
J'ai donc besoin de trouver un moyen de déclencher u8.services.schema.getConditionalRights(), attendre que le callback ait terminé, puis retourner ma variable res mise à jour.
Comment faire ?
J'ai essayé d'utiliser un Deferred/Promise mais sans succès, async/await sans plus de succès... Je ne sais pas du tout comment faire tomber le truc en marche![]()
Partager