Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Make the "basic" query parameter the default for built-in skins when clicking on the Timeline menu. Add "basic" to /finfo. Other improvements to timeline. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
78f18dbd1cf1cb8b11aca59edd3fcea7 |
| User & Date: | drh 2017-11-24 23:53:45.940 |
Context
|
2017-11-25
| ||
| 01:41 | Fix typos and improve the text description of the "Comment Format" setting. check-in: a339c94fd3 user: drh tags: trunk | |
|
2017-11-24
| ||
| 23:53 | Make the "basic" query parameter the default for built-in skins when clicking on the Timeline menu. Add "basic" to /finfo. Other improvements to timeline. check-in: 78f18dbd1c user: drh tags: trunk | |
| 22:35 | Add the "basic=1" query parameter to /timeline, to declutter the display. check-in: 5ec5a403ae user: drh tags: trunk | |
Changes
Changes to skins/black_and_white/header.txt.
| ︙ | ︙ | |||
12 13 14 15 16 17 18 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
| | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
html "<a href='$home/timeline?basic'>Timeline</a>\n"
}
if {[anoncap oh]} {
html "<a href='$home/tree?ci=tip'>Files</a>\n"
}
if {[anoncap o]} {
html "<a href='$home/brlist'>Branches</a>\n"
html "<a href='$home/taglist'>Tags</a>\n"
|
| ︙ | ︙ |
Changes to skins/blitz/header.txt.
| ︙ | ︙ | |||
35 36 37 38 39 40 41 |
} else {
html "<li>"
}
html "<a href='$home$url'>$name</a></li>\n"
}
menulink $index_page Home
if {[anycap jor]} {
| | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
} else {
html "<li>"
}
html "<a href='$home$url'>$name</a></li>\n"
}
menulink $index_page Home
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[hascap oh]} {
menulink /dir?ci=tip Files
}
if {[hascap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to skins/blitz_no_logo/header.txt.
| ︙ | ︙ | |||
32 33 34 35 36 37 38 |
} else {
html "<li>"
}
html "<a href='$home$url'>$name</a></li>\n"
}
menulink $index_page Home
if {[anycap jor]} {
| | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
} else {
html "<li>"
}
html "<a href='$home$url'>$name</a></li>\n"
}
menulink $index_page Home
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[hascap oh]} {
menulink /dir?ci=tip Files
}
if {[hascap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to skins/bootstrap/header.txt.
| ︙ | ︙ | |||
52 53 54 55 56 57 58 |
html "<li class='active'><a href='$home/wiki'>Wiki</a></li>\n"
} else {
html "<li><a href='$home/wiki'>Wiki</a></li>\n"
}
}
if {[anycap jor]} {
if {[string compare $current_page "timeline"] == 0} {
| | | | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
html "<li class='active'><a href='$home/wiki'>Wiki</a></li>\n"
} else {
html "<li><a href='$home/wiki'>Wiki</a></li>\n"
}
}
if {[anycap jor]} {
if {[string compare $current_page "timeline"] == 0} {
html "<li class='active'><a href='$home/timeline?basic'>Timeline</a></li>\n"
} else {
html "<li><a href='$home/timeline?basic'>Timeline</a></li>\n"
}
}
if {[hascap oh]} {
if {[string compare [string range $current_page 0 2] "dir"] == 0} {
html "<li class='active'><a href='$home/dir?ci=tip'>Files</a></li>\n"
} else {
html "<li><a href='$home/dir?ci=tip'>Files</a></li>\n"
|
| ︙ | ︙ |
Changes to skins/default/css.txt.
| ︙ | ︙ | |||
179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
vertical-align: top;
background-color: #f8f8f8;
border: 1px solid #ccc;
}
td.tktDspValue pre {
white-space: pre-wrap;
}
.footer {
border-top: 1px solid #ccc;
padding: 10px;
font-size:.7em;
margin-top: 10px;
color: #ccc;
| > > > > | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 |
vertical-align: top;
background-color: #f8f8f8;
border: 1px solid #ccc;
}
td.tktDspValue pre {
white-space: pre-wrap;
}
span.timelineDetail {
font-size: 90%;
}
.footer {
border-top: 1px solid #ccc;
padding: 10px;
font-size:.7em;
margin-top: 10px;
color: #ccc;
|
| ︙ | ︙ |
Changes to skins/default/header.txt.
| ︙ | ︙ | |||
17 18 19 20 21 22 23 |
html "<a href='$home$url' class='active'>$name</a>\n"
} else {
html "<a href='$home$url'>$name</a>\n"
}
}
menulink $index_page Home
if {[anycap jor]} {
| | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
html "<a href='$home$url' class='active'>$name</a>\n"
} else {
html "<a href='$home$url'>$name</a>\n"
}
}
menulink $index_page Home
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[hascap oh]} {
menulink /dir?ci=tip Files
}
if {[hascap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to skins/eagle/header.txt.
| ︙ | ︙ | |||
96 97 98 99 100 101 102 |
proc menulink {url name} {
upvar home home
html "<a href='$home$url'>$name</a>\n"
}
menulink $index_page Home
menulink /help Help
if {[anycap jor]} {
| | | 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
proc menulink {url name} {
upvar home home
html "<a href='$home$url'>$name</a>\n"
}
menulink $index_page Home
menulink /help Help
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[anoncap oh]} {
menulink /dir?ci=tip Files
}
if {[anoncap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to skins/enhanced1/header.txt.
| ︙ | ︙ | |||
96 97 98 99 100 101 102 |
proc menulink {url name} {
upvar home home
html "<a href='$home$url'>$name</a>\n"
}
menulink $index_page Home
menulink /help Help
if {[anycap jor]} {
| | | 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
proc menulink {url name} {
upvar home home
html "<a href='$home$url'>$name</a>\n"
}
menulink $index_page Home
menulink /help Help
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[anoncap oh]} {
menulink /dir?ci=tip Files
}
if {[anoncap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to skins/khaki/header.txt.
| ︙ | ︙ | |||
10 11 12 13 14 15 16 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
| | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
html "<a href='$home/timeline?basic'>Timeline</a>\n"
}
if {[anoncap oh]} {
html "<a href='$home/tree?ci=tip'>Files</a>\n"
}
if {[anoncap o]} {
html "<a href='$home/brlist'>Branches</a>\n"
html "<a href='$home/taglist'>Tags</a>\n"
|
| ︙ | ︙ |
Changes to skins/original/header.txt.
| ︙ | ︙ | |||
11 12 13 14 15 16 17 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
| | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
html "<a href='$home/timeline?basic'>Timeline</a>\n"
}
if {[anoncap oh]} {
html "<a href='$home/tree?ci=tip'>Files</a>\n"
}
if {[anoncap o]} {
html "<a href='$home/brlist'>Branches</a>\n"
html "<a href='$home/taglist'>Tags</a>\n"
|
| ︙ | ︙ |
Changes to skins/plain_gray/header.txt.
| ︙ | ︙ | |||
8 9 10 11 12 13 14 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
| | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
html "<a href='$home/timeline?basic'>Timeline</a>\n"
}
if {[anoncap oh]} {
html "<a href='$home/tree?ci=tip'>Files</a>\n"
}
if {[anoncap o]} {
html "<a href='$home/brlist'>Branches</a>\n"
html "<a href='$home/taglist'>Tags</a>\n"
|
| ︙ | ︙ |
Changes to skins/rounded1/details.txt.
1 | timeline-arrowheads: 1 | | | 1 2 3 4 | timeline-arrowheads: 1 timeline-circle-nodes: 1 timeline-color-graph-lines: 0 white-foreground: 0 |
Changes to skins/rounded1/header.txt.
| ︙ | ︙ | |||
12 13 14 15 16 17 18 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
| | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
html "<a href='$home$index_page'>Home</a>\n"
if {[anycap jor]} {
html "<a href='$home/timeline?basic'>Timeline</a>\n"
}
if {[anoncap oh]} {
html "<a href='$home/tree?ci=tip'>Files</a>\n"
}
if {[anoncap o]} {
html "<a href='$home/brlist'>Branches</a>\n"
html "<a href='$home/taglist'>Tags</a>\n"
|
| ︙ | ︙ |
Changes to skins/xekri/header.txt.
| ︙ | ︙ | |||
100 101 102 103 104 105 106 |
html "<a href='$home$url' class='active'>$name</a>\n"
} else {
html "<a href='$home$url'>$name</a>\n"
}
}
menulink $index_page Home
if {[anycap jor]} {
| | | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
html "<a href='$home$url' class='active'>$name</a>\n"
} else {
html "<a href='$home$url'>$name</a>\n"
}
}
menulink $index_page Home
if {[anycap jor]} {
menulink /timeline?basic Timeline
}
if {[anoncap oh]} {
menulink /dir?ci=tip Files
}
if {[anoncap o]} {
menulink /brlist Branches
menulink /taglist Tags
|
| ︙ | ︙ |
Changes to src/finfo.c.
| ︙ | ︙ | |||
285 286 287 288 289 290 291 292 293 294 295 296 297 298 |
** n=NUM Show the first NUM changes only
** brbg Background color by branch name
** ubg Background color by user name
** ci=UUID Ancestors of a particular check-in
** orig=UUID If both ci and orig are supplied, only show those
** changes on a direct path from orig to ci.
** showid Show RID values for debugging
**
** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in
** year-month-day form, it may be truncated, and it may also name a
** timezone offset from UTC as "-HH:MM" (westward) or "+HH:MM"
** (eastward). Either no timezone suffix or "Z" means UTC.
*/
void finfo_page(void){
| > | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 |
** n=NUM Show the first NUM changes only
** brbg Background color by branch name
** ubg Background color by user name
** ci=UUID Ancestors of a particular check-in
** orig=UUID If both ci and orig are supplied, only show those
** changes on a direct path from orig to ci.
** showid Show RID values for debugging
** basic Minimize clutter and complication
**
** DATETIME may be "now" or "YYYY-MM-DDTHH:MM:SS.SSS". If in
** year-month-day form, it may be truncated, and it may also name a
** timezone offset from UTC as "-HH:MM" (westward) or "+HH:MM"
** (eastward). Either no timezone suffix or "Z" means UTC.
*/
void finfo_page(void){
|
| ︙ | ︙ | |||
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 |
GraphContext *pGraph;
int brBg = P("brbg")!=0;
int uBg = P("ubg")!=0;
int fDebug = atoi(PD("debug","0"));
int fShowId = P("showid")!=0;
Stmt qparent;
int iTableId = timeline_tableid();
int bHashBeforeComment = 0; /* Show hash before the comment */
int bHashAfterComment = 0; /* Show hash after the comment */
int bHashInDetail = 0; /* Show the hash inside the detail section */
int bShowDetail; /* Show the detail section */
int bSeparateDetail; /* Detail section in a separate column */
int eCommentFormat; /* value for timeline-comment-format */
login_check_credentials();
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
style_header("File History");
login_anonymous_available();
url_initialize(&url, "finfo");
if( brBg ) url_add_parameter(&url, "brbg", 0);
if( uBg ) url_add_parameter(&url, "ubg", 0);
baseCheckin = name_to_rid_www("ci");
zPrevDate[0] = 0;
zFilename = PD("name","");
| > | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
GraphContext *pGraph;
int brBg = P("brbg")!=0;
int uBg = P("ubg")!=0;
int fDebug = atoi(PD("debug","0"));
int fShowId = P("showid")!=0;
Stmt qparent;
int iTableId = timeline_tableid();
int bBasic = PB("basic");
int bHashBeforeComment = 0; /* Show hash before the comment */
int bHashAfterComment = 0; /* Show hash after the comment */
int bHashInDetail = 0; /* Show the hash inside the detail section */
int bShowDetail; /* Show the detail section */
int bSeparateDetail; /* Detail section in a separate column */
int eCommentFormat; /* value for timeline-comment-format */
login_check_credentials();
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
style_header("File History");
login_anonymous_available();
url_initialize(&url, "finfo");
if( brBg ) url_add_parameter(&url, "brbg", 0);
if( uBg ) url_add_parameter(&url, "ubg", 0);
baseCheckin = name_to_rid_www("ci");
zPrevDate[0] = 0;
zFilename = PD("name","");
eCommentFormat = bBasic ? 5 : db_get_int("timeline-comment-format", 0);
bShowDetail = (eCommentFormat & 1)==0; /* Bit 0 suppresses the comment */
bSeparateDetail = (eCommentFormat & 8)!=0;
switch( (eCommentFormat>>1)&3 ){
case 1: bHashAfterComment = 1; break;
case 2: bHashInDetail = 1; break;
default: bHashBeforeComment = 1; break;
}
|
| ︙ | ︙ | |||
443 444 445 446 447 448 449 450 451 452 453 454 455 456 |
fossil_free(zUuid);
}
}else{
blob_appendf(&title, "History of ");
hyperlinked_path(zFilename, &title, 0, "tree", "");
if( fShowId ) blob_appendf(&title, " (%d)", fnid);
}
@ <h2>%b(&title)</h2>
blob_reset(&title);
pGraph = graph_init();
@ <table id="timelineTable%d(iTableId)" class="timelineTable">
if( baseCheckin ){
db_prepare(&qparent,
"SELECT DISTINCT pid FROM mlink"
| > > > > | 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 |
fossil_free(zUuid);
}
}else{
blob_appendf(&title, "History of ");
hyperlinked_path(zFilename, &title, 0, "tree", "");
if( fShowId ) blob_appendf(&title, " (%d)", fnid);
}
if( bBasic ){
style_submenu_element("Advanced", "%s",
url_render(&url, "basic", 0, 0, 0));
}
@ <h2>%b(&title)</h2>
blob_reset(&title);
pGraph = graph_init();
@ <table id="timelineTable%d(iTableId)" class="timelineTable">
if( baseCheckin ){
db_prepare(&qparent,
"SELECT DISTINCT pid FROM mlink"
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
2443 2444 2445 2446 2447 2448 2449 |
flags |= HTTP_SERVER_LOCALHOST|HTTP_SERVER_REPOLIST;
g.useLocalauth = 1;
allowRepoList = 1;
}
find_server_repository(2, fCreate);
if( zInitPage==0 ){
if( isUiCmd && g.localOpen ){
| | | 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 |
flags |= HTTP_SERVER_LOCALHOST|HTTP_SERVER_REPOLIST;
g.useLocalauth = 1;
allowRepoList = 1;
}
find_server_repository(2, fCreate);
if( zInitPage==0 ){
if( isUiCmd && g.localOpen ){
zInitPage = "timeline?c=current&basic";
}else{
zInitPage = "";
}
}
if( zPort ){
int i;
for(i=strlen(zPort)-1; i>=0 && zPort[i]!=':'; i--){}
|
| ︙ | ︙ | |||
2481 2482 2483 2484 2485 2486 2487 |
}
}
}
#else
zBrowser = db_get("web-browser", "open");
#endif
if( zIpAddr ){
| | | | 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 |
}
}
}
#else
zBrowser = db_get("web-browser", "open");
#endif
if( zIpAddr ){
zBrowserCmd = mprintf("%s \"http://%s:%%d/%s\" &",
zBrowser, zIpAddr, zInitPage);
}else{
zBrowserCmd = mprintf("%s \"http://localhost:%%d/%s\" &",
zBrowser, zInitPage);
}
}
if( g.repositoryOpen ) flags |= HTTP_SERVER_HAD_REPOSITORY;
if( g.localOpen ) flags |= HTTP_SERVER_HAD_CHECKOUT;
db_close(1);
if( cgi_http_server(iPort, mxPort, zBrowserCmd, zIpAddr, flags) ){
|
| ︙ | ︙ |
Changes to src/style.c.
| ︙ | ︙ | |||
749 750 751 752 753 754 755 756 757 758 759 760 761 762 |
@ border: 0;
@ border-collapse: collapse;
},
{ "td.timelineTableCell",
"the format for the timeline data cells",
@ vertical-align: top;
@ text-align: left;
},
{ "tr.timelineCurrent",
"the format for the timeline data cell of the current checkout",
@ padding: .1em .2em;
@ border: 1px dashed #446979;
@ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
},
| > > > > | 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 |
@ border: 0;
@ border-collapse: collapse;
},
{ "td.timelineTableCell",
"the format for the timeline data cells",
@ vertical-align: top;
@ text-align: left;
},
{ "td.timelineDetailCell",
"the format for the timeline data cells for the detail column",
@ padding-left: 2em;
},
{ "tr.timelineCurrent",
"the format for the timeline data cell of the current checkout",
@ padding: .1em .2em;
@ border: 1px dashed #446979;
@ box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5);
},
|
| ︙ | ︙ |
Changes to src/timeline.c.
| ︙ | ︙ | |||
266 267 268 269 270 271 272 |
zPrevDate[0] = 0;
mxWikiLen = db_get_int("timeline-max-comment", 0);
dateFormat = db_get_int("timeline-date-format", 0);
bCommentGitStyle = db_get_int("timeline-truncate-at-blank", 0);
if( tmFlags & TIMELINE_BASIC ){
eCommentFormat = 5; /* Comment only */
}else{
| > > > | | | 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 |
zPrevDate[0] = 0;
mxWikiLen = db_get_int("timeline-max-comment", 0);
dateFormat = db_get_int("timeline-date-format", 0);
bCommentGitStyle = db_get_int("timeline-truncate-at-blank", 0);
if( tmFlags & TIMELINE_BASIC ){
eCommentFormat = 5; /* Comment only */
}else{
/* Undocumented query parameter commentformat=N takes a numeric parameter to
** adjust the comment-format for testing purposes. */
const char *z = P("commentformat");
eCommentFormat = z ? atoi(z) : db_get_int("timeline-comment-format", 0);
}
bShowDetail = (eCommentFormat & 1)==0; /* Bit 0 suppresses the comment */
bSeparateDetail = (eCommentFormat & 8)!=0; /* Bit 3 turns on the detail column */
switch( (eCommentFormat>>1)&3 ){
case 1: bHashAfterComment = 1; break;
case 2: bHashInDetail = 1; break;
default: bHashBeforeComment = 1; break;
}
zDateFmt = P("datefmt");
|
| ︙ | ︙ | |||
1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 | } /* ** WEBPAGE: timeline ** ** Query parameters: ** ** a=TIMEORTAG After this event ** b=TIMEORTAG Before this event ** c=TIMEORTAG "Circa" this event ** m=TIMEORTAG Mark this event ** n=COUNT Suggested number of events in output ** p=CHECKIN Parents and ancestors of CHECKIN ** d=CHECKIN Descendants of CHECIN ** dp=CHECKIN The same as d=CHECKIN&p=CHECKIN ** t=TAG Show only check-ins with the given TAG ** r=TAG Show check-ins related to TAG, equivalent to t=TAG&rel ** rel Show related check-ins as well as those matching t=TAG ** mionly Limit rel to show ancestors but not descendants ** ms=STYLE Set tag match style to EXACT, GLOB, LIKE, REGEXP ** u=USER Only show items associated with USER ** y=TYPE 'ci', 'w', 't', 'e', or (default) 'all' ** ng No Graph. ** nd Do not highlight the focus check-in ** v Show details of files changed | > < | 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 | } /* ** WEBPAGE: timeline ** ** Query parameters: ** ** basic Minimum clutter and distraction ** a=TIMEORTAG After this event ** b=TIMEORTAG Before this event ** c=TIMEORTAG "Circa" this event ** m=TIMEORTAG Mark this event ** n=COUNT Suggested number of events in output ** p=CHECKIN Parents and ancestors of CHECKIN ** d=CHECKIN Descendants of CHECIN ** dp=CHECKIN The same as d=CHECKIN&p=CHECKIN ** t=TAG Show only check-ins with the given TAG ** r=TAG Show check-ins related to TAG, equivalent to t=TAG&rel ** rel Show related check-ins as well as those matching t=TAG ** mionly Limit rel to show ancestors but not descendants ** ms=STYLE Set tag match style to EXACT, GLOB, LIKE, REGEXP ** u=USER Only show items associated with USER ** y=TYPE 'ci', 'w', 't', 'e', or (default) 'all' ** ng No Graph. ** nd Do not highlight the focus check-in ** v Show details of files changed ** f=CHECKIN Show family (immediate parents and children) of CHECKIN ** from=CHECKIN Path from... ** to=CHECKIN ... to this ** shortest ... show only the shortest path ** uf=FILE_HASH Show only check-ins that contain the given file version ** chng=GLOBLIST Show only check-ins that involve changes to a file whose ** name matches one of the comma-separate GLOBLIST |
| ︙ | ︙ | |||
1621 1622 1623 1624 1625 1626 1627 |
Blob sql; /* text of SQL used to generate timeline */
Blob desc; /* Description of the timeline */
int nEntry; /* Max number of entries on timeline */
int p_rid = name_to_typed_rid(P("p"),"ci"); /* artifact p and its parents */
int d_rid = name_to_typed_rid(P("d"),"ci"); /* artifact d and descendants */
int f_rid = name_to_typed_rid(P("f"),"ci"); /* artifact f and close family */
const char *zUser = P("u"); /* All entries by this user if not NULL */
| > | | 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 |
Blob sql; /* text of SQL used to generate timeline */
Blob desc; /* Description of the timeline */
int nEntry; /* Max number of entries on timeline */
int p_rid = name_to_typed_rid(P("p"),"ci"); /* artifact p and its parents */
int d_rid = name_to_typed_rid(P("d"),"ci"); /* artifact d and descendants */
int f_rid = name_to_typed_rid(P("f"),"ci"); /* artifact f and close family */
const char *zUser = P("u"); /* All entries by this user if not NULL */
int bBasic = PB("basic"); /* Minimize clutter and distraction */
const char *zType = PD("y",bBasic?"ci":"all"); /* Type of events. All if NULL */
const char *zAfter = P("a"); /* Events after this time */
const char *zBefore = P("b"); /* Events before this time */
const char *zCirca = P("c"); /* Events near this time */
const char *zMark = P("m"); /* Mark this event or an event this time */
const char *zTagName = P("t"); /* Show events with this tag */
const char *zBrName = P("r"); /* Equivalent to t=TAG&rel */
int related = PB("rel"); /* Show events related to zTagName */
|
| ︙ | ︙ | |||
1644 1645 1646 1647 1648 1649 1650 |
const char *zYearWeek = P("yw"); /* Check-ins for YYYY-WW (week-of-year) */
const char *zDay = P("ymd"); /* Check-ins for the day YYYY-MM-DD */
const char *zChng = P("chng"); /* List of GLOBs for files that changed */
int useDividers = P("nd")==0; /* Show dividers if "nd" is missing */
int renameOnly = P("namechng")!=0; /* Show only check-ins that rename files */
int forkOnly = PB("forks"); /* Show only forks and their children */
int bisectOnly = PB("bisect"); /* Show the check-ins of the bisect */
| < | 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 |
const char *zYearWeek = P("yw"); /* Check-ins for YYYY-WW (week-of-year) */
const char *zDay = P("ymd"); /* Check-ins for the day YYYY-MM-DD */
const char *zChng = P("chng"); /* List of GLOBs for files that changed */
int useDividers = P("nd")==0; /* Show dividers if "nd" is missing */
int renameOnly = P("namechng")!=0; /* Show only check-ins that rename files */
int forkOnly = PB("forks"); /* Show only forks and their children */
int bisectOnly = PB("bisect"); /* Show the check-ins of the bisect */
int tmFlags = 0; /* Timeline flags */
const char *zThisTag = 0; /* Suppress links to this tag */
const char *zThisUser = 0; /* Suppress links to this user */
HQuery url; /* URL for various branch links */
int from_rid = name_to_typed_rid(P("from"),"ci"); /* from= for paths */
int to_rid = name_to_typed_rid(P("to"),"ci"); /* to= for path timelines */
int noMerge = P("shortest")==0; /* Follow merge links if shorter */
|
| ︙ | ︙ | |||
1914 1915 1916 1917 1918 1919 1920 |
/* If both p= and d= are set, we don't have the uuid of d yet. */
zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
}
}
if( !bBasic ){
style_submenu_checkbox("v", "Files", zType[0]!='a' && zType[0]!='c', 0);
style_submenu_entry("n","Max:",4,0);
| < | > | 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 |
/* If both p= and d= are set, we don't have the uuid of d yet. */
zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
}
}
if( !bBasic ){
style_submenu_checkbox("v", "Files", zType[0]!='a' && zType[0]!='c', 0);
style_submenu_entry("n","Max:",4,0);
timeline_y_submenu(1);
}
}else if( f_rid && g.perm.Read ){
/* If f= is present, ignore all other parameters other than n= */
char *zUuid;
db_multi_exec(
"CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);"
"INSERT INTO ok VALUES(%d);"
"INSERT OR IGNORE INTO ok SELECT pid FROM plink WHERE cid=%d;"
|
| ︙ | ︙ | |||
2226 2227 2228 2229 2230 2231 2232 |
}
if( !bBasic ){
if( zType[0]=='a' || zType[0]=='c' ){
style_submenu_checkbox("unhide", "Unhide", 0, 0);
}
style_submenu_checkbox("v", "Files", zType[0]!='a' && zType[0]!='c', 0);
style_submenu_entry("n","Max:",4,0);
| < | < | | 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 |
}
if( !bBasic ){
if( zType[0]=='a' || zType[0]=='c' ){
style_submenu_checkbox("unhide", "Unhide", 0, 0);
}
style_submenu_checkbox("v", "Files", zType[0]!='a' && zType[0]!='c', 0);
style_submenu_entry("n","Max:",4,0);
timeline_y_submenu(disableY);
style_submenu_entry("t", "Tag Filter:", -8, 0);
style_submenu_multichoice("ms", count(azMatchStyles)/2, azMatchStyles, 0);
}
}
blob_zero(&cond);
}
if( bBasic ){
timeline_submenu(&url, "Advanced", "basic", 0, 0);
}
if( PB("showsql") ){
@ <pre>%h(blob_sql_text(&sql))</pre>
}
if( search_restrict(SRCH_CKIN)!=0 ){
style_submenu_element("Search", "%R/search?y=c");
}
|
| ︙ | ︙ |