page.list.php 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. global $myFirm;
  3. User::check_access('example','read');
  4. require_once(__DIR__.SLASH.'Contact.class.php');
  5. ?>
  6. <div class="row">
  7. <div class="col-md-8">
  8. <!--
  9. data-join : spécifie la liaison par défaut des filtres (and | or) si rien n'est spéficié ou que l'attrbute n'existe pas, un select apparait pour
  10. que l'utilisateur puisse choisir
  11. data-slug : si spécifié, la recherche devient enregistrable pour une réutilisation ultérieure
  12. data-only-advanced :si l'attribut est présent, cache la recherche simple et ouvre par defaut la recherche avancée
  13. data-autosearch (default: true) : si définit a false, ne lancera pas la fonction data-function automatiquement en fin de chargement du composant
  14. -->
  15. <select id="filters" data-slug="contact-search" data-type="filter" data-label="Recherche" data-join="and" data-function="contact_search" >
  16. <!-- pour une recherche simple, ne pas spécifier d'options dans cette liste -->
  17. <option value="birth" data-filter-type="date">Date de naissance</option>
  18. <option value="label" data-filter-type="text">Libellé</option>
  19. <option value="author" data-filter-type="user">Auteur</option>
  20. <option value="phone" data-filter-type="text">Téléphone</option>
  21. <option value="vehicle" data-filter-type="dictionnary" data-slug="vehicles" data-depth="2" data-disable-label>Véhicule</option>
  22. <option value="customList" data-filter-type="dictionnary" data-filter-source='<?php echo json_encode(array('c1'=>'Valeur 1','c2'=>'valeur 2')); ?>'>Ma liste custom</option>
  23. <option value="myNumber" data-filter-type="number">Un nombre</option>
  24. <option value="mycheckbox1" data-filter-type="boolean">Ma checkbox 1</option>
  25. </select>
  26. </div>
  27. <div class="col-md-4">
  28. <?php if($myUser->can('example', 'edit')) : ?>
  29. <a href="index.php?module=example&page=sheet" class="btn btn-success right"><i class="fas fa-plus"></i> Ajouter un contact</a>
  30. <?php endif; ?>
  31. <?php if($myUser->can('export', 'read') && $myFirm->has_plugin('fr.idleman.export')) : ?>
  32. <div class="right mr-2 d-inline-block" data-type="export-model" data-default="testouille" data-callback="contact_export_callback" data-parameters='<?php echo stripslashes(json_encode(array("plugin"=>"example","dataset"=>"contact-list"))); ?>'>
  33. <div class="btn btn-primary"><i class="far fa-file"></i> Export modèle</div>
  34. </div>
  35. <?php endif; ?>
  36. </div>
  37. </div>
  38. <br/>
  39. <h4 class="results-count"><span></span> Résultat(s) <div class="btn btn-dark btn-small" onclick="contact_search(null,true)"><i class="far fa-file-excel"></i> Exporter</div></h4>
  40. <div class="row">
  41. <div class="col-xl-12">
  42. <!-- Résultats -->
  43. <table id="contacts" class="table table-striped">
  44. <thead>
  45. <tr>
  46. <th>#</th>
  47. <th></th>
  48. <th data-sortable="label">Libellé</th>
  49. <th data-sortable="phone">Téléphone</th>
  50. <th>Date de naissance</th>
  51. <th>Auteur</th>
  52. <th>Horodatage</th>
  53. <th></th>
  54. </tr>
  55. </thead>
  56. <tbody>
  57. <tr data-id="{{id}}" class="hidden">
  58. <td>{{id}}</td>
  59. <td><img data-src="{{picture}}" class="avatar-mini avatar-rounded"></td>
  60. <td><a href="index.php?module=example&page=sheet&id={{id}}">{{label}}</a></td>
  61. <td>{{phone}}</td>
  62. <td>{{birth}}</td>
  63. <td>{{author}}</td>
  64. <td><small class="text-muted">Créé le {{created}} par {{creator}} <br/> Modifié le {{updated}} par {{updater}}</small></td>
  65. <td class="text-right">
  66. <div class="btn-group btn-group-sm" role="group">
  67. <a class="btn btn-info" href="index.php?module=example&page=sheet&id={{id}}"><i class="fas fa-pencil-alt"></i></a>
  68. <div class="btn btn-danger" onclick="contact_delete(this);"><i class="far fa-trash-alt"></i></div>
  69. </div>
  70. </td>
  71. </tr>
  72. </tbody>
  73. </table>
  74. <!-- Pagination (data-range définit le nombre de pages max affichées avant et après la page courante) -->
  75. <ul class="pagination justify-content-center" data-range="3">
  76. <li class="page-item hidden" data-value="{{value}}" title="Voir la page {{label}}" onclick="$(this).parent().find('li').removeClass('active');$(this).addClass('active');contact_search()">
  77. <span class="page-link">{{label}}</span>
  78. </li>
  79. </ul>
  80. </div>
  81. </div>