4.9.6 Options de représentation type docid

Les options de représentation indiquées dans la structure de la famille ne sont pas prises en compte dans les interfaces HTML5.

N> Le widget d'édition des relation est basé sur un widget kendo MultiSelect.

4.9.6.1 setKendoMultiSelectConfiguration

Cette option permet de configurer le widget d'édition des relations.

Dcp\Ui\DocidRenderOptions setKendoMultiSelectConfiguration(array $config )

4.9.6.1.1 Restrictions

  • Utilisable uniquement pour les rendus de modification ou de création.
  • Attention : Les options propres à Kendo ne sont pas maintenues par Anakeen et leur bon fonctionnement n'est pas garanti par Anakeen.

4.9.6.1.2 Paramètres

L'argument config est un tableau de valeurs indexées qui servent à modifier la configuration du widget.

En modification, les valeurs possibles sont les propriétés de configuration du widget kendo ui.

4.9.6.1.3 Cas particuliers

  • Les propriétés suivantes ne sont pas modifiables :
    • filter,
    • autoBind,
    • select,
    • dataTextField,
    • dataValueField,
    • value,
    • dataSource,
    • select,
    • change.
  • La configuration maxSelectedItems n'est prise en compte que si l'attribut est déclaré multiple.

Leur éventuelle modification est ignorée par le widget.

4.9.6.1.4 Exemples

Modification des paramètres :

$options->docid()->setKendoMultiSelectConfiguration([
    // Attendre 3 caractères avant de lancer l'aide à la saisie
    "minLength"      => 3,
    // text de substitution lorsque le champ est vide
    "placeholder"    => "Search a document",
    // Entête de la recherche
    "headerTemplate" => '<div><h2>Résultat de la recherche</h2></div>'
]);

4.9.6.2 setPlaceHolder

Cette option indique un texte qui est placé dans le champ de saisie lorsque la valeur est vide pour préciser le rôle de ce champ.

Dcp\Ui\DocidRenderOptions setPlaceHolder(string $text)

4.9.6.2.1 Restrictions

  • Utilisable uniquement pour les rendus de modification ou de création.

4.9.6.2.2 Paramètres

L'argument $text est un texte simple (pas de html) qui sera utilisé comme placeholder du champ.

4.9.6.2.3 Cas particuliers

Aucun

4.9.6.2.4 Exemples

$options->docid(My_family::my_document)
    ->setPlaceHolder("Select the good document");

4.9.6.3 setFormat

Cette option permet de modifier l'aspect de la valeur de l'attribut.

Dcp\Ui\TextRenderOptions setFormat(string $format)

4.9.6.3.1 Restrictions

  • Utilisable uniquement pour les rendus de consultation.

4.9.6.3.2 Paramètres

L'argument format est un format Mustache qui a comme variables les informations sur la valeur de l'attribut.

Ces informations pour le type docid sont :

  • value : Identifiant du document,
  • displayValue : Titre du document.
  • icon : Url de l'icone du document
  • familyRelation : Nom logique de la famille
  • initid : Identifiant du document
  • revision : Revision du document (-1 si dernière révision)

Ce format doit être un fragment HTML valide.

Par défaut, le format est

