Add support for client side configurable board list aliasing.
This commit is contained in:
parent
1fef7c0b8e
commit
e48cb3e8b4
139
js/boardlist-alias.js
Normal file
139
js/boardlist-alias.js
Normal file
@ -0,0 +1,139 @@
|
||||
$(document).on("ready", function() {
|
||||
if (window.Options && Options.get_tab('general')) {
|
||||
Options.extend_tab("general",
|
||||
"<fieldset><legend> Board List Alias </legend>"
|
||||
+ ("<label class='boardlist-tinyalias' id='boardlisttinyalias' style='padding:0px;'><input type='checkbox' /> Enable Tiny Board List Alias </label>")
|
||||
+ ("<label class='boardlist-legacyalias' id='boardlistlegacyalias' style='padding:0px;'><input type='checkbox' /> Enable Legacy Names Board List Alias </label>")
|
||||
+ ("<label class='boardlist-unicodealias' id='boardlistunicodealias' style='padding:0px;'><input type='checkbox' /> Enable Unicode Board List Alias </label>")
|
||||
+ ("<label class='boardlist-hideoverboards' id='boardlisthideoverboards' style='padding:0px;'><input type='checkbox' /> Enable Overboard hiding </label>")
|
||||
+ ("<label class='boardlist-hideunderboards' id='boardlisthideunderboards' style='padding:0px;'><input type='checkbox' /> Enable Underboard hiding </label>")
|
||||
+ "</fieldset>");
|
||||
}
|
||||
|
||||
$('.boardlist-tinyalias').on('change', function(){
|
||||
var setting = $(this).attr('id');
|
||||
|
||||
localStorage[setting] = $(this).children('input').is(':checked');
|
||||
location.reload();
|
||||
});
|
||||
$('.boardlist-legacyalias').on('change', function(){
|
||||
var setting = $(this).attr('id');
|
||||
|
||||
localStorage[setting] = $(this).children('input').is(':checked');
|
||||
location.reload();
|
||||
});
|
||||
$('.boardlist-unicodealias').on('change', function(){
|
||||
var setting = $(this).attr('id');
|
||||
|
||||
localStorage[setting] = $(this).children('input').is(':checked');
|
||||
location.reload();
|
||||
});
|
||||
$('.boardlist-hideoverboards').on('change', function(){
|
||||
var setting = $(this).attr('id');
|
||||
|
||||
localStorage[setting] = $(this).children('input').is(':checked');
|
||||
location.reload();
|
||||
});
|
||||
$('.boardlist-hideunderboards').on('change', function(){
|
||||
var setting = $(this).attr('id');
|
||||
|
||||
localStorage[setting] = $(this).children('input').is(':checked');
|
||||
location.reload();
|
||||
});
|
||||
|
||||
if (!localStorage.boardlisttinyalias) {
|
||||
localStorage.boardlistshortalias = 'false';
|
||||
}
|
||||
if (!localStorage.boardlistlegacyalias) {
|
||||
localStorage.boardlistlegacyalias = 'false';
|
||||
}
|
||||
if (!localStorage.boardlistunicodealias) {
|
||||
localStorage.boardlistunicodealias = 'false';
|
||||
}
|
||||
if (!localStorage.boardlisthideoverboards) {
|
||||
localStorage.boardlisthideoverboards = 'false';
|
||||
}
|
||||
if (!localStorage.boardlisthideunderboards) {
|
||||
localStorage.boardlisthideunderboards = 'false';
|
||||
}
|
||||
|
||||
function getSetting(key) {
|
||||
return (localStorage[key] == 'true');
|
||||
}
|
||||
|
||||
if (getSetting('boardlisttinyalias')) $('#boardlisttinyalias>input').prop('checked', 'checked');
|
||||
if (getSetting('boardlistlegacyalias')) $('#boardlistshortalias>input').prop('checked', 'checked');
|
||||
if (getSetting('boardlistunicodealias')) $('#boardlistunicodealias>input').prop('checked', 'checked');
|
||||
if (getSetting('boardlisthideoverboards')) $('#boardlisthideoverboards>input').prop('checked', 'checked');
|
||||
if (getSetting('boardlisthideunderboards')) $('#boardlisthideunderboards>input').prop('checked', 'checked');
|
||||
|
||||
function initBoardListAlias() {
|
||||
|
||||
do_boardlist_alias = function() {
|
||||
var categories = [];
|
||||
var topbl = $('.boardlist:first');
|
||||
|
||||
topbl.find('>.sub').each(function() {
|
||||
var cat = {name: $(this).data('description'), boards: []};
|
||||
if (getSetting("boardlisthideoverboards")){
|
||||
if (cat.name === "Overboards 1"){
|
||||
$(this).hide();
|
||||
}
|
||||
}
|
||||
if (getSetting("boardlisthideunderboards")){
|
||||
if (cat.name === "People"){
|
||||
$(this).hide();
|
||||
}
|
||||
|
||||
}
|
||||
$(this).find('a').each(function() {
|
||||
var board = $(this).html();
|
||||
var menuitemname = board;
|
||||
|
||||
var tinyalias = {"$$$" : "$", "rules" : "law" , "faq" : "?" , "news" : "n" , "diy" : "Δ", "sec" : "s", "tech" : "Ω", "inter" : 'i', "lit" : "l", "music" : "mu" , "vis" : "v" , "hum" : "h", "drg" : "d" , "zzz" : "z" , "layer" : "ddt" ,"cult" : "c" , "psy" : "p", "mega" : "me" , "random" : "ra", "radio" : "rad", "stream" : "mov"};
|
||||
var legacyalias = { "Δ" : "diy", "Ω" : "tech", "drug" : "drg", "hum" : "feels"};
|
||||
var unicodealias = {"$$$": "💸", "rules" : "⚖️" , "faq" : "⁉️" , "news" : "📰" , "diy" : "🔧" , "Δ" : "🔧", "sec" : "🔒", "tech" : "💻", "Ω" : "💻", "inter" : "🎮", "lit" : "✍️", "music" : "🎼" , "vis" : "🎨" , "hum" : "👥", "drg" : "💊" , "drug" : "💊" , "zzz" : "💤" , "layer" : "㊙️" ,"cult" : "🎭" , "psy" : "🎆", "mega" : "📣" , "random" : "🎲", "radio" : "📻", "stream" : "📺", "zine" : "📓", "irc" : "📝", "q" : "❓", "r" : "🎲"};
|
||||
|
||||
if (getSetting("boardlisttinyalias")) {
|
||||
if (board in tinyalias){
|
||||
menuitemname = tinyalias[board];
|
||||
}
|
||||
}
|
||||
else if (getSetting("boardlistlegacyalias")){
|
||||
if (board in legacyalias){
|
||||
menuitemname = legacyalias[board];
|
||||
}
|
||||
|
||||
}
|
||||
else if (getSetting("boardlistunicodealias")){
|
||||
if (board in unicodealias){
|
||||
menuitemname = unicodealias[board];
|
||||
}
|
||||
}
|
||||
$(this).html(menuitemname);
|
||||
});
|
||||
do_boardlist_alias = undefined;
|
||||
|
||||
});
|
||||
if (typeof twemoji.parse !== 'undefined') {
|
||||
if (!getSetting("emojiimagefallback")) {return;}
|
||||
var twemoji_opts = {
|
||||
callback: function(icon, options, variant) {
|
||||
switch ( icon ) {
|
||||
case 'a9': // copyright
|
||||
case 'ae': // (R)
|
||||
case '2122': // TM
|
||||
case '25b6': // post filter
|
||||
return false;
|
||||
}
|
||||
return ''.concat(options.base, options.size, '/', icon, options.ext);
|
||||
}
|
||||
}
|
||||
twemoji.parse(document.body, twemoji_opts);
|
||||
}
|
||||
}
|
||||
do_boardlist_alias();
|
||||
}
|
||||
initBoardListAlias();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user