leftypol/js/style-select.js

61 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

/*
* style-select.js
* https://github.com/savetheinternet/Tinyboard/blob/master/js/style-select.js
*
* Changes the stylesheet chooser links to a <select>
*
* Released under the MIT license
* Copyright (c) 2013 Michael Save <savetheinternet@tinyboard.org>
2025-02-06 00:02:23 +01:00
* Copyright (c) 2013-2014 Marcin Łabanowski <marcin@6irc.net>
*
* Usage:
* $config['additional_javascript'][] = 'js/jquery.min.js';
* $config['additional_javascript'][] = 'js/style-select.js';
*/
$(document).ready(function() {
2025-02-06 00:02:23 +01:00
let pages = $('div.pages');
let stylesSelect = $('<select></select>').css({float:"none"});
let options = [];
let i = 1;
2025-02-06 00:52:22 +01:00
for (styleName in styles) {
if (styleName) {
let opt = $('<option></option>')
.html(styleName)
.val(i);
if (selectedstyle == styleName) {
opt.attr('selected', true);
}
opt.attr('id', 'style-select-' + i);
options.push([styleName.toUpperCase (), opt]);
i++;
2025-02-06 00:02:23 +01:00
}
2025-02-06 00:52:22 +01:00
}
2021-06-30 05:47:08 -02:00
2025-02-06 00:02:23 +01:00
options.sort((a, b) => {
2021-07-03 22:26:31 -04:00
const keya = a [0];
const keyb = b [0];
2025-02-06 00:02:23 +01:00
if (keya < keyb) {
return -1;
}
if (keya > keyb) {
return 1;
}
2021-07-03 22:26:31 -04:00
return 0;
2025-02-06 00:02:23 +01:00
}).forEach(([key, opt]) => {
2021-07-03 22:26:31 -04:00
stylesSelect.append(opt);
});
2025-02-06 00:02:23 +01:00
2021-07-03 22:26:31 -04:00
stylesSelect.change(function() {
2025-02-06 00:52:22 +01:00
let sel = $(this).find(":selected")[0];
let styleName = sel.innerHTML;
changeStyle(styleName, sel);
2021-07-03 22:26:31 -04:00
});
2025-02-06 00:02:23 +01:00
2021-07-03 22:26:31 -04:00
pages.after(
$('<div id="style-select"></div>')
.append(_('Select theme: '), stylesSelect)
);
2021-06-30 05:47:08 -02:00
});