@@ -248,10 +248,15 @@
248 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Stmt qbranch;
249 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int pendingEndTr = 0; /* True if a </td></tr> is needed */
250 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int vid = 0; /* Current checkout version */
251 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int dateFormat = 0; /* 0: HH:MM (default) */
252 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bCommentGitStyle = 0; /* Only show comments through first blank line */
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bHashBeforeComment = 0; /* Show hash before the comment */
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bHashAfterComment = 0; /* Show hash after the comment */
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bHashInDetail = 0; /* Show the hash inside the detail section */
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bShowDetail; /* Show the detail section */
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int eCommentFormat; /* value for timeline-comment-format */
253 258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDateFmt;
254 259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTableId = timeline_tableid();
255 260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
256 261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fossil_strcmp(g.zIpAddr, "127.0.0.1")==0 && db_open_local(0) ){
257 262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
vid = db_lget_int("checkout", 0);
@@ -258,10 +263,17 @@
258 263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
259 264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPrevDate[0] = 0;
260 265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mxWikiLen = db_get_int("timeline-max-comment", 0);
261 266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dateFormat = db_get_int("timeline-date-format", 0);
262 267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
bCommentGitStyle = db_get_int("timeline-truncate-at-blank", 0);
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eCommentFormat = db_get_int("timeline-comment-format", 0);
269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bShowDetail = (eCommentFormat & 1)==0; /* Bit 0 suppresses the comment */
270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( (eCommentFormat>>1)&3 ){
271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 1: bHashAfterComment = 1; break;
272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 2: bHashInDetail = 1; break;
273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ default: bHashBeforeComment = 1; break;
274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
263 275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDateFmt = P("datefmt");
264 276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zDateFmt ) dateFormat = atoi(zDateFmt);
265 277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( tmFlags & TIMELINE_GRAPH ){
266 278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pGraph = graph_init();
267 279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -420,118 +432,190 @@
420 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ •
421 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
422 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( modPending ){
423 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <span class="modpending">(Awaiting Moderator Approval)</span>
424 436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zType[0]=='c' ){
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( tmFlags & TIMELINE_BISECT ){
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static Stmt bisectQuery;
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_prepare(&bisectQuery, "SELECT seq, stat FROM bilog WHERE rid=:rid");
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_bind_int(&bisectQuery, ":rid", rid);
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db_step(&bisectQuery)==SQLITE_ROW ){
431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <b>%s(db_column_text(&bisectQuery,1))</b>
432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ (%d(db_column_int(&bisectQuery,0)))
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_reset(&bisectQuery);
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- hyperlink_to_uuid(zUuid);
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( isLeaf ){
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( db_exists("SELECT 1 FROM tagxref"
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " WHERE rid=%d AND tagid=%d AND tagtype>0",
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rid, TAG_CLOSED) ){
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <span class="timelineLeaf">Closed-Leaf:</span>
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <span class="timelineLeaf">Leaf:</span>
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( zType[0]=='e' && tagid ){
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- hyperlink_to_event_tagid(tagid<0?-tagid:tagid);
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( (tmFlags & TIMELINE_ARTID)!=0 ){
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- hyperlink_to_uuid(zUuid);
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( tmFlags & TIMELINE_SHOWRID ){
452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int srcId = delta_source_rid(rid);
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( srcId ){
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ (%d(rid)←%d(srcId))
455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ (%d(rid))
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (tmFlags & TIMELINE_BISECT)!=0 && zType[0]=='c' ){
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static Stmt bisectQuery;
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_prepare(&bisectQuery, "SELECT seq, stat FROM bilog WHERE rid=:rid");
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_bind_int(&bisectQuery, ":rid", rid);
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db_step(&bisectQuery)==SQLITE_ROW ){
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <b>%s(db_column_text(&bisectQuery,1))</b>
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ (%d(db_column_int(&bisectQuery,0)))
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_reset(&bisectQuery);
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bHashBeforeComment ){
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]=='c' ){
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isLeaf ){
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db_exists("SELECT 1 FROM tagxref"
452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE rid=%d AND tagid=%d AND tagtype>0",
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid, TAG_CLOSED) ){
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class="timelineLeaf">Closed-Leaf:</span>
455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class="timelineLeaf">Leaf:</span>
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zType[0]=='e' && tagid ){
460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_event_tagid(tagid<0?-tagid:tagid);
461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (tmFlags & TIMELINE_ARTID)!=0 ){
462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tmFlags & TIMELINE_SHOWRID ){
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int srcId = delta_source_rid(rid);
466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srcId ){
467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ (%d(rid)←%d(srcId))
468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ (%d(rid))
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
457 471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
458 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
459 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_column_blob(pQuery, commentColumn, &comment);
460 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]!='c' ){
461 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Comments for anything other than a check-in are generated by
462 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "fossil rebuild" and expect to be rendered as text/x-fossil-wiki */
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class='timelineComment'>
463 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wiki_convert(&comment, 0, WIKI_INLINE);
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( bCommentGitStyle ){
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Truncate comment at first blank line */
466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int ii, jj;
467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int n = blob_size(&comment);
468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *z = blob_str(&comment);
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(ii=0; ii<n; ii++){
470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( z[ii]=='\n' ){
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(jj=ii+1; jj<n && z[jj]!='\n' && fossil_isspace(z[jj]); jj++){}
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( z[jj]=='\n' ) break;
473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- z[ii] = 0;
476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <span class="timelineComment">%W(z)</span>
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( mxWikiLen>0 && blob_size(&comment)>mxWikiLen ){
478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob truncated;
479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_zero(&truncated);
480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&truncated, blob_buffer(&comment), mxWikiLen);
481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(&truncated, "...", 3);
482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <span class="timelineComment">%W(blob_str(&truncated))</span>
483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&truncated);
479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </span>
484 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <span class="timelineComment">%W(blob_str(&comment))</span>
481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class='timelineComment timelineCheckinComment'>
482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bCommentGitStyle ){
483 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Truncate comment at first blank line */
484 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ii, jj;
485 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = blob_size(&comment);
486 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *z = blob_str(&comment);
487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(ii=0; ii<n; ii++){
488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( z[ii]=='\n' ){
489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(jj=ii+1; jj<n && z[jj]!='\n' && fossil_isspace(z[jj]); jj++){}
490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( z[jj]=='\n' ) break;
491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z[ii] = 0;
494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ %W(z)
495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( mxWikiLen>0 && blob_size(&comment)>mxWikiLen ){
496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob truncated;
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&truncated);
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&truncated, blob_buffer(&comment), mxWikiLen);
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&truncated, "...", 3);
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ %W(blob_str(&truncated))
501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&truncated);
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ %W(blob_str(&comment))
504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </span>
486 506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
487 507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&comment);
488 508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Generate the "user: USERNAME" at the end of the comment, together
490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** with a hyperlink to another timeline for that user.
491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zTagList && zTagList[0]==0 ) zTagList = 0;
493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.perm.Hyperlink && fossil_strcmp(zDispUser, zThisUser)!=0 ){
494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd&n=200", zDispUser, zDate);
495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ (user: %z(href("%z",zLink))%h(zDispUser)</a>%s(zTagList?",":"\051")
496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ (user: %h(zDispUser)%s(zTagList?",":"\051")
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Generate a "detail" link for tags. */
501 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (zType[0]=='g' || zType[0]=='w' || zType[0]=='t') && g.perm.Hyperlink ){
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ [%z(href("%R/info/%!S",zUuid))details</a>]
503 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
504 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
505 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* Generate the "tags: TAGLIST" at the end of the comment, together
506 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** with hyperlinks to the tag list.
507 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
508 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zTagList ){
509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.perm.Hyperlink ){
510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int i;
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *z = zTagList;
512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob links;
513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_zero(&links);
514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( z && z[0] ){
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&links,
518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "%z%#h</a>%.2s",
519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- href("%R/timeline?r=%#t&nd&c=%t&n=200",i,z,zDate), i,z, &z[i]
520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&links, "%#h", i+2, z);
523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( z[i]==0 ) break;
525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- z += i+2;
526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ tags: %s(blob_str(&links)))
528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&links);
529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ tags: %h(zTagList))
531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bHashAfterComment ){
510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]=='c' ){
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isLeaf ){
513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db_exists("SELECT 1 FROM tagxref"
514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE rid=%d AND tagid=%d AND tagtype>0",
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid, TAG_CLOSED) ){
516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class="timelineLeaf">Closed-Leaf</span>
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class="timelineLeaf">Leaf</span>
519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zType[0]=='e' && tagid ){
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_event_tagid(tagid<0?-tagid:tagid);
523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (tmFlags & TIMELINE_ARTID)!=0 ){
524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tmFlags & TIMELINE_SHOWRID ){
527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int srcId = delta_source_rid(rid);
528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srcId ){
529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ (%d(rid)←%d(srcId))
530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ (%d(rid))
532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Generate extra information and hyperlinks to follow the comment.
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Example: "(check-in: [abcdefg], user: drh, tags: trunk)"
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bShowDetail ){
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]=='c' ){
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("<span class='timelineDetail timelineCheckinDetail'>(");
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("<span class='timelineDetail'>(");
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bHashInDetail ){
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]=='c' ){
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( isLeaf ){
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( db_exists("SELECT 1 FROM tagxref"
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE rid=%d AND tagid=%d AND tagtype>0",
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid, TAG_CLOSED) ){
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class='timelineLeaf'>Closed-Leaf</span>
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <span class='timelineLeaf'>Leaf</span>
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("check-in: ");
559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zType[0]=='e' && tagid ){
561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("technote: ");
562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_event_tagid(tagid<0?-tagid:tagid);
563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("artifact: ");
565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ hyperlink_to_uuid(zUuid);
566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.perm.Hyperlink && fossil_strcmp(zDispUser, zThisUser)!=0 ){
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd&n=200", zDispUser, zDate);
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("user: %z%h</a>", href("%z",zLink), zDispUser);
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf("user: %h", zDispUser);
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Generate the "tags: TAGLIST" at the end of the comment, together
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with hyperlinks to the tag list.
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTagList && zTagList[0]==0 ) zTagList = 0;
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTagList ){
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.perm.Hyperlink ){
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *z = zTagList;
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob links;
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&links);
586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( z && z[0] ){
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){}
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&links,
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "%z%#h</a>%.2s",
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ href("%R/timeline?r=%#t&nd&c=%t&n=200",i,z,zDate), i,z, &z[i]
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&links, "%#h", i+2, z);
595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( z[i]==0 ) break;
597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z += i+2;
598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf(" tags: %s", blob_str(&links));
600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&links);
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf(" tags: %h", zTagList);
603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( tmFlags & TIMELINE_SHOWRID ){
607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int srcId = delta_source_rid(rid);
608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srcId ){
609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf(" id: %d←%d", rid, srcId);
610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf(" id: %d", rid);
612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cgi_printf(")</span>\n"); /* End of the details section */
615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
533 617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tag_private_status(rid);
534 618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
535 619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Generate extra hyperlinks at the end of the comment */
536 620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( xExtra ){
537 621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
xExtra(rid);
538 622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!