Comment identifier/différencier les instances formulaire et liste d'un objet

Bonjour,

Je voudrais personnaliser l’affichage (ou non) des listes filles quand je suis sur un formulaire d’un objet A. Pour cela, j’utilise canReference qui fait très bien l’affaire, mais qui prend un peu de temps, ce qui est normal vue le nombre de contrôle que je fais.

Or, cette contrainte (canReference), se lance même quand je suis sur la liste principale de l’objet A, et donc cela prend un temps encore plus important.

Je souhaite donc ajouter un contrôle dans ce canReference pour ne l’exécuter que si je suis sur un formulaire A et non pas sur la liste A.

Comment puis-je différencier l’instance du formulaire de celle de la liste ? (L’utilisation de isMainInstance me rend le même résultat que cela soit un formulaire ou une liste.)

Merci d’avance.

Abed.

[Platform]
Status=OK
Version=5.2.14
BuiltOn=2022-09-09 19:11
Git=5.2/c59be7fc25acb41d6994979998cfb42547c6e188
Encoding=UTF-8
EndpointIP=149.202.173.228
EndpointURL=http://e3m.simplicite.io:10118
TimeZone=Europe/Paris
SystemDate=2022-09-12 12:01:05

Bonjour Abed,

A priori un getContext() devrait te dire si tu es sur le formulaire ou une liste.

Merci @Alistair pour ton retour.
Je n’arrive toujours pas à différencier les instances : Le retour de this.getContext().isList() est toujours à false, que j’ouvre un formulaire de mon objet A ou quand je clique sur l’objet dans le menu principale pour avoir la liste.
Aurais-je oublié qq choses ?

Voivi le code :

// Permet d'afficher ou de masquer les onglet de dessous en fonction de qq chose :
ImmoPropertyPropose.canReference = function(objectName, fieldName) {
console.log("this.getContext().isList() = " + this.getContext().isList());	
	if (!this.getContext().isList()) { // On applique cette contrainte uniquement au formulaire afin d'éviter le temps de chargement de la liste.
		// Si la personne a accès en MAJ au bien à vendre, on affiche tous les onglets, sinon, on affiche seulement les 3 onglets ci-dessous :
		if (objectName == "ImmoDiagnostic" ||  objectName == "ImmoDocProperty" ||  objectName == "ImmoOffreEstimation" || ImmoTool.LinkedObjMaj(this,this.getGrant(),"ImmoProperty",this.getRowId(),'U','E')) {
			return  true;
		} else return false; 
	} else return true;	
};

Quand j’ouvre la liste :

14:28:27,370|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:28:27,309|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:28:27,294|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:28:27,272|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:28:27,091|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
.
.
.

Quand je sélectionne une ligne dans la liste pour ouvrir le formulaire :

2022-09-12 14:29:17,445|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:29:17,444|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:29:17,443|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:29:17,442|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:29:17,441|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
2022-09-12 14:29:17,440|SIMPLICITE|INFO||http://e3m.simplicite.io:10118||INFO|designer|com.simplicite.util.engine.ScriptInterpreter|ImmoPropertyPropose/the_ajax_ImmoPropertyPropose||Evénement: this.getContext().isList() = false
.
.
.

Si tu ne veux exécuter tes test uniquement lorsque tu es sur le formulaire de l’objet, tu peux tester : getContext().isUpdate()

Effectivement, cette méthode marche bien. Merci @Alistair.

[Message prédéfini]

Nous conseillons aux utilisateurs de marquer comme “solution” la réponse résolvant leur problématique pour permettre au support de mieux suivre les sujets non résolus, et à la communauté de trouver plus facilement la bonne réponse.

Vos messages indiquant une résolution du problème, nous avons réalisé cette opération pour vous.

This topic was automatically closed 60 minutes after the last reply. New replies are no longer allowed.