Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Minor name changes to new routines. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | copybtn.js-tweaks |
| Files: | files | file ages | folders |
| SHA3-256: |
ef848025da4df60ca930bc235808ba81 |
| User & Date: | drh 2019-06-07 13:10:51.871 |
Context
|
2019-06-07
| ||
| 13:15 | Minor improvements to the copy-button logic. ... (check-in: 759fbda4e8 user: drh tags: trunk) | |
| 13:10 | Minor name changes to new routines. ... (Closed-Leaf check-in: ef848025da user: drh tags: copybtn.js-tweaks) | |
| 12:03 | Minor tweak to the copybtn.js interface to fall back to the default element ID "copy-IDTARGET". ... (check-in: 16fcd48aa4 user: florian tags: copybtn.js-tweaks) | |
Changes
Changes to src/info.c.
| ︙ | ︙ | |||
762 763 764 765 766 767 768 |
" WHERE rid=%d AND tagtype>0 "
" AND tag.tagid=tagxref.tagid "
" AND +tag.tagname GLOB 'sym-*'", rid);
while( db_step(&q2)==SQLITE_ROW ){
const char *zTagName = db_column_text(&q2, 0);
if( fossil_strcmp(zTagName,zBrName)==0 ){
cgi_printf(" | ");
| | | 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 |
" WHERE rid=%d AND tagtype>0 "
" AND tag.tagid=tagxref.tagid "
" AND +tag.tagname GLOB 'sym-*'", rid);
while( db_step(&q2)==SQLITE_ROW ){
const char *zTagName = db_column_text(&q2, 0);
if( fossil_strcmp(zTagName,zBrName)==0 ){
cgi_printf(" | ");
style_copy_button(1, "name-br", 0, 0, "%z%h</a>",
href("%R/timeline?r=%T&unhide",zTagName), zTagName);
cgi_printf("\n");
if( wiki_tagid2("branch",zTagName)!=0 ){
blob_appendf(&wiki_read_links, " | %z%h</a>",
href("%R/wiki?name=branch/%h",zTagName), zTagName);
}else if( g.perm.Write && g.perm.WrWiki ){
blob_appendf(&wiki_add_links, " | %z%h</a>",
|
| ︙ | ︙ | |||
795 796 797 798 799 800 801 |
@ %z(href("%R/tree?ci=%!S",zUuid))files</a>
@ | %z(href("%R/fileage?name=%!S",zUuid))file ages</a>
@ | %z(href("%R/tree?nofiles&type=tree&ci=%!S",zUuid))folders</a>
@ </td>
@ </tr>
@ <tr><th>%s(hname_alg(nUuid)):</th><td>
| | | 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 |
@ %z(href("%R/tree?ci=%!S",zUuid))files</a>
@ | %z(href("%R/fileage?name=%!S",zUuid))file ages</a>
@ | %z(href("%R/tree?nofiles&type=tree&ci=%!S",zUuid))folders</a>
@ </td>
@ </tr>
@ <tr><th>%s(hname_alg(nUuid)):</th><td>
style_copy_button(1, "hash-ci", 0, 2, "%.32s<wbr>%s", zUuid, zUuid+32);
if( g.perm.Setup ){
@ (Record ID: %d(rid))
}
@ </td></tr>
@ <tr><th>User & Date:</th><td>
hyperlink_to_user(zUser,zDate," on ");
hyperlink_to_date(zDate, "</td></tr>");
|
| ︙ | ︙ | |||
1916 1917 1918 1919 1920 1921 1922 |
}else{
style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid);
}
}
style_header("Hex Artifact Content");
zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid);
@ <h2>Artifact
| | | 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 |
}else{
style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid);
}
}
style_header("Hex Artifact Content");
zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid);
@ <h2>Artifact
style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid);
if( g.perm.Setup ){
@ (%d(rid)):</h2>
}else{
@ :</h2>
}
blob_zero(&downloadName);
if( P("verbose")!=0 ) objdescFlags |= OBJDESC_DETAIL;
|
| ︙ | ︙ | |||
2188 2189 2190 2191 2192 2193 2194 |
}
zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid);
if( isFile ){
@ <h2>Latest version of file '%h(zName)':</h2>
style_submenu_element("Artifact", "%R/artifact/%S", zUuid);
}else{
@ <h2>Artifact
| | | 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 |
}
zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid);
if( isFile ){
@ <h2>Latest version of file '%h(zName)':</h2>
style_submenu_element("Artifact", "%R/artifact/%S", zUuid);
}else{
@ <h2>Artifact
style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid);
if( g.perm.Setup ){
@ (%d(rid)):</h2>
}else{
@ :</h2>
}
}
blob_zero(&downloadName);
|
| ︙ | ︙ |
Changes to src/style.c.
| ︙ | ︙ | |||
383 384 385 386 387 388 389 | ** ** <= 0: No limit (default if the argument is omitted). ** >= 3: Truncate TEXT after COPYLENGTH (single-byte) characters. ** 1: Use the "hash-digits" setting as the limit. ** 2: Use the length appropriate for URLs as the limit (defined at ** compile-time by FOSSIL_HASH_DIGITS_URL, defaults to 16). */ | | | 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 |
**
** <= 0: No limit (default if the argument is omitted).
** >= 3: Truncate TEXT after COPYLENGTH (single-byte) characters.
** 1: Use the "hash-digits" setting as the limit.
** 2: Use the length appropriate for URLs as the limit (defined at
** compile-time by FOSSIL_HASH_DIGITS_URL, defaults to 16).
*/
char *style_copy_button(
int bOutputCGI, /* Don't return result, but send to cgi_printf(). */
const char *zTargetId, /* The TARGETID argument. */
int bFlipped, /* The FLIPPED argument. */
int cchLength, /* The COPYLENGTH argument. */
const char *zTextFmt, /* Formatting of the TEXT argument (htmlized). */
... /* Formatting parameters of the TEXT argument. */
){
|
| ︙ | ︙ | |||
445 446 447 448 449 450 451 |
}else{
zResult = mprintf(
zBtnFmt/*works-like:"%h%s%h%h%d"*/,
zTargetId,zText,zTargetId,zTargetId,cchLength);
}
}
free(zText);
| | | 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 |
}else{
zResult = mprintf(
zBtnFmt/*works-like:"%h%s%h%h%d"*/,
zTargetId,zText,zTargetId,zTargetId,cchLength);
}
}
free(zText);
style_copybutton_control();
return zResult;
}
/*
** Return a random nonce that is stored in static space. For a particular
** run, the same nonce is always returned.
*/
|
| ︙ | ︙ | |||
625 626 627 628 629 630 631 |
void style_graph_generator(void){
needGraphJs = 1;
}
/*
** Indicate that the copy button javascript is needed.
*/
| | | 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 |
void style_graph_generator(void){
needGraphJs = 1;
}
/*
** Indicate that the copy button javascript is needed.
*/
void style_copybutton_control(void){
needCopyBtnJs = 1;
}
/*
** Generate code to load a single javascript file
*/
void style_load_one_js_file(const char *zFile){
|
| ︙ | ︙ |
Changes to src/th_main.c.
| ︙ | ︙ | |||
1028 1029 1030 1031 1032 1033 1034 |
int flipped = 0;
int copylength = 0;
char *zResult;
if( Th_ToInt(interp, argv[2], argl[2], &flipped) ) return TH_ERROR;
if( argc==5 ){
if( Th_ToInt(interp, argv[4], argl[4], ©length) ) return TH_ERROR;
}
| | | 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 |
int flipped = 0;
int copylength = 0;
char *zResult;
if( Th_ToInt(interp, argv[2], argl[2], &flipped) ) return TH_ERROR;
if( argc==5 ){
if( Th_ToInt(interp, argv[4], argl[4], ©length) ) return TH_ERROR;
}
zResult = style_copy_button(
/*bOutputCGI==*/0, /*TARGETID==*/(char*)argv[1],
flipped, copylength, "%h", /*TEXT==*/(char*)argv[3]);
sendText(zResult, -1, 0);
free(zResult);
}
return TH_OK;
}
|
| ︙ | ︙ |
Changes to src/timeline.c.
| ︙ | ︙ | |||
986 987 988 989 990 991 992 |
if( k ) cgi_printf("],");
cgi_printf("\"br\":\"%j\",", pRow->zBranch ? pRow->zBranch : "");
cgi_printf("\"h\":\"%!S\"}%s",
pRow->zUuid, pRow->pNext ? ",\n" : "]\n");
}
@ }</script>
style_graph_generator();
| | | 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 |
if( k ) cgi_printf("],");
cgi_printf("\"br\":\"%j\",", pRow->zBranch ? pRow->zBranch : "");
cgi_printf("\"h\":\"%!S\"}%s",
pRow->zUuid, pRow->pNext ? ",\n" : "]\n");
}
@ }</script>
style_graph_generator();
style_copybutton_control(); /* Dependency: graph.js requires copybtn.js. */
graph_free(pGraph);
}
}
/*
** Create a temporary table suitable for storing timeline data.
*/
|
| ︙ | ︙ |