Fossil SCM
New "Forum Threads" category under the /reports webpage.
Commit
59985724d71229bf7c1744996de9f59bbb087a8e2c1842b1d1cfa95ea03dd73b
Parent
a570ebc60843701…
1 file changed
+17
-2
+17
-2
| --- src/statrep.c | ||
| +++ src/statrep.c | ||
| @@ -76,10 +76,15 @@ | ||
| 76 | 76 | case 'f': |
| 77 | 77 | case 'F': |
| 78 | 78 | zRealType = "f"; |
| 79 | 79 | rc = *zRealType; |
| 80 | 80 | break; |
| 81 | + case 'h': | |
| 82 | + case 'H': | |
| 83 | + zRealType = "h"; | |
| 84 | + rc = *zRealType; | |
| 85 | + break; | |
| 81 | 86 | case 'g': |
| 82 | 87 | case 'G': |
| 83 | 88 | zRealType = "g"; |
| 84 | 89 | rc = *zRealType; |
| 85 | 90 | break; |
| @@ -117,10 +122,16 @@ | ||
| 117 | 122 | } |
| 118 | 123 | if( zRealType==0 ){ |
| 119 | 124 | statsReportTimelineYFlag = "a"; |
| 120 | 125 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 121 | 126 | "SELECT * FROM event WHERE %s", zTimeSpan/*safe-for-%s*/); |
| 127 | + }else if( rc=='h' ){ | |
| 128 | + statsReportTimelineYFlag = zRealType; | |
| 129 | + db_multi_exec("CREATE TEMP VIEW v_reports AS " | |
| 130 | + "SELECT * FROM event WHERE (type='f') " | |
| 131 | + " AND (comment GLOB 'Post:*') AND %s", | |
| 132 | + zTimeSpan/*safe-for-%s*/); | |
| 122 | 133 | }else if( rc!='n' && rc!='m' ){ |
| 123 | 134 | statsReportTimelineYFlag = zRealType; |
| 124 | 135 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 125 | 136 | "SELECT * FROM event WHERE (type GLOB %Q) AND %s", |
| 126 | 137 | zRealType, zTimeSpan/*safe-for-%s*/); |
| @@ -154,10 +165,12 @@ | ||
| 154 | 165 | return "non-merge check-ins"; |
| 155 | 166 | case 'e': |
| 156 | 167 | return "technotes"; |
| 157 | 168 | case 'f': |
| 158 | 169 | return "forum posts"; |
| 170 | + case 'h': | |
| 171 | + return "forum threads"; | |
| 159 | 172 | case 'w': |
| 160 | 173 | return "wiki changes"; |
| 161 | 174 | case 't': |
| 162 | 175 | return "ticket changes"; |
| 163 | 176 | case 'g': |
| @@ -855,16 +868,17 @@ | ||
| 855 | 868 | ** * all (everything), |
| 856 | 869 | ** * ci (check-in) |
| 857 | 870 | ** * m (merge check-in), |
| 858 | 871 | ** * n (non-merge check-in) |
| 859 | 872 | ** * f (forum post) |
| 873 | +** * h (forum thread) | |
| 860 | 874 | ** * w (wiki page change) |
| 861 | 875 | ** * t (ticket change) |
| 862 | 876 | ** * g (tag added or removed) |
| 863 | 877 | ** Defaulting to all event types. |
| 864 | -** from=DATETIME Consider only events after this timestamp (requires to) | |
| 865 | -** to=DATETIME Consider only events before this timestamp (requires from) | |
| 878 | +** from=DATETIME Consider only events after this time (requires to) | |
| 879 | +** to=DATETIME Consider only events before this time (requires from) | |
| 866 | 880 | ** |
| 867 | 881 | ** |
| 868 | 882 | ** The view-specific query parameters include: |
| 869 | 883 | ** |
| 870 | 884 | ** view=byweek: |
| @@ -894,10 +908,11 @@ | ||
| 894 | 908 | }; |
| 895 | 909 | static const char *const azType[] = { |
| 896 | 910 | "a", "All Changes", |
| 897 | 911 | "ci", "Check-ins", |
| 898 | 912 | "f", "Forum Posts", |
| 913 | + "h", "Forum Threads", | |
| 899 | 914 | "m", "Merge check-ins", |
| 900 | 915 | "n", "Non-merge check-ins", |
| 901 | 916 | "g", "Tags", |
| 902 | 917 | "e", "Tech Notes", |
| 903 | 918 | "t", "Tickets", |
| 904 | 919 |
| --- src/statrep.c | |
| +++ src/statrep.c | |
| @@ -76,10 +76,15 @@ | |
| 76 | case 'f': |
| 77 | case 'F': |
| 78 | zRealType = "f"; |
| 79 | rc = *zRealType; |
| 80 | break; |
| 81 | case 'g': |
| 82 | case 'G': |
| 83 | zRealType = "g"; |
| 84 | rc = *zRealType; |
| 85 | break; |
| @@ -117,10 +122,16 @@ | |
| 117 | } |
| 118 | if( zRealType==0 ){ |
| 119 | statsReportTimelineYFlag = "a"; |
| 120 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 121 | "SELECT * FROM event WHERE %s", zTimeSpan/*safe-for-%s*/); |
| 122 | }else if( rc!='n' && rc!='m' ){ |
| 123 | statsReportTimelineYFlag = zRealType; |
| 124 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 125 | "SELECT * FROM event WHERE (type GLOB %Q) AND %s", |
| 126 | zRealType, zTimeSpan/*safe-for-%s*/); |
| @@ -154,10 +165,12 @@ | |
| 154 | return "non-merge check-ins"; |
| 155 | case 'e': |
| 156 | return "technotes"; |
| 157 | case 'f': |
| 158 | return "forum posts"; |
| 159 | case 'w': |
| 160 | return "wiki changes"; |
| 161 | case 't': |
| 162 | return "ticket changes"; |
| 163 | case 'g': |
| @@ -855,16 +868,17 @@ | |
| 855 | ** * all (everything), |
| 856 | ** * ci (check-in) |
| 857 | ** * m (merge check-in), |
| 858 | ** * n (non-merge check-in) |
| 859 | ** * f (forum post) |
| 860 | ** * w (wiki page change) |
| 861 | ** * t (ticket change) |
| 862 | ** * g (tag added or removed) |
| 863 | ** Defaulting to all event types. |
| 864 | ** from=DATETIME Consider only events after this timestamp (requires to) |
| 865 | ** to=DATETIME Consider only events before this timestamp (requires from) |
| 866 | ** |
| 867 | ** |
| 868 | ** The view-specific query parameters include: |
| 869 | ** |
| 870 | ** view=byweek: |
| @@ -894,10 +908,11 @@ | |
| 894 | }; |
| 895 | static const char *const azType[] = { |
| 896 | "a", "All Changes", |
| 897 | "ci", "Check-ins", |
| 898 | "f", "Forum Posts", |
| 899 | "m", "Merge check-ins", |
| 900 | "n", "Non-merge check-ins", |
| 901 | "g", "Tags", |
| 902 | "e", "Tech Notes", |
| 903 | "t", "Tickets", |
| 904 |
| --- src/statrep.c | |
| +++ src/statrep.c | |
| @@ -76,10 +76,15 @@ | |
| 76 | case 'f': |
| 77 | case 'F': |
| 78 | zRealType = "f"; |
| 79 | rc = *zRealType; |
| 80 | break; |
| 81 | case 'h': |
| 82 | case 'H': |
| 83 | zRealType = "h"; |
| 84 | rc = *zRealType; |
| 85 | break; |
| 86 | case 'g': |
| 87 | case 'G': |
| 88 | zRealType = "g"; |
| 89 | rc = *zRealType; |
| 90 | break; |
| @@ -117,10 +122,16 @@ | |
| 122 | } |
| 123 | if( zRealType==0 ){ |
| 124 | statsReportTimelineYFlag = "a"; |
| 125 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 126 | "SELECT * FROM event WHERE %s", zTimeSpan/*safe-for-%s*/); |
| 127 | }else if( rc=='h' ){ |
| 128 | statsReportTimelineYFlag = zRealType; |
| 129 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 130 | "SELECT * FROM event WHERE (type='f') " |
| 131 | " AND (comment GLOB 'Post:*') AND %s", |
| 132 | zTimeSpan/*safe-for-%s*/); |
| 133 | }else if( rc!='n' && rc!='m' ){ |
| 134 | statsReportTimelineYFlag = zRealType; |
| 135 | db_multi_exec("CREATE TEMP VIEW v_reports AS " |
| 136 | "SELECT * FROM event WHERE (type GLOB %Q) AND %s", |
| 137 | zRealType, zTimeSpan/*safe-for-%s*/); |
| @@ -154,10 +165,12 @@ | |
| 165 | return "non-merge check-ins"; |
| 166 | case 'e': |
| 167 | return "technotes"; |
| 168 | case 'f': |
| 169 | return "forum posts"; |
| 170 | case 'h': |
| 171 | return "forum threads"; |
| 172 | case 'w': |
| 173 | return "wiki changes"; |
| 174 | case 't': |
| 175 | return "ticket changes"; |
| 176 | case 'g': |
| @@ -855,16 +868,17 @@ | |
| 868 | ** * all (everything), |
| 869 | ** * ci (check-in) |
| 870 | ** * m (merge check-in), |
| 871 | ** * n (non-merge check-in) |
| 872 | ** * f (forum post) |
| 873 | ** * h (forum thread) |
| 874 | ** * w (wiki page change) |
| 875 | ** * t (ticket change) |
| 876 | ** * g (tag added or removed) |
| 877 | ** Defaulting to all event types. |
| 878 | ** from=DATETIME Consider only events after this time (requires to) |
| 879 | ** to=DATETIME Consider only events before this time (requires from) |
| 880 | ** |
| 881 | ** |
| 882 | ** The view-specific query parameters include: |
| 883 | ** |
| 884 | ** view=byweek: |
| @@ -894,10 +908,11 @@ | |
| 908 | }; |
| 909 | static const char *const azType[] = { |
| 910 | "a", "All Changes", |
| 911 | "ci", "Check-ins", |
| 912 | "f", "Forum Posts", |
| 913 | "h", "Forum Threads", |
| 914 | "m", "Merge check-ins", |
| 915 | "n", "Non-merge check-ins", |
| 916 | "g", "Tags", |
| 917 | "e", "Tech Notes", |
| 918 | "t", "Tickets", |
| 919 |