| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 | 
							- <?php
 
- global $myFirm,$myUser;
 
- User::check_access('example','read');
 
- require_once(__DIR__.SLASH.'ContactExample.class.php');
 
- $solvabilities = array();
 
- foreach (ContactExample::solvabilities() as $key => $solvability) {
 
-     $solvabilities[$key] = $solvability['label'];
 
- }
 
- $orientations =  array();
 
- foreach (ContactExample::orientations() as $key => $orientation) {
 
-     $orientations[$key] = $orientation['label'];
 
- }
 
- $defaultFilters = filters_default(array(
 
-     "jean",
 
-     array(
 
-         'birth' => "17/09/1998",
 
-         'join' => 'or'
 
-     ),
 
-     array(
 
-         'phone:like' => "9754"
 
-     )
 
- ));
 
- $filters = array();
 
- $columns = array();
 
-  //Filtres && colonne tableau en fonction des champs dynamiques
 
- if($myFirm->has_plugin('fr.core.dynamicform')){
 
-     Plugin::need('dynamicform/DynamicForm');
 
-     //Récuperation des champs custom
 
-     $fields = Dynamicform::list('fiche-example');
 
-     //Ajout des champs custom en filtres
 
-     $filters = array_merge($filters,Dynamicform::get_filters($fields));
 
-     //Ajout des champs custom en colonnes dynamiques
 
-     $columns = array_merge($columns,Dynamicform::get_dynamic_columns($fields));
 
- }
 
- ?>
 
- <div class="plugin-example">
 
-     <div class="row">
 
-         <div class="col-md-12">
 
-             <div class="d-flex my-2 w-100">
 
-                 <h4 class="d-inline-block my-auto mx-0 text-uppercase">Liste des contacts</h4>
 
-                 <div class="text-left ml-3 d-inline-block noPrint">
 
-                     <!-- impression de la page courante -->
 
-                     <div onclick="window.print();" class="btn btn-info rounded-0 btn-squarred" data-tootltip title="Imprimer la page"><i class="fas fa-print"></i></div>
 
-                     <!-- export classique des résultats -->
 
-                     <div onclick="example_contact_search(null,true);" id="export-examples-btn" class="btn btn-info rounded-0 btn-squarred ml-1 btn-export" data-tootltip title="Exporter les résultats"><i class="fas fa-file-export"></i></div>
 
-                     <!-- exports modèles si disponibles -->
 
-                     <?php if($myUser->can('export', 'read') && $myFirm->has_plugin('fr.core.export')) : ?>
 
-                         <div class="right mr-2 d-inline-block" data-type="export-model" data-default="xlsx2" 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-list"))); ?>'>
 
-                             <div data-tootltip title="Exporter selon modèle" class="btn btn-info rounded-0 btn-squarred ml-2"><i class="far fa-file"></i></div>
 
-                         </div>
 
-                     <?php endif; ?>
 
-                 </div>
 
-                 <div class="my-auto ml-auto mr-0 noPrint">
 
-                     <?php if($myUser->can('example', 'edit')) : ?>
 
-                     <a href="index.php?module=example&page=sheet.contact" title="Ajouter" data-tooltip class="btn btn-success right"><i class="fas fa-plus"></i></a>
 
-                     <?php endif; ?>
 
-                 </div>
 
-             </div>
 
-             <div class="clear noPrint"></div>
 
-         </div>
 
-         <div class="col-md-12">
 
-               <!--
 
-             voir filter.component.js pour la documentation
 
-             data-default='<?php echo json_encode($defaultFilters); ?>'
 
-              -->
 
-             <select
 
-                 id="example_contact-filters"
 
-                 data-type="filter"
 
-                 data-function="example_contact_search"
 
-                 data-slug="contact-search"
 
-                 data-label="Trouver un contact"
 
-                 data-global-shortcut="#contact-shortcuts"
 
-                 data-user-shortcut="#contact-shortcuts"
 
-                 data-show-url-advanced="false"
 
-                 data-configure="<?php echo $myUser->can('example','configure') ? 1:0 ?>"
 
-             >
 
-               <!-- pour une recherche simple, ne pas spécifier d'options dans cette liste -->
 
-                 <option value="main.label" data-filter-type="text">Libellé</option>
 
-                 <option value="main.phone" data-filter-type="phone">Téléphone</option>
 
-                 <option value="main.birth" data-filter-type="date">Date de naissance</option>
 
-                 <option value="main.hour" data-filter-type="hour">Heure de naissance</option>
 
-                 <option value="main.firm" data-filter-type="firm">Etablissement</option>
 
-                 <option value="main.manager" data-filter-type="user">Manager</option>
 
-                 <option value="main.address" data-filter-type="address">Adresse</option>
 
