Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | For the chat function, the server-to-client JSON uses strict ISO8601 time strings, including the "T" in the middle and the "Z" at the end. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
13c95f0c7537746cf7d7b1a2226d86c2 |
| User & Date: | drh 2020-12-25 20:30:05.257 |
Context
|
2020-12-25
| ||
| 22:35 | chat: refactored the messages from fieldsets to a custom widget. ... (check-in: 852bda77bd user: stephan tags: chat-widget-rework) | |
| 22:08 | Improved introduction to "forum.wiki" ... (check-in: 44ab80ea2b user: drh tags: trunk) | |
| 21:36 | Reformulate the LEGEND elements to include an embedded anchor tag as an attempt to working around Safari's inability to click a LEGEND element. Edit: this approach didn't work - same effect as before on Safari. ... (Closed-Leaf check-in: 73c8ccd3a7 user: stephan tags: chat-safari-ts-popup) | |
| 20:48 | chat: removed now-obsolete error checking for Date() parsing. Edit: moved from trunk and closed - an as-yet-unidentified Date() problem persists on Safari. ... (Closed-Leaf check-in: 379b4689c8 user: stephan tags: no-joy) | |
| 20:30 | For the chat function, the server-to-client JSON uses strict ISO8601 time strings, including the "T" in the middle and the "Z" at the end. ... (check-in: 13c95f0c75 user: drh tags: trunk) | |
| 19:20 | chat: added 'role'='button' attribute to various non-button button-like elements, per forum request. ... (check-in: 6506b6de43 user: stephan tags: trunk) | |
Changes
Changes to src/chat.c.
| ︙ | ︙ | |||
455 456 457 458 459 460 461 |
const char *zFName = db_column_text(&q1, 5);
const char *zFMime = db_column_text(&q1, 6);
int iToDel = db_column_int(&q1, 7);
char *zMsg;
if(cnt++){
blob_append(&json, ",\n", 2);
}
| | > | 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
const char *zFName = db_column_text(&q1, 5);
const char *zFMime = db_column_text(&q1, 6);
int iToDel = db_column_int(&q1, 7);
char *zMsg;
if(cnt++){
blob_append(&json, ",\n", 2);
}
blob_appendf(&json, "{\"msgid\":%d,", id);
blob_appendf(&json, "\"mtime\":\"%.10sT%sZ\",", zDate, zDate+11);
blob_appendf(&json, "\"xfrom\":%!j,", zFrom);
blob_appendf(&json, "\"uclr\":%!j,", hash_color(zFrom));
zMsg = chat_format_to_html(zRawMsg ? zRawMsg : "");
blob_appendf(&json, "\"xmsg\":%!j,", zMsg);
fossil_free(zMsg);
|
| ︙ | ︙ |
Changes to src/chat.js.
| ︙ | ︙ | |||
374 375 376 377 378 379 380 |
/* Timestamp popup widget */
f.popup = new F.PopupWidget({
cssClass: ['fossil-tooltip', 'chat-message-popup'],
refresh:function(){
const eMsg = this._eMsg;
if(!eMsg) return;
D.clearElement(this.e);
| | | 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
/* Timestamp popup widget */
f.popup = new F.PopupWidget({
cssClass: ['fossil-tooltip', 'chat-message-popup'],
refresh:function(){
const eMsg = this._eMsg;
if(!eMsg) return;
D.clearElement(this.e);
const d = new Date(eMsg.dataset.timestamp);
if(d.getMinutes().toString()!=="NaN"){
// Date works, render informative timestamps
D.append(this.e,
D.append(D.span(), localTimeString(d)," client-local"),
D.append(D.span(), iso8601ish(d)));
}else{
// Date doesn't work, so dumb it down...
|
| ︙ | ︙ | |||
605 606 607 608 609 610 611 |
}
}else{
eWho.setAttribute('align', 'left');
}
eWho.style.backgroundColor = m.uclr;
eWho.classList.add('message-user');
let whoName = m.xfrom;
| | | 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 |
}
}else{
eWho.setAttribute('align', 'left');
}
eWho.style.backgroundColor = m.uclr;
eWho.classList.add('message-user');
let whoName = m.xfrom;
var d = new Date(m.mtime);
if( d.getMinutes().toString()!="NaN" ){
/* Show local time when we can compute it */
eWho.append(D.text(whoName+' @ '+
d.getHours()+":"+(d.getMinutes()+100).toString().slice(1,3)
))
}else{
/* Show UTC on systems where Date() does not work */
|
| ︙ | ︙ |