1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/*
* options.js - allow users choose board options as they wish
*
* Copyright (c) 2014 Marcin Łabanowski <marcin@6irc.net>
*
* Usage:
* $config['additional_javascript'][] = 'js/jquery.min.js';
* $config['additional_javascript'][] = 'js/options.js';
*/
+function(){
var options_button, options_handler, options_background, options_div
, options_close, options_tablist, options_tabs, options_current_tab;
var Options = {};
window.Options = Options;
var first_tab = function() {
for (var i in options_tabs) {
return i;
}
return false;
};
Options.show = function() {
if (!options_current_tab) {
Options.select_tab(first_tab(), true);
}
options_handler.fadeIn();
};
Options.hide = function() {
options_handler.fadeOut();
};
options_tabs = {};
Options.add_tab = function(id, icon, name, content) {
var tab = {};
if (typeof content == "string") {
content = $("<div>"+content+"</div>");
}
tab.id = id;
tab.name = name;
tab.icon = $("<div class='options_tab_icon'><i class='fa fa-"+icon+"'></i><div>"+name+"</div></div>");
tab.content = $("<div class='options_tab'></div>").css("display", "none");
tab.content.appendTo(options_div);
tab.icon.on("click", function() {
Options.select_tab(id);
}).appendTo(options_tablist);
$("<h2>"+name+"</h2>").appendTo(tab.content);
if (content) {
content.appendTo(tab.content);
}
options_tabs[id] = tab;
return tab;
};
Options.get_tab = function(id) {
return options_tabs[id];
};
Options.extend_tab = function(id, content) {
if (typeof content == "string") {
content = $("<div>"+content+"</div>");
}
content.appendTo(options_tabs[id].content);
return options_tabs[id];
};
Options.select_tab = function(id, quick) {
if (options_current_tab) {
if (options_current_tab.id == id) {
return false;
}
options_current_tab.content.fadeOut();
options_current_tab.icon.removeClass("active");
}
var tab = options_tabs[id];
options_current_tab = tab;
options_current_tab.icon.addClass("active");
tab.content[quick? "show" : "fadeIn"]();
return tab;
};
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);
$(function(){
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));
});
}();
|