logster 0.8.4.2.pre → 0.8.4.3.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/assets/javascript/app.js +40 -22
- data/assets/javascript/components/message-info.hbs +1 -1
- data/assets/javascript/components/message-row.hbs +6 -6
- data/assets/javascript/templates/index.hbs +5 -1
- data/assets/stylesheets/app.css +30 -16
- data/lib/logster/middleware/viewer.rb +3 -1
- data/lib/logster/version.rb +1 -1
- metadata +2 -3
- data/assets/javascript/components/time-ago.hbs +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e704a239b3cbe88f36a41e30888836d981451494
|
4
|
+
data.tar.gz: ea74d3dfb8a7f2ffe9371194a4ab233c13133e0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45bbecf6dc989a24d796eb5059588dfee399bded667c775b3183d48d5158f782ef6aa796fd83df0faea0631b72a923b1a8e92e1aecce33f15affab8112d78bf5
|
7
|
+
data.tar.gz: 715218740ee56fe89bc9b46174722a95d3f49b2545b894a608e2f92e56cb034227a117f6ba9b55826ecbdcb7f3385ca481766828ff6015711b68c2121abaacc3
|
data/assets/javascript/app.js
CHANGED
@@ -166,11 +166,11 @@ App.Message = Ember.Object.extend({
|
|
166
166
|
case 1:
|
167
167
|
return "";
|
168
168
|
case 2:
|
169
|
-
return "<i class='fa fa-exclamation-circle'></i>";
|
169
|
+
return "<i class='fa fa-exclamation-circle warning'></i>";
|
170
170
|
case 3:
|
171
|
-
return "<i class='fa fa-times-circle'></i>";
|
171
|
+
return "<i class='fa fa-times-circle error'></i>";
|
172
172
|
case 4:
|
173
|
-
return "<i class='fa fa-times-circle'></i>";
|
173
|
+
return "<i class='fa fa-times-circle fatal'></i>";
|
174
174
|
}
|
175
175
|
}.property("severity")
|
176
176
|
});
|
@@ -435,6 +435,7 @@ App.PanelResizerComponent = Em.Component.extend({
|
|
435
435
|
return;
|
436
436
|
}
|
437
437
|
|
438
|
+
|
438
439
|
this.topPanel.css("bottom", fromBottom + 5);
|
439
440
|
this.bottomPanel.css("height", fromBottom - 15);
|
440
441
|
this.divider.css("bottom", fromBottom - 5);
|
@@ -535,24 +536,24 @@ App.UpdateTimeComponent = Em.Component.extend({
|
|
535
536
|
didInsertElement: function(){
|
536
537
|
var updateTimes = function(){
|
537
538
|
$('.auto-update-time').each(function(){
|
538
|
-
var
|
539
|
-
|
540
|
-
|
541
|
-
|
539
|
+
var timestamp = parseInt(this.getAttribute('data-timestamp'),10);
|
540
|
+
var elem = this;
|
541
|
+
|
542
|
+
var text = App.formatTime(timestamp);
|
542
543
|
|
543
|
-
if(
|
544
|
-
elem.innerText =
|
544
|
+
if(text !== elem.innerText) {
|
545
|
+
elem.innerText = text;
|
545
546
|
}
|
546
547
|
|
547
548
|
});
|
548
|
-
Em.run.later(updateTimes,
|
549
|
+
Em.run.later(updateTimes, 60000);
|
549
550
|
};
|
550
551
|
|
551
|
-
Em.run.later(updateTimes,
|
552
|
+
Em.run.later(updateTimes, 60000);
|
552
553
|
}
|
553
554
|
});
|
554
555
|
|
555
|
-
App.
|
556
|
+
App.TimeFormatterComponent = Ember.Component.extend({
|
556
557
|
tagName: 'span',
|
557
558
|
classNames: 'auto-update-time',
|
558
559
|
attributeBindings: ['data-timestamp', 'title'],
|
@@ -569,18 +570,32 @@ App.TimeAgoComponent = Ember.Component.extend({
|
|
569
570
|
return moment(this.get("timestamp"));
|
570
571
|
}.property(),
|
571
572
|
|
572
|
-
|
573
|
-
|
574
|
-
}
|
573
|
+
render: function(buffer){
|
574
|
+
buffer.push(App.formatTime(this.get('timestamp')));
|
575
|
+
},
|
575
576
|
});
|
576
577
|
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
578
|
+
App.formatTime = function(timestamp){
|
579
|
+
var formatted;
|
580
|
+
var time = moment(timestamp);
|
581
|
+
var now = moment();
|
582
|
+
|
583
|
+
if (time.diff(now.startOf('day')) > 0) {
|
584
|
+
formatted = time.format('h:mm a');
|
585
|
+
} else {
|
586
|
+
if (time.diff(now.startOf('week')) > 0) {
|
587
|
+
formatted = time.format('dd h:mm a');
|
588
|
+
} else {
|
589
|
+
if (time.diff(now.startOf('year')) > 0) {
|
590
|
+
formatted = time.format('D MMM h:mm a');
|
591
|
+
} else {
|
592
|
+
formatted = time.format('D MMM YY');
|
593
|
+
}
|
594
|
+
}
|
595
|
+
}
|
596
|
+
|
597
|
+
return formatted;
|
598
|
+
};
|
584
599
|
|
585
600
|
App.TabbedSectionComponent = Ember.Component.extend({
|
586
601
|
tabs: Em.A(),
|
@@ -627,6 +642,9 @@ App.TabContentsComponent = Ember.Component.extend({
|
|
627
642
|
|
628
643
|
didInsertElement: function() {
|
629
644
|
this.invokeParent("addTab");
|
645
|
+
if (this.get("defaultTab")) {
|
646
|
+
this.invokeParent("selectTab");
|
647
|
+
}
|
630
648
|
},
|
631
649
|
willDestroyElement: function() {
|
632
650
|
this.invokeParent("removeTab");
|
@@ -10,7 +10,7 @@
|
|
10
10
|
{{/if}}
|
11
11
|
<pre>{{currentMessage.message}}</pre>
|
12
12
|
{{/tab-contents}}
|
13
|
-
{{#tab-contents name="backtrace" hint="show backtrace" currentMessage=currentMessage}}
|
13
|
+
{{#tab-contents name="backtrace" defaultTab="true" hint="show backtrace" currentMessage=currentMessage}}
|
14
14
|
{{#if showTitle}}
|
15
15
|
<h3>Backtrace</h3>
|
16
16
|
{{/if}}
|
@@ -7,11 +7,11 @@
|
|
7
7
|
<td class="message-body">
|
8
8
|
<div class="message">
|
9
9
|
{{model.displayMessage}}
|
10
|
-
{{#if model.protected}}
|
11
|
-
<span class='protected'>
|
12
|
-
<i class='fa fa-lock'></i>
|
13
|
-
</span>
|
14
|
-
{{/if}}
|
15
10
|
</div>
|
16
11
|
</td>
|
17
|
-
<td class=
|
12
|
+
<td class='protected'>
|
13
|
+
{{#if model.protected}}
|
14
|
+
<i title="message is protected, clearing will not remove it" class='fa fa-lock'></i>
|
15
|
+
{{/if}}
|
16
|
+
</td>
|
17
|
+
<td class="time">{{time-formatter timestamp=model.timestamp}}</td>
|
@@ -5,13 +5,14 @@
|
|
5
5
|
<th class="count"></th>
|
6
6
|
<th class="severity"></th>
|
7
7
|
<th class="info">Info</th>
|
8
|
+
<th class="protected"></th>
|
8
9
|
<th class="time">Time</th>
|
9
10
|
</tr>
|
10
11
|
</thead>
|
11
12
|
<tbody>
|
12
13
|
{{#if model.moreBefore}}
|
13
14
|
<tr {{action "showMoreBefore"}} class="show-more">
|
14
|
-
<td colspan=
|
15
|
+
<td colspan=5>{{model.totalBefore}} more</td>
|
15
16
|
</tr>
|
16
17
|
{{/if}}
|
17
18
|
{{#each model.messages as |message|}}
|
@@ -35,14 +36,17 @@
|
|
35
36
|
</label>
|
36
37
|
<label class="warn">
|
37
38
|
{{input type="checkbox" checked=showWarn}}
|
39
|
+
<i class='fa fa-exclamation-circle warning'></i>
|
38
40
|
Warning
|
39
41
|
</label>
|
40
42
|
<label class="error">
|
41
43
|
{{input type="checkbox" checked=showErr}}
|
44
|
+
<i class='fa fa-times-circle error'></i>
|
42
45
|
Error
|
43
46
|
</label>
|
44
47
|
<label class="fatal">
|
45
48
|
{{input type="checkbox" checked=showFatal}}
|
49
|
+
<i class='fa fa-times-circle fatal'></i>
|
46
50
|
Fatal
|
47
51
|
</label>
|
48
52
|
<label class="search">
|
data/assets/stylesheets/app.css
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
body {
|
2
|
-
font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;
|
2
|
+
font-family: 'Roboto', Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;
|
3
3
|
font-size: 12px;
|
4
4
|
}
|
5
5
|
|
6
|
+
pre {
|
7
|
+
font-family: 'Roboto Mono', Consolas, Monaco, Ubuntu Mono, monospace;
|
8
|
+
}
|
9
|
+
|
6
10
|
|
7
11
|
tbody tr {
|
8
12
|
width: 98%;
|
@@ -36,7 +40,6 @@ td.time {
|
|
36
40
|
vertical-align: top;
|
37
41
|
}
|
38
42
|
.message {
|
39
|
-
font-family: Consolas, Monaco, Ubuntu Mono, monospace;
|
40
43
|
font-size: 13px;
|
41
44
|
overflow: hidden;
|
42
45
|
white-space: nowrap;
|
@@ -54,25 +57,31 @@ th.severity{
|
|
54
57
|
|
55
58
|
th.time{
|
56
59
|
width: 90px;
|
60
|
+
text-align: right;
|
61
|
+
padding-right: 20px;
|
62
|
+
}
|
63
|
+
|
64
|
+
td.time{
|
65
|
+
text-align: right;
|
66
|
+
padding-right: 8px;
|
57
67
|
}
|
58
68
|
|
59
|
-
.
|
69
|
+
th.protected {
|
70
|
+
width: 10px;
|
71
|
+
}
|
72
|
+
|
73
|
+
i.fatal {
|
60
74
|
color: #900;
|
61
75
|
}
|
62
76
|
|
63
|
-
.error
|
77
|
+
i.error {
|
64
78
|
color: #E00;
|
65
79
|
}
|
66
80
|
|
67
|
-
.
|
81
|
+
i.warning {
|
68
82
|
color: #FEB800;
|
69
83
|
}
|
70
84
|
|
71
|
-
.message .protected {
|
72
|
-
float: right;
|
73
|
-
margin-top: 7px;
|
74
|
-
}
|
75
|
-
|
76
85
|
.debug {
|
77
86
|
color: #777;
|
78
87
|
}
|
@@ -138,10 +147,15 @@ tr.show-more {
|
|
138
147
|
|
139
148
|
.message-actions {
|
140
149
|
position: fixed;
|
141
|
-
bottom:
|
150
|
+
bottom: 45px;
|
142
151
|
right: 10px;
|
143
152
|
}
|
144
153
|
|
154
|
+
.message-actions a {
|
155
|
+
z-index: 10000;
|
156
|
+
padding-right: 7px;
|
157
|
+
}
|
158
|
+
|
145
159
|
.divider {
|
146
160
|
position: fixed;
|
147
161
|
bottom: 310px;
|
@@ -246,10 +260,10 @@ tr.show-more {
|
|
246
260
|
|
247
261
|
.message-info .content {
|
248
262
|
position: absolute;
|
249
|
-
top:
|
250
|
-
bottom:
|
251
|
-
left:
|
252
|
-
right:
|
263
|
+
top: 5px;
|
264
|
+
bottom: 35px;
|
265
|
+
left: 5px;
|
266
|
+
right: 5px;
|
253
267
|
overflow: auto;
|
254
268
|
display: none;
|
255
269
|
}
|
@@ -261,7 +275,7 @@ tr.show-more {
|
|
261
275
|
|
262
276
|
.tabs {
|
263
277
|
position: absolute;
|
264
|
-
bottom:
|
278
|
+
bottom: 10px;
|
265
279
|
left: 0;
|
266
280
|
right: 0;
|
267
281
|
list-style-type: none;
|
@@ -173,8 +173,11 @@ JS
|
|
173
173
|
|
174
174
|
def body(preload)
|
175
175
|
<<HTML
|
176
|
+
<!doctype html>
|
176
177
|
<html>
|
177
178
|
<head>
|
179
|
+
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
180
|
+
<link href='http://fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
|
178
181
|
#{css("app.css")}
|
179
182
|
#{css("font-awesome.min.css")}
|
180
183
|
#{script("external/moment.min.js")}
|
@@ -183,7 +186,6 @@ JS
|
|
183
186
|
#{script("external/ember-template-compiler.js")}
|
184
187
|
#{script("external/ember.min.js", "external/ember.js")}
|
185
188
|
#{template("application")}
|
186
|
-
#{component("time-ago")}
|
187
189
|
#{component("message-row")}
|
188
190
|
#{component("message-info")}
|
189
191
|
#{component("tabbed-section")}
|
data/lib/logster/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.4.
|
4
|
+
version: 0.8.4.3.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- UI for viewing logs in Rack
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -120,7 +120,6 @@ files:
|
|
120
120
|
- assets/javascript/components/tab-contents.hbs
|
121
121
|
- assets/javascript/components/tab-link.hbs
|
122
122
|
- assets/javascript/components/tabbed-section.hbs
|
123
|
-
- assets/javascript/components/time-ago.hbs
|
124
123
|
- assets/javascript/external/ember-template-compiler.js
|
125
124
|
- assets/javascript/external/ember.js
|
126
125
|
- assets/javascript/external/ember.min.js
|
@@ -1 +0,0 @@
|
|
1
|
-
{{unbound fromNow}}
|