Fossil SCM
Added -verbose flag to /json/wiki/list, which returns the metadata for all pages but not their content.
Commit
fe99188e60b4b82398c2100792ef71074ae427b1
Parent
f32b042eed87c2e…
2 files changed
+1
+9
-1
+1
| --- ajax/index.html | ||
| +++ ajax/index.html | ||
| @@ -234,10 +234,11 @@ | ||
| 234 | 234 | <input type='button' value='timeline/ci' onclick='TheApp.cgi.sendCommand("/json/timeline/ci?files=true")' /> |
| 235 | 235 | <input type='button' value='timeline/wiki' onclick='TheApp.cgi.sendCommand("/json/timeline/wiki")' /> |
| 236 | 236 | <input type='button' value='timeline/ticket' onclick='TheApp.cgi.sendCommand("/json/timeline/ticket")' /> |
| 237 | 237 | <input type='button' value='timeline/branch' onclick='TheApp.cgi.sendCommand("/json/timeline/branch")' /> |
| 238 | 238 | <input type='button' value='wiki/list' onclick='TheApp.cgi.sendCommand("/json/wiki/list")' /> |
| 239 | +<input type='button' value='wiki/list verbose' onclick='TheApp.cgi.sendCommand("/json/wiki/list",{verbose:1})' /> | |
| 239 | 240 | <input type='button' value='wiki/get Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get",{name:"Fossil"})' /> |
| 240 | 241 | <input type='button' value='wiki/get/Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get/Fossil")' /> |
| 241 | 242 | |
| 242 | 243 | <br/> |
| 243 | 244 | |
| 244 | 245 |
| --- ajax/index.html | |
| +++ ajax/index.html | |
| @@ -234,10 +234,11 @@ | |
| 234 | <input type='button' value='timeline/ci' onclick='TheApp.cgi.sendCommand("/json/timeline/ci?files=true")' /> |
| 235 | <input type='button' value='timeline/wiki' onclick='TheApp.cgi.sendCommand("/json/timeline/wiki")' /> |
| 236 | <input type='button' value='timeline/ticket' onclick='TheApp.cgi.sendCommand("/json/timeline/ticket")' /> |
| 237 | <input type='button' value='timeline/branch' onclick='TheApp.cgi.sendCommand("/json/timeline/branch")' /> |
| 238 | <input type='button' value='wiki/list' onclick='TheApp.cgi.sendCommand("/json/wiki/list")' /> |
| 239 | <input type='button' value='wiki/get Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get",{name:"Fossil"})' /> |
| 240 | <input type='button' value='wiki/get/Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get/Fossil")' /> |
| 241 | |
| 242 | <br/> |
| 243 | |
| 244 |
| --- ajax/index.html | |
| +++ ajax/index.html | |
| @@ -234,10 +234,11 @@ | |
| 234 | <input type='button' value='timeline/ci' onclick='TheApp.cgi.sendCommand("/json/timeline/ci?files=true")' /> |
| 235 | <input type='button' value='timeline/wiki' onclick='TheApp.cgi.sendCommand("/json/timeline/wiki")' /> |
| 236 | <input type='button' value='timeline/ticket' onclick='TheApp.cgi.sendCommand("/json/timeline/ticket")' /> |
| 237 | <input type='button' value='timeline/branch' onclick='TheApp.cgi.sendCommand("/json/timeline/branch")' /> |
| 238 | <input type='button' value='wiki/list' onclick='TheApp.cgi.sendCommand("/json/wiki/list")' /> |
| 239 | <input type='button' value='wiki/list verbose' onclick='TheApp.cgi.sendCommand("/json/wiki/list",{verbose:1})' /> |
| 240 | <input type='button' value='wiki/get Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get",{name:"Fossil"})' /> |
| 241 | <input type='button' value='wiki/get/Fossil' onclick='TheApp.cgi.sendCommand("/json/wiki/get/Fossil")' /> |
| 242 | |
| 243 | <br/> |
| 244 | |
| 245 |
+9
-1
| --- src/json_wiki.c | ||
| +++ src/json_wiki.c | ||
| @@ -347,10 +347,12 @@ | ||
| 347 | 347 | */ |
| 348 | 348 | static cson_value * json_wiki_list(){ |
| 349 | 349 | cson_value * listV = NULL; |
| 350 | 350 | cson_array * list = NULL; |
| 351 | 351 | Stmt q; |
| 352 | + char const verbose = json_find_option_bool("verbose",NULL,"v",0); | |
| 353 | + | |
| 352 | 354 | if( !g.perm.RdWiki && !g.perm.Read ){ |
| 353 | 355 | json_set_err(FSL_JSON_E_DENIED, |
| 354 | 356 | "Requires 'j' or 'o' permissions."); |
| 355 | 357 | return NULL; |
| 356 | 358 | } |
| @@ -359,11 +361,17 @@ | ||
| 359 | 361 | " FROM tag WHERE tagname GLOB 'wiki-*'" |
| 360 | 362 | " ORDER BY lower(name)"); |
| 361 | 363 | listV = cson_value_new_array(); |
| 362 | 364 | list = cson_value_get_array(listV); |
| 363 | 365 | while( SQLITE_ROW == db_step(&q) ){ |
| 364 | - cson_value * v = cson_sqlite3_column_to_value(q.pStmt,0); | |
| 366 | + cson_value * v; | |
| 367 | + if( verbose ){ | |
| 368 | + char const * name = db_column_text(&q,0); | |
| 369 | + v = json_get_wiki_page_by_name(name,0); | |
| 370 | + }else{ | |
| 371 | + v = cson_sqlite3_column_to_value(q.pStmt,0); | |
| 372 | + } | |
| 365 | 373 | if(!v){ |
| 366 | 374 | json_set_err(FSL_JSON_E_UNKNOWN, |
| 367 | 375 | "Could not convert wiki name column to JSON."); |
| 368 | 376 | goto error; |
| 369 | 377 | }else if( 0 != cson_array_append( list, v ) ){ |
| 370 | 378 |
| --- src/json_wiki.c | |
| +++ src/json_wiki.c | |
| @@ -347,10 +347,12 @@ | |
| 347 | */ |
| 348 | static cson_value * json_wiki_list(){ |
| 349 | cson_value * listV = NULL; |
| 350 | cson_array * list = NULL; |
| 351 | Stmt q; |
| 352 | if( !g.perm.RdWiki && !g.perm.Read ){ |
| 353 | json_set_err(FSL_JSON_E_DENIED, |
| 354 | "Requires 'j' or 'o' permissions."); |
| 355 | return NULL; |
| 356 | } |
| @@ -359,11 +361,17 @@ | |
| 359 | " FROM tag WHERE tagname GLOB 'wiki-*'" |
| 360 | " ORDER BY lower(name)"); |
| 361 | listV = cson_value_new_array(); |
| 362 | list = cson_value_get_array(listV); |
| 363 | while( SQLITE_ROW == db_step(&q) ){ |
| 364 | cson_value * v = cson_sqlite3_column_to_value(q.pStmt,0); |
| 365 | if(!v){ |
| 366 | json_set_err(FSL_JSON_E_UNKNOWN, |
| 367 | "Could not convert wiki name column to JSON."); |
| 368 | goto error; |
| 369 | }else if( 0 != cson_array_append( list, v ) ){ |
| 370 |
| --- src/json_wiki.c | |
| +++ src/json_wiki.c | |
| @@ -347,10 +347,12 @@ | |
| 347 | */ |
| 348 | static cson_value * json_wiki_list(){ |
| 349 | cson_value * listV = NULL; |
| 350 | cson_array * list = NULL; |
| 351 | Stmt q; |
| 352 | char const verbose = json_find_option_bool("verbose",NULL,"v",0); |
| 353 | |
| 354 | if( !g.perm.RdWiki && !g.perm.Read ){ |
| 355 | json_set_err(FSL_JSON_E_DENIED, |
| 356 | "Requires 'j' or 'o' permissions."); |
| 357 | return NULL; |
| 358 | } |
| @@ -359,11 +361,17 @@ | |
| 361 | " FROM tag WHERE tagname GLOB 'wiki-*'" |
| 362 | " ORDER BY lower(name)"); |
| 363 | listV = cson_value_new_array(); |
| 364 | list = cson_value_get_array(listV); |
| 365 | while( SQLITE_ROW == db_step(&q) ){ |
| 366 | cson_value * v; |
| 367 | if( verbose ){ |
| 368 | char const * name = db_column_text(&q,0); |
| 369 | v = json_get_wiki_page_by_name(name,0); |
| 370 | }else{ |
| 371 | v = cson_sqlite3_column_to_value(q.pStmt,0); |
| 372 | } |
| 373 | if(!v){ |
| 374 | json_set_err(FSL_JSON_E_UNKNOWN, |
| 375 | "Could not convert wiki name column to JSON."); |
| 376 | goto error; |
| 377 | }else if( 0 != cson_array_append( list, v ) ){ |
| 378 |