pagesToDisplay.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. start = parseInt(start);
  36. end = parseInt(end);
  37. let pages = document.querySelectorAll('.pagedjs_page');
  38. if (/^\d+$/.test(start) && /^\d+$/.test(end) && start <= pages.length && end <= pages.length && start < end) {
  39. // disable pages before start
  40. if (start != 1) {
  41. for (let i = 0; i < start - 1; i++) {
  42. pages[i].style.display = 'none';
  43. }
  44. }
  45. // enable pages between the interval
  46. for (let j = start - 1; j < end; j++) {
  47. pages[j].style.display = 'block';
  48. }
  49. // disable pages after end
  50. if (end != pages.length + 1) {
  51. for (let k = end; k < pages.length; k++) {
  52. pages[k].style.display = 'none';
  53. }
  54. }
  55. } else if (start === '' && end === '') {
  56. for (let page of pages) {
  57. page.style.display = 'block';
  58. }
  59. }
  60. }
  61. })();
  62. if (debug) console.log('end pagesToDisplay');