Fossil SCM
Allow the setup user to add the chngtime query parameter to ci_edit. This can be used to override incorrect tags that have a date way in the future.
Commit
ca72f02c9b7b2c801235ec7b8ab1ac2e35ca773b
Parent
60cf260b6e10f76…
1 file changed
+14
-1
+14
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1797,10 +1797,11 @@ | ||
| 1797 | 1797 | const char *zNewBrFlag; |
| 1798 | 1798 | const char *zNewBranch; |
| 1799 | 1799 | const char *zCloseFlag; |
| 1800 | 1800 | int fPropagateColor; /* True if color propagates before edit */ |
| 1801 | 1801 | int fNewPropagateColor; /* True if color propagates after edit */ |
| 1802 | + const char *zChngTime = 0; /* Value of chngtime= query param, if any */ | |
| 1802 | 1803 | char *zUuid; |
| 1803 | 1804 | Blob comment; |
| 1804 | 1805 | Stmt q; |
| 1805 | 1806 | |
| 1806 | 1807 | login_check_credentials(); |
| @@ -1811,10 +1812,11 @@ | ||
| 1811 | 1812 | " FROM event WHERE objid=%d", rid); |
| 1812 | 1813 | if( zComment==0 ) fossil_redirect_home(); |
| 1813 | 1814 | if( P("cancel") ){ |
| 1814 | 1815 | cgi_redirectf("ci?name=%s", zUuid); |
| 1815 | 1816 | } |
| 1817 | + if( g.perm.Setup ) zChngTime = P("chngtime"); | |
| 1816 | 1818 | zNewComment = PD("c",zComment); |
| 1817 | 1819 | zUser = db_text(0, "SELECT coalesce(euser,user)" |
| 1818 | 1820 | " FROM event WHERE objid=%d", rid); |
| 1819 | 1821 | if( zUser==0 ) fossil_redirect_home(); |
| 1820 | 1822 | zNewUser = PDT("u",zUser); |
| @@ -1842,11 +1844,11 @@ | ||
| 1842 | 1844 | char *zNow; |
| 1843 | 1845 | int nChng = 0; |
| 1844 | 1846 | |
| 1845 | 1847 | login_verify_csrf_secret(); |
| 1846 | 1848 | blob_zero(&ctrl); |
| 1847 | - zNow = date_in_standard_format("now"); | |
| 1849 | + zNow = date_in_standard_format(zChngTime ? zChngTime : "now"); | |
| 1848 | 1850 | blob_appendf(&ctrl, "D %s\n", zNow); |
| 1849 | 1851 | db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)"); |
| 1850 | 1852 | if( zNewColor[0] |
| 1851 | 1853 | && (fPropagateColor!=fNewPropagateColor |
| 1852 | 1854 | || fossil_strcmp(zColor,zNewColor)!=0) |
| @@ -1968,10 +1970,14 @@ | ||
| 1968 | 1970 | } |
| 1969 | 1971 | db_finalize(&q); |
| 1970 | 1972 | blob_appendf(&suffix, ")"); |
| 1971 | 1973 | @ %s(blob_str(&suffix)) |
| 1972 | 1974 | @ </td></tr></table> |
| 1975 | + if( zChngTime ){ | |
| 1976 | + @ <p>The timestamp on the tag used to make the changes above | |
| 1977 | + @ will be overridden as: %s(date_in_standard_format(zChngTime))</p> | |
| 1978 | + } | |
| 1973 | 1979 | @ </blockquote> |
| 1974 | 1980 | @ <hr /> |
| 1975 | 1981 | blob_reset(&suffix); |
| 1976 | 1982 | } |
| 1977 | 1983 | @ <p>Make changes to attributes of check-in |
| @@ -1993,10 +1999,17 @@ | ||
| 1993 | 1999 | |
| 1994 | 2000 | @ <tr><td align="right" valign="top"><b>Check-in Time:</b></td> |
| 1995 | 2001 | @ <td valign="top"> |
| 1996 | 2002 | @ <input type="text" name="dt" size="20" value="%h(zNewDate)" /> |
| 1997 | 2003 | @ </td></tr> |
| 2004 | + | |
| 2005 | + if( zChngTime ){ | |
| 2006 | + @ <tr><td align="right" valign="top"><b>Timestamp of this change:</b></td> | |
| 2007 | + @ <td valign="top"> | |
| 2008 | + @ <input type="text" name="chngtime" size="20" value="%h(zChngTime)" /> | |
| 2009 | + @ </td></tr> | |
| 2010 | + } | |
| 1998 | 2011 | |
| 1999 | 2012 | @ <tr><td align="right" valign="top"><b>Background Color:</b></td> |
| 2000 | 2013 | @ <td valign="top"> |
| 2001 | 2014 | render_color_chooser(fNewPropagateColor, zNewColor, "pclr", "clr", "clrcust"); |
| 2002 | 2015 | @ </td></tr> |
| 2003 | 2016 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1797,10 +1797,11 @@ | |
| 1797 | const char *zNewBrFlag; |
| 1798 | const char *zNewBranch; |
| 1799 | const char *zCloseFlag; |
| 1800 | int fPropagateColor; /* True if color propagates before edit */ |
| 1801 | int fNewPropagateColor; /* True if color propagates after edit */ |
| 1802 | char *zUuid; |
| 1803 | Blob comment; |
| 1804 | Stmt q; |
| 1805 | |
| 1806 | login_check_credentials(); |
| @@ -1811,10 +1812,11 @@ | |
| 1811 | " FROM event WHERE objid=%d", rid); |
| 1812 | if( zComment==0 ) fossil_redirect_home(); |
| 1813 | if( P("cancel") ){ |
| 1814 | cgi_redirectf("ci?name=%s", zUuid); |
| 1815 | } |
| 1816 | zNewComment = PD("c",zComment); |
| 1817 | zUser = db_text(0, "SELECT coalesce(euser,user)" |
| 1818 | " FROM event WHERE objid=%d", rid); |
| 1819 | if( zUser==0 ) fossil_redirect_home(); |
| 1820 | zNewUser = PDT("u",zUser); |
| @@ -1842,11 +1844,11 @@ | |
| 1842 | char *zNow; |
| 1843 | int nChng = 0; |
| 1844 | |
| 1845 | login_verify_csrf_secret(); |
| 1846 | blob_zero(&ctrl); |
| 1847 | zNow = date_in_standard_format("now"); |
| 1848 | blob_appendf(&ctrl, "D %s\n", zNow); |
| 1849 | db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)"); |
| 1850 | if( zNewColor[0] |
| 1851 | && (fPropagateColor!=fNewPropagateColor |
| 1852 | || fossil_strcmp(zColor,zNewColor)!=0) |
| @@ -1968,10 +1970,14 @@ | |
| 1968 | } |
| 1969 | db_finalize(&q); |
| 1970 | blob_appendf(&suffix, ")"); |
| 1971 | @ %s(blob_str(&suffix)) |
| 1972 | @ </td></tr></table> |
| 1973 | @ </blockquote> |
| 1974 | @ <hr /> |
| 1975 | blob_reset(&suffix); |
| 1976 | } |
| 1977 | @ <p>Make changes to attributes of check-in |
| @@ -1993,10 +1999,17 @@ | |
| 1993 | |
| 1994 | @ <tr><td align="right" valign="top"><b>Check-in Time:</b></td> |
| 1995 | @ <td valign="top"> |
| 1996 | @ <input type="text" name="dt" size="20" value="%h(zNewDate)" /> |
| 1997 | @ </td></tr> |
| 1998 | |
| 1999 | @ <tr><td align="right" valign="top"><b>Background Color:</b></td> |
| 2000 | @ <td valign="top"> |
| 2001 | render_color_chooser(fNewPropagateColor, zNewColor, "pclr", "clr", "clrcust"); |
| 2002 | @ </td></tr> |
| 2003 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1797,10 +1797,11 @@ | |
| 1797 | const char *zNewBrFlag; |
| 1798 | const char *zNewBranch; |
| 1799 | const char *zCloseFlag; |
| 1800 | int fPropagateColor; /* True if color propagates before edit */ |
| 1801 | int fNewPropagateColor; /* True if color propagates after edit */ |
| 1802 | const char *zChngTime = 0; /* Value of chngtime= query param, if any */ |
| 1803 | char *zUuid; |
| 1804 | Blob comment; |
| 1805 | Stmt q; |
| 1806 | |
| 1807 | login_check_credentials(); |
| @@ -1811,10 +1812,11 @@ | |
| 1812 | " FROM event WHERE objid=%d", rid); |
| 1813 | if( zComment==0 ) fossil_redirect_home(); |
| 1814 | if( P("cancel") ){ |
| 1815 | cgi_redirectf("ci?name=%s", zUuid); |
| 1816 | } |
| 1817 | if( g.perm.Setup ) zChngTime = P("chngtime"); |
| 1818 | zNewComment = PD("c",zComment); |
| 1819 | zUser = db_text(0, "SELECT coalesce(euser,user)" |
| 1820 | " FROM event WHERE objid=%d", rid); |
| 1821 | if( zUser==0 ) fossil_redirect_home(); |
| 1822 | zNewUser = PDT("u",zUser); |
| @@ -1842,11 +1844,11 @@ | |
| 1844 | char *zNow; |
| 1845 | int nChng = 0; |
| 1846 | |
| 1847 | login_verify_csrf_secret(); |
| 1848 | blob_zero(&ctrl); |
| 1849 | zNow = date_in_standard_format(zChngTime ? zChngTime : "now"); |
| 1850 | blob_appendf(&ctrl, "D %s\n", zNow); |
| 1851 | db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)"); |
| 1852 | if( zNewColor[0] |
| 1853 | && (fPropagateColor!=fNewPropagateColor |
| 1854 | || fossil_strcmp(zColor,zNewColor)!=0) |
| @@ -1968,10 +1970,14 @@ | |
| 1970 | } |
| 1971 | db_finalize(&q); |
| 1972 | blob_appendf(&suffix, ")"); |
| 1973 | @ %s(blob_str(&suffix)) |
| 1974 | @ </td></tr></table> |
| 1975 | if( zChngTime ){ |
| 1976 | @ <p>The timestamp on the tag used to make the changes above |
| 1977 | @ will be overridden as: %s(date_in_standard_format(zChngTime))</p> |
| 1978 | } |
| 1979 | @ </blockquote> |
| 1980 | @ <hr /> |
| 1981 | blob_reset(&suffix); |
| 1982 | } |
| 1983 | @ <p>Make changes to attributes of check-in |
| @@ -1993,10 +1999,17 @@ | |
| 1999 | |
| 2000 | @ <tr><td align="right" valign="top"><b>Check-in Time:</b></td> |
| 2001 | @ <td valign="top"> |
| 2002 | @ <input type="text" name="dt" size="20" value="%h(zNewDate)" /> |
| 2003 | @ </td></tr> |
| 2004 | |
| 2005 | if( zChngTime ){ |
| 2006 | @ <tr><td align="right" valign="top"><b>Timestamp of this change:</b></td> |
| 2007 | @ <td valign="top"> |
| 2008 | @ <input type="text" name="chngtime" size="20" value="%h(zChngTime)" /> |
| 2009 | @ </td></tr> |
| 2010 | } |
| 2011 | |
| 2012 | @ <tr><td align="right" valign="top"><b>Background Color:</b></td> |
| 2013 | @ <td valign="top"> |
| 2014 | render_color_chooser(fNewPropagateColor, zNewColor, "pclr", "clr", "clrcust"); |
| 2015 | @ </td></tr> |
| 2016 |