<img class="dcpAttribute__value--icon" src="{{icon}}" />
<span class="dcpAttribute__content__value">{{displayValue}}</span>`.

4.9.6.3.3 Cas particuliers

Aucun

4.9.6.3.4 Exemples

Enlever l'icône de la famille pour les relations :

$options->docid(My_family::my_relation)
    ->setFormat('<span class="dcpAttribute__content__value">{{displayValue}}</span>');

4.9.6.4 setDocumentIconSize

Cette option indique la dimension de l'icône de la relation'.

Dcp\Ui\DocidRenderOptions setDocumentIconSize(string $size)

4.9.6.4.1 Restrictions

  • Utilisable uniquement pour les rendus de consultation.

4.9.6.4.2 Paramètres

L'argument size indique la dimension de l'image à afficher.

Par défaut, la dimension est 14x14c. Cela affiche une icône carrée de 14px.

Le redimensionnement ne peut excéder la taille de l'icône originale.

Cette option ne modifie pas la taille css mais affiche une icône à la dimension désirée. Le poids du fichier icône est proportionnel à la taille demandée.

4.9.6.4.3 Cas particuliers

Pour rétablir la taille par défaut, il faut indiquer null. Une dimension de 0 ou de 0x0, n'affichera pas l'icône.

4.9.6.4.4 Exemples

Dimension de 32x32 rognée.

$options->docid(My_family::my_relation)->setDocumentIconSize("32x32c");

4.9.6.5 addCreateDocumentButton

Cette option permet d'ajouter un bouton permettant de créer un document et de l'insérer dans l'attribut. Si l'attribut a déjà une valeur, le bouton affiche le formulaire de modification du document cible. Si l'attribut n'a pas de valeur, le bouton affiche le formulaire de création.

Dans le cas d'un attribut multiple, le bouton ajouté affiche toujours un formulaire en création afin d'ajouter le nouveau document à la liste.

Dcp\Ui\DocidRenderOptions addCreateDocumentButton(\Dcp\Ui\CreateDocumentOptions $options)

4.9.6.5.1 Restrictions

  • Utilisable uniquement pour les rendus de modification ou de création.

4.9.6.5.2 Paramètres

L'argument $options permet de configurer le document à insérer. Il reprend les options de addbutton pour configurer la taille de la fenêtre et les caractéristiques du bouton.

Par contre, l'option target ne peux être que _dialog. Le formulaire pour le document à insérer ne s'ouvre que dans une fenêtre de dialogue et ne peut être ouverte dans une autre fenêtre du navigateur.

L'option url n'est pas prise en compte. L'url utilisée pour l'affichage du formulaire est calculée en fonction des paramètres de cette option.

L'option windowTitle est vide par défaut et le titre de la fenêtre de dialogue est calculé. Il reprend les informations d'identification du document (icone et le nom du document). Dans ce cas l'entête du document n'est pas affichée. Si cette option est indiquée, l'entête du document est affiché.

Les autres paramètres sont :

familyName
Le nom logique de la famille utilisé pour la création. S'il n'est pas indiqué, la famille utilisée est celle du format du type de l'attribut. Ce paramètre n'est pas utilisé pour l'affichage du formulaire de modification.
htmlCreateContent
Fragment HTML du bouton pour l'affichage en création. Le texte de l'option htmlContent (vide par défaut) précède ce texte.
Par défaut : <i class="fa fa-plus-circle" />
htmlEditContent
Fragment HTML du bouton pour l'affichage en modification. Le texte de l'option htmlContent (vide par défaut) précède ce texte. Par défaut : <i class="fa fa-plus-pencil" />

createLabel: Fragment HTML du label qui sera affiché sur le bouton du menu du formulaire permettant la sauvegarde et la fermeture de la fenêtre de dialogue.
Par défaut : Create and insert to "{{label}}"

updateLabel: Fragment HTML du label qui sera affiché sur le bouton du menu du formulaire permettant la création, l'insertion de la valeur et la fermeture de la fenêtre de dialogue.
Par défaut : Save and update "{{label}}"

formValues: Tableau indiquant les champs du formulaire qui doivent être modifiés lors de l'affichage du formulaire de création. Ces valeurs ne sont pas utilisées pour le formulaire de modification. Les valeurs par défaut sont déjà prérenseignées dans le formulaire. Les valeurs peuvent avoir 2 formes.
Si c'est une chaîne de caractères, elle sera considérée comme la valeur brute (value) et la valeur affichable (displayValue) de l'attribut. Dans ce cas, la chaîne de caractères peut contenir des parties variables qui permettent d'indiquer des informations du document principal.
Si cette chaîne est un tableau, il sera utilisé comme valeur complète de l'attribut. Dans ce cas, il doit contenir au moins "value" dans ses index. Les valeurs complètes n'ont pas de parties variables.
Exemples :

  • Texte avec données variables :
    "Récupération de {{attributes.my_attr.attributeValue.displayValue}}"
  • Récupération de la valeur complète d'un attribut du document d'origine
    "{{attributes.my_attr.attributeValue}}"
  • Objet avec seulement la valeur (ici cas d'un énuméré)
    ["value"=> "M"]
  • Objet complet avec valeur brute et affichable
    ["value" => 1234, "displayValue" => "Mon document"]
  • Objet complet (cas d'un fichier)
    ["value" => "application/word|2892|Mon fichier.doc",  
       "displayValue" => "Mon fichier.doc",  
       "size" => 4567`  
       "icon" => "resizeimg.php?img=CORE%2FImages%2Fmime-doc.png&size=14"  
    ]

4.9.6.5.3 Cas particuliers

Aucun

4.9.6.5.4 Exemples

Affichage d'un formulaire d'un document de la famille "espèce" pour être inséré dans l'attribut "an_species" de la famille "animal".

use Dcp\AttributeIdentifiers\Zoo_animal as AnimalAttributes;
use Dcp\AttributeIdentifiers\Zoo_espece as EspeceAttributes;
class AnimalRenderConfigEdit extends \Dcp\Ui\DefaultEdit
{
    public function getOptions(\Doc $document)
    {
        $options = parent::getOptions($document);
        $viewDoc=new \Dcp\Ui\CreateDocumentOptions();
        $viewDoc->formValues=[
            EspeceAttributes::es_name => "Nouvelle espèce",
            EspeceAttributes::es_description => "Provient de l'animal {{attributes.an_nom.attributeValue.displayValue}}",
            EspeceAttributes::es_classe => sprintf("{{attributes.%s.attributeValue}}", AnimalAttributes::an_classe),
            EspeceAttributes::es_isprotected => ["value" => "1"],
            EspeceAttributes::es_gardian => [
                "value" => getIdFromName("", "ZOO_BIGGARDE"), 
                "displayValue"=>$document->getTitle("ZOO_BIGGARDE")],
            ];
        $options->docid(AnimalAttributes::an_species)->addCreateDocumentButton($viewDoc);
        return $options;
}

4.9.6.5.5 Événements

Cette option déclenche les événements suivants sur la page web. Ils peuvent être interceptés par le contrôleur de document.

  1. attributeCreateDialogDocumentReady : lorsque le formulaire est affiché
  2. attributeCreateDialogDocumentBeforeSetFormValues : avant l'affectation des valeurs dans le formulaire
  3. attributeCreateDialogDocumentBeforeSetTargetValue : avant l'affectation de l'attribut dans le document principal
  4. attributeCreateDialogBeforeClose : avant la fermeture de la fenêtre de dialogue
  5. attributeCreateDialogBeforeDestroy : avant la destruction de la fenêtre de dialogue
×