Fossil SCM
The new vfx query parameter on /timeline shows the formatted text of forum messages directly in the timeline.
Commit
c7a536ffa8abc8d17c7081fc9a1e822ecb9a74a99c205f5aef8aa51e88772e20
Parent
b41b39018fa69dc…
1 file changed
+17
-1
+17
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -115,10 +115,11 @@ | ||
| 115 | 115 | #define TIMELINE_FILEDIFF 0x0200000 /* Show File differences, not ckin diffs */ |
| 116 | 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | +#define TIMELINE_FORUMTXT 0x4000000 /* Render all forum messages */ | |
| 120 | 121 | #endif |
| 121 | 122 | |
| 122 | 123 | /* |
| 123 | 124 | ** Hash a string and use the hash to determine a background color. |
| 124 | 125 | */ |
| @@ -233,11 +234,11 @@ | ||
| 233 | 234 | ** 2. Date/Time |
| 234 | 235 | ** 3. Comment string |
| 235 | 236 | ** 4. User |
| 236 | 237 | ** 5. True if is a leaf |
| 237 | 238 | ** 6. background color |
| 238 | -** 7. type ("ci", "w", "t", "e", "g", "div") | |
| 239 | +** 7. type ("ci", "w", "t", "e", "g", "f", "div") | |
| 239 | 240 | ** 8. list of symbolic tags. |
| 240 | 241 | ** 9. tagid for ticket or wiki or event |
| 241 | 242 | ** 10. Short comment to user for repeated tickets and wiki |
| 242 | 243 | */ |
| 243 | 244 | void www_print_timeline( |
| @@ -785,10 +786,21 @@ | ||
| 785 | 786 | db_reset(&fchngQuery); |
| 786 | 787 | if( inUl ){ |
| 787 | 788 | @ </ul> |
| 788 | 789 | } |
| 789 | 790 | } |
| 791 | + | |
| 792 | + /* Show the complete text of forum messages */ | |
| 793 | + if( (tmFlags & (TIMELINE_FORUMTXT))!=0 | |
| 794 | + && zType[0]=='f' && g.perm.Hyperlink | |
| 795 | + ){ | |
| 796 | + Manifest *pPost = manifest_get(rid, CFTYPE_FORUM, 0); | |
| 797 | + if( pPost ){ | |
| 798 | + forum_render(0, pPost->zMimetype, pPost->zWiki, "forumEdit"); | |
| 799 | + manifest_destroy(pPost); | |
| 800 | + } | |
| 801 | + } | |
| 790 | 802 | } |
| 791 | 803 | if( suppressCnt ){ |
| 792 | 804 | @ <span class="timelineDisabled">... %d(suppressCnt) similar |
| 793 | 805 | @ event%s(suppressCnt>1?"s":"") omitted.</span> |
| 794 | 806 | suppressCnt = 0; |
| @@ -1566,10 +1578,11 @@ | ||
| 1566 | 1578 | ** advm Use the "Advanced" or "Busy" menu design. |
| 1567 | 1579 | ** ng No Graph. |
| 1568 | 1580 | ** ncp Omit cherrypick merges |
| 1569 | 1581 | ** nd Do not highlight the focus check-in |
| 1570 | 1582 | ** v Show details of files changed |
| 1583 | +** vfx Show complete text of forum messages | |
| 1571 | 1584 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1572 | 1585 | ** from=CHECKIN Path from... |
| 1573 | 1586 | ** to=CHECKIN ... to this |
| 1574 | 1587 | ** shortest ... show only the shortest path |
| 1575 | 1588 | ** rel ... also show related checkins |
| @@ -1874,10 +1887,13 @@ | ||
| 1874 | 1887 | blob_append(&sql, "INSERT OR IGNORE INTO timeline ", -1); |
| 1875 | 1888 | blob_append(&sql, timeline_query_for_www(), -1); |
| 1876 | 1889 | if( PB("fc") || PB("v") || PB("detail") ){ |
| 1877 | 1890 | tmFlags |= TIMELINE_FCHANGES; |
| 1878 | 1891 | } |
| 1892 | + if( PB("vfx") ){ | |
| 1893 | + tmFlags |= TIMELINE_FORUMTXT; | |
| 1894 | + } | |
| 1879 | 1895 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1880 | 1896 | blob_append_sql(&sql, |
| 1881 | 1897 | " AND NOT EXISTS(SELECT 1 FROM tagxref" |
| 1882 | 1898 | " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n", |
| 1883 | 1899 | TAG_HIDDEN |
| 1884 | 1900 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -115,10 +115,11 @@ | |
| 115 | #define TIMELINE_FILEDIFF 0x0200000 /* Show File differences, not ckin diffs */ |
| 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | #endif |
| 121 | |
| 122 | /* |
| 123 | ** Hash a string and use the hash to determine a background color. |
| 124 | */ |
| @@ -233,11 +234,11 @@ | |
| 233 | ** 2. Date/Time |
| 234 | ** 3. Comment string |
| 235 | ** 4. User |
| 236 | ** 5. True if is a leaf |
| 237 | ** 6. background color |
| 238 | ** 7. type ("ci", "w", "t", "e", "g", "div") |
| 239 | ** 8. list of symbolic tags. |
| 240 | ** 9. tagid for ticket or wiki or event |
| 241 | ** 10. Short comment to user for repeated tickets and wiki |
| 242 | */ |
| 243 | void www_print_timeline( |
| @@ -785,10 +786,21 @@ | |
| 785 | db_reset(&fchngQuery); |
| 786 | if( inUl ){ |
| 787 | @ </ul> |
| 788 | } |
| 789 | } |
| 790 | } |
| 791 | if( suppressCnt ){ |
| 792 | @ <span class="timelineDisabled">... %d(suppressCnt) similar |
| 793 | @ event%s(suppressCnt>1?"s":"") omitted.</span> |
| 794 | suppressCnt = 0; |
| @@ -1566,10 +1578,11 @@ | |
| 1566 | ** advm Use the "Advanced" or "Busy" menu design. |
| 1567 | ** ng No Graph. |
| 1568 | ** ncp Omit cherrypick merges |
| 1569 | ** nd Do not highlight the focus check-in |
| 1570 | ** v Show details of files changed |
| 1571 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1572 | ** from=CHECKIN Path from... |
| 1573 | ** to=CHECKIN ... to this |
| 1574 | ** shortest ... show only the shortest path |
| 1575 | ** rel ... also show related checkins |
| @@ -1874,10 +1887,13 @@ | |
| 1874 | blob_append(&sql, "INSERT OR IGNORE INTO timeline ", -1); |
| 1875 | blob_append(&sql, timeline_query_for_www(), -1); |
| 1876 | if( PB("fc") || PB("v") || PB("detail") ){ |
| 1877 | tmFlags |= TIMELINE_FCHANGES; |
| 1878 | } |
| 1879 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1880 | blob_append_sql(&sql, |
| 1881 | " AND NOT EXISTS(SELECT 1 FROM tagxref" |
| 1882 | " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n", |
| 1883 | TAG_HIDDEN |
| 1884 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -115,10 +115,11 @@ | |
| 115 | #define TIMELINE_FILEDIFF 0x0200000 /* Show File differences, not ckin diffs */ |
| 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | #define TIMELINE_FORUMTXT 0x4000000 /* Render all forum messages */ |
| 121 | #endif |
| 122 | |
| 123 | /* |
| 124 | ** Hash a string and use the hash to determine a background color. |
| 125 | */ |
| @@ -233,11 +234,11 @@ | |
| 234 | ** 2. Date/Time |
| 235 | ** 3. Comment string |
| 236 | ** 4. User |
| 237 | ** 5. True if is a leaf |
| 238 | ** 6. background color |
| 239 | ** 7. type ("ci", "w", "t", "e", "g", "f", "div") |
| 240 | ** 8. list of symbolic tags. |
| 241 | ** 9. tagid for ticket or wiki or event |
| 242 | ** 10. Short comment to user for repeated tickets and wiki |
| 243 | */ |
| 244 | void www_print_timeline( |
| @@ -785,10 +786,21 @@ | |
| 786 | db_reset(&fchngQuery); |
| 787 | if( inUl ){ |
| 788 | @ </ul> |
| 789 | } |
| 790 | } |
| 791 | |
| 792 | /* Show the complete text of forum messages */ |
| 793 | if( (tmFlags & (TIMELINE_FORUMTXT))!=0 |
| 794 | && zType[0]=='f' && g.perm.Hyperlink |
| 795 | ){ |
| 796 | Manifest *pPost = manifest_get(rid, CFTYPE_FORUM, 0); |
| 797 | if( pPost ){ |
| 798 | forum_render(0, pPost->zMimetype, pPost->zWiki, "forumEdit"); |
| 799 | manifest_destroy(pPost); |
| 800 | } |
| 801 | } |
| 802 | } |
| 803 | if( suppressCnt ){ |
| 804 | @ <span class="timelineDisabled">... %d(suppressCnt) similar |
| 805 | @ event%s(suppressCnt>1?"s":"") omitted.</span> |
| 806 | suppressCnt = 0; |
| @@ -1566,10 +1578,11 @@ | |
| 1578 | ** advm Use the "Advanced" or "Busy" menu design. |
| 1579 | ** ng No Graph. |
| 1580 | ** ncp Omit cherrypick merges |
| 1581 | ** nd Do not highlight the focus check-in |
| 1582 | ** v Show details of files changed |
| 1583 | ** vfx Show complete text of forum messages |
| 1584 | ** f=CHECKIN Show family (immediate parents and children) of CHECKIN |
| 1585 | ** from=CHECKIN Path from... |
| 1586 | ** to=CHECKIN ... to this |
| 1587 | ** shortest ... show only the shortest path |
| 1588 | ** rel ... also show related checkins |
| @@ -1874,10 +1887,13 @@ | |
| 1887 | blob_append(&sql, "INSERT OR IGNORE INTO timeline ", -1); |
| 1888 | blob_append(&sql, timeline_query_for_www(), -1); |
| 1889 | if( PB("fc") || PB("v") || PB("detail") ){ |
| 1890 | tmFlags |= TIMELINE_FCHANGES; |
| 1891 | } |
| 1892 | if( PB("vfx") ){ |
| 1893 | tmFlags |= TIMELINE_FORUMTXT; |
| 1894 | } |
| 1895 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1896 | blob_append_sql(&sql, |
| 1897 | " AND NOT EXISTS(SELECT 1 FROM tagxref" |
| 1898 | " WHERE tagid=%d AND tagtype>0 AND rid=blob.rid)\n", |
| 1899 | TAG_HIDDEN |
| 1900 |