Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added ticketUuid to /json/timeline/ticket output. Removed some superfluous Blob uses (where db_prepare() works just as well). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | json |
Files: | files | file ages | folders |
SHA1: |
f94ad194723086c5add6d01f4a2406ff |
User & Date: | stephan 2011-09-27 04:08:29.510 |
Context
2011-09-27
| ||
04:12 | /json/timeline/ticket prevUuid is now only explicitly set for non-new files. Previously it was set to NULL, which was a waste-of-time no-op. ... (check-in: 0ddf9204 user: stephan tags: json) | |
04:08 | Added ticketUuid to /json/timeline/ticket output. Removed some superfluous Blob uses (where db_prepare() works just as well). ... (check-in: f94ad194 user: stephan tags: json) | |
03:28 | Added /json/timeline/ci showFiles to ajax test page. ... (check-in: be700e84 user: stephan tags: json) | |
Changes
Changes to src/json_timeline.c.
︙ | ︙ | |||
273 274 275 276 277 278 279 | pay = cson_value_get_object(payV); json_timeline_setup_sql( "ci", &sql, pay ); #define SET(K) if(0!=(check=cson_object_set(pay,K,tmp))){ \ g.json.resultCode = (cson_rc.AllocError==check) \ ? FSL_JSON_E_ALLOC : FSL_JSON_E_UNKNOWN; \ goto error;\ } | < < | | | | | | | | | | | | | | | | | < < < | 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 | pay = cson_value_get_object(payV); json_timeline_setup_sql( "ci", &sql, pay ); #define SET(K) if(0!=(check=cson_object_set(pay,K,tmp))){ \ g.json.resultCode = (cson_rc.AllocError==check) \ ? FSL_JSON_E_ALLOC : FSL_JSON_E_UNKNOWN; \ goto error;\ } #if 0 /* only for testing! */ tmp = cson_value_new_string(blob_buffer(&sql),strlen(blob_buffer(&sql))); SET("timelineSql"); #endif db_multi_exec(blob_buffer(&sql)); blob_reset(&sql); db_prepare(&q, "SELECT " " rid AS rid," " uuid AS uuid," " mtime AS timestamp," #if 0 " timestampString AS timestampString," #endif " comment AS comment, " " user AS user," " isLeaf AS isLeaf," /*FIXME: convert to JSON bool */ " bgColor AS bgColor," /* why always null? */ " eventType AS eventType," " tags AS tags" /*FIXME: split this into a JSON array*/ #if 0 /*tagId is always null?*/ " tagId AS tagId" #endif " FROM json_timeline" " ORDER BY sortId"); listV = cson_value_new_array(); list = cson_value_get_array(listV); tmp = listV; SET("timeline"); while( (SQLITE_ROW == db_step(&q) )){ /* convert each row into a JSON object...*/ int const rid = db_column_int(&q,0); |
︙ | ︙ | |||
392 393 394 395 396 397 398 | pay = cson_value_get_object(payV); json_timeline_setup_sql( "w", &sql, pay ); #define SET(K) if(0!=(check=cson_object_set(pay,K,tmp))){ \ g.json.resultCode = (cson_rc.AllocError==check) \ ? FSL_JSON_E_ALLOC : FSL_JSON_E_UNKNOWN; \ goto error;\ } | < < | | | | | | | | | | | | | | | < < | 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 | pay = cson_value_get_object(payV); json_timeline_setup_sql( "w", &sql, pay ); #define SET(K) if(0!=(check=cson_object_set(pay,K,tmp))){ \ g.json.resultCode = (cson_rc.AllocError==check) \ ? FSL_JSON_E_ALLOC : FSL_JSON_E_UNKNOWN; \ goto error;\ } #if 0 /* only for testing! */ tmp = cson_value_new_string(blob_buffer(&sql),strlen(blob_buffer(&sql))); SET("timelineSql"); #endif db_multi_exec(blob_buffer(&sql)); blob_reset(&sql); db_prepare(&q, "SELECT rid AS rid," " uuid AS uuid," " mtime AS timestamp," #if 0 " timestampString AS timestampString," #endif " comment AS comment, " " user AS user," " eventType AS eventType" #if 0 /* can wiki pages have tags? */ " tags AS tags," /*FIXME: split this into a JSON array*/ " tagId AS tagId," #endif " FROM json_timeline" " ORDER BY sortId", -1); listV = cson_value_new_array(); list = cson_value_get_array(listV); tmp = listV; SET("timeline"); while( (SQLITE_ROW == db_step(&q) )){ /* convert each row into a JSON object...*/ cson_value * rowV = cson_sqlite3_row_to_object(q.pStmt); |
︙ | ︙ | |||
490 491 492 493 494 495 496 | #if 0 /* only for testing! */ tmp = cson_value_new_string(blob_buffer(&sql),strlen(blob_buffer(&sql))); SET("timelineSql"); #endif blob_reset(&sql); | | | | | | | | | | | | < < > > > > > > > > > > > | 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 | #if 0 /* only for testing! */ tmp = cson_value_new_string(blob_buffer(&sql),strlen(blob_buffer(&sql))); SET("timelineSql"); #endif blob_reset(&sql); db_prepare(&q, "SELECT rid AS rid," " uuid AS uuid," " mtime AS timestamp," #if 0 " timestampString AS timestampString," #endif " user AS user," " eventType AS eventType," " comment AS comment," " brief AS briefComment" " FROM json_timeline" " ORDER BY sortId", -1); listV = cson_value_new_array(); list = cson_value_get_array(listV); tmp = listV; SET("timeline"); while( (SQLITE_ROW == db_step(&q) )){ /* convert each row into a JSON object...*/ int rc; int const rid = db_column_int(&q,0); Manifest * pMan = NULL; cson_value * rowV = cson_sqlite3_row_to_object(q.pStmt); cson_object * row = cson_value_get_object(rowV); if(!row){ json_warn( FSL_JSON_W_ROW_TO_JSON_FAILED, "Could not convert at least one timeline result row to JSON." ); continue; } pMan = manifest_get(rid, CFTYPE_TICKET); assert( pMan && "Manifest is NULL!?!" ); if( pMan ){ /* FIXME: certainly there's a more efficient way for use to get the ticket UUIDs? */ cson_object_set(row,"ticketUuid",json_new_string(pMan->zTicketUuid)); manifest_destroy(pMan); } rc = cson_array_append( list, rowV ); if( 0 != rc ){ cson_value_free(rowV); g.json.resultCode = (cson_rc.AllocError==rc) ? FSL_JSON_E_ALLOC : FSL_JSON_E_UNKNOWN; |
︙ | ︙ |