page.list.php 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. global $myFirm;
  3. if(!$myUser->can('example','read')) throw new Exception("Vous n'avez pas la permission pour executer cette fonctionnalité",403);
  4. require_once('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. </select>
  25. </div>
  26. <div class="col-md-4">
  27. <?php if($myUser->can('example', 'edit')) : ?>
  28. <a href="index.php?module=example&page=sheet" class="btn btn-success right"><i class="fas fa-plus"></i> Ajouter un contact</a>
  29. <?php endif; ?>
  30. <?php if($myUser->can('export', 'read') && $myFirm->has_plugin('fr.idleman.export')) : ?>
  31. <div style="display: inline-block;" class="right mr-2" data-type="export_model" data-callback="contact_export_callback" data-parameters='<?php echo stripslashes(json_encode(array("plugin"=>"example","dataset"=>"contact-list"))); ?>'>
  32. <div class="btn btn-primary"><i class="far fa-file"></i> Export modèle</div>
  33. </div>
  34. <?php endif; ?>
  35. </div>
  36. </div>
  37. <br/>
  38. <div class="row">
  39. <div class="col-xl-12">
  40. <!-- Résultats -->
  41. <table id="contacts" class="table table-striped">
  42. <thead>
  43. <tr>
  44. <th>#</th>
  45. <th></th>
  46. <th data-sortable="label">Libellé</th>
  47. <th data-sortable="phone">Téléphone</th>
  48. <th>Date de naissance</th>
  49. <th>Auteur</th>
  50. <th>Horodatage</th>
  51. <th></th>
  52. </tr>
  53. </thead>
  54. <tbody>
  55. <tr data-id="{{id}}" class="hidden">
  56. <td>{{id}}</td>
  57. <td><img data-src="{{picture}}" class="avatar-mini avatar-rounded"></td>
  58. <td><a href="index.php?module=example&page=sheet&id={{id}}">{{label}}</a></td>
  59. <td>{{phone}}</td>
  60. <td>{{birth}}</td>
  61. <td>{{author}}</td>
  62. <td><small class="text-muted">Créé le {{created}} par {{creator}} <br/> Modifié le {{updated}} par {{updater}}</small></td>
  63. <td class="text-right">
  64. <div class="btn-group btn-group-sm" role="group">
  65. <a class="btn btn-info" href="index.php?module=example&page=sheet&id={{id}}"><i class="fas fa-pencil-alt"></i></a>
  66. <div class="btn btn-danger" onclick="contact_delete(this);"><i class="far fa-trash-alt"></i></div>
  67. </div>
  68. </td>
  69. </tr>
  70. </tbody>
  71. </table>
  72. <!-- Pagination -->
  73. <ul class="pagination justify-content-center">
  74. <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()">
  75. <a class="page-link" href="#">{{label}}</a>
  76. </li>
  77. </ul>
  78. </div>
  79. </div>