diff --git a/js/style-select.js b/js/style-select.js index 0b6821b8..ef397145 100644 --- a/js/style-select.js +++ b/js/style-select.js @@ -7,39 +7,47 @@ * Released under the MIT license * Copyright (c) 2013 Michael Save * Copyright (c) 2013-2014 Marcin Ɓabanowski + * Copyright (c) 2025 Zankaria Auxa * * Usage: - * $config['additional_javascript'][] = 'js/jquery.min.js'; * $config['additional_javascript'][] = 'js/style-select.js'; - * + * // $config['additional_javascript'][] = 'js/style-select-simple.js'; // Conflicts with this file. */ onReady(function() { - let stylesDiv = $('div.styles'); - let stylesSelect = $(''); + let stylesSelect = document.createElement('select'); + stylesSelect.style.setProperty('float', 'none'); let i = 1; - stylesDiv.children().each(function() { - let opt = $('') - .html(this.innerHTML.replace(/(^\[|\]$)/g, '')) - .val(i); - if ($(this).hasClass('selected')) { - opt.attr('selected', true); + for (styleName in styles) { + if (styleName) { + let opt = document.createElement('option'); + opt.innerText = styleName; + opt.value = i; + if (selectedstyle == styleName) { + opt.setAttribute('selected', true); + } + opt.setAttribute('id', 'style-select-' + i); + stylesSelect.appendChild(opt); + i++; } - stylesSelect.append(opt); - $(this).attr('id', 'style-select-' + i); - i++; + } + + stylesSelect.addEventListener('change', function() { + let sel = document.getElementById(`style-select-${this.value}`); + sel.click(); }); - stylesSelect.change(function() { - $('#style-select-' + $(this).val()).click(); + stylesSelect.addEventListener('change', function() { + let sel = document.getElementById(`style-select-${this.value}`); + let styleName = sel.innerHTML; + changeStyle(styleName, sel); }); - stylesDiv.hide(); + let newElement = document.createElement('div'); + newElement.className = 'styles'; + newElement.innerHTML = _('Select theme: '); + newElement.appendChild(stylesSelect); - stylesDiv.after( - $('
') - .text(_('Style: ')) - .append(stylesSelect) - ); + document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild.nextSibling); });