Fossil SCM
Fixes to the yw=YYYYWW query parameter to /timeline
Commit
a5a08c3439411681b991615c347b90c8135507c517dcfb13e53fce9b3989475f
Parent
a13a024beacf72e…
1 file changed
+9
-7
+9
-7
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -2663,26 +2663,26 @@ | ||
| 2663 | 2663 | int bZulu = 0; |
| 2664 | 2664 | const char *zTZMod; |
| 2665 | 2665 | zYearWeek = timeline_expand_datetime(zYearWeek, &bZulu); |
| 2666 | 2666 | z = db_text(0, "SELECT strftime('%%Y-%%W',%Q)", zYearWeek); |
| 2667 | 2667 | if( z && z[0] ){ |
| 2668 | - zYearWeekStart = db_text(0, "SELECT date(%Q,'-6 days','weekday 1')", | |
| 2668 | + zYearWeekStart = db_text(0, "SELECT date(%Q,'weekday -1')", | |
| 2669 | 2669 | zYearWeek); |
| 2670 | 2670 | zYearWeek = z; |
| 2671 | 2671 | }else{ |
| 2672 | 2672 | if( strlen(zYearWeek)==7 ){ |
| 2673 | 2673 | zYearWeekStart = db_text(0, |
| 2674 | - "SELECT date('%.4q-01-01','%+d days','weekday 1')", | |
| 2675 | - zYearWeek, atoi(zYearWeek+5)*7-6); | |
| 2674 | + "SELECT date('%.4q-01-01','weekday 1','%+d days')", | |
| 2675 | + zYearWeek, atoi(zYearWeek+5)*7 - 7); | |
| 2676 | 2676 | }else{ |
| 2677 | 2677 | zYearWeekStart = 0; |
| 2678 | 2678 | } |
| 2679 | 2679 | if( zYearWeekStart==0 || zYearWeekStart[0]==0 ){ |
| 2680 | 2680 | zYearWeekStart = db_text(0, |
| 2681 | - "SELECT date('now','-6 days','weekday 1');"); | |
| 2681 | + "SELECT date('now','weekday -1');"); | |
| 2682 | 2682 | zYearWeek = db_text(0, |
| 2683 | - "SELECT strftime('%%Y-%%W','now','-6 days','weekday 1')"); | |
| 2683 | + "SELECT strftime('%%Y-%%W','now','weekday -1')"); | |
| 2684 | 2684 | } |
| 2685 | 2685 | } |
| 2686 | 2686 | zTZMod = (bZulu==0 && fossil_ui_localtime()) ? "utc" : "+00:00"; |
| 2687 | 2687 | if( db_int(0, |
| 2688 | 2688 | "SELECT EXISTS (SELECT 1 FROM event CROSS JOIN blob" |
| @@ -3080,12 +3080,14 @@ | ||
| 3080 | 3080 | zPlural = n==1 ? "" : "s"; |
| 3081 | 3081 | if( zYearMonth ){ |
| 3082 | 3082 | blob_appendf(&desc, "%d %s%s for the month beginning %h", |
| 3083 | 3083 | n, zEType, zPlural, zYearMonth); |
| 3084 | 3084 | }else if( zYearWeek ){ |
| 3085 | - blob_appendf(&desc, "%d %s%s for week %h beginning on %h", | |
| 3086 | - n, zEType, zPlural, zYearWeek, zYearWeekStart); | |
| 3085 | + char *zEnd = db_text("?","SELECT date(%Q,'weekday 0')",zYearWeekStart); | |
| 3086 | + blob_appendf(&desc, "%d %s%s for week %h spanning %h to %h", | |
| 3087 | + n, zEType, zPlural, zYearWeek, zYearWeekStart, zEnd); | |
| 3088 | + fossil_free(zEnd); | |
| 3087 | 3089 | }else if( zDay ){ |
| 3088 | 3090 | blob_appendf(&desc, "%d %s%s occurring on %h", n, zEType, zPlural, zDay); |
| 3089 | 3091 | }else if( zNDays ){ |
| 3090 | 3092 | blob_appendf(&desc, "%d %s%s within the past %d day%s", |
| 3091 | 3093 | n, zEType, zPlural, nDays, nDays>1 ? "s" : ""); |
| 3092 | 3094 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -2663,26 +2663,26 @@ | |
| 2663 | int bZulu = 0; |
| 2664 | const char *zTZMod; |
| 2665 | zYearWeek = timeline_expand_datetime(zYearWeek, &bZulu); |
| 2666 | z = db_text(0, "SELECT strftime('%%Y-%%W',%Q)", zYearWeek); |
| 2667 | if( z && z[0] ){ |
| 2668 | zYearWeekStart = db_text(0, "SELECT date(%Q,'-6 days','weekday 1')", |
| 2669 | zYearWeek); |
| 2670 | zYearWeek = z; |
| 2671 | }else{ |
| 2672 | if( strlen(zYearWeek)==7 ){ |
| 2673 | zYearWeekStart = db_text(0, |
| 2674 | "SELECT date('%.4q-01-01','%+d days','weekday 1')", |
| 2675 | zYearWeek, atoi(zYearWeek+5)*7-6); |
| 2676 | }else{ |
| 2677 | zYearWeekStart = 0; |
| 2678 | } |
| 2679 | if( zYearWeekStart==0 || zYearWeekStart[0]==0 ){ |
| 2680 | zYearWeekStart = db_text(0, |
| 2681 | "SELECT date('now','-6 days','weekday 1');"); |
| 2682 | zYearWeek = db_text(0, |
| 2683 | "SELECT strftime('%%Y-%%W','now','-6 days','weekday 1')"); |
| 2684 | } |
| 2685 | } |
| 2686 | zTZMod = (bZulu==0 && fossil_ui_localtime()) ? "utc" : "+00:00"; |
| 2687 | if( db_int(0, |
| 2688 | "SELECT EXISTS (SELECT 1 FROM event CROSS JOIN blob" |
| @@ -3080,12 +3080,14 @@ | |
| 3080 | zPlural = n==1 ? "" : "s"; |
| 3081 | if( zYearMonth ){ |
| 3082 | blob_appendf(&desc, "%d %s%s for the month beginning %h", |
| 3083 | n, zEType, zPlural, zYearMonth); |
| 3084 | }else if( zYearWeek ){ |
| 3085 | blob_appendf(&desc, "%d %s%s for week %h beginning on %h", |
| 3086 | n, zEType, zPlural, zYearWeek, zYearWeekStart); |
| 3087 | }else if( zDay ){ |
| 3088 | blob_appendf(&desc, "%d %s%s occurring on %h", n, zEType, zPlural, zDay); |
| 3089 | }else if( zNDays ){ |
| 3090 | blob_appendf(&desc, "%d %s%s within the past %d day%s", |
| 3091 | n, zEType, zPlural, nDays, nDays>1 ? "s" : ""); |
| 3092 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -2663,26 +2663,26 @@ | |
| 2663 | int bZulu = 0; |
| 2664 | const char *zTZMod; |
| 2665 | zYearWeek = timeline_expand_datetime(zYearWeek, &bZulu); |
| 2666 | z = db_text(0, "SELECT strftime('%%Y-%%W',%Q)", zYearWeek); |
| 2667 | if( z && z[0] ){ |
| 2668 | zYearWeekStart = db_text(0, "SELECT date(%Q,'weekday -1')", |
| 2669 | zYearWeek); |
| 2670 | zYearWeek = z; |
| 2671 | }else{ |
| 2672 | if( strlen(zYearWeek)==7 ){ |
| 2673 | zYearWeekStart = db_text(0, |
| 2674 | "SELECT date('%.4q-01-01','weekday 1','%+d days')", |
| 2675 | zYearWeek, atoi(zYearWeek+5)*7 - 7); |
| 2676 | }else{ |
| 2677 | zYearWeekStart = 0; |
| 2678 | } |
| 2679 | if( zYearWeekStart==0 || zYearWeekStart[0]==0 ){ |
| 2680 | zYearWeekStart = db_text(0, |
| 2681 | "SELECT date('now','weekday -1');"); |
| 2682 | zYearWeek = db_text(0, |
| 2683 | "SELECT strftime('%%Y-%%W','now','weekday -1')"); |
| 2684 | } |
| 2685 | } |
| 2686 | zTZMod = (bZulu==0 && fossil_ui_localtime()) ? "utc" : "+00:00"; |
| 2687 | if( db_int(0, |
| 2688 | "SELECT EXISTS (SELECT 1 FROM event CROSS JOIN blob" |
| @@ -3080,12 +3080,14 @@ | |
| 3080 | zPlural = n==1 ? "" : "s"; |
| 3081 | if( zYearMonth ){ |
| 3082 | blob_appendf(&desc, "%d %s%s for the month beginning %h", |
| 3083 | n, zEType, zPlural, zYearMonth); |
| 3084 | }else if( zYearWeek ){ |
| 3085 | char *zEnd = db_text("?","SELECT date(%Q,'weekday 0')",zYearWeekStart); |
| 3086 | blob_appendf(&desc, "%d %s%s for week %h spanning %h to %h", |
| 3087 | n, zEType, zPlural, zYearWeek, zYearWeekStart, zEnd); |
| 3088 | fossil_free(zEnd); |
| 3089 | }else if( zDay ){ |
| 3090 | blob_appendf(&desc, "%d %s%s occurring on %h", n, zEType, zPlural, zDay); |
| 3091 | }else if( zNDays ){ |
| 3092 | blob_appendf(&desc, "%d %s%s within the past %d day%s", |
| 3093 | n, zEType, zPlural, nDays, nDays>1 ? "s" : ""); |
| 3094 |