Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Disable additional hyperlinks when "history" privilege is disabled (by default when the user has not signed in as "anonymous" or other known user.) Help prevent spiders for soaking up bandwidth. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
5fe3aee8394b13baf8e71aef12228abc |
| User & Date: | drh 2009-08-30 01:22:15.000 |
Context
|
2009-08-31
| ||
| 00:09 | When listing the history of a file, show the check-in associated with each new version of that file. ... (check-in: 96c1043c61 user: drh tags: trunk) | |
|
2009-08-30
| ||
| 01:22 | Disable additional hyperlinks when "history" privilege is disabled (by default when the user has not signed in as "anonymous" or other known user.) Help prevent spiders for soaking up bandwidth. ... (check-in: 5fe3aee839 user: drh tags: trunk) | |
|
2009-08-29
| ||
| 22:54 | Put the divider marks around the base check-in on ancestor and descendent timelines. ... (check-in: d42adc11c8 user: drh tags: trunk) | |
Changes
Changes to src/info.c.
| ︙ | ︙ | |||
362 363 364 365 366 367 368 |
);
while( db_step(&q)==SQLITE_ROW ){
int pid = db_column_int(&q,0);
int fid = db_column_int(&q,1);
const char *zName = db_column_text(&q,2);
const char *zOld = db_column_text(&q,3);
const char *zNew = db_column_text(&q,4);
| > > > > > > > | | 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 |
);
while( db_step(&q)==SQLITE_ROW ){
int pid = db_column_int(&q,0);
int fid = db_column_int(&q,1);
const char *zName = db_column_text(&q,2);
const char *zOld = db_column_text(&q,3);
const char *zNew = db_column_text(&q,4);
if( !g.okHistory ){
if( zNew==0 ){
@ <p>Deleted %h(zName)</p>
continue;
}else{
@ <p>Changes to %h(zName)</p>
}
}else if( zOld && zNew ){
@ <p>Modified <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
@ from <a href="%s(g.zBaseURL)/artifact/%s(zOld)">[%s(zOld)]</a>
@ to <a href="%s(g.zBaseURL)/artifact/%s(zNew)">[%s(zNew)]</a></p>
}else if( zOld ){
@ <p>Deleted <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
@ version <a href="%s(g.zBaseURL)/artifact/%s(zOld)">[%s(zOld)]</a></p>
continue;
|
| ︙ | ︙ | |||
582 583 584 585 586 587 588 |
const char *zDate = db_column_text(&q, 0);
const char *zUser = db_column_text(&q, 2);
const char *zComment = db_column_text(&q, 1);
@ <h2>Check-in %s(zUuid)</h2>
@ <p>Made by
hyperlink_to_user(zUser,zDate," on");
hyperlink_to_date(zDate, ":");
| > > | > | > | > > > | 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 |
const char *zDate = db_column_text(&q, 0);
const char *zUser = db_column_text(&q, 2);
const char *zComment = db_column_text(&q, 1);
@ <h2>Check-in %s(zUuid)</h2>
@ <p>Made by
hyperlink_to_user(zUser,zDate," on");
hyperlink_to_date(zDate, ":");
@ %w(zComment).
if( g.okHistory ){
@ <a href="%s(g.zBaseURL)/ci/%s(zUuid)">[details]</a>
}
@ </p><hr>
}
db_finalize(&q);
db_prepare(&q,
"SELECT pid, fid, name"
" FROM mlink, filename"
" WHERE mlink.mid=%d"
" AND filename.fnid=mlink.fnid"
" ORDER BY name",
rid
);
while( db_step(&q)==SQLITE_ROW ){
int pid = db_column_int(&q,0);
int fid = db_column_int(&q,1);
const char *zName = db_column_text(&q,2);
if( g.okHistory ){
@ <p><a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a></p>
}else{
@ <p>%h(zName)</p>
}
@ <blockquote><pre>
append_diff(pid, fid);
@ </pre></blockquote>
}
db_finalize(&q);
style_footer();
}
|
| ︙ | ︙ | |||
654 655 656 657 658 659 660 |
const char *zUser = db_column_text(&q, 3);
const char *zVers = db_column_text(&q, 4);
if( cnt>0 ){
@ Also file
}else{
@ File
}
| > | > > > | 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 |
const char *zUser = db_column_text(&q, 3);
const char *zVers = db_column_text(&q, 4);
if( cnt>0 ){
@ Also file
}else{
@ File
}
if( g.okHistory ){
@ <a href="%s(g.zBaseURL)/finfo?name=%T(zName)">%h(zName)</a>
}else{
@ %h(zName)
}
@ part of check-in
hyperlink_to_uuid(zVers);
@ - %w(zCom) by
hyperlink_to_user(zUser,zDate," on");
hyperlink_to_date(zDate,".");
cnt++;
if( pDownloadName && blob_size(pDownloadName)==0 ){
|
| ︙ | ︙ | |||
685 686 687 688 689 690 691 |
const char *zDate = db_column_text(&q, 1);
const char *zUser = db_column_text(&q, 2);
if( cnt>0 ){
@ Also wiki page
}else{
@ Wiki page
}
| > | > > > | 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 |
const char *zDate = db_column_text(&q, 1);
const char *zUser = db_column_text(&q, 2);
if( cnt>0 ){
@ Also wiki page
}else{
@ Wiki page
}
if( g.okHistory ){
@ [<a href="%s(g.zBaseURL)/wiki?name=%t(zPagename)">%h(zPagename)</a>]
}else{
@ [%h(zPagename)]
}
@ by
hyperlink_to_user(zUser,zDate," on");
hyperlink_to_date(zDate,".");
nWiki++;
cnt++;
if( pDownloadName && blob_size(pDownloadName)==0 ){
blob_append(pDownloadName, zPagename, -1);
|
| ︙ | ︙ | |||
739 740 741 742 743 744 745 |
}
if( cnt==0 ){
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
@ Control artifact.
if( pDownloadName && blob_size(pDownloadName)==0 ){
blob_append(pDownloadName, zUuid, -1);
}
| | | 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 |
}
if( cnt==0 ){
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
@ Control artifact.
if( pDownloadName && blob_size(pDownloadName)==0 ){
blob_append(pDownloadName, zUuid, -1);
}
}else if( linkToView && g.okHistory ){
@ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
}
}
/*
** WEBPAGE: fdiff
|
| ︙ | ︙ | |||
1027 1028 1029 1030 1031 1032 1033 |
if( m.type!=CFTYPE_TICKET ){
fossil_redirect_home();
}
style_header("Ticket Change Details");
zDate = db_text(0, "SELECT datetime(%.12f)", m.rDate);
memcpy(zTktName, m.zTicketUuid, 10);
zTktName[10] = 0;
| > | | | | | | > > > > > > | 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 |
if( m.type!=CFTYPE_TICKET ){
fossil_redirect_home();
}
style_header("Ticket Change Details");
zDate = db_text(0, "SELECT datetime(%.12f)", m.rDate);
memcpy(zTktName, m.zTicketUuid, 10);
zTktName[10] = 0;
if( g.okHistory ){
@ <h2>Changes to ticket <a href="%s(m.zTicketUuid)">%s(zTktName)</a></h2>
@
@ <p>By %h(m.zUser) on %s(zDate). See also:
@ <a href="%s(g.zTop)/artifact/%T(zUuid)">artifact content</a>, and
@ <a href="%s(g.zTop)/tkthistory/%s(m.zTicketUuid)">ticket history</a>
@ </p>
}else{
@ <h2>Changes to ticket %s(zTktName)</h2>
@
@ <p>By %h(m.zUser) on %s(zDate).
@ </p>
}
@
@ <ol>
free(zDate);
ticket_output_change_artifact(&m);
manifest_clear(&m);
style_footer();
}
|
| ︙ | ︙ |
Changes to src/report.c.
| ︙ | ︙ | |||
781 782 783 784 785 786 787 |
@ </tr><tr bgcolor="%h(zBg)"><td colspan=%d(pState->nCol)>
blob_init(&content, zData, -1);
wiki_convert(&content, 0, 0);
blob_reset(&content);
}
}else if( azName[i][0]=='#' ){
zTid = zData;
| > | > > > | 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 |
@ </tr><tr bgcolor="%h(zBg)"><td colspan=%d(pState->nCol)>
blob_init(&content, zData, -1);
wiki_convert(&content, 0, 0);
blob_reset(&content);
}
}else if( azName[i][0]=='#' ){
zTid = zData;
if( g.okHistory ){
@ <td valign="top"><a href="tktview?name=%h(zData)">%h(zData)</a></td>
}else{
@ <td valign="top">%h(zData)</td>
}
}else if( zData[0]==0 ){
@ <td valign="top"> </td>
}else{
@ <td valign="top">
@ %h(zData)
@ </td>
}
|
| ︙ | ︙ |