@@ -440,20 +440,20 @@
440 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zType = PD("y","all"); /* Type of events. All if NULL */
441 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zAfter = P("a"); /* Events after this time */
442 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zBefore = P("b"); /* Events before this time */
443 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCirca = P("c"); /* Events near this time */
444 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zTagName = P("t"); /* Show events with this tag */
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zString = P("s"); /* String text search of comment and brief */
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zSearch = P("s"); /* Search string */
446 446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
HQuery url; /* URL for various branch links */
447 447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tagid; /* Tag ID */
448 448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int tmFlags; /* Timeline flags */
449 449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
450 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* To view the timeline, must have permission to read project data.
451 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
452 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !g.okRead ){ login_needed(); return; }
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zTagName ){
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !g.okRead && !g.okRdTkt && !g.okRdWiki ){ login_needed(); return; }
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zTagName && g.okRead ){
455 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", zTagName);
456 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
457 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid = 0;
458 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
459 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]=='a' ){
@@ -467,11 +467,11 @@
467 467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_temp_table();
468 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&sql);
469 469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&desc);
470 470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(&sql, "INSERT OR IGNORE INTO timeline ", -1);
471 471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append(&sql, timeline_query_for_www(), -1);
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( p_rid || d_rid ){
472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p_rid || d_rid) && g.okRead ){
473 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If p= or d= is present, ignore all other parameters other than n= */
474 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zUuid;
475 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int np, nd;
476 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
477 477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( p_rid && d_rid ){
@@ -530,12 +530,36 @@
530 530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zType = "ci";
531 531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_add_parameter(&url, "t", zTagName);
532 532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, " AND EXISTS (SELECT 1 FROM tagxref WHERE tagid=%d"
533 533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" AND tagtype>0 AND rid=blob.rid)",
534 534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tagid);
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zType[0]!='a' ){
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (zType[0]=='w' && !g.okRdWiki)
537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (zType[0]=='t' && !g.okRdTkt)
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ || (zType[0]=='c' && !g.okRead)
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zType = "all";
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]=='a' ){
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !g.okRead || !g.okRdWiki || !g.okRdTkt ){
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char cSep = '(';
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, " AND event.type IN ");
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okRead ){
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, "%c'ci'", cSep);
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cSep = ',';
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okRdWiki ){
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, "%c'w'", cSep);
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cSep = ',';
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.okRdTkt ){
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, "%c't'", cSep);
556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cSep = ',';
557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql, ")");
559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{ /* zType!="all" */
537 561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, " AND event.type=%Q", zType);
538 562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_add_parameter(&url, "y", zType);
539 563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]=='c' ){
540 564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zEType = "checkin";
541 565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( zType[0]=='w' ){
@@ -546,14 +570,15 @@
546 570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
547 571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zUser ){
548 572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, " AND event.user=%Q", zUser);
549 573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_add_parameter(&url, "u", zUser);
550 574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if ( zString ){
552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_appendf(&sql, " AND (event.comment LIKE '%%%q%%' OR event.brief LIKE '%%%q%%')",
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zString, zString);
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- url_add_parameter(&url, "s", zString);
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if ( zSearch ){
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&sql,
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " AND (event.comment LIKE '%%%q%%' OR event.brief LIKE '%%%q%%')",
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSearch, zSearch);
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ url_add_parameter(&url, "s", zSearch);
555 580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
556 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zAfter ){
557 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( isspace(zAfter[0]) ){ zAfter++; }
558 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zAfter[0] ){
559 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql,
@@ -636,17 +661,17 @@
636 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(zDate);
637 662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( tagid==0 ){
638 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zType[0]!='a' ){
639 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_submenu(&url, "All Types", "y", "all", 0);
640 665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zType[0]!='w' ){
666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]!='w' && g.okRdWiki ){
642 667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_submenu(&url, "Wiki Only", "y", "w", 0);
643 668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zType[0]!='c' ){
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]!='c' && g.okRead ){
645 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_submenu(&url, "Checkins Only", "y", "ci", 0);
646 671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zType[0]!='t' ){
672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zType[0]!='t' && g.okRdTkt ){
648 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_submenu(&url, "Tickets Only", "y", "t", 0);
649 674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
650 675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
651 676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( nEntry>20 ){
652 677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
timeline_submenu(&url, "20 Events", "n", "20", 0);
653 678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!