-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
101 lines (85 loc) · 2.18 KB
/
index.js
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
var $ = require("jquery");
var Sai = require("sai");
require("./bar.css");
var count = 0;
var SaiDeBar = $('<div class="sai-de-bar" style="display:none;" tabindex="0"></div>').appendTo(document.body);
var StatusBar = $('<div class="sai-de-status-bar">' +
'<span class="sai-de-status-bar-error" data-status="error"></span>' +
'<span class="sai-de-status-bar-warn" data-status="warn"></span>' +
'<span class="sai-de-status-bar-info" data-status="info"></span>' +
'</div>').appendTo(SaiDeBar);
StatusBar.find(">span").on("click", function(){
var state = $(this).attr("data-status");
filter(state);
}).on("dblclick", function(){
filter();
});
var SaideConsole = $('<div class="sai-de-console"></div>').appendTo(SaiDeBar);
var COUNTS = {
error: 0,
warn: 0,
info: 0,
all: 0
}
function filter(state){
var list = SaideConsole.find(">div");
if (!state) {
list.show();
} else {
list.each(function(index, item){
var st = $(item).attr("data-status");
if (st === state){
$(item).show();
} else {
$(item).hide();
}
});
}
}
function log(type, message) {
if (type === "log"){
type = "info";
}
SaideConsole.append('<div class="sai-de-console-' + type + '"' +
' data-status="' + type + '">' + message + '</div>');
COUNTS[type] ++;
COUNTS.all ++;
var error_width = COUNTS.error *100 / COUNTS.all;
var warn_width = COUNTS.warn * 100 / COUNTS.all;
var info_width = COUNTS.info * 100 / COUNTS.all;
StatusBar.find(".sai-de-status-bar-error").css({width: error_width + "%"});
StatusBar.find(".sai-de-status-bar-warn").css({
width: warn_width + "%",
left: error_width + "%"
});
StatusBar.find(".sai-de-status-bar-info").css({
width: info_width + "%",
left: (error_width + warn_width) + "%"
});
}
function info(message){
log("info", message);
}
function warn(message){
log("warn", message);
}
function error(message){
log("error", message);
}
module.exports = {
open: function(){
SaiDeBar.show();
},
close: function(){
SaiDeBar.hide();
},
log: function(message){
log("log", message);
},
info: info,
warn: warn,
error: error,
valueOf: function(){
return count;
}
};