583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
|
if( g.perm.Hyperlink ){
const char *zPJ = db_get("short-project-name", 0);
char *zProjName;
int jj;
if( zPJ==0 ) zPJ = db_get("project-name", "unnamed");
zProjName = mprintf("%s", zPJ);
for(jj=0; zProjName[jj]; jj++){
if( strchr("\\/:*?[]", zProjName[jj]) ) zProjName[jj] = '_';
}
@ <tr><th>Timelines:</th><td>
@ %z(href("%R/timeline?f=%S",zUuid))family</a>
if( zParent ){
@ | %z(href("%R/timeline?p=%S",zUuid))ancestors</a>
}
if( !isLeaf ){
|
|
|
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
|
if( g.perm.Hyperlink ){
const char *zPJ = db_get("short-project-name", 0);
char *zProjName;
int jj;
if( zPJ==0 ) zPJ = db_get("project-name", "unnamed");
zProjName = mprintf("%s", zPJ);
for(jj=0; zProjName[jj]; jj++){
if( strchr("\\/:*<>|", zProjName[jj]) ) zProjName[jj] = '_';
}
@ <tr><th>Timelines:</th><td>
@ %z(href("%R/timeline?f=%S",zUuid))family</a>
if( zParent ){
@ | %z(href("%R/timeline?p=%S",zUuid))ancestors</a>
}
if( !isLeaf ){
|