Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the /thisdayinhistory page. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
e7103eeb63b8e40c57f3112a0d35e74c |
User & Date: | drh 2019-05-10 16:19:22.904 |
Context
2019-05-10
| ||
16:26 | Improve the "more context" hyperlink on the /thisdayinhistory page. ... (check-in: 97bc9c3a user: drh tags: trunk) | |
16:19 | Add the /thisdayinhistory page. ... (check-in: e7103eeb user: drh tags: trunk) | |
2019-05-02
| ||
03:36 | tclsh8.7 is out there... ... (check-in: 8b276cf9 user: bch tags: trunk) | |
Changes
Changes to src/timeline.c.
︙ | ︙ | |||
2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 | fossil_print("%s\n", blob_str(&sql)); } db_prepare_blob(&q, &sql); blob_reset(&sql); print_timeline(&q, n, width, verboseFlag); db_finalize(&q); } /* ** COMMAND: test-timewarp-list ** ** Usage: %fossil test-timewarp-list ?-v|---verbose? ** | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 | fossil_print("%s\n", blob_str(&sql)); } db_prepare_blob(&q, &sql); blob_reset(&sql); print_timeline(&q, n, width, verboseFlag); db_finalize(&q); } /* ** WEBPAGE: thisdayinhistory ** ** Generate a vanity page that shows project activity for the current ** day of the year for various years in the history of the project. ** ** Query parameters: ** ** today=DATE Use DATE as today's date */ void thisdayinhistory_page(void){ static int aYearsAgo[] = { 1, 2, 3, 4, 5, 10, 15, 20, 30, 40, 50, 75, 100 }; const char *zToday; char *zStartOfProject; int i; Stmt q; login_check_credentials(); if( (!g.perm.Read && !g.perm.RdTkt && !g.perm.RdWiki && !g.perm.RdForum) ){ login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); return; } style_header("Today In History"); zToday = (char*)P("today"); if( zToday ){ zToday = timeline_expand_datetime(zToday); if( !fossil_isdate(zToday) ) zToday = 0; } if( zToday==0 ){ zToday = db_text(0, "SELECT date('now',toLocal())"); } @ <h1>This Day In History For %h(zToday)</h1> zStartOfProject = db_text(0, "SELECT datetime(min(mtime),toLocal()) FROM event;" ); timeline_temp_table(); db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/"); for(i=0; i<sizeof(aYearsAgo)/sizeof(aYearsAgo[0]); i++){ int iAgo = aYearsAgo[i]; char *zThis = db_text(0, "SELECT date(%Q,'-%d years')", zToday, iAgo); Blob sql; if( strcmp(zThis, zStartOfProject)<0 ) break; blob_init(&sql, 0, 0); blob_append(&sql, "INSERT OR IGNORE INTO timeline ", -1); blob_append(&sql, timeline_query_for_www(), -1); blob_append_sql(&sql, " AND %Q=date(event.mtime,toLocal()) " " AND event.mtime BETWEEN julianday(%Q,'-1 day')" " AND julianday(%Q,'+2 days')", zThis, zThis, zThis ); db_multi_exec("DELETE FROM timeline; %s;", blob_sql_text(&sql)); blob_reset(&sql); if( db_int(0, "SELECT count(*) FROM timeline")==0 ){ continue; } @ <h2>%d(iAgo) Year%s(iAgo>1?"s":"") Ago @ <small>%z(href("%R/timeline?c=%s",zThis))(more context)</a></small></h2> www_print_timeline(&q, TIMELINE_GRAPH|TIMELINE_DISJOINT, 0, 0, 0, 0); } db_finalize(&q); style_footer(); } /* ** COMMAND: test-timewarp-list ** ** Usage: %fossil test-timewarp-list ?-v|---verbose? ** |
︙ | ︙ |