summaryrefslogtreecommitdiff
path: root/js/compact-boardlist.js
diff options
context:
space:
mode:
authorBenjamin Southall <applemansigloo@gmail.com>2017-06-01 07:36:30 +0900
committerBenjamin Southall <applemansigloo@gmail.com>2017-06-01 07:36:30 +0900
commita5095a6764f9ccc15892040f1e31de6897e1ede1 (patch)
treeb26e3d0d1c1067143b115e7a5b41ecd4e47a47ca /js/compact-boardlist.js
parent2a93287568ef4fed36843cff2b5ac88ad4a05d01 (diff)
Make compact-boardlist user toggleable from Options side menu
Diffstat (limited to 'js/compact-boardlist.js')
-rw-r--r--js/compact-boardlist.js126
1 files changed, 123 insertions, 3 deletions
diff --git a/js/compact-boardlist.js b/js/compact-boardlist.js
index 89687977..4903da10 100644
--- a/js/compact-boardlist.js
+++ b/js/compact-boardlist.js
@@ -21,9 +21,66 @@
* //$config['additional_javascript'][] = 'js/watch.js';
*
*/
+$(document).on("ready", function() {
+if (window.Options && Options.get_tab('general')) {
+ Options.extend_tab("general",
+ "<fieldset><legend> Compact Board List </legend>"
+ + ("<label class='compact-boardlist' id='compactboardlist' style='padding:0px;'><input type='checkbox' /> Enable Compact Board List </label>")
+ + ("<label class='compact-boardlisttinyalias' id='compactboardlisttinyalias'><input type='checkbox' /> Tiny Alias for Compact Board List </label>")
+ + ("<label class='compact-boardlistshortalias' id='compactboardlistshortalias'><input type='checkbox' /> Short Alias for Compact Board List </label>")
+ + ("<label class='compact-boardlistunicodealias' id='compactboardlistunicodealias'><input type='checkbox' /> Unicode Alias for Compact Board List </label>")
+ + "</fieldset>");
+}
+
+$('.compact-boardlist').on('change', function(){
+ var setting = $(this).attr('id');
+
+ localStorage[setting] = $(this).children('input').is(':checked');
+ location.reload();
+});
+$('.compact-boardlisttinyalias').on('change', function(){
+ var setting = $(this).attr('id');
-if (device_type == 'desktop') {
- compact_boardlist = true;
+ localStorage[setting] = $(this).children('input').is(':checked');
+ location.reload();
+});
+$('.compact-boardlistshortalias').on('change', function(){
+ var setting = $(this).attr('id');
+
+ localStorage[setting] = $(this).children('input').is(':checked');
+ location.reload();
+});
+$('.compact-boardlistunicodealias').on('change', function(){
+ var setting = $(this).attr('id');
+
+ localStorage[setting] = $(this).children('input').is(':checked');
+ location.reload();
+});
+
+if (!localStorage.compactboardlist) {
+ localStorage.compactboardlist = 'false';
+}
+if (!localStorage.compactboardlisttinyalias) {
+ localStorage.compactboardlistshortalias = 'false';
+}
+if (!localStorage.compactboardlistshortalias) {
+ localStorage.compactboardlistshortalias = 'false';
+}
+if (!localStorage.compactboardlistunicodealias) {
+ localStorage.compactboardlistunicodealias = 'false';
+}
+
+function getSetting(key) {
+ return (localStorage[key] == 'true');
+}
+
+if (getSetting('compactboardlist')) $('#compactboardlist>input').prop('checked', 'checked');
+if (getSetting('compactboardlisttinyalias')) $('#compactboardlisttinyalias>input').prop('checked', 'checked');
+if (getSetting('compactboardlistshortalias')) $('#compactboardlistshortalias>input').prop('checked', 'checked');
+if (getSetting('compactboardlistunicodealias')) $('#compactboardlistunicodealias>input').prop('checked', 'checked');
+
+function initCompactBoardList() { //Pashe, influenced by tux, et al, WTFPL
+ if (!getSetting("compactboardlist")) {return;}
do_boardlist = function() {
var categories = [];
@@ -60,7 +117,23 @@ if (device_type == 'desktop') {
.appendTo(topbl)
}
else {
- $("<a class='cb-item cb-cat' href='javascript:void(0)'>"+item.name+"</a>")
+ var menuitemname = item.name;
+ var tinyalias = {"Notices" : "/n/", "STEM" : "/s/" , "People" : "/p/" , "Overboards 1" : "/ob1/" , "Overboards 2" : "/ob2/", "Elsewhere" : "/e/", "Services" : "/s/", "Misc" : '/m/', "Affiliates" : "/af/" };
+ var shortalias = {"Notices" : "/not/", "STEM" : "/stem/" , "People" : "/people/" , "Overboards 1" : "/ob1/" , "Overboards 2" : "/ob2/", "Elsewhere" : "/else/", "Services" : "/serv/", "Misc" : "/misc/", "Affiliates" : "/uboa and sushi/" };
+ var unicodealias = {"Notices" : "&#x2139&#xFE0F", "STEM" : "&#x1F468&#x200D&#x1F4BB " , "People" : "&#x1F465" , "Overboards 1" : "&#x1F4AC" , "Overboards 2" : "&#x1F4AD", "Elsewhere" : "&#x1F50D", "Services" : "&#x1F202", "Misc" : "&#x2049", "Affiliates" : "&#x1F363" };
+
+ if (getSetting("compactboardlisttinyalias")) {
+ menuitemname = tinyalias[item.name];
+ }
+ else if (getSetting("compactboardlistshortalias")){
+ menuitemname = shortalias[item.name];
+
+ }
+ else if (getSetting("compactboardlistunicodealias")){
+ menuitemname = unicodealias[item.name];
+ }
+
+ $("<a class='cb-item cb-cat' href='javascript:void(0)'>"+ menuitemname+"</a>")
.appendTo(topbl)
.mouseenter(function() {
var list = $("<div class='boardlist top cb-menu'></div>")
@@ -90,4 +163,51 @@ if (device_type == 'desktop') {
}
do_boardlist = undefined;
};
+do_boardlist();
+options_handler = $("<div id='options_handler'></div>").css("display", "none");
+options_background = $("<div id='options_background'></div>").on("click", Options.hide).appendTo(options_handler);
+options_div = $("<div id='options_div'></div>").appendTo(options_handler);
+options_close = $("<a id='options_close' href='javascript:void(0)'><i class='fa fa-times'></i></div>")
+ .on("click", Options.hide).appendTo(options_div);
+options_tablist = $("<div id='options_tablist'></div>").appendTo(options_div);
+ options_button = $("<a href='javascript:void(0)' title='"+_("Options")+"'>["+_("Options")+"]</a>");
+
+ if ($(".boardlist.compact-boardlist").length) {
+ options_button.addClass("cb-item cb-fa").html("<i class='fa fa-gear'></i>");
+ }
+
+ if ($(".boardlist:first").length) {
+ options_button.css('float', 'right').appendTo($(".boardlist:first"));
+ }
+ else {
+ var optsdiv = $('<div style="text-align: right"></div>');
+ options_button.appendTo(optsdiv);
+ optsdiv.prependTo($(document.body));
+ }
+
+ options_button.on("click", Options.show);
+
+ options_handler.appendTo($(document.body));
+ if (typeof watchlist.render !== 'undefined') {
+ $('.boardlist.compact-boardlist').append(' <a class="watchlist-toggle cb-item cb-cat" href="#"><span>['+_('watchlist')+']</span></a>');
+ watchlist.render();
+ }
+ 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);
+ }
}
+initCompactBoardList();
+});