2
0

cms.documents.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. $jsonTarget = "/json.php?file=documents";
  3. if (debug::isFile("debug")) {
  4. debug::log(debug::getBadge($jsonTarget, "OUVRIR LE JSON : " . $jsonTarget), "JSON chargé en arrière plan");
  5. }
  6. ?>
  7. <header class="d-flex flex-column flex-md-row align-items-md-center p-3 bg-light ">
  8. <h2 class="bd-title" id="content">
  9. <span>Listes des documents</span>
  10. </h2>
  11. <?php if (access::ifAccesss("add-document")) { ?>
  12. <div class="fix-container-button-nav">
  13. <a href="/add-document.html"><button type="submit" class="btn btn-outline-success btn-sm"><?php icon::getFont(["icon" => "bi bi-file-earmark-plus"]) ?> Ajouter un document</button></a>
  14. </div>
  15. <?php } ?>
  16. </header>
  17. <?php
  18. echo core::filAriane(array(
  19. "current" => "Listes des documents",
  20. "arbo" => array(
  21. "Documents" => NULL,
  22. "Listes des documents" => "/documents.html"
  23. ),
  24. "refresh-json" => "documents"
  25. ));
  26. ?>
  27. <div>
  28. <table
  29. id="table"
  30. class="table-striped table-hover table-sm"
  31. data-page-size="25"
  32. data-toggle="table"
  33. data-show-columns="true"
  34. data-search="true"
  35. data-buttons-align="left"
  36. data-show-footer="true"
  37. data-pagination="true"
  38. data-filter-control="true"
  39. data-flat="true"
  40. data-sort-name="date"
  41. data-sort-order="desc"
  42. data-show-export="true"
  43. data-page-list="[25, 50, 100, 250, all]"
  44. data-url="<?php echo $jsonTarget ?>">
  45. <thead>
  46. <tr>
  47. <th data-sortable="true" data-field="date" data-filter-control="input" data-width="90">Date</th>
  48. <th data-sortable="true" data-field="titre" data-filter-control="input">Titre</th>
  49. <th data-sortable="true" data-field="label" data-filter-control="select" data-width="125">Type</th>
  50. <th data-sortable="true" data-field="attach" data-filter-control="select" data-width="180">Attachement</th>
  51. <th data-sortable="true" data-field="deadline" data-filter-control="input" data-width="90">Echéance</th>
  52. <th data-sortable="true" data-field="tags" data-filter-control="input" data-width="200">Tags</th>
  53. <th data-sortable="true" data-field="assign" data-filter-control="select" data-width="200">Attribution</th>
  54. <th data-sortable="true" s data-field="done" data-filter-control="select" data-width="100">Statut</th>
  55. <th data-sortable="true" data-field="montant" data-filter-control="input" data-width="110" data-formatter="dataFormatter" data-footer-formatter="montantFormatter">Montant</th>
  56. <th data-field="id" data-formatter="selectFormatter" data-width="60"></th>
  57. </tr>
  58. </thead>
  59. </table>
  60. </div>
  61. <script>
  62. <?php
  63. if (core::ifGet("tag")) { ?>
  64. $(function() {
  65. tagValue = "<?php echo core::getGet("tag"); ?>";
  66. if (tagValue) {
  67. function applyTagFilter() {
  68. var $input = $('#table input.bootstrap-table-filter-control-tags');
  69. console.log('input:', $input.length, 'valeur:', tagValue);
  70. if ($input.length) {
  71. $input.val(tagValue).trigger('input');
  72. }
  73. }
  74. $('#table').on('post-body.bs.table post-header.bs.table', applyTagFilter);
  75. setTimeout(applyTagFilter, 800);
  76. }
  77. });
  78. <?php
  79. }
  80. ?>
  81. function selectFormatter(value, row) {
  82. return '<a href="/document-' + row.id + '.html"><button type="submit" class="btn btn-outline-primary btn-sm">Ouvrir</button></a>';
  83. }
  84. let euro = Intl.NumberFormat('de-DE', {
  85. style: 'currency',
  86. currency: 'EUR',
  87. });
  88. function dataFormatter(value) {
  89. return euro.format(value);
  90. }
  91. function montantFormatter(data) {
  92. var total = 0;
  93. data.forEach(function(row) {
  94. total += parseFloat(row.montant);
  95. });
  96. return parseFloat(total) === 0 ? euro.format(0.00) : euro.format(total.toFixed(2));
  97. }
  98. </script>