Association en masse d'objets liés par lien virtuel

Effectivement, on peut associer en masse :

  • une FK simple (0,N) comme par exemple affecter une page d’accueil en masse à des utilisateurs
  • une relation (N,N) comme par exemple créer des responsabilités pour un utilisateur

Une lien virtuel est un simple raccourci dans le modèle pour lier logiquement 2 objets entre eux (via jointure SQL spécifique). Il n’y a aucune notion de création/mise à jour (simple ou en masse) pour ce genre le lien qui peut passer par N jointures entre tables.

On peut imaginer d’afficher un bouton Associate mais Simplicité ne pourra jamais savoir quoi faire sur le “save” = il faut forcement coder ce que le “save” veut dire suivant votre modèle. Donc coder ça revient à créer une action spécifique.

Cette action front en javascript peut ouvrir le popup de sélection multiple d’un objetX et appeler du code pour alimenter les N tables de votre modèle :

// Selection multiple de N objetX
$ui.selectObject(null, "objetX", { selectRows: true }, function(ids) {
  // pour chaque row_id sélectionné créer le lien
  $(ids).each(function(i,id) { /* créer le(s) lien(s) */ });
});
  • si selectRows=false, le callback reçoit un simple row_id
  • en V5, il y a un nouveau paramètre selectedIds pour pré-sélectionner des lignes si besoin