Skip to content

Commit 43dc331

Browse files
committed
Fixes #266 and #233: show human readable timestamps when hovering over
selected claims that contain dates.
1 parent 7b20e49 commit 43dc331

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

js/app.js

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,17 +319,47 @@ FaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==\n\
319319
lint: true
320320
});
321321

322-
var payloadEditor = codeMirror(document.getElementsByClassName('js-payload')[0], {
322+
var payloadEditorDom = document.getElementsByClassName('js-payload')[0];
323+
var payloadEditor = codeMirror(payloadEditorDom, {
323324
mode: 'application/json',
324325
lineWrapping: true,
325326
extraKeys: { 'Tab': tabHack},
326327
lint: true
327328
});
328329

330+
$(payloadEditorDom).on('mousemove', tooltipHandler)
331+
329332
var algorithmRadios = $('input[name="algorithm"]'),
330333
lastRestoredToken;
331334
var tokenRadios = $('input[name="token-type"]');
332335

336+
var payloadTooltip = $('#js-payload-tooltip');
337+
338+
function tooltipHandler(event) {
339+
var result = payloadEditor.coordsChar({
340+
left: event.pageX,
341+
top: event.pageY
342+
}, 'page');
343+
344+
var line = payloadEditor.getLine(result.line);
345+
346+
var timeClaims = ['exp', 'nbf', 'iat', 'auth_time', 'updated_at'];
347+
348+
var matches = /"(.*)":\s*"?(\d*)"?/.exec(line);
349+
if(matches && timeClaims.indexOf(matches[1]) !== -1) {
350+
var dateStr = (new Date(parseInt(matches[2]))).toString();
351+
console.log(dateStr);
352+
payloadTooltip.text(dateStr);
353+
payloadTooltip.css({
354+
left: event.pageX + 'px',
355+
top: event.pageY + 'px',
356+
});
357+
payloadTooltip.show();
358+
} else {
359+
payloadTooltip.hide();
360+
}
361+
}
362+
333363
function setJSONEditorContent(jsonEditor, decodedJSON, selector) {
334364
jsonEditor.off('change', refreshTokenEditor);
335365

stylus/codemirror.styl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,15 @@
3434
.text-line a, .CodeMirror *
3535
color #D63AFF
3636

37+
#js-payload-tooltip
38+
position absolute
39+
background-color #00b9f1
40+
display none
41+
color white
42+
z-index 9999
43+
padding 0 4pt
44+
margin-left 4pt
45+
3746
.jwt-playground .output .jwt-signature
3847
.text-line a, pre
3948
color #00B9F1

views/index.jade

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ block content
126126
p.text-line PAYLOAD:
127127
span DATA
128128
.js-payload
129+
#js-payload-tooltip
129130

130131
.jwt-explained.jwt-signature
131132
p.text-line VERIFY SIGNATURE

0 commit comments

Comments
 (0)