您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

144 行
4.1KB

  1. $(document).ready(function () {
  2. scrollMenu();
  3. menuToggle();
  4. closeMenu();
  5. manageFormContact();
  6. manageFormSearch();
  7. manageFormIndiv();
  8. initialisePopovers();
  9. });
  10. function initialisePopovers() {
  11. $('[data-toggle="popover"]').popover({
  12. html: true,
  13. container: '.map',
  14. placement: 'top',
  15. trigger: 'focus',
  16. });
  17. $('[data-toggle="popover-bulle"]').popover({
  18. html: true,
  19. container: '.popup-bulle',
  20. trigger: 'click',
  21. });
  22. }
  23. function manageFormIndiv() {
  24. document
  25. .querySelectorAll('.add_item_link')
  26. .forEach(btn => btn.addEventListener("click", addFormToCollection));
  27. }
  28. const addFormToCollection = (e) => {
  29. const collectionHolder = document.querySelector('.' + e.currentTarget.dataset.collectionHolderClass);
  30. const item = document.createElement('li');
  31. item.innerHTML = collectionHolder
  32. .dataset
  33. .prototype
  34. .replace(
  35. /__name__/g,
  36. collectionHolder.dataset.index
  37. );
  38. collectionHolder.appendChild(item);
  39. collectionHolder.dataset.index++;
  40. if (collectionHolder.dataset.index >= 6) {
  41. e.currentTarget.style.visibility = 'hidden';
  42. }
  43. // add a delete link to the new form
  44. addFormDeleteLink(item, e.currentTarget);
  45. };
  46. const addFormDeleteLink = (formLi, currentTarget) => {
  47. const collectionHolder = document.querySelector('.' + currentTarget.dataset.collectionHolderClass);
  48. const removeFormButton = document.createElement('button')
  49. removeFormButton.classList.add('button-green', 'button-remove')
  50. removeFormButton.innerText = 'Supprimer'
  51. formLi.append(removeFormButton);
  52. removeFormButton.addEventListener('click', (e) => {
  53. collectionHolder.dataset.index--;
  54. if (collectionHolder.dataset.index <= 6) {
  55. currentTarget.style.visibility = 'visible';
  56. }
  57. e.preventDefault()
  58. formLi.remove();
  59. });
  60. }
  61. function menuToggle() {
  62. var box = $('.menu-content');
  63. var button = $('.toggle');
  64. button.on('click', function () {
  65. box.toggle('slow');
  66. });
  67. }
  68. function closeMenu() {
  69. var box = $('.menu-content');
  70. $('.row-menu a').on('click', function () {
  71. box.toggle('slow');
  72. })
  73. }
  74. function scrollMenu() {
  75. $('a[href*="#"]:not([href="#"])').click(function () {
  76. var target = $(this.hash);
  77. $('html,body').stop().animate({
  78. scrollTop: target.offset().top - 122
  79. }, 'linear');
  80. });
  81. if (location.hash) {
  82. var id = $(location.hash);
  83. $('html,body').animate({scrollTop: id.offset().top - 122}, 'linear')
  84. }
  85. }
  86. function manageFormSearch() {
  87. $(".dropdown-search").on("change", "input[type='checkbox']", function () {
  88. $(this).closest("li").toggleClass("active", this.checked);
  89. });
  90. $(document).on('click', '.allow-focus', function (e) {
  91. e.stopPropagation();
  92. });
  93. $('.pagination a').click(function (e) {
  94. console.log(this.href.split('page=')[1]);
  95. $('.hidden-page').val(this.href.split('page=')[1]);
  96. $('.search-button').click();
  97. return false;
  98. });
  99. }
  100. function manageFormContact() {
  101. $('.lccap').val('blop');
  102. $('#contact-form-btn').on('click', function () {
  103. if (checkFormValidity('#contact-form')) {
  104. $('#contact-form').fadeOut(200);
  105. $form = $('#contact-form');
  106. $.ajax({
  107. url: $form.prop('action'),
  108. method: $form.prop('method'),
  109. data: $form.serialize(),
  110. dataType: "json",
  111. success: function (response) {
  112. $('#contact-form').html('<p class="success-post">Merci pour votre message, nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais.</p>');
  113. $('#contact-form').fadeIn(500);
  114. }
  115. });
  116. }
  117. });
  118. }
  119. function checkFormValidity(formId) {
  120. if (!document.getElementById(formId.substr(1)).checkValidity()) {
  121. document.getElementById(formId.substr(1)).reportValidity()
  122. return false;
  123. } else {
  124. return true;
  125. }
  126. }