Fossil SCM
implement undocumented "mionly" option in JSON timeline, just as in the normal timeline page.
Commit
0bcb7707cee102ffeae56e53a263cffa32708b5f
Parent
f469c27d26d2937…
1 file changed
+6
-4
+6
-4
| --- src/json_timeline.c | ||
| +++ src/json_timeline.c | ||
| @@ -124,11 +124,11 @@ | ||
| 124 | 124 | ** |
| 125 | 125 | ** tag works like HTML mode's "t" option and branch works like HTML |
| 126 | 126 | ** mode's "r" option. They are very similar, but subtly different - |
| 127 | 127 | ** tag mode shows only entries with a given tag but branch mode can |
| 128 | 128 | ** also reveal some with "related" tags (meaning they were merged into |
| 129 | -** the requested branch). | |
| 129 | +** the requested branch, or back). | |
| 130 | 130 | ** |
| 131 | 131 | ** pSql is the target blob to append the query [subset] |
| 132 | 132 | ** to. |
| 133 | 133 | ** |
| 134 | 134 | ** Returns a positive value if it modifies pSql, 0 if it |
| @@ -144,10 +144,11 @@ | ||
| 144 | 144 | */ |
| 145 | 145 | static char json_timeline_add_tag_branch_clause(Blob *pSql, |
| 146 | 146 | cson_object * pPayload){ |
| 147 | 147 | char const * zTag = NULL; |
| 148 | 148 | char const * zBranch = NULL; |
| 149 | + char const * zMiOnly = NULL; | |
| 149 | 150 | int tagid = 0; |
| 150 | 151 | if(! g.perm.Read ){ |
| 151 | 152 | return 0; |
| 152 | 153 | } |
| 153 | 154 | zTag = json_find_option_cstr("tag",NULL,NULL); |
| @@ -155,10 +156,11 @@ | ||
| 155 | 156 | zBranch = json_find_option_cstr("branch",NULL,NULL); |
| 156 | 157 | if(!zBranch || !*zBranch){ |
| 157 | 158 | return 0; |
| 158 | 159 | } |
| 159 | 160 | zTag = zBranch; |
| 161 | + zMiOnly = json_find_option_cstr("mionly",NULL,NULL); | |
| 160 | 162 | } |
| 161 | 163 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", |
| 162 | 164 | zTag); |
| 163 | 165 | if(tagid<=0){ |
| 164 | 166 | return -1; |
| @@ -175,16 +177,16 @@ | ||
| 175 | 177 | /* from "r" flag code in page_timeline().*/ |
| 176 | 178 | blob_appendf(pSql, |
| 177 | 179 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid" |
| 178 | 180 | " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)", |
| 179 | 181 | tagid); |
| 180 | -#if 0 /* from the undocumented "mionly" flag in page_timeline() */ | |
| 181 | - blob_appendf(pSql, | |
| 182 | + if( zMiOnly==0 ){ | |
| 183 | + blob_appendf(pSql, | |
| 182 | 184 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid" |
| 183 | 185 | " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)", |
| 184 | 186 | tagid); |
| 185 | -#endif | |
| 187 | + } | |
| 186 | 188 | } |
| 187 | 189 | blob_append(pSql," ) ",3); |
| 188 | 190 | return 1; |
| 189 | 191 | } |
| 190 | 192 | /* |
| 191 | 193 |
| --- src/json_timeline.c | |
| +++ src/json_timeline.c | |
| @@ -124,11 +124,11 @@ | |
| 124 | ** |
| 125 | ** tag works like HTML mode's "t" option and branch works like HTML |
| 126 | ** mode's "r" option. They are very similar, but subtly different - |
| 127 | ** tag mode shows only entries with a given tag but branch mode can |
| 128 | ** also reveal some with "related" tags (meaning they were merged into |
| 129 | ** the requested branch). |
| 130 | ** |
| 131 | ** pSql is the target blob to append the query [subset] |
| 132 | ** to. |
| 133 | ** |
| 134 | ** Returns a positive value if it modifies pSql, 0 if it |
| @@ -144,10 +144,11 @@ | |
| 144 | */ |
| 145 | static char json_timeline_add_tag_branch_clause(Blob *pSql, |
| 146 | cson_object * pPayload){ |
| 147 | char const * zTag = NULL; |
| 148 | char const * zBranch = NULL; |
| 149 | int tagid = 0; |
| 150 | if(! g.perm.Read ){ |
| 151 | return 0; |
| 152 | } |
| 153 | zTag = json_find_option_cstr("tag",NULL,NULL); |
| @@ -155,10 +156,11 @@ | |
| 155 | zBranch = json_find_option_cstr("branch",NULL,NULL); |
| 156 | if(!zBranch || !*zBranch){ |
| 157 | return 0; |
| 158 | } |
| 159 | zTag = zBranch; |
| 160 | } |
| 161 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", |
| 162 | zTag); |
| 163 | if(tagid<=0){ |
| 164 | return -1; |
| @@ -175,16 +177,16 @@ | |
| 175 | /* from "r" flag code in page_timeline().*/ |
| 176 | blob_appendf(pSql, |
| 177 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid" |
| 178 | " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)", |
| 179 | tagid); |
| 180 | #if 0 /* from the undocumented "mionly" flag in page_timeline() */ |
| 181 | blob_appendf(pSql, |
| 182 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid" |
| 183 | " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)", |
| 184 | tagid); |
| 185 | #endif |
| 186 | } |
| 187 | blob_append(pSql," ) ",3); |
| 188 | return 1; |
| 189 | } |
| 190 | /* |
| 191 |
| --- src/json_timeline.c | |
| +++ src/json_timeline.c | |
| @@ -124,11 +124,11 @@ | |
| 124 | ** |
| 125 | ** tag works like HTML mode's "t" option and branch works like HTML |
| 126 | ** mode's "r" option. They are very similar, but subtly different - |
| 127 | ** tag mode shows only entries with a given tag but branch mode can |
| 128 | ** also reveal some with "related" tags (meaning they were merged into |
| 129 | ** the requested branch, or back). |
| 130 | ** |
| 131 | ** pSql is the target blob to append the query [subset] |
| 132 | ** to. |
| 133 | ** |
| 134 | ** Returns a positive value if it modifies pSql, 0 if it |
| @@ -144,10 +144,11 @@ | |
| 144 | */ |
| 145 | static char json_timeline_add_tag_branch_clause(Blob *pSql, |
| 146 | cson_object * pPayload){ |
| 147 | char const * zTag = NULL; |
| 148 | char const * zBranch = NULL; |
| 149 | char const * zMiOnly = NULL; |
| 150 | int tagid = 0; |
| 151 | if(! g.perm.Read ){ |
| 152 | return 0; |
| 153 | } |
| 154 | zTag = json_find_option_cstr("tag",NULL,NULL); |
| @@ -155,10 +156,11 @@ | |
| 156 | zBranch = json_find_option_cstr("branch",NULL,NULL); |
| 157 | if(!zBranch || !*zBranch){ |
| 158 | return 0; |
| 159 | } |
| 160 | zTag = zBranch; |
| 161 | zMiOnly = json_find_option_cstr("mionly",NULL,NULL); |
| 162 | } |
| 163 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname='sym-%q'", |
| 164 | zTag); |
| 165 | if(tagid<=0){ |
| 166 | return -1; |
| @@ -175,16 +177,16 @@ | |
| 177 | /* from "r" flag code in page_timeline().*/ |
| 178 | blob_appendf(pSql, |
| 179 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=cid" |
| 180 | " WHERE tagid=%d AND tagtype>0 AND pid=blob.rid)", |
| 181 | tagid); |
| 182 | if( zMiOnly==0 ){ |
| 183 | blob_appendf(pSql, |
| 184 | " OR EXISTS(SELECT 1 FROM plink JOIN tagxref ON rid=pid" |
| 185 | " WHERE tagid=%d AND tagtype>0 AND cid=blob.rid)", |
| 186 | tagid); |
| 187 | } |
| 188 | } |
| 189 | blob_append(pSql," ) ",3); |
| 190 | return 1; |
| 191 | } |
| 192 | /* |
| 193 |