選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

152 行
4.6KB

  1. /**
  2. * Copyright Guillaume Bourgeois (2018)
  3. *
  4. * contact@souke.fr
  5. *
  6. * Ce logiciel est un programme informatique servant à aider les producteurs
  7. * à distribuer leur production en circuits courts.
  8. *
  9. * Ce logiciel est régi par la licence CeCILL soumise au droit français et
  10. * respectant les principes de diffusion des logiciels libres. Vous pouvez
  11. * utiliser, modifier et/ou redistribuer ce programme sous les conditions
  12. * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
  13. * sur le site "http://www.cecill.info".
  14. *
  15. * En contrepartie de l'accessibilité au code source et des droits de copie,
  16. * de modification et de redistribution accordés par cette licence, il n'est
  17. * offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
  18. * seule une responsabilité restreinte pèse sur l'auteur du programme, le
  19. * titulaire des droits patrimoniaux et les concédants successifs.
  20. *
  21. * A cet égard l'attention de l'utilisateur est attirée sur les risques
  22. * associés au chargement, à l'utilisation, à la modification et/ou au
  23. * développement et à la reproduction du logiciel par l'utilisateur étant
  24. * donné sa spécificité de logiciel libre, qui peut le rendre complexe à
  25. * manipuler et qui le réserve donc à des développeurs et des professionnels
  26. * avertis possédant des connaissances informatiques approfondies. Les
  27. * utilisateurs sont donc invités à charger et tester l'adéquation du
  28. * logiciel à leurs besoins dans des conditions permettant d'assurer la
  29. * sécurité de leurs systèmes et ou de leurs données et, plus généralement,
  30. * à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
  31. *
  32. * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
  33. * pris connaissance de la licence CeCILL, et que vous en avez accepté les
  34. * termes.
  35. */
  36. $(document).ready(function() {
  37. opendistrib_dropdown_tooltip();
  38. });
  39. function opendistrib_dropdown_tooltip() {
  40. if($('.dropdown-bs-toggle').length) {
  41. //$('.dropdown-toggle').dropdown() ;
  42. }
  43. if($('[data-bs-toggle="tooltip"]').length) {
  44. // $('[data-bs-toggle="tooltip"]').tooltip() ;
  45. var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
  46. var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
  47. return new bootstrap.Tooltip(tooltipTriggerEl);
  48. });
  49. }
  50. }
  51. /**
  52. * Retourne un prix sans taxe sur base du prix avec tax
  53. *
  54. * @param priceWithTax
  55. * @param taxRate
  56. * @returns {string}
  57. */
  58. function getPrice(priceWithTax, taxRate) {
  59. return numberDecimals(parseFloat(parseFloat(priceWithTax) / (taxRate + 1)), 5);
  60. }
  61. /**
  62. * Retourne un prix avec taxe sur base du prix sans taxe
  63. *
  64. * @param priceWithoutTax
  65. * @param taxRate
  66. * @returns {string}
  67. */
  68. function getPriceWithTax(priceWithoutTax, taxRate) {
  69. return numberDecimals(parseFloat(parseFloat(priceWithoutTax) * (taxRate + 1)), 2);
  70. }
  71. function numberDecimals(num, decimals) {
  72. return Number(num).toFixed(decimals) ;
  73. }
  74. /**
  75. * Formate un prix en l'arrondissant et en ajoutant le sigle de la monnaie
  76. *
  77. * @param price
  78. * @returns {string}
  79. */
  80. function formatPrice(price) {
  81. return numberDecimals(price, 2).replace('.', ',') + ' €';
  82. }
  83. /**
  84. * Formate une date au format jj/mm/yyyy
  85. * @param date
  86. * @returns {*}
  87. */
  88. function formatDate(date) {
  89. if (date) {
  90. return ('0' + date.getDate()).slice(-2) + '/' + ('0' + (date.getMonth() + 1)).slice(-2) + '/' + date.getFullYear();
  91. }
  92. return false;
  93. }
  94. /**
  95. * Equivalent de console.log (ne déclenche pas d'erreur si la console est fermé)
  96. *
  97. * @param msg
  98. */
  99. function log(msg) {
  100. try {
  101. console.log(msg);
  102. } catch (e) {
  103. }
  104. }
  105. /**
  106. * Convertit un formulaire ou un objet en JSON (utilisé pour l'envoie de donnée en ajax)
  107. */
  108. $.fn.serializeObject = function () {
  109. var o = {};
  110. var a = this.serializeArray();
  111. $.each(a, function () {
  112. if (o[this.name] !== undefined) {
  113. if (!o[this.name].push) {
  114. o[this.name] = [o[this.name]];
  115. }
  116. o[this.name].push(this.value || '');
  117. } else {
  118. o[this.name] = this.value || '';
  119. }
  120. });
  121. return o;
  122. };
  123. function getDateFormatted(date) {
  124. var _d = date.getDate(),
  125. d = _d > 9 ? _d : '0' + _d,
  126. _m = date.getMonth() + 1,
  127. m = _m > 9 ? _m : '0' + _m,
  128. formatted = date.getFullYear() + '-' + m + '-' + d;
  129. return formatted;
  130. }
  131. //Affiche une alert au click sur un bouton submit lorsqu'un utilisateur admin tente de modifer un établissement
  132. function userNotAllowToEdit() {
  133. alert('Vous n\'êtes pas autorisé à effectuer cette action');
  134. return false;
  135. }