forked from GithubBackups/vichan
style-select.js: adapt and port to pure js
This commit is contained in:
parent
ae9ee56940
commit
dcc4060986
@ -7,39 +7,47 @@
|
|||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
|
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
|
||||||
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
|
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
|
||||||
|
* Copyright (c) 2025 Zankaria Auxa <zankaria.auxa@mailu.io>
|
||||||
*
|
*
|
||||||
* Usage:
|
* Usage:
|
||||||
* $config['additional_javascript'][] = 'js/jquery.min.js';
|
|
||||||
* $config['additional_javascript'][] = 'js/style-select.js';
|
* $config['additional_javascript'][] = 'js/style-select.js';
|
||||||
*
|
* // $config['additional_javascript'][] = 'js/style-select-simple.js'; // Conflicts with this file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
onReady(function() {
|
onReady(function() {
|
||||||
let stylesDiv = $('div.styles');
|
let stylesSelect = document.createElement('select');
|
||||||
let stylesSelect = $('<select></select>');
|
stylesSelect.style.setProperty('float', 'none');
|
||||||
|
|
||||||
let i = 1;
|
let i = 1;
|
||||||
stylesDiv.children().each(function() {
|
for (styleName in styles) {
|
||||||
let opt = $('<option></option>')
|
if (styleName) {
|
||||||
.html(this.innerHTML.replace(/(^\[|\]$)/g, ''))
|
let opt = document.createElement('option');
|
||||||
.val(i);
|
opt.innerText = styleName;
|
||||||
if ($(this).hasClass('selected')) {
|
opt.value = i;
|
||||||
opt.attr('selected', true);
|
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() {
|
stylesSelect.addEventListener('change', function() {
|
||||||
$('#style-select-' + $(this).val()).click();
|
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(
|
document.getElementsByTagName('body')[0].insertBefore(newElement, document.getElementsByTagName('body')[0].lastChild.nextSibling);
|
||||||
$('<div id="style-select" style="float:right;margin-bottom:10px"></div>')
|
|
||||||
.text(_('Style: '))
|
|
||||||
.append(stylesSelect)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user