Réduire une zone d'attributs dynamiquement

Tags: #<Tag:0x00007f9e4c5483e0>

Bonjour,

J’ai une rubrique (FieldArea) dans un formulaire, je veux que la rubrique soit ouverte lors de la création et fermée lors de la mise à jour.

Est-ce possible sur Simplicité ?

Besoin étrange qui n’inclue pas tous les cas d’usage de navigation ou de préférence d’affichage par l’utilisateur.

Il n’y a pas d’API back autre que de masquer une zone (cf com.simplicite.util.FieldArea.setVisible).

Pour collapser une zone, il faut du code front car cette information est au niveau du navigateur.

Dans le hook form.preload (avant affichage) :

// contextual data of object form
var locals = obj.locals.ui.form;
// collapse the area in case of update only
locals.collapsed = locals.collapsed || {};
locals.collapsed["myAreaName"] = !obj.isNew();

Si vous forcez la zone à être réduite, elle le sera à chaque fois que vous allez sauver/ouvrir/naviguer entre objets. La logique de Simplicité est de garder la préférence d’affichage au choix de l’utilisateur au sein de sa session.

On peut également agir après affichage form.onload en utilisant le verbe Bootstrap collapse sur le panel de la zone

$('.area[data-areaname="myAreaName"] .collapse').collapse("toggle|show|hide");