Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Do not scroll to the select element of "Context" timelines. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
cee4bcf047bacba9cf3d496b5a9aa291 |
User & Date: | drh 2017-12-06 18:48:03.897 |
Context
2017-12-06
| ||
18:58 | Add the "m=" query parameter to the /finfo page. ... (check-in: 7dcf8c7a user: drh tags: trunk) | |
18:48 | Do not scroll to the select element of "Context" timelines. ... (check-in: cee4bcf0 user: drh tags: trunk) | |
18:27 | Remove the seldom-used "Tags And Properties" section from the check-in information screen. Move that information off into a new page /ci_tags that includes a timeline showing all relevant timeline items in addition to the basic tag information. ... (check-in: e2d53720 user: drh tags: trunk) | |
Changes
Changes to src/finfo.c.
︙ | ︙ | |||
634 635 636 637 638 639 640 | graph_free(pGraph); pGraph = 0; }else{ @ <tr class="timelineBottom"><td></td><td></td><td></td></tr> } } @ </table> | | | 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | graph_free(pGraph); pGraph = 0; }else{ @ <tr class="timelineBottom"><td></td><td></td><td></td></tr> } } @ </table> timeline_output_graph_javascript(pGraph, TIMELINE_FILEDIFF, iTableId); style_footer(); } /* ** WEBPAGE: mlink ** URL: /mlink?name=FILENAME ** URL: /mlink?ci=NAME |
︙ | ︙ |
Changes to src/graph.js.
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** "showArrowheads": BOOLEAN, // True for arrowheads. False to omit ** "iRailPitch": INTEGER, // Spacing between vertical lines (px) ** "colorGraph": BOOLEAN, // True to put color on graph lines ** "nomo": BOOLEAN, // True to join merge lines with rails ** "iTopRow": INTEGER, // Index of top-most row in the graph ** "omitDescenders": BOOLEAN, // Omit ancestor lines off bottom of screen ** "fileDiff": BOOLEAN, // True for file diff. False for check-in ** "nrail": INTEGER, // Number of vertical "rails" ** "baseUrl": TEXT, // Top-level URL ** "rowinfo": ROWINFO-ARRAY } ** ** The rowinfo field is an array of structures, one per entry in the timeline, ** where each structure has the following fields: ** | > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ** "showArrowheads": BOOLEAN, // True for arrowheads. False to omit ** "iRailPitch": INTEGER, // Spacing between vertical lines (px) ** "colorGraph": BOOLEAN, // True to put color on graph lines ** "nomo": BOOLEAN, // True to join merge lines with rails ** "iTopRow": INTEGER, // Index of top-most row in the graph ** "omitDescenders": BOOLEAN, // Omit ancestor lines off bottom of screen ** "fileDiff": BOOLEAN, // True for file diff. False for check-in ** "scrollToSelect": BOOLEAN, // Scroll to selection on first render ** "nrail": INTEGER, // Number of vertical "rails" ** "baseUrl": TEXT, // Top-level URL ** "rowinfo": ROWINFO-ARRAY } ** ** The rowinfo field is an array of structures, one per entry in the timeline, ** where each structure has the following fields: ** |
︙ | ︙ | |||
345 346 347 348 349 350 351 | renderGraph(); lastY = h; } setTimeout(checkHeight, 1000); } initGraph(); checkHeight(); | > | > | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | renderGraph(); lastY = h; } setTimeout(checkHeight, 1000); } initGraph(); checkHeight(); if( tx.scrollToSelect ){ scrollToSelected(); } /* Set the onclick= attributes for elements of the "Compact" display ** mode so that clicking turns the details on and off. */ var lx = topObj.getElementsByClassName('timelineEllipsis'); var i; for(i=0; i<lx.length; i++){ |
︙ | ︙ |
Changes to src/info.c.
︙ | ︙ | |||
268 269 270 271 272 273 274 | if( !parentsOnly ){ db_multi_exec( "INSERT OR IGNORE INTO ok SELECT cid FROM plink WHERE pid=%d;", rid ); } blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); | | > | 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | if( !parentsOnly ){ db_multi_exec( "INSERT OR IGNORE INTO ok SELECT cid FROM plink WHERE pid=%d;", rid ); } blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, 0, 0, rid, 0); db_finalize(&q); } /* ** Show a graph all wiki, tickets, and check-ins that refer to object zUuid. ** ** If zLabel is not NULL and the graph is not empty, then output zLabel as |
︙ | ︙ | |||
298 299 300 301 302 303 304 | ); if( !db_exists("SELECT 1 FROM ok") ) return; if( zLabel ) cgi_printf("%s", zLabel); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); | | > | 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 | ); if( !db_exists("SELECT 1 FROM ok") ) return; if( zLabel ) cgi_printf("%s", zLabel); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, 0, 0, 0, 0); db_finalize(&q); } /* ** WEBPAGE: test-backlinks ** ** Show a timeline of all check-ins and other events that have entries |
︙ | ︙ | |||
330 331 332 333 334 335 336 | " SELECT blob.rid FROM backlink, blob" " WHERE blob.uuid BETWEEN backlink.target AND (backlink.target||'x')" ); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); | | > | 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 | " SELECT blob.rid FROM backlink, blob" " WHERE blob.uuid BETWEEN backlink.target AND (backlink.target||'x')" ); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, 0, 0, 0, 0); db_finalize(&q); style_footer(); } /* ** Append the difference between artifacts to the output |
︙ | ︙ | |||
598 599 600 601 602 603 604 | " WHERE tagxref.rid=%d" " ORDER BY tagname /*sort*/", rid, rid, rid ); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); | | > | 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 | " WHERE tagxref.rid=%d" " ORDER BY tagname /*sort*/", rid, rid, rid ); blob_zero(&sql); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); db_prepare(&q, "%s", blob_sql_text(&sql)); www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, 0, 0, rid, 0); db_finalize(&q); style_footer(); } /* ** WEBPAGE: vinfo ** WEBPAGE: ci |
︙ | ︙ |
Changes to src/timeline.c.
︙ | ︙ | |||
89 90 91 92 93 94 95 | } } /* ** Allowed flags for the tmFlags argument to www_print_timeline */ #if INTERFACE | | | | | | | | | | | | | | | | | | > > | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | } } /* ** Allowed flags for the tmFlags argument to www_print_timeline */ #if INTERFACE #define TIMELINE_ARTID 0x00001 /* Show artifact IDs on non-check-in lines */ #define TIMELINE_LEAFONLY 0x00002 /* Show "Leaf" but not "Merge", "Fork" etc */ #define TIMELINE_BRIEF 0x00004 /* Combine adjacent elements of same obj */ #define TIMELINE_GRAPH 0x00008 /* Compute a graph */ #define TIMELINE_DISJOINT 0x00010 /* Elements are not contiguous */ #define TIMELINE_FCHANGES 0x00020 /* Detail file changes */ #define TIMELINE_BRCOLOR 0x00040 /* Background color by branch name */ #define TIMELINE_UCOLOR 0x00080 /* Background color by user */ #define TIMELINE_FRENAMES 0x00100 /* Detail only file name changes */ #define TIMELINE_UNHIDE 0x00200 /* Unhide check-ins with "hidden" tag */ #define TIMELINE_SHOWRID 0x00400 /* Show RID values in addition to UUIDs */ #define TIMELINE_BISECT 0x00800 /* Show supplimental bisect information */ #define TIMELINE_COMPACT 0x01000 /* Use the "compact" view style */ #define TIMELINE_VERBOSE 0x02000 /* Use the "detailed" view style */ #define TIMELINE_MODERN 0x04000 /* Use the "modern" view style */ #define TIMELINE_COLUMNAR 0x08000 /* Use the "columns view style */ #define TIMELINE_VIEWS 0x0f000 /* Mask for all of the view styles */ #define TIMELINE_NOSCROLL 0x10000 /* Don't scroll to the selection */ #define TIMELINE_FILEDIFF 0x20000 /* Show File differences, not ckin diffs */ #endif /* ** Hash a string and use the hash to determine a background color. */ char *hash_color(const char *z){ int i; /* Loop counter */ |
︙ | ︙ | |||
722 723 724 725 726 727 728 | pGraph = 0; }else{ @ <tr class="timelineBottom"><td></td><td></td><td></td></tr> } } @ </table> if( fchngQueryInit ) db_finalize(&fchngQuery); | | < | 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 | pGraph = 0; }else{ @ <tr class="timelineBottom"><td></td><td></td><td></td></tr> } } @ </table> if( fchngQueryInit ) db_finalize(&fchngQuery); timeline_output_graph_javascript(pGraph, tmFlags, iTableId); } /* ** Change the RGB background color given in the argument in a foreground ** color with the same hue. */ static const char *bg_to_fg(const char *zIn){ |
︙ | ︙ | |||
763 764 765 766 767 768 769 | /* ** Generate all of the necessary javascript to generate a timeline ** graph. */ void timeline_output_graph_javascript( GraphContext *pGraph, /* The graph to be displayed */ | | | < > > > | > > > | 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 | /* ** Generate all of the necessary javascript to generate a timeline ** graph. */ void timeline_output_graph_javascript( GraphContext *pGraph, /* The graph to be displayed */ int tmFlags, /* Flags that control rendering */ int iTableId /* Which graph is this for */ ){ if( pGraph && pGraph->nErr==0 && pGraph->nRow>0 ){ GraphRow *pRow; int i; char cSep; int iRailPitch; /* Pixels between consecutive rails */ int showArrowheads; /* True to draw arrowheads. False to omit. */ int circleNodes; /* True for circle nodes. False for square nodes */ int colorGraph; /* Use colors for graph lines */ int iTopRow; /* Index of the top row of the graph */ int fileDiff; /* True for file diff. False for check-in diff */ int omitDescenders; /* True to omit descenders */ int scrollToSelect; /* True to scroll to the selection */ iRailPitch = atoi(PD("railpitch","0")); showArrowheads = skin_detail_boolean("timeline-arrowheads"); circleNodes = skin_detail_boolean("timeline-circle-nodes"); colorGraph = skin_detail_boolean("timeline-color-graph-lines"); iTopRow = pGraph->pFirst ? pGraph->pFirst->idx : 0; omitDescenders = (tmFlags & TIMELINE_DISJOINT)!=0; fileDiff = (tmFlags & TIMELINE_FILEDIFF)!=0; scrollToSelect = (tmFlags & TIMELINE_NOSCROLL)==0; @ <script id='timeline-data-%d(iTableId)' type='application/json'>{ @ "iTableId": %d(iTableId), @ "circleNodes": %d(circleNodes), @ "showArrowheads": %d(showArrowheads), @ "iRailPitch": %d(iRailPitch), @ "colorGraph": %d(colorGraph), @ "nomo": %d(PB("nomo")), @ "iTopRow": %d(iTopRow), @ "omitDescenders": %d(omitDescenders), @ "fileDiff": %d(fileDiff), @ "scrollToSelect": %d(scrollToSelect), @ "nrail": %d(pGraph->mxRail+1), @ "baseUrl": "%R", @ "rowinfo": [ /* the rowinfo[] array contains all the information needed to generate ** the graph. Each entry contains information for a single row: ** |
︙ | ︙ |