-                 <option value="main.properties" data-operator-delete='["in","not in"]' data-filter-type="tag">Tags</option>
 
-                 <option value="main.vehicle" data-slug="example_contact_vehicle" data-depth="1" data-filter-type="dictionary">Véhicule</option>
 
-                 <option value="main.handicap" data-slug="example_contact_handicap"  data-filter-type="list" data-depth="3" data-multi-level-select="true">Handicaps</option>
 
-                 <option value="main.solvability" data-filter-type="list"  data-values='<?php echo json_encode($solvabilities); ?>' >Solvabilité</option>
 
-                 <option value="main.orientation"  data-filter-source='<?php echo json_encode($orientations); ?>' data-filter-type="choice">Orientation</option>
 
-                 <option value="main.storyshort" data-filter-type="textarea">Histoire résumée</option>
 
-                 <option value="main.story" data-filter-type="wysiwyg">Histoire riche</option>
 
-                 <option value="main.password" data-filter-type="password">Mot de passe</option>
 
-                 <option value="main.icon" data-filter-type="icon">Icone préférée</option>
 
-                 <option value="main.available" data-filter-type="boolean">Disponible</option>
 
-                 <option value="main.childs" data-operator-view='{"in":{"view":"tag"}}' data-filter-type="integer">Nb. Enfants</option>
 
-                 <option value="main.size" data-filter-type="decimal">Taille</option>
 
-                 <option value="main.color" data-filter-type="color">Couleur préférée</option>
 
-                 <option value="main.salary" data-filter-type="price">Salaire brut</option>
 
-                 <option value="main.website" data-filter-type="url">Site perso</option>
 
-                 <option value="main.mail" data-filter-type="mail">Email</option>
 
-                 <option value="main.mobile" data-filter-type="phone">Téléphone portable</option>
 
-                 <?php foreach($filters as $filter):
 
-                     echo $filter;
 
-                 endforeach; ?>
 
-             </select>
 
-             <!-- Exemple de templates de bouttons de recherche rapide pré-enregistrées -->
 
-             <div id="contact-shortcuts" class="p-0 m-0 mb-2">
 
-                 <h4 class="has-shortcut mb-0 text-uppercase user-select-all">Mes recherches</h4>
 
-                 <ul class="pl-0 list-unstyled">
 
-                     <li class="hidden d-inline-block">
 
-                         <div class="btn btn-small btn-link pl-0" onclick="$('#filters').data('componentObject').filter_search_execute('{{uid}}');"><i class="fas fa-search"></i> {{label}}</div>
 
-                     </li>
 
-                 </ul>
 
-             </div>
 
-         </div>
 
-     </div>
 
-     <h5 class="results-count my-2"><span></span> Résultat(s)
 
-         <!-- bloc de preference de pagination -->
 
-         <small class="text-muted right text-muted text-small"><div class="d-inline-block mr-1" data-type="pagination-preference" data-table="#contacts" data-value="20" data-max-item="100"></div></small><div class="clear"></div>
 
-     </h5>
 
-     <div class="row">
 
-     	<!-- search results -->
 
-     	<div class="col-xl-12">
 
-             <!-- présentation tableau -->
 
-             <table
 
-                 id="contacts"
 
-                 class="table table-striped "
 
-                 data-slug="contact-search-table"
 
-                 data-entity-search="example_contact_search"
 
-                 data-column-search="example_contact_search"
 
-             >
 
-                 <thead>
 
-                     <tr>
 
-                         <th data-sortable="label">Libellé</th>
 
-                         <th data-sortable="phone">Téléphone</th>
 
-                         <th data-available="birth" data-sortable="birth">Date de naissance</th>
 
-                         <th data-available="hour" data-sortable="hour">Heure de naissance</th>
 
-                         <th data-sortable="firm">Etablissement</th>
 
-                         <th data-sortable="manager">Manager</th>
 
-                         <th data-available="address" data-sortable="address">Adresse</th>
 
-                         <th data-sortable="properties">Tags</th>
 
-                         <th data-sortable="vehicle">Véhicule</th>
 
-                         <th data-available="storyshort" data-sortable="storyshort">Histoire résumée</th>
 
-                         <th data-available="story" data-sortable="story">Histoire riche</th>
 
-                         <th data-available="password" data-sortable="password">Mot de passe</th>
 
-                         <th data-sortable="icon">Icone</th>
 
-                         <th data-sortable="available">Disponible</th>
 
-                         <th data-sortable="cv">CV</th>
 
-                         <th data-sortable="avatar">Avatar</th>
 
-                         <th data-available="solvability"  data-sortable="solvability">Solvabilité</th>
 
-                         <th data-sortable="handicap">Handicaps</th>
 
-                         <th data-available="childs" data-sortable="childs">Nb. Enfants</th>
 
-                         <th data-available="size" data-sortable="size">Taille</th>
 
-                         <th data-sortable="color">Couleur</th>
 
-                         <th data-available="salary" data-sortable="salary">Salaire</th>
 
-                         <th data-sortable="orientation">Orientation</th>
 
-                         <th data-available="website" data-sortable="website">Site perso</th>
 
-                         <th data-available="mail" data-sortable="mail">Email</th>
 
-                         <?php  foreach($columns as $row): echo $row['head']; endforeach; ?>
 
-                         <th data-available="created" data-sortable="created">Horodatage</th>
 
-                         <th></th>
 
-                     </tr>
 
-                 </thead>
 
-                 <tbody>
 
-                     <tr data-id="{{id}}" class="hidden item-line">
 
-     	                <td class="align-middle">{{label}}</td>
 
-     	                <td class="align-middle">{{phone}}</td>
 
-     	                <td class="align-middle">{{birth-readable}}</td>
 
-     	                <td class="align-middle">{{hour}}</td>
 
-     	                <td class="align-middle">{{firm.label}}</td>
 
-     	                <td class="align-middle"><img src="{{manager.avatar}}" class="avatar-mini avatar-rounded avatar-login" title="{{manager.fullName}}"> {{manager.fullName}}</td>
 
-     	                <td class="align-middle">{{address}}</td>
 
-     	                <td class="align-middle">
 
-                             {{#properties}}
 
-                                 <span class="badge badge-secondary">{{.}}</span>
 
-                             {{/properties}}
 
-                         </td>
 
-     	                <td class="align-middle">{{vehicle.label}}</td>
 
-     	                <td class="align-middle">{{storyshort}}</td>
 
-     	                <td class="align-middle">{{{story}}}</td>
 
-     	                <td class="align-middle">{{password}}</td>
 
-     	                <td class="align-middle"><i class="{{icon}}"></i> {{icon}}</td>
 
-     	                <td class="align-middle">{{#available}} <i class="fas fa-check text-success"></i> OUI{{/available}}{{^available}}<i class="fas fa-times text-danger"></i> Non{{/available}}</td>
 
-     	                <td class="align-middle">
 
-                             <ul class="list-group list-group-flush shadow-sm">
 
-                                 {{#cv}}
 
-                                 <li class="list-group-item p-1"><a href="{{url}}">{{label}}</a></li>
 
-                                 {{/cv}}
 
-                             </ul></td>
 
-     	                <td class="align-middle"><img class="shadow-sm rounded-sm avatar-medium" style="max-width: 100px;height: auto;" src="{{avatar}}"></td>
 
-     	                <td class="align-middle">{{solvability.label}}</td>
 
-     	                <td class="align-middle">
 
-                             {{#handicaps}}
 
-                                 <span class="badge badge-secondary">{{label}}</span>
 
-                             {{/handicaps}}
 
-                         </td>
 
-     	                <td class="align-middle">{{childs}}</td>
 
-     	                <td class="align-middle">{{size}}</td>
 
-     	                <td class="align-middle"><i class="fas fa-dot-circle" style="color:{{color}}"></i> {{color}}</td>
 
-     	                <td class="align-middle">{{salary}}</td>
 
-     	                <td class="align-middle">{{orientation.label}}</td>
 
-     	                <td class="align-middle"><a href="{{website}}">{{website}}</a></td>
 
-     	                <td class="align-middle">{{mail}}</td>
 
-                         <?php foreach($columns as $row): echo $row['body']; endforeach;  ?>
 
-                         <td><small class="text-muted">Créé le {{created}} par {{creator}} <br/> Modifié le {{updated}} par {{updater}}</small></td>
 
-     	                <td class="align-middle text-right">
 
-                             <div class="btn-group btn-group-sm" role="group">
 
-                                 <a class="btn text-info" title="Éditer contact" href="index.php?module=example&page=sheet.contact&id={{id}}"><i class="fas fa-pencil-alt"></i></a>
 
-                                 <div class="btn text-danger" title="Supprimer contact" onclick="example_contact_delete(this);"><i class="far fa-trash-alt"></i></div>
 
-                             </div>
 
-     	                </td>
 
-                     </tr>
 
-                </tbody>
 
-             </table>
 
-             <br>
 
-              <!-- Pagination (data-range définit le nombre de pages max affichées avant et après la page courante) -->
 
-             <ul class="pagination justify-content-center"  data-range="5">
 
-                 <li class="page-item hidden" data-value="{{value}}" title="Voir la page {{label}}" onclick="$(this).parent().find('li').removeClass('active');$(this).addClass('active');example_contact_search();">
 
-                     <span class="page-link">{{label}}</span>
 
-                 </li>
 
-             </ul>
 
-     	</div>
 
-     </div>
 
- </div>
 
 
  |