Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Timeline styling changes: (1) The td.timelineModernCell and td.timelineColumnarCell elements omit the id attribute when they are the current check-out or the selection. (2) Default CSS is changed to give a light-gray color to modern and columnar cells that are not current or selected and do not have a branch color. (3) The detail string in the verbose and compact views is now surrounded by parentheses. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: | 99057f278c3afacd9590083d6e237cfc |
User & Date: | drh 2017-12-11 23:51:02 |
Context
2017-12-12
| ||
00:01 | Fix the default CSS for the timelineDetailCell column in the Columnar View. check-in: 92bcce33 user: drh tags: trunk | |
2017-12-11
| ||
23:51 | Timeline styling changes: (1) The td.timelineModernCell and td.timelineColumnarCell elements omit the id attribute when they are the current check-out or the selection. (2) Default CSS is changed to give a light-gray color to modern and columnar cells that are not current or selected and do not have a branch color. (3) The detail string in the verbose and compact views is now surrounded by parentheses. check-in: 99057f27 user: drh tags: trunk | |
16:56 | Fix documentation typo. check-in: ca1a1a75 user: drh tags: trunk | |
Changes
Changes to src/default_css.txt.
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
span.timelineEllipsis {
cursor: pointer;
}
.timelineModernCell, .timelineColumnarCell, .timelineDetailCell {
vertical-align: top;
text-align: left;
padding: 0.75em;
border: 1px #ccc solid;
border-radius: 1em;
}
.timelineModernDetail {
font-size: 80%;
text-align: right;
float: right;
opacity: 0.75;
margin-top: 0.5em;
|
< > > > |
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
span.timelineEllipsis { cursor: pointer; } .timelineModernCell, .timelineColumnarCell, .timelineDetailCell { vertical-align: top; text-align: left; padding: 0.75em; border-radius: 1em; } .timelineModernCell[id], .timelineColumnarCell[id] { background-color: #efefef; } .timelineModernDetail { font-size: 80%; text-align: right; float: right; opacity: 0.75; margin-top: 0.5em; |
Changes to src/timeline.c.
305 306 307 308 309 310 311 312 313 314 315 316 317 318 ... 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 ... 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 ... 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 ... 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 ... 610 611 612 613 614 615 616 617 618 619 620 621 622 623 |
const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous"; const char *zBr = 0; /* Branch */ int commentColumn = 3; /* Column containing comment text */ int modPending; /* Pending moderation */ char *zDateLink; /* URL for the link on the timestamp */ int drawDetailEllipsis; /* True to show ellipsis in place of detail */ int gidx = 0; /* Graph row identifier */ char zTime[20]; if( zDate==0 ){ zDate = "YYYY-MM-DD HH:MM:SS"; /* Something wrong with the repo */ } modPending = moderation_pending(rid); if( tagid ){ ................................................................................ zTime[pos++] = 0; }else{ zTime[0] = 0; } pendingEndTr = 1; if( rid==selectedRid ){ @ <tr class="timelineSelected"> }else if( rid==vid ){ @ <tr class="timelineCurrent"> }else { @ <tr> } if( zType[0]=='e' && tagid ){ char *zId; zId = db_text(0, "SELECT substr(tagname, 7) FROM tag WHERE tagid=%d", tagid); ................................................................................ zDateLink = href("%R/technote/%s",zId); free(zId); }else if( zUuid ){ zDateLink = chref("timelineHistLink", "%R/info/%!S", zUuid); }else{ zDateLink = mprintf("<a>"); } /* WAS: zDateLink = href("%R/timeline?c=%!S&unhide", zUuid); */ @ <td class="timelineTime">%z(zDateLink)%s(zTime)</a></td> @ <td class="timelineGraph"> if( tmFlags & TIMELINE_UCOLOR ) zBgClr = zUser ? hash_color(zUser) : 0; if( zType[0]=='c' && (pGraph || zBgClr==0 || (tmFlags & TIMELINE_BRCOLOR)!=0) ){ db_reset(&qbranch); ................................................................................ db_reset(&qparent); gidx = graph_add_row(pGraph, rid, nParent, aParent, zBr, zBgClr, zUuid, isLeaf); db_reset(&qbranch); @ <div id="m%d(gidx)" class="tl-nodemark"></div> } @</td> if( zBgClr && zBgClr[0] && rid!=selectedRid ){ @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'> }else{ @ <td class="timeline%s(zStyle)Cell"> } if( pGraph && zType[0]!='c' ){ @ • } ................................................................................ ** Example: "(check-in: [abcdefg], user: drh, tags: trunk)" */ if( drawDetailEllipsis ){ @ <span class='timelineEllipsis' id='ellipsis-%d(rid)'\ @ data-id='%d(rid)'>...</span> } if( tmFlags & TIMELINE_COLUMNAR ){ if( zBgClr && zBgClr[0] && rid!=selectedRid ){ @ <td class="timelineDetailCell" id='md%d(gidx)'> }else{ @ <td class="timelineDetailCell"> } } if( tmFlags & TIMELINE_COMPACT ){ cgi_printf("<span class='clutter' id='detail-%d'>",rid); } cgi_printf("<span class='timeline%sDetail'>", zStyle); if( (tmFlags & TIMELINE_VERBOSE)==0 ){ if( zType[0]=='c' ){ if( isLeaf ){ if( db_exists("SELECT 1 FROM tagxref" " WHERE rid=%d AND tagid=%d AND tagtype>0", rid, TAG_CLOSED) ){ ................................................................................ } } tag_private_status(rid); if( xExtra ){ xExtra(rid); } /* End timelineDetail */ if( tmFlags & TIMELINE_COMPACT ){ @ </span></span> }else{ @ </span> } /* Generate the file-change list if requested */ |
> > > < | | > > > > > > |
305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 ... 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 ... 395 396 397 398 399 400 401 402 403 404 405 406 407 408 ... 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 ... 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 ... 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 |
const char *zDispUser = zUser && zUser[0] ? zUser : "anonymous"; const char *zBr = 0; /* Branch */ int commentColumn = 3; /* Column containing comment text */ int modPending; /* Pending moderation */ char *zDateLink; /* URL for the link on the timestamp */ int drawDetailEllipsis; /* True to show ellipsis in place of detail */ int gidx = 0; /* Graph row identifier */ int isSelectedOrCurrent = 0; /* True if current row is selected */ char zTime[20]; if( zDate==0 ){ zDate = "YYYY-MM-DD HH:MM:SS"; /* Something wrong with the repo */ } modPending = moderation_pending(rid); if( tagid ){ ................................................................................ zTime[pos++] = 0; }else{ zTime[0] = 0; } pendingEndTr = 1; if( rid==selectedRid ){ @ <tr class="timelineSelected"> isSelectedOrCurrent = 1; }else if( rid==vid ){ @ <tr class="timelineCurrent"> isSelectedOrCurrent = 1; }else { @ <tr> } if( zType[0]=='e' && tagid ){ char *zId; zId = db_text(0, "SELECT substr(tagname, 7) FROM tag WHERE tagid=%d", tagid); ................................................................................ zDateLink = href("%R/technote/%s",zId); free(zId); }else if( zUuid ){ zDateLink = chref("timelineHistLink", "%R/info/%!S", zUuid); }else{ zDateLink = mprintf("<a>"); } @ <td class="timelineTime">%z(zDateLink)%s(zTime)</a></td> @ <td class="timelineGraph"> if( tmFlags & TIMELINE_UCOLOR ) zBgClr = zUser ? hash_color(zUser) : 0; if( zType[0]=='c' && (pGraph || zBgClr==0 || (tmFlags & TIMELINE_BRCOLOR)!=0) ){ db_reset(&qbranch); ................................................................................ db_reset(&qparent); gidx = graph_add_row(pGraph, rid, nParent, aParent, zBr, zBgClr, zUuid, isLeaf); db_reset(&qbranch); @ <div id="m%d(gidx)" class="tl-nodemark"></div> } @</td> if( !isSelectedOrCurrent ){ @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'> }else{ @ <td class="timeline%s(zStyle)Cell"> } if( pGraph && zType[0]!='c' ){ @ • } ................................................................................ ** Example: "(check-in: [abcdefg], user: drh, tags: trunk)" */ if( drawDetailEllipsis ){ @ <span class='timelineEllipsis' id='ellipsis-%d(rid)'\ @ data-id='%d(rid)'>...</span> } if( tmFlags & TIMELINE_COLUMNAR ){ if( !isSelectedOrCurrent ){ @ <td class="timelineDetailCell" id='md%d(gidx)'> }else{ @ <td class="timelineDetailCell"> } } if( tmFlags & TIMELINE_COMPACT ){ cgi_printf("<span class='clutter' id='detail-%d'>",rid); } cgi_printf("<span class='timeline%sDetail'>", zStyle); if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){ cgi_printf("("); } if( (tmFlags & TIMELINE_VERBOSE)==0 ){ if( zType[0]=='c' ){ if( isLeaf ){ if( db_exists("SELECT 1 FROM tagxref" " WHERE rid=%d AND tagid=%d AND tagtype>0", rid, TAG_CLOSED) ){ ................................................................................ } } tag_private_status(rid); if( xExtra ){ xExtra(rid); } /* End timelineDetail */ if( (tmFlags & (TIMELINE_VERBOSE|TIMELINE_COMPACT))!=0 ){ cgi_printf(")"); } if( tmFlags & TIMELINE_COMPACT ){ @ </span></span> }else{ @ </span> } /* Generate the file-change list if requested */ |