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.
-
attributeCreateDialogDocumentReady
: lorsque le formulaire est affiché -
attributeCreateDialogDocumentBeforeSetFormValues
: avant l'affectation des valeurs dans le formulaire -
attributeCreateDialogDocumentBeforeSetTargetValue
: avant l'affectation de l'attribut dans le document principal -
attributeCreateDialogBeforeClose
: avant la fermeture de la fenêtre de dialogue -
attributeCreateDialogBeforeDestroy
: avant la destruction de la fenêtre de dialogue