Maitriser le comportement suite à la modification du userFilters

Bonjour,

Je souhaiterai savoir s’il est possible de modifier un comportement Simplicité lors de la modification des données du userFilters. Le cas est le suivant :

  1. Un objet est affiché en formulaire et ses données font qu’il rentre dans le scope du userFilter
  2. L’utilisateur change les données du userFilter et valide. Les données saisies font que l’objet affiché en formulaire n’entre plus dans le scope du userFilter
  3. À la suite de la validation, un message d’erreur indique qu’il n’est pas possible d’afficher l’objet d’id xxx.
  4. L’utilisateur est automatiquement redirigé sur la liste correspondant à l’objet métier consulté

Nous avons besoin de flexibilité sur les points 3 & 4 :

  • Point 3 : Nous pouvons modifier le texte via la liste des codes erreurs présente dans la rubrique « texte statique ». Mais cela modifierait aussi les messages d’erreurs liés aux id d’objet mais sans lien avec le UF. Il faudrait donc un code erreur spécifique
  • Point 4 : Sur certains objets où nous utilisons le UF, nous n’utilisons pas l’affichage en liste pour l’utilisateur. Nous avons besoin de pouvoir rediriger sur une liste de notre choix en cas d’erreur.

Merci d’avance pour votre retour.
Jean-Baptiste

Point 3) vous pouvez modifier le texte statique pour signifier les différentes possibilités à l’utilisateur comme:
“Vos droits ou votre périmètre de travail ne permet pas d’afficher l’enregistrement demandé.”

Simplicité ne pourra pas dire si le “select” ne ramène rien à cause des droits, d’une searchspec métier ou d’un user filter de session.

Point 4) je dirai qu’il est préférable de rediriger l’utilisateur sur la page d’accueil dès qu’il change ses filtres. et pas d’attendre que son travail en cours ne fonctionne plus.

Sinon on peut ajouter simplement un hook au formulaire en plus du onload front, qui par défaut ferait ce qu’il fait actuellement :

form.noRowFound = function(ctn, obj, rowId) {
	// Not found (denied, deleted...)
	$ui.alert(app.T("NO_ROW_FOUND"));
	$ui.displayList(ctn, obj, {
		nav: "add",
		showNav: true
	});
}

Je peux vous le faire dans la journée.

Le point 4 serait parfait pour la redirection.

Le hook front form.noRowFound a été ajouté et backporté.