| 22 | export const PAGINATION_TEMPLATE = '<%= rangeStart %>-<%= rangeEnd %> .. <%= totalNumber %>'; | 22 | export const PAGINATION_TEMPLATE = '<%= rangeStart %>-<%= rangeEnd %> .. <%= totalNumber %>'; |
| 23 | | 23 | |
| 24 | export const localizePagination = function(container) { | 24 | export const localizePagination = function(container) { |
| 25 | container.find('[title="Next page"]').attr('title', translate('Next page')); | 25 | container.find('[title="Next page"]').attr('title', t`Next page`); |
| 26 | container.find('[title="Previous page"]').attr('title', translate('Previous page')); | 26 | container.find('[title="Previous page"]').attr('title', t`Previous page`); |
| 27 | }; | 27 | }; |
| 28 | | 28 | |
| | 29 | /** |
| | 30 | * Renders a dropdown for selecting page size in pagination. |
| | 31 | * @param {number} pageSize Page size |
| | 32 | * @param {number[]} sizeChangerOptions Array of page size options |
| | 33 | * @returns {string} The rendered dropdown element as a string |
| | 34 | */ |
| 29 | export const renderPaginationDropdown = function(pageSize, sizeChangerOptions) { | 35 | export const renderPaginationDropdown = function(pageSize, sizeChangerOptions) { |
| 30 | let sizeSelect = '<select class="J-paginationjs-size-select">'; | 36 | const sizeSelect = document.createElement('select'); |
| | 37 | sizeSelect.classList.add('J-paginationjs-size-select'); |
| | 38 | |
| 31 | if (sizeChangerOptions.indexOf(pageSize) === -1) { | 39 | if (sizeChangerOptions.indexOf(pageSize) === -1) { |
| 32 | sizeChangerOptions.unshift(pageSize); | 40 | sizeChangerOptions.unshift(pageSize); |
| 33 | sizeChangerOptions.sort((a, b) => a - b); | 41 | sizeChangerOptions.sort((a, b) => a - b); |
| 34 | } | 42 | } |
| | 43 | |
| 35 | for (let i = 0; i < sizeChangerOptions.length; i++) { | 44 | for (let i = 0; i < sizeChangerOptions.length; i++) { |
| 36 | sizeSelect += `<option value="${sizeChangerOptions[i]}"${(sizeChangerOptions[i] === pageSize ? ' selected' : '')}>${sizeChangerOptions[i]} ` + t`/ page` + '</option>'; | 45 | const option = document.createElement('option'); |
| | 46 | option.value = `${sizeChangerOptions[i]}`; |
| | 47 | option.textContent = `${sizeChangerOptions[i]} ${t`/ page`}`; |
| | 48 | if (sizeChangerOptions[i] === pageSize) { |
| | 49 | option.setAttribute('selected', 'selected'); |
| | 50 | } |
| | 51 | sizeSelect.appendChild(option); |
| 37 | } | 52 | } |
| 38 | sizeSelect += '</select>'; | 53 | |
| 39 | return sizeSelect; | 54 | return sizeSelect.outerHTML; |
| 40 | }; | 55 | }; |
| 41 | | 56 | |
| 42 | export const paginationDropdownChangeHandler = function(event, size) { | 57 | export const paginationDropdownChangeHandler = function(event, size) { |