@@ -316,10 +316,16 @@
316 316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** www_print_timeline() as the last (8th) argument.
317 317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
318 318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if INTERFACE
319 319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct TimelineXtra {
320 320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xExtra)(Stmt*,int,const char*,const char*); /* generate "extra" text */
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zThisUser; /* Suppress links to this user */
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zThisTag; /* Suppress links to this tag */
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Matcher *pLeftBranch; /* Comparison function to use for zLeftBranch */
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int selectedRid; /* CSS: timelineSelected */
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int secondRid; /* CSS: timelineSelected timelineSecondary */
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int currentRid; /* CSS: timelineCurrent */
321 327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
322 328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
323 329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
324 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
325 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -374,15 +380,10 @@
374 380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** 10. Short comment to user for repeated tickets and wiki
375 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
376 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void www_print_timeline(
377 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt *pQuery, /* Query to implement the timeline */
378 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tmFlags, /* Flags controlling display behavior */
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zThisUser, /* Suppress links to this user */
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zThisTag, /* Suppress links to this tag */
381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Matcher *pLeftBranch, /* Comparison function to use for zLeftBranch */
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int selectedRid, /* Highlight the line with this RID value or zero */
383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int secondRid, /* Secondary highlight (or zero) */
384 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TimelineXtra *pXtra /* Supplemental information */
385 386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
386 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mxWikiLen;
387 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob comment;
388 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int prevTagid = 0;
@@ -400,12 +401,19 @@
400 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDateFmt;
401 402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTableId = timeline_tableid();
402 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bTimestampLinksToInfo; /* True if timestamp hyperlinks go to the /info
403 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page rather than the /timeline page */
404 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zMainBranch = db_main_branch();
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TimelineXtra zeroXtra; /* Substitute for pXtra==NULL */
405 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( cgi_is_loopback(g.zIpAddr) && db_open_local(0) ){
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pXtra==0 ){
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&zeroXtra, 0, sizeof(zeroXtra));
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pXtra = &zeroXtra;
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pXtra->currentRid ){
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ vid = pXtra->currentRid;
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( cgi_is_loopback(g.zIpAddr) && db_open_local(0) ){
407 415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vid = db_lget_int("checkout", 0);
408 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
409 417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPrevDate[0] = 0;
410 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mxWikiLen = db_get_int("timeline-max-comment", 0);
411 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dateFormat = db_get_int("timeline-date-format", 0);
@@ -522,19 +530,18 @@
522 530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTime[pos++] = 0;
523 531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
524 532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zTime[0] = 0;
525 533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
526 534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pendingEndTr = 1;
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( rid==selectedRid ){
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( rid==pXtra->selectedRid ){
528 536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr class="timelineSelected">
529 537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isSelectedOrCurrent = 1;
530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( rid==secondRid ){
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( rid==pXtra->secondRid ){
531 539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr class="timelineSelected timelineSecondary">
532 540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
isSelectedOrCurrent = 1;
533 541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( rid==vid ){
534 542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr class="timelineCurrent">
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- isSelectedOrCurrent = 1;
536 543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else {
537 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr>
538 545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
539 546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]=='t' && tagid && (tmFlags & TIMELINE_NOTKT)==0 ){
540 547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zTktid = db_text(0, "SELECT substr(tagname,5) FROM tag"
@@ -790,14 +797,14 @@
790 797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
791 798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( tmFlags & TIMELINE_COMPACT ){
792 799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_printf("<span class='clutter' id='detail-%d'>",rid);
793 800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
794 801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_printf("<span class='timeline%sDetail'>", zStyle);
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( pXtra && pXtra->xExtra ){
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pXtra->xExtra(pQuery, tmFlags, zThisUser, zThisTag);
802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pXtra->xExtra ){
803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pXtra->xExtra(pQuery, tmFlags, pXtra->zThisUser, pXtra->zThisTag);
797 804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- timeline_extra(pQuery, tmFlags, zThisUser, zThisTag);
805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ timeline_extra(pQuery, tmFlags, pXtra->zThisUser, pXtra->zThisTag);
799 806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
800 807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( tmFlags & TIMELINE_COMPACT ){
801 808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </span></span>
802 809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
803 810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </span>
@@ -917,11 +924,11 @@
917 924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
918 925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pendingEndTr ){
919 926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </td></tr>
920 927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
921 928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pGraph ){
922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- graph_finish(pGraph, pLeftBranch, tmFlags);
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ graph_finish(pGraph, pXtra->pLeftBranch, tmFlags);
923 930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( pGraph->nErr ){
924 931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
graph_free(pGraph);
925 932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pGraph = 0;
926 933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
927 934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <tr class="timelineBottom" id="btm-%d(iTableId)">\
@@ -3269,26 +3276,30 @@
3269 3276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %z(chref("button","%s",zNewerButton))%h(zNewerButtonLabel)\
3270 3277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ ↑</a>
3271 3278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3272 3279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_check_for_malice();
3273 3280 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
3274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Matcher *pLeftBranch;
3281 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ TimelineXtra xtra;
3275 3282 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zPattern = P("sl");
3283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ memset(&xtra, 0, sizeof(xtra));
3276 3284 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zPattern!=0 ){
3277 3285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
MatchStyle ms;
3278 3286 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zMatchStyle!=0 ){
3279 3287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ms = matchStyle;
3280 3288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
3281 3289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ms = strpbrk(zPattern,"*[?")!=0 ? MS_GLOB : MS_BRLIST;
3282 3290 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3283 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pLeftBranch = match_create(ms,zPattern);
3291 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.pLeftBranch = match_create(ms,zPattern);
3284 3292 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
3285 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- pLeftBranch = match_create(matchStyle, zBrName?zBrName:zTagName);
3293 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.pLeftBranch = match_create(matchStyle, zBrName?zBrName:zTagName);
3286 3294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3287 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- www_print_timeline(&q, tmFlags, zThisUser, zThisTag, pLeftBranch,
3288 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- selectedRid, secondaryRid, 0);
3289 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- match_free(pLeftBranch);
3295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.zThisUser = zThisUser;
3296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.zThisTag = zThisTag;
3297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.selectedRid = selectedRid;
3298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ xtra.secondRid = secondaryRid;
3299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ www_print_timeline(&q, tmFlags, &xtra);
3300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ match_free(xtra.pLeftBranch);
3290 3301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
3291 3302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
3292 3303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zOlderButton ){
3293 3304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ %z(chref("button","%s",zOlderButton))%h(zOlderButtonLabel)\
3294 3305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ ↓</a>
@@ -4090,11 +4101,11 @@
4090 4101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zId = db_text(0, "SELECT timestamp FROM timeline"
4091 4102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY sortby DESC LIMIT 1");
4092 4103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <h2>%d(iAgo) Year%s(iAgo>1?"s":"") Ago
4093 4104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <small>%z(href("%R/timeline?c=%t",zId))(more context)</a>\
4094 4105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </small></h2>
4095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- www_print_timeline(&q, TIMELINE_GRAPH, 0, 0, 0, 0, 0, 0);
4106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ www_print_timeline(&q, TIMELINE_GRAPH, 0);
4096 4107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
4097 4108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
4098 4109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_finish_page();
4099 4110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
4100 4111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4101 4112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!