Fossil SCM

Added complete timestamps (local and GMT) as title attribute of message headers.

stephan 2020-12-23 04:19 chatroom-dev
Commit 696135b65e77b36603dbb0bbce761c203466f40deafd06b0bec498a1efeb5d69
2 files changed +21 +1 -1
+21
--- src/chat.js
+++ src/chat.js
@@ -25,10 +25,24 @@
2525
}else{
2626
f.injectPoint.parentNode.appendChild(e);
2727
}
2828
};
2929
const textNode = (T)=>document.createTextNode(T);
30
+ /** Returns the local time string of Date object d, defaulting
31
+ to the current time. */
32
+ const localTimeString = function ff(d){
33
+ if(!ff.pad){
34
+ ff.pad = (x)=>(''+x).length>1 ? x : '0'+x;
35
+ }
36
+ d || (d = new Date());
37
+ return [
38
+ d.getFullYear(),'-',ff.pad(d.getMonth()+1/*sigh*/),
39
+ '-',ff.pad(d.getDate()),
40
+ ' ',ff.pad(d.getHours()),':',ff.pad(d.getMinutes()),
41
+ ':',ff.pad(d.getSeconds())
42
+ ].join('');
43
+ };
3044
function newcontent(jx){
3145
var i;
3246
for(i=0; i<jx.msgs.length; ++i){
3347
let m = jx.msgs[i];
3448
let row = document.createElement("fieldset");
@@ -46,10 +60,17 @@
4660
row.classList.add('user-is-me');
4761
}else{
4862
whoName = m.xfrom;
4963
}
5064
var d = new Date(m.mtime + "Z");
65
+ eWho.setAttribute('title',localTimeString(d)
66
+ +' client-local\n'
67
+ +d.toISOString()
68
+ .replace('T',' ')
69
+ .replace(/\.\d+/,'')
70
+ .replace('Z', ' GMT')
71
+ );
5172
if( d.getMinutes().toString()!="NaN" ){
5273
/* Show local time when we can compute it */
5374
eWho.append(textNode(whoName+' @ '+
5475
d.getHours()+":"+(d.getMinutes()+100).toString().slice(1,3)
5576
))
5677
--- src/chat.js
+++ src/chat.js
@@ -25,10 +25,24 @@
25 }else{
26 f.injectPoint.parentNode.appendChild(e);
27 }
28 };
29 const textNode = (T)=>document.createTextNode(T);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 function newcontent(jx){
31 var i;
32 for(i=0; i<jx.msgs.length; ++i){
33 let m = jx.msgs[i];
34 let row = document.createElement("fieldset");
@@ -46,10 +60,17 @@
46 row.classList.add('user-is-me');
47 }else{
48 whoName = m.xfrom;
49 }
50 var d = new Date(m.mtime + "Z");
 
 
 
 
 
 
 
51 if( d.getMinutes().toString()!="NaN" ){
52 /* Show local time when we can compute it */
53 eWho.append(textNode(whoName+' @ '+
54 d.getHours()+":"+(d.getMinutes()+100).toString().slice(1,3)
55 ))
56
--- src/chat.js
+++ src/chat.js
@@ -25,10 +25,24 @@
25 }else{
26 f.injectPoint.parentNode.appendChild(e);
27 }
28 };
29 const textNode = (T)=>document.createTextNode(T);
30 /** Returns the local time string of Date object d, defaulting
31 to the current time. */
32 const localTimeString = function ff(d){
33 if(!ff.pad){
34 ff.pad = (x)=>(''+x).length>1 ? x : '0'+x;
35 }
36 d || (d = new Date());
37 return [
38 d.getFullYear(),'-',ff.pad(d.getMonth()+1/*sigh*/),
39 '-',ff.pad(d.getDate()),
40 ' ',ff.pad(d.getHours()),':',ff.pad(d.getMinutes()),
41 ':',ff.pad(d.getSeconds())
42 ].join('');
43 };
44 function newcontent(jx){
45 var i;
46 for(i=0; i<jx.msgs.length; ++i){
47 let m = jx.msgs[i];
48 let row = document.createElement("fieldset");
@@ -46,10 +60,17 @@
60 row.classList.add('user-is-me');
61 }else{
62 whoName = m.xfrom;
63 }
64 var d = new Date(m.mtime + "Z");
65 eWho.setAttribute('title',localTimeString(d)
66 +' client-local\n'
67 +d.toISOString()
68 .replace('T',' ')
69 .replace(/\.\d+/,'')
70 .replace('Z', ' GMT')
71 );
72 if( d.getMinutes().toString()!="NaN" ){
73 /* Show local time when we can compute it */
74 eWho.append(textNode(whoName+' @ '+
75 d.getHours()+":"+(d.getMinutes()+100).toString().slice(1,3)
76 ))
77
+1 -1
--- src/default.css
+++ src/default.css
@@ -1498,11 +1498,11 @@
14981498
/* User name for the post (a LEGEND element) */
14991499
.message-row .message-user {
15001500
border-radius: 0.25em 0.25em 0 0;
15011501
padding: 0 0.5em;
15021502
/*text-align: left; Firefox requires the 'align' attribute */
1503
- margin-left: 0.25em;
1503
+ margin-left: 0.15em;
15041504
padding: 0 0.5em 0em 0.5em;
15051505
margin-bottom: 0.4em;
15061506
}
15071507
/* Reposition "my" posts to the right */
15081508
.message-row.user-is-me .message-user {
15091509
--- src/default.css
+++ src/default.css
@@ -1498,11 +1498,11 @@
1498 /* User name for the post (a LEGEND element) */
1499 .message-row .message-user {
1500 border-radius: 0.25em 0.25em 0 0;
1501 padding: 0 0.5em;
1502 /*text-align: left; Firefox requires the 'align' attribute */
1503 margin-left: 0.25em;
1504 padding: 0 0.5em 0em 0.5em;
1505 margin-bottom: 0.4em;
1506 }
1507 /* Reposition "my" posts to the right */
1508 .message-row.user-is-me .message-user {
1509
--- src/default.css
+++ src/default.css
@@ -1498,11 +1498,11 @@
1498 /* User name for the post (a LEGEND element) */
1499 .message-row .message-user {
1500 border-radius: 0.25em 0.25em 0 0;
1501 padding: 0 0.5em;
1502 /*text-align: left; Firefox requires the 'align' attribute */
1503 margin-left: 0.15em;
1504 padding: 0 0.5em 0em 0.5em;
1505 margin-bottom: 0.4em;
1506 }
1507 /* Reposition "my" posts to the right */
1508 .message-row.user-is-me .message-user {
1509

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button