pagesToDisplay.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // sélectionner l'interval de pages à afficher
  2. // laisser les inputs vides pour afficher toutes les pages
  3. if (debug) console.log('start pagesToDisplay');
  4. (function() {
  5. let uiContent = document.querySelector('.uiContent');
  6. let pagesToDisplayContainer = document.createElement('div');
  7. pagesToDisplayContainer.classList.add('pagesToDisplay');
  8. let pagesToDisplayTitle = document.createElement('div');
  9. pagesToDisplayTitle.innerText = "Afficher l'interval de pages";
  10. let intervalContainer = document.createElement('div');
  11. intervalContainer.classList.add('intervalContainer');
  12. let textFrom = document.createElement('p');
  13. textFrom.innerText = "De";
  14. let inputFrom = document.createElement('input');
  15. inputFrom.setAttribute('type', 'text');
  16. let textTo = document.createElement('p');
  17. textTo.innerText = "à";
  18. let inputTo = document.createElement('input');
  19. inputTo.setAttribute('type', 'text');
  20. inputTo.addEventListener('keypress', function(event) {
  21. if (event.key === "Enter") displayPagesRange(inputFrom.value, inputTo.value)
  22. })
  23. let button = document.createElement('button');
  24. button.innerText = 'Go';
  25. button.addEventListener('click', function() { displayPagesRange(inputFrom.value, inputTo.value) });
  26. intervalContainer.append(textFrom);
  27. intervalContainer.append(inputFrom);
  28. intervalContainer.append(textTo);
  29. intervalContainer.append(inputTo);
  30. intervalContainer.append(button);
  31. pagesToDisplayContainer.append(pagesToDisplayTitle);
  32. pagesToDisplayContainer.append(intervalContainer);
  33. uiContent.append(pagesToDisplayContainer);
  34. function displayPagesRange(start, end) {
  35. let pages = document.querySelectorAll('.pagedjs_page');
  36. if (/^\d+$/.test(start) && /^\d+$/.test(end) && start <= pages.length && end <= pages.length && start < end) {
  37. // disable pages before start
  38. if (start != 1) {
  39. for (let i = 0; i < start - 1; i++) {
  40. pages[i].style.display = 'none';
  41. }
  42. }
  43. // enable pages between the interval
  44. for (let j = start - 1; j < end; j++) {
  45. pages[j].style.display = 'block';
  46. }
  47. // disable pages after end
  48. if (end != pages.length + 1) {
  49. for (let k = end; k < pages.length; k++) {
  50. pages[k].style.display = 'none';
  51. }
  52. }
  53. } else if (start === '' && end === '') {
  54. for (let page of pages) {
  55. page.style.display = 'block';
  56. }
  57. }
  58. }
  59. })();
  60. if (debug) console.log('end pagesToDisplay');