page.sheet.contact.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. <?php
  2. global $myFirm,$myUser;
  3. User::check_access('example','read');
  4. require_once(__DIR__.SLASH.'ContactExample.class.php');
  5. $contact = ContactExample::provide();
  6. $data = array(
  7. 'origin' => 'fr.core.example',
  8. 'subject' => (!empty($contact->label) ? 'Envoi de la fiche contact de '.$contact->label : 'Envoi fiche contact'),
  9. 'message' => "Contenu du message envoyé",
  10. 'recipients' => array('to'=>array('claude@claude.fr', 'testouille@test.fr'), 'cc'=>array('carboncopy@test.net'), 'cci'=>array('another@email.fr')),
  11. 'attachments' => $contact->documents()
  12. );
  13. ?>
  14. <div class="plugin-example">
  15. <div id="contact-form" class="row justify-content-md-center contact-form" data-action="example_contact_save" data-id="<?php echo $contact->id; ?>">
  16. <div class="col-md-6 shadow-sm bg-white p-3">
  17. <h3>ContactExample
  18. <div onclick="example_contact_save();" class="btn btn-small btn-success right"><i class="fas fa-check"></i> Enregistrer</div>
  19. <a href="index.php?module=example&page=list.contact" class="btn btn-small btn-dark right mr-2">Retour</a>
  20. <div class="btn btn-small btn-info mb-2 btn-dark mx-2 right" data-scope="contact" data-uid="<?php echo $contact->id; ?>" data-show-important="true" data-type="history" data-tooltip title="Ouvrir l'historique"> <i class="far fa-comment-dots"></i></div>
  21. <?php if($contact->id>0): ?>
  22. <!--
  23. data-scope : section / partie de code ou de module concerné par le droit (defaut : core)
  24. data-uid : Id spécifique d'entité concerné par le droit (defaut : $.urlParam('id'))
  25. data-edit : Afficher la case edition (defaut : true)
  26. data-read : Afficher la case lecture (defaut : true)
  27. data-recursive : Afficher la case récursif (defaut : false)
  28. data-configure : Afficher la case configuration (defaut : false)
  29. data-firm : Scoper sur un établissement, cache la selection d'établissement si définit (defaut : null)
  30. data-saveAction : Définir une action de save custom du droit (defaut : core_right_save)
  31. data-deleteAction : Définir une action de delete custom du droit (defaut : core_right_delete)
  32. -->
  33. <div class="btn btn-small btn-dark right" title="Permissions sur la fiche" data-tooltip data-type="right"
  34. data-scope = 'example_contact',
  35. data-uid = <?php echo $contact->id; ?>
  36. ><i class="fas fa-user-lock"></i></div>
  37. <?php endif; ?>
  38. <div class="btn btn-small btn-dark right mr-2" data-tooltip title=" Envoi mail" onclick='sendmail_preview(<?php echo json_encode($data); ?>);'><i class="fas fa-paper-plane"></i></div>
  39. <span data-type="card" data-show-delay="200" data-action="example_contact_card" data-parameters='<?php echo json_encode(array('id'=>$contact->id)); ?>'><?php echo html_decode_utf8($contact->label); ?></span>
  40. </h3>
  41. <label for="label">Libellé</label>
  42. <input value="<?php echo $contact->label; ?>" class="form-control" type="text" id="label" >
  43. <label for="birth">Date de naissance</label>
  44. <small class="text-muted"> (Input data-type="date")</small>
  45. <input value="<?php echo empty($contact->birth)?'':date('d/m/Y',$contact->birth); ?>" class="form-control" type="text" data-type="date" title="format jj/mm/aaaa" placeholder="JJ/MM/AAAA" id="birth" >
  46. <label for="hour">Heure de naissance</label>
  47. <small class="text-muted"> (Input data-type="hour")</small>
  48. <input value="<?php echo $contact->hour; ?>" class="form-control" type="text" data-type="hour" title="format hh:mm" placeholder="13:37" id="hour" >
  49. <label for="size">Taille</label>
  50. <input value="<?php echo $contact->size; ?>" data-type="decimal" class="form-control" type="text" id="size" >
  51. <label for="phone">Téléphone</label>
  52. <small class="text-muted" data-tooltip title="* data-regex : regex de vérification (defaut : ^[0-9]{10}$, les espaces sont trimés pour vérification)<br>
  53. * data-spacing : espace automatiquement les chiffre si collés (défaut true)<br>
  54. * data-empty-field : vide le champs si invalide (défaut false)<br>
  55. * data-invalid-class : définit la classe a ajouter si invalide (défaut .invalid-value)<br>
  56. * data-blur : si définis, trigger le blur indiqué après validation du champs (le onblur classique trigger avant)<br>
  57. * data-type-only : empeche l'utilisateur de taper autre caractere que définis dans cette express (defaut : [0-9\+\s])<br>"> (Input data-type="phone")</small>
  58. <input value="<?php echo $contact->phone; ?>" class="form-control" type="text" data-type="phone" id="phone" >
  59. <label for="website">Site perso</label>
  60. <small class="text-muted" data-tooltip title="* data-no-lock : ne pas afficher le cadenas sécurisé <br>
  61. * data-no-link : ne pas afficher le globe de lien <br>
  62. *data-default-scheme : [https/http] ajoute le scheme spcéifié si inexistant lors du blur"> (Input data-type="url")</small>
  63. <input value="<?php echo $contact->website; ?>" class="form-control" type="text" data-type="url" id="website" >
  64. <label for="mail">Email</label>
  65. <input value="<?php echo $contact->mail; ?>" class="form-control" type="mail" data-type="mail" pattern=".+@.+" id="mail" >
  66. <label for="firm">Etablissement</label>
  67. <small class="text-muted">(Input data-type="firm")</small>
  68. <input value="<?php echo $contact->firm; ?>" class="form-control" type="text" data-type="firm" id="firm" >
  69. <label for="manager">Manager</label>
  70. <small class="text-muted" data-placement="right" data-tooltip title="* data-multiple : Autorise l'utilisateur a sélectionner des entité multiples
  71. * data-types (default: user) : définis les entité sélectionnables (ex: user,rank) "> (Input data-type="user")</small>
  72. * data-types (default: user) : définis les entité sélectionnables (ex: user,rank)
  73. * data-scope= (default : $myFirm->id) scope a la firme ciblée (0 pour toutes les firms) "> (Input data-type="user")</small>
  74. <input value="<?php echo $contact->manager; ?>" class="form-control" type="text" data-type="user" id="manager" >
  75. <label for="address">Adresse</label>
  76. <small class="text-muted"> (Input data-type="location")</small>
  77. <input value="<?php echo $contact->address; ?>" class="form-control" type="text" data-type="location" id="address" >
  78. <label for="state">Localisation</label>
  79. <small data-tooltip title="* data-click : fonction js appellée lors d'un click sur la map
  80. * data-latitude : latitude de la vue (si non renseigné, se base sur les marqueurs)
  81. * data-longitude : longitude de la vue(si non renseigné, se base sur les marqueurs)
  82. * data-zoom : zoom de la map" class="text-muted">(div data-type="map")</small><br/>
  83. <div data-type="map" data-zoom="16" data-click="example_map_click" style="height:300px;">
  84. [
  85. {
  86. "label" : "Les bikers insupportables",
  87. "latitude" : 44.81183294100969,
  88. "longitude" : -0.6146047155672256
  89. },
  90. {
  91. "label" : "Sys<strong>Dev</strong>",
  92. "latitude" : 44.81180753731187,
  93. "longitude" : -0.6150445275851699
  94. },
  95. {
  96. "type" : "circle",
  97. "label" : "Leclerc",
  98. "radius" : 100,
  99. "latitude" : 44.810301604975486,
  100. "longitude" : -0.6192602267205941
  101. },
  102. {
  103. "type" : "polygon",
  104. "label" : "Chinois",
  105. "backgroundColor" : "red",
  106. "borderColor" : "red",
  107. "points" : [
  108. [44.81238216817115, -0.6150852464139218],
  109. [44.8124115648384, -0.6150025683594396],
  110. [44.81236052554113, -0.6149765582247242],
  111. [44.812335762552145, -0.6150543470901866]
  112. ]
  113. }
  114. ]
  115. </div>
  116. <label for="vehicle">Véhicule</label>
  117. <small class="text-muted" data-placement="right" data-tooltip title="* data-depth : nb de profondeur de liste
  118. * data-slug : le slug de la liste mère à afficher
  119. * data-value : la valeur de l'entité à récup en base
  120. * data-output : type de valeur de retour slug ou id de la liste (id par defaut)
  121. * data-disable-label : cache le label de sous-liste si mentionné">(Select data-type="dictionary")</small>
  122. <select class="form-control select-control" type="text" data-type="dictionary" data-slug="example_contact_vehicle" data-depth="2" key=data-disable-label data-value="<?php echo $contact->vehicle; ?>" id="vehicle" ></select>
  123. <label for="storyshort">Histoire résumée</label>
  124. <textarea class="form-control" type="text" id="storyshort"><?php echo $contact->storyshort; ?></textarea>
  125. <label for="story">Histoire riche</label>
  126. <small class="text-muted" data-placement="right" data-tooltip title="* data-label : le label affiché dans la zone
  127. * data-mention-user='user' || data-mention-user='rank' : activer les mentions d'utilisateurs interne par défaut user et rank
  128. * data-mention-object='action' :activer les mentions # sur une action
  129. * data-script-allow : désactive la supression automatique des tags <scripts> et <link> (anti xss)
  130. "> (Textarea data-type="wysiwyg")</small>
  131. <textarea class="" type="text" data-type="wysiwyg" id="story"><?php echo $contact->story; ?></textarea>
  132. <label for="password">Mot de passe</label>
  133. <small class="text-muted"> (Input data-type="password")</small>
  134. <input value="<?php echo $contact->password; ?>" class="form-control" type="text" data-type="password" autocomplete="new-password" id="password" >
  135. <label for="icon">Icone préférée</label>
  136. <small class="text-muted"> (Input data-type="icon")</small>
  137. <input value="<?php echo $contact->icon; ?>" class="form-control" type="text" data-type="icon" id="icon" >
  138. <br/><label for="available">
  139. <input <?php echo $contact->available == 1 ? 'checked="checked"' : '' ?> data-type="checkbox" type="checkbox" id="available"> Disponible <small class="text-muted"> (Input data-type="checkbox")</small>
  140. </label>
  141. <br/>
  142. <label for="cv">CV</label>
  143. <small class="text-muted" title="
  144. Options possibles
  145. data-action : nom de l'action de gestion du composant (obligatoire)
  146. data-all-start : callback quand l'upload des fichiers débute - default : function(files){return true},
  147. data-all-complete : callback quand tous les fichiers sont terminés - default : function(){},
  148. data-file-start : callback sur départ upload d'un fichier - default : function(file){return true},
  149. data-file-complete : callback sur upload terminé d'un fichier - default : function(file){},
  150. data-file-error : callback sur erreur d'un fichier - default : function(file){},
  151. data-file-progress : callback sur progression d'un fichier - default : function(file){},
  152. data-over : classe sur le dragover - default : 'file-hover',
  153. data-label : Libellé à afficher sur la zone de drop - default : 'Faites glisser vos fichiers ici',
  154. data-data : extra données au format json (ex: {'id':12}) - default : {},
  155. data-limit : limit de fichiers - default : 0,
  156. data-readonly : lecture seule - default : false
  157. data-extension: extensions autorisées - default extensions dispo dans la classe File
  158. data-buttons : selecteur du coneteneur contenant des extra bouttons default : ''
  159. <!> : la classe component-file-default affiche en mode liste, la classe component-file-cover en mode image (cf exemple avatar juste après)
  160. ">(Input data-type="file")</small>
  161. <input value="" class="component-file-default bg-light shadow-sm rounded-sm" type="text" data-type="file" data-extension="jpg,png,bmp,jpeg,gif,svg,webp,docx,xlsx,pptx,msg,eml,pdf,zip,doc,xls,ppt,txt,csv,mp3,wav,mp4,avi,flv" data-action="example_contact_cv" data-id="cv" data-data='{"id":"<?php echo $contact->id; ?>"}' id="cv" >
  162. <label for="avatar">Avatar</label>
  163. <small class="text-muted">(Input data-type="file")</small>
  164. <input value="" class="component-file-cover bg-light shadow-sm rounded-sm" type="text" data-type="file" data-limit="1" data-extension="jpg,png,bmp,jpeg,gif,svg,webp" data-action="example_contact_avatar" data-id="avatar" data-data='{"id":"<?php echo $contact->id; ?>"}' id="avatar" >
  165. <label for="solvability">Solvabilité</label>
  166. <select class="form-control select-control" type="text" id="solvability">
  167. <?php foreach(ContactExample::solvabilities() as $slug=>$item): ?>
  168. <option <?php echo $contact->solvability == $slug ? 'selected="selected"' : '' ?> value="<?php echo $slug ?>" ><?php echo $item['label']; ?></option>
  169. <?php endforeach; ?>
  170. </select>
  171. <label for="handicap">Handicaps</label>
  172. <small class="text-muted" data-placement="right" data-tooltip title="* data-display : dropdown ou vide (vide=déplié)
  173. * data-button : libellé/html du button si diaply en dropdown<br>
  174. * data-values :valeurs possibles en json<br>
  175. * data-slug : s'ajoute à data-values par les valeurs du dictionary dont le slug est spécifié <br>
  176. * data-depth : spécifie la profondeur si un slug de dictionary est fournis <br>
  177. "> (Input data-type="checkbox-list")</small><br>
  178. <span class="text-warning">Mode plié, à choix multi niveau</span>
  179. <input value="<?php echo $contact->handicap; ?>" class="form-control" type="text" data-type="checkbox-list" data-depth="5" data-multi-level-select="true" data-slug="example_contact_handicap" data-display="dropdown" value="<?php echo $contact->handicap; ?>" id="handicap" >
  180. <span class="text-warning">Mode plié, à choix multi niveau, avec JSON</span>
  181. <input value="<?php echo $contact->handicap; ?>" class="form-control" type="text" data-type="checkbox-list" data-depth="5" data-multi-level-select="true" data-values='{"cat-1":{"id":"cat-1","label":"Catégorie custom 1"},"cat-2":{"id":"cat-2","label":"Catégorie custom 2"},"blind":{"id":"blind","label":"Aveugle","childs":{"one":{"id":"blind_one","label":"Dun oeil"},"two":{"id":"blind_two","label":"Des deux"}}},"lvl1":{"id":"lvl1","label":"Level 1","childs":{"lvl2":{"id":"lvl2","label":"Level 2","childs":{"lvl3":{"id":"lvl3","label":"Level 3","childs":{"lvl4":{"id":"lvl4","label":"Level 4","childs":{"lvl5":{"id":"lvl5","label":"Level 5"}}},"lvl4_1":{"id":"lvl4_1","label":"Level 4.1"},"lvl4_2":{"id":"lvl4_2","label":"Level 4.2"}}}}}}}}' data-display="dropdown" value="<?php echo $contact->handicap; ?>" id="handicap" >
  182. <span class="text-warning">Mode plié, à choix multi niveau, avec JSON simple</span>
  183. <input value="<?php echo $contact->handicap; ?>" class="form-control" type="text" data-type="checkbox-list" data-depth="5" data-multi-level-select="true" data-values='{"cat-1":"Catégorie custom 1", "cat-2":"Catégorie custom 2"}' data-display="dropdown" value="<?php echo $contact->handicap; ?>" id="handicap" >
  184. <span class="text-warning">Mode plié, à choix simple niveau</span>
  185. <input value="<?php echo $contact->handicap; ?>" class="form-control" type="text" data-type="checkbox-list" data-depth="3" data-exclusive-depth="true" data-multi-level-select="false" data-slug="example_contact_handicap" data-display="dropdown" value="<?php echo $contact->handicap; ?>" id="handicap" >
  186. <span class="text-warning">Mode déplié</span>
  187. <input data-type="checkbox-list" type="text" value="<?php echo $contact->handicap; ?>" data-slug="example_contact_handicap" data-depth="1" class="form-control" id="category2" data-values='{"cat-1":"Catégorie custom"}' />
  188. <label for="childs">Nb. Enfants</label>
  189. <input value="<?php echo $contact->childs; ?>" class="form-control" type="number" id="childs" >
  190. <label for="properties">Tags</label>
  191. <small class="text-muted" data-placement="right" data-tooltip title="* data-multiple : Autorise l'utilisateur a sélectionner des tag multiples
  192. * data-autocomplete : Propose une autocompletion sur les mots clés
  193. * data-dictionary-slug : a spécifier si l'autocomplete est lié a un dictionary">(Select data-type="tag")</small>
  194. <input value="<?php echo $contact->properties; ?>" class="form-control" type="text" data-type="tag" data-multiple=true id="properties" >
  195. <label for="color">Couleur préférée</label>
  196. <small class="text-muted"> (Input data-type="color")</small>
  197. <input onchange="$('#mainMenu').css('backgroundColor',$(this).val())" value="<?php echo $contact->color; ?>" class="form-control" type="text" data-type="color" id="color" >
  198. <label for="salary">Salaire brut</label>
  199. <input value="<?php echo $contact->salary; ?>" class="form-control" type=number data-type="price" step="0.01" id="salary" >
  200. <label for="orientation">Orientation</label>
  201. <small class="text-muted" data-placement="right" data-tooltip title='* data-values : Valeurs possibles au format json ({"clé1":"valeur1","clé2":"valeur2"})'> (Input data-type="choice")</small><br/>
  202. <?php
  203. $orientations = array();
  204. foreach(ContactExample::orientations() as $slug=>$item):
  205. $orientations[$slug] = $item['label'];
  206. endforeach;
  207. ?>
  208. <label><input value="<?php echo $contact->orientation ?>" data-values='<?php echo json_encode($orientations) ?>' data-type="choice" id="orientation" type="text" name="orientation"></label>
  209. <br/>
  210. <?php
  211. //Champs dynamiques
  212. global $myFirm;
  213. if($myFirm->has_plugin('fr.core.dynamicform')){
  214. Plugin::need('dynamicform/DynamicForm');
  215. echo Dynamicform::show('fiche-example',array(
  216. 'scope'=>'contact',
  217. 'uid'=>$contact->id
  218. ));
  219. }
  220. ?>
  221. <hr>
  222. <h4>Autres composants</h4>
  223. <small class="text-muted">Non lié a cette fiche contact</small>
  224. <label for="state">Etat</label>
  225. <small data-tooltip title="* data-icon : l'icone affichée près du label (optionnel)
  226. * data-value : valeur à l'affichage de la page (optionnel)
  227. * data-no-toggle : Supprime la fleche de dropdown nb: a mettre sur le select (optionnel)" class="text-muted">(Select data-type="dropdown-select")</small><br/>
  228. <select data-type="dropdown-select" class="item-state" id="state" data-value="active">
  229. <option value="active" style="background-color:#2cbe4e;color:#ffffff;" data-icon="far fa-check-circle">Actif</option>
  230. <option value="inactive" style="background-color:#c90000;color:#ffffff;" data-icon="far fa-times-circle">Inactif</option>
  231. </select><br/>
  232. <label for="tutor">Nom du tuteur :</label>
  233. <small class="text-muted"> (Div data-type="quickform")</small>
  234. <div class="quickform d-inline-block" data-type="quickform" data-title="Ajout rapide de tuteur :" data-loaded="example_quickform_buttons" data-action="contact_quick_create"><i title="Ajoutez rapidement un tuteur." class="fas fa-user-plus"></i></div>
  235. <input type="text" value="" placeholder="Nom du tuteur" class="form-control" id="tutor" name="tutor"/>
  236. <br>
  237. <label for="doughnut">Donuts</label>
  238. <small class="text-muted"> (canvas data-type="doughnut")</small>
  239. <canvas data-type="doughnut" data-values="[1,3,4,7]" data-labels='["fib","on","acci"]' data-colors='["#f39c12","#2980b9","#27ae60"]'></canvas>
  240. <br>
  241. <label for="line">Line</label>
  242. <small class="text-muted"> (canvas data-type="line")</small>
  243. <canvas data-type="line" data-values="[1,3,4,7]" data-labels='["fib","on","acci"]' data-color='#8e44ad'>Graphique example</canvas>
  244. <br>
  245. <label for="bar">Bar</label>
  246. <small class="text-muted"> (canvas data-type="bar")</small>
  247. <canvas data-type="bar" data-values="[2,3,4,7]" data-labels='["fib","on","acci"]' data-colors='["#f39c12","#2980b9","#27ae60"]'>Graphique example</canvas>
  248. <label for="bar">Gauge</label>
  249. <small class="text-muted"> (canvas data-type="gauge")</small>
  250. <canvas data-type="gauge" data-values="[75,100]" data-unity="€" data-legend="true" data-labels='["Atteint","Objectif"]'>Graphique example</canvas>
  251. <br>
  252. <label for="label">Widget de stats</label>
  253. <div>
  254. <?php if($myFirm->has_plugin('fr.core.statistic')) : ?>
  255. <?php
  256. Plugin::need('statistic/Widget');
  257. $firstWidget = Widget::loadAll(array(),array('id'));
  258. try{
  259. echo count($firstWidget)>0 ? Widget::show($firstWidget[0]->id) : 'Aucun widget existant';
  260. } catch(Exception $e){
  261. echo '<div class="alert alert-danger"><strong>Erreur : </strong>'.$e->getMessage().'</div>';
  262. } ?>
  263. <?php else: ?>
  264. Le plugin statistique doit être activé et au moins un widget créé pour voir cet exemple.
  265. <?php endif; ?>
  266. </div><br>
  267. <label for="dictionary-table">Tableau d'une liste</label>
  268. <small class="text-muted"> (div data-type="dictionary-table")</small>
  269. <!-- <div data-type="dictionary-table" data-dictionary="example_contact_vehicle"></div> -->
  270. <br>
  271. <?php if($myFirm->has_plugin('fr.core.stripe')) : ?>
  272. <label for="checkbox">Formulaire de paiement en ligne (via API Stripe)</label>
  273. <small class="text-muted"> (Div data-type="payment")</small><br>
  274. <small class="text-muted">Il faut configurer les clés API en config avant de pouvoir réaliser un paiement. (Voir <a href="https://stripe.com/docs/testing#cards" target="_blank">cette page</a> pour des cartes bleues de tests)</small>
  275. <div data-type="payment" data-action="example_stripe_pay"></div>
  276. <?php endif; ?>
  277. <?php if($myUser->can('export', 'read') && $myFirm->has_plugin('fr.core.export')) : ?>
  278. <div class="d-inline-block" data-type="export-model" data-pre-callback="contact_export_pre_callback" data-post-callback="contact_export_post_callback" data-parameters='<?php echo stripslashes(json_encode(array("plugin"=>"example","dataset"=>"contact-sheet","id"=>$contact->id,"destination"=>addslashes('contact'.SLASH.'documents'.SLASH.$contact->id.SLASH)))); ?>'>
  279. <div class="btn btn-primary"><i class="far fa-file"></i> Export modèle</div>
  280. </div>
  281. <?php endif; ?>
  282. <br><label for="checkbox">Sélection de dossier picker</label>
  283. <small class="text-muted" data-tooltip title="* data-editable : si spécifié, le chemin devient éditable aprés sélection (optionnel)
  284. * data-root : pour scoper un dossier particulier de file (ex: data-root='documents' pour scoper la ged)"> (Div data-type="filepicker")</small><br>
  285. <input type="text" id="personalFolder" data-type="filepicker" value="" class="form-control"/>
  286. <label>Radio button</label>
  287. <small class="text-muted"> (Input data-type="radio")</small><br/>
  288. <label><input checked="checked" value="key1" data-type="radio" type="radio" name="myName"> Radio boutton</label>
  289. <label for="jsontable">JSON Table</label>
  290. <small class="text-muted"> (Input data-type="jsontable")</small><br/>
  291. <input data-format="key-value" value='{"clé1":"valeur1","clé2":"valeur2"}' data-type="jsontable" type="text">
  292. <label for="jsontable2">JSON Table multiple champs</label>
  293. <small class="text-muted"> (Input data-type="jsontable")</small><br/>
  294. <input data-format="multiple-values" data-columns='{"slug":"valeur1","label":"valeur2","color":"valeur3"}' value='[{"slug":"valeur1","label":"valeur2","color":"valeur3"}]' data-type="jsontable" type="text">
  295. <label for="entitypicker">Entitée ciblée</label>
  296. <small class="text-muted"> (Input data-type="entitypicker")</small><br/>
  297. <input data-type="entitypicker" type="text">
  298. </div>
  299. </div>
  300. </div>