Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Give greater emphasis to the check-in comment on timeline displays. Move the check-in hash into the details section at the end of each entry. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | timeline-improvements |
| Files: | files | file ages | folders |
| SHA3-256: |
4438e68de3d53c859a41cc33ddf6ff07 |
| User & Date: | drh 2017-11-24 14:19:34.388 |
Context
|
2017-11-24
| ||
| 16:06 | Restore this display of "Leaf" and "Closed-Leaf" but now put it after the check-in comment. check-in: 2df238e5ab user: drh tags: timeline-improvements | |
| 14:19 | Give greater emphasis to the check-in comment on timeline displays. Move the check-in hash into the details section at the end of each entry. check-in: 4438e68de3 user: drh tags: timeline-improvements | |
|
2017-11-22
| ||
| 19:01 | Improvements to the coding-style guidelines from Johan Kuuse. check-in: 49cde9fcaf user: drh tags: trunk | |
Changes
Changes to src/finfo.c.
| ︙ | ︙ | |||
500 501 502 503 504 505 506 507 |
@ <td class="timelineGraph"><div id="m%d(gidx)" class="tl-nodemark"></div>
@ </td>
if( zBgClr && zBgClr[0] ){
@ <td class="timelineTableCell" style="background-color: %h(zBgClr);">
}else{
@ <td class="timelineTableCell">
}
if( zUuid ){
| > > < < < < < < < < < < | | | > | > > > > > > > > > > > | > > > > > > > | | < < < < < < < < | 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 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 558 559 560 561 |
@ <td class="timelineGraph"><div id="m%d(gidx)" class="tl-nodemark"></div>
@ </td>
if( zBgClr && zBgClr[0] ){
@ <td class="timelineTableCell" style="background-color: %h(zBgClr);">
}else{
@ <td class="timelineTableCell">
}
@ <span class="timelineComment">%W(zCom)</span>
cgi_printf("<span class='timelineDetail'>(");
if( zUuid ){
@ file: %z(href("%R/artifact/%!S",zUuid))[%S(zUuid)]</a>
if( fShowId ){
int srcId = delta_source_rid(frid);
if( srcId>0 ){
@ id: %d(frid)←%d(srcId)
}else{
@ id: %d(frid)
}
}
}
@ check-in:
hyperlink_to_uuid(zCkin);
if( fShowId ){
@ (%d(fmid))
}
@ user:
hyperlink_to_user(zUser, zDate, ",");
@ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a>,
@ size: %d(szFile))</span>
if( zUuid && origCheckin==0 ){
if( nParent==0 ){
@ <b>Added</b>
}else if( pfnid ){
char *zPrevName = db_text(0,"SELECT name FROM filename WHERE fnid=%d",
pfnid);
@ <b>Renamed</b> from
@ %z(href("%R/finfo?name=%t", zPrevName))%h(zPrevName)</a>
}
}
if( zUuid==0 ){
char *zNewName;
zNewName = db_text(0,
"SELECT name FROM filename WHERE fnid = "
" (SELECT fnid FROM mlink"
" WHERE mid=%d"
" AND pfnid IN (SELECT fnid FROM filename WHERE name=%Q))",
fmid, zFilename);
if( zNewName ){
@ <b>Renamed</b> to
@ %z(href("%R/finfo?name=%t",zNewName))%h(zNewName)</a>
fossil_free(zNewName);
}else{
@ <b>Deleted</b>
}
}
if( g.perm.Hyperlink && zUuid ){
const char *z = zFilename;
@ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
@ [annotate]</a>
@ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
@ [blame]</a>
@ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins using]</a>
|
| ︙ | ︙ |
Changes to src/timeline.c.
| ︙ | ︙ | |||
418 419 420 421 422 423 424 |
}
if( pGraph && zType[0]!='c' ){
@ •
}
if( modPending ){
@ <span class="modpending">(Awaiting Moderator Approval)</span>
}
| < | | | | | | | | | < < < < < < < < < < < < < < < < < < < < < < < | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 |
}
if( pGraph && zType[0]!='c' ){
@ •
}
if( modPending ){
@ <span class="modpending">(Awaiting Moderator Approval)</span>
}
if( (tmFlags & TIMELINE_BISECT)!=0 && zType[0]=='c' ){
static Stmt bisectQuery;
db_prepare(&bisectQuery, "SELECT seq, stat FROM bilog WHERE rid=:rid");
db_bind_int(&bisectQuery, ":rid", rid);
if( db_step(&bisectQuery)==SQLITE_ROW ){
@ <b>%s(db_column_text(&bisectQuery,1))</b>
@ (%d(db_column_int(&bisectQuery,0)))
}
db_reset(&bisectQuery);
}
db_column_blob(pQuery, commentColumn, &comment);
if( zType[0]!='c' ){
/* Comments for anything other than a check-in are generated by
** "fossil rebuild" and expect to be rendered as text/x-fossil-wiki */
wiki_convert(&comment, 0, WIKI_INLINE);
}else if( bCommentGitStyle ){
|
| ︙ | ︙ | |||
482 483 484 485 486 487 488 |
@ <span class="timelineComment">%W(blob_str(&truncated))</span>
blob_reset(&truncated);
}else{
@ <span class="timelineComment">%W(blob_str(&comment))</span>
}
blob_reset(&comment);
| | | > | > | > | < > < > > < | | > > > > | | > > > > > > > > > > > | 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 |
@ <span class="timelineComment">%W(blob_str(&truncated))</span>
blob_reset(&truncated);
}else{
@ <span class="timelineComment">%W(blob_str(&comment))</span>
}
blob_reset(&comment);
/* Generate extra information and hyperlinks to follow the comment.
** Example: "(check-in: [abcdefg], user: drh, tags: trunk)"
*/
cgi_printf("<span class='timelineDetail'>(");
if( zType[0]=='c' ){
cgi_printf("check-in: ");
hyperlink_to_uuid(zUuid);
}else if( zType[0]=='e' && tagid ){
cgi_printf("technote: ");
hyperlink_to_event_tagid(tagid<0?-tagid:tagid);
}else{
cgi_printf("artifact: ");
hyperlink_to_uuid(zUuid);
}
if( g.perm.Hyperlink && fossil_strcmp(zDispUser, zThisUser)!=0 ){
char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd&n=200", zDispUser, zDate);
cgi_printf("user: %z%h</a>", href("%z",zLink), zDispUser);
}else{
cgi_printf("user: %h", zDispUser);
}
/* Generate the "tags: TAGLIST" at the end of the comment, together
** with hyperlinks to the tag list.
*/
if( zTagList && zTagList[0]==0 ) zTagList = 0;
if( zTagList ){
if( g.perm.Hyperlink ){
int i;
const char *z = zTagList;
Blob links;
blob_zero(&links);
while( z && z[0] ){
for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){
blob_appendf(&links,
"%z%#h</a>%.2s",
href("%R/timeline?r=%#t&nd&c=%t&n=200",i,z,zDate), i,z, &z[i]
);
}else{
blob_appendf(&links, "%#h", i+2, z);
}
if( z[i]==0 ) break;
z += i+2;
}
cgi_printf(" tags: %s", blob_str(&links));
blob_reset(&links);
}else{
cgi_printf(" tags: %h", zTagList);
}
}
if( tmFlags & TIMELINE_SHOWRID ){
int srcId = delta_source_rid(rid);
if( srcId ){
cgi_printf(" id: %d←%d", rid, srcId);
}else{
cgi_printf(" id: %d", rid);
}
}
cgi_printf(")</span>\n"); /* End of the details section */
tag_private_status(rid);
/* Generate extra hyperlinks at the end of the comment */
if( xExtra ){
xExtra(rid);
}
|
| ︙ | ︙ |