diff --git a/js/style-select-simple.js b/js/style-select-simple.js new file mode 100644 index 00000000..39a62c23 --- /dev/null +++ b/js/style-select-simple.js @@ -0,0 +1,35 @@ +/* + * style-select-simple.js + * + * Changes the stylesheet chooser links to a '); + 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); }); diff --git a/templates/main.js b/templates/main.js index 5e498eda..2d8a3cad 100644 --- a/templates/main.js +++ b/templates/main.js @@ -220,26 +220,6 @@ var resourceVersion = document.currentScript.getAttribute('data-resource-version {% endif %} {% verbatim %} -function initStyleChooser() { - let newElement = document.createElement('div'); - newElement.className = 'styles'; - - for (styleName in styles) { - let style = document.createElement('a'); - style.innerHTML = '[' + styleName + ']'; - style.onclick = function() { - changeStyle(this.innerHTML.substring(1, this.innerHTML.length - 1), this); - }; - if (styleName == selectedstyle) { - style.className = 'selected'; - } - style.href = 'javascript:void(0);'; - newElement.appendChild(style); - } - - document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild.nextSibling); -} - function getCookie(cookie_name) { let results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)'); if (results) { @@ -418,8 +398,6 @@ var script_settings = function(script_name) { }; function init() { - initStyleChooser(); - {% endverbatim %} {% if config.allow_delete %} if (document.forms.postcontrols